Supergiovane / node-red-contrib-sia-ultimate

Connect your SIA-DCS compatible alarm system to node-red. It works with Ajax System too.
MIT License
18 stars 4 forks source link

node-red-contrib-sia-ultimate

Connect your SIA-DCS compatible alarm system to node-red.


NPM version NPM downloads per month NPM downloads total MIT License JavaScript Style Guide Facebook Donate via PayPal



CHANGELOG



EXAMPLE OF CONFIGURING AJAX HUB




SIA-DCS NODE

The SIA-DCS node listens from incoming SIA messages from your alarm device.
Everytime a SIA message arrives, the node decodes it and outputs it to the flow.



In this example, the node retrieves all messages from the SIA client. You'll see that the device list (in the server configuration window), is also filled with some devicenames/id samples.

Copy this code and paste it into your flow

View code > Adjust the nodes according to your setup [{"id":"90f04fe351adfd9b","type":"debug","z":"4e8eb9b80650f523","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":470,"y":120,"wires":[]},{"id":"2fc45b7cddeb3150","type":"SIAUltimate","z":"4e8eb9b80650f523","name":"","topic":"Banano","server":"bea9e0c70f4e12c6","discardAutomaticTest":"no","x":200,"y":140,"wires":[["90f04fe351adfd9b"],["30898bf6227f9439"]]},{"id":"30898bf6227f9439","type":"debug","z":"4e8eb9b80650f523","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":470,"y":160,"wires":[]},{"id":"169dd9a9fdde7c6c","type":"comment","z":"4e8eb9b80650f523","name":"SIA-DCS Messages receiver","info":"","x":240,"y":100,"wires":[]},{"id":"bea9e0c70f4e12c6","type":"siaendpoint-config","port":"4628","name":"Server","acktimeout":"12","hex":"no","aes":"no","heartbeatTimeout":"120","deviceList":"0000,Alarm Panel\n1,PIR Bedrom\n2,Microwave Front Door\n4,PIR Soggiorno","credentials":{}}]



CONFIGURATION

SERVER CONFIGURATION


NODE CONFIGURATION



Output PIN 1

Pin 1 emits the current received SIA message

msg = {
   "connection":"TCP", // (Or UDP, in case of UDP connections)
   "decoded":{
      "lf":10,
      "len":37,
      "crc":53406,
      "crcformat":"hex",
      "cr":13,
      "str":"\"SIA-DCS\"0119L0#000[#000|Nri0/RP0000]",
      "calc_len":37,
      "calc_crc":53406,
      "id":"SIA-DCS",
      "seq":"0119",
      "rpref":"",
      "lpref":"0",
      "act":"000",
      "pad":"",
      "data_message":"#000|Nri0/RP0000",
      "data_extended":"",
      "ts":""
   },
   "topic":"Banano",
   "payload":{ // This contains the message decoded
      "deviceName": "PIR Badroom", // The device name is taken from the list you filled in the server configuration node
      "deviceID": "4", // Device ID that fired the event
      "code":"RP",
      "description":"AUTOMATIC TEST"
   },
   "_msgid":"9e49e52528dbfac5"
}

Output PIN 2 (connection error)

If, after the elapsed intervall, no messages have been received, it raises an error

msg = {
    "topic": "",
    "errorDescription": "" // This will contain the error rescription, in case of errors.
}




This is a partial porting/revisiting from iobroker.sia by schmupu. They did a very good job.