Skip to content

frapu78/thingbench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

thingbench

The IoT Thing Workbench

Tired of hooking up an Arduino to test another IoT framework? Or just inside a VM without actual access to hardware? Don't worry anymore, Thingbench helps you get through it.

ThingBench is an interactive, visual device workbench, where you can have multiple boards with different virtual devices attached. As of now, we ship with one virtual device---a lamp! You can switch it on and off, change the color and size or position multiple lamps on the board. (If you really need something else, this is all open source---feel free to fork and send a pull request!)

Here's how to browse your things:

GET http://localhost:9099/things

This gives you the list of current boards (shown as tabs in the workbench) and virtual devices attached to it (demo file used here):

<things>
  <board name="Demo" id="1692623602">
    <thing name="Lamp 1" id="1253071236" link="http://127.0.0.1:9099/things/1692623602/1253071236"/>
    <thing name="" id="1550999049" link="http://127.0.0.1:9099/things/1692623602/1550999049"/>
    <thing name="" id="1906187103" link="http://127.0.0.1:9099/things/1692623602/1906187103"/>
    <thing name="" id="1901887672" link="http://127.0.0.1:9099/things/1692623602/1901887672"/>
  </board>
</things>

To browse the properties of a thing go to one of the shown URLs (here Lamp1):

GET http://127.0.0.1:9099/things/1692623602/1253071236

This gives you the current state of the devices:

<thing>
  <property name="shadow" value="0"/>
  <property name="color_background" value="-3355648"/>
  <property name="x" value="347"/>
  <property name="width" value="100"/>
  <property name="y" value="135"/>
  <property name="text" value="Lamp 1"/>
  <property name="stereotype" value=""/>
  <property name="power" value="OFF"/>
  <property name="#id" value="1253071236"/>
  <property name="#type" value="thingbench.ThingsModel.Lamp"/>
  <property name="height" value="140"/>
</thing>

You can easily PUT one or all properties to set new values (like switching the lamp on):

http://127.0.0.1:9099/things/1692623602/1253071236

with the body

<thing>  
  <property name="power" value="ON"/>
</thing>

You can easily integrate the corresponding HTTP calls in any IoT framework you like. If you need anything else than a simple lamp, please feel free to browse the code and add your own virtual devices. The Thingbench is based on Processeditor (http://frapu.de/code/processeditor/index.html), which makes it easy to create your own devices with a visual representation.

Java Libraries

Manual Building (Idea, Netbeans, etc.)

  • Create a new Java 1.7 source project with the required libs as dependencies
  • Add the "src" folder as source
  • Add the "models", "pics" folder as resources (Idea) or source (Netbeans)
  • Select "thingbench.Thingbench" as main class for Thingbench

Start interacting with the Things!

About

The IoT Thing Workbench.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages