DCE from commandline
Sending DCE events from command line
There is a utility in pluto (/usr/pluto/bin) that allows sending proper DCE message from command line. If you want for instance to trip motion sensors on/off you can achieve this in simple way (ID means ID of particular device that you send event for) :
Event "tripped on"
ID -1000 2 9 25 1
Event "tripped off"
ID -1000 2 9 25 0
Event "temperature changed"
ID -1000 2 25 30 temperature_value
Event "output on"
ID -1000 2 28
Event "output off"
ID -1000 2 29
Event "light on"
ID -1000 2 48 10 1
Event "light off"
ID -1000 2 48 10 0
For instance -
A. tripping security sensor with ID of 195 to ON : /usr/pluto/bin/MessageSend dcerouter 195 -1000 2 9 25 1
B. play media (/home/public/data/tts/0.wav) on Xine player with ID of 44 : /usr/pluto/bin/MessageSend localhost 0 44 1 37 29 "" 41 "" 42 "" 59 "/home/public/data/tts/0.wav"
C. report that light with ID of 210 is ON : /usr/pluto/bin/MessageSend dcerouter 210 -1000 2 48 10 1
Sending DCE commands from command line
Change HouseMode command : I've sniffed DCERouter logs and this is what happens when you change security state from Orbiter :
06 09/11/07 16:06:53.512 Evaluated Event Handler: 1 to: 0 once per: 0 last fired 1189519147 (time is 1189519613) 07 09/11/07 16:06:53.512 Received Message from 13 (Security Plug-in / Utility) to -1001 (unknown / ), type 2 id 43 Event:House Mode Changed, parameters: 07 09/11/07 16:06:53.512 Parameter 38(PK_DeviceGroup): 0 07 09/11/07 16:06:53.512 Parameter 39(PK_HouseMode): 1 08 09/11/07 16:06:53.512 Received Message from 13 (Security Plug-in / Utility) to Apex Destiny 6100(217), type 1 id 19 Command:Set House Mode, parameters: 08 09/11/07 16:06:53.512 Parameter 5(Value To Assign): 1 08 09/11/07 16:06:53.512 Parameter 17(PK_Users): 7 08 09/11/07 16:06:53.512 Parameter 99(Password): 5678 08 09/11/07 16:06:53.512 Parameter 100(PK_DeviceGroup): 0 08 09/11/07 16:06:53.512 Parameter 101(Handling Instructions): R 08 09/11/07 16:06:53.513 Received Message from 13 (Security Plug-in / Utility) to OnScreen Orbiter(20),tinia Symbian Series 60 mobile(31),Lapitopi(38),OnScreen Orbiter(40),OnScreen Orbiter(88),Windows XP PC/tablet (Horiz)(102),Generic Proxy Orbiter(164),Windows XP PC/tablet (Horiz)(170),HC Center(174),Ati Symbian Series 60 mobile(247), type 1 id 8 Command:Remove Screen From History, parameters: 08 09/11/07 16:06:53.513 Parameter 10(ID): 08 09/11/07 16:06:53.513 Parameter 159(PK_Screen): 13 05 09/11/07 16:06:53.513 The target device 217 (routed to 217) has not registered. 13 09/11/07 16:06:53.513 No response expected. returning
But sending this command from command line doesn't work :
/usr/pluto/bin/MessageSend localhost 0 -1000 1 19 5 2 17 7 99 5678 100 0 101 R
Also sending event House Mode Changed doesn't actually change house mode:
/usr/pluto/bin/MessageSend localhost 0 -1000 2 43 38 0 39 2
I have found out the reason. -1000 is DCERouter address, but this kind of message should be addressed directly to Security plugin - in my case this is ID of 13. I'm following this, although don't understand distinction of -1000 and 13 - if DCERouter is addressed it should relay message to security plugin anyway - so I don't understand why this is necessary - any opinion ?
/usr/pluto/bin/MessageSend localhost 0 13 1 19 5 6 17 7 99 5678 100 0 101 R
Now it changes security mode properly... Parameters in this command line are : 0 from, 13 to Security plugin, 1-Type: Command, 19-Command "Set house mode", and the rest:
08 09/11/07 16:06:53.512 Parameter 5(Value To Assign): 1 08 09/11/07 16:06:53.512 Parameter 17(PK_Users): 7 08 09/11/07 16:06:53.512 Parameter 99(Password): 5678 08 09/11/07 16:06:53.512 Parameter 100(PK_DeviceGroup): 0 08 09/11/07 16:06:53.512 Parameter 101(Handling Instructions): R