Output Node
The OutputNode sketch, and matching Lua class, exposes the digital ports 1-4 as I/O controllable xAPBSC endpoints. If not all ports are not being used they can be individually disabled by leaving them out of the endpoint definition or by setting their value to 0 (zero).
Snippet of configuration information needed in the jeenodeApplet.lua source. Here we are sending to an RF node configured as unit 8 (the default for the OutputNode Sketch).
OutputNode = require("xap.outputnode") local nodes = { [8]=OutputNode{instance="jeenode:attic",endpoints={p1=1,p2=1,p3=1,p4=1}} }
So now we can simply use a xAPBSC.cmd class message to control these newly created endpoints. Here is an example of turning on JeeNode Port 1 from the above configuration.
xap-header { v=12 hop=1 uid=FF000F00 class=xAPBSC.cmd source=dbzoo.livebox.demo target=dbzoo.livebox.jeenode:attic.p1 } output.state.1 { id=* state=on }
This would result in the OutputNode lua code sending to xap-serial the following
xap-header { uid=FF00D800 source=dbzoo.livebox.Plugboard hop=1 class=Serial.Comms target=dbzoo.livebox.serial v=12 } Serial.Send { data=1,1,8 s port=/dev/ttyUSB0 }
Controlling an OutputNode from the Joggler in this video we simply toggle 4x LEDs on/off.
HAH remote control of JeeNodes using a Joggler
This node provides the following endpoints (p1,p2,p3,p4) for example:
dbzoo.livebox.jeenode:attic.p1 dbzoo.livebox.jeenode:attic.p2 dbzoo.livebox.jeenode:attic.p3 dbzoo.livebox.jeenode:attic.p4
We can rename them like this to produce dbzoo.livebox.jeenode:attic.port1
etc..
local nodes = { [ID]=OutputNode{instance="jeenode:attic",endpoints={p1="port1",p2="port2",p3="port3",p4="port4"}} }
Debugging
Flash the HAHCentral and Output nodes sketches, tethering each to your computer. Connect to each @ 57600 baud.
When powered on the following should be displayed
[HAHCentral.1]1 g212 @ 868Mhz OK 8 0
[outputNode.1] i8 g212 @ 868Mhz OUTPUT 0 0 0 0 0
Entering a command on the HAHCentral to toggle a Port on and off. The command will not be displayed as its typed into the sketch terminal window.
Enter command 1,1,8s (PORT 1,ON,NODE 8) then 1,0,8s (PORT 1,OFF,NODE 8)
[HAHCentral.1]1 g212 @ 868Mhz OK 8 0 > 8s -> 2 b > 8s -> 2 b
The sketch will display “> 8s” when the “s” letter is sent, no CR/LF is necessary. The next line “→ 2 b” indicates that two bytes of data where transmitted.
The output on the other side will now look like this:
[outputNode.1] i8 g212 @ 868Mhz OUTPUT 0 0 0 0 0 GOT 1 1 Port 1 set on GOT 1 0 Port 1 set off