npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-red-contrib-sia-ultimate

v1.0.10

Published

Connect your SIA-DCS compatible alarm system to node-red. It works with Ajax System too.

Downloads

95

Readme

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

  • See here the changelog

EXAMPLE OF CONFIGURING AJAX HUB

  • In the settings of your hub, go to the monitoring stations page.
  • Select “SIA Protocol”.
  • Enable “Connect on demand”.
  • Place Account Id - 3-16 ASCII hex characters. For example 000.
  • Insert Node-Red IP address. The hub must be able to reach this IP address. There is no cloud connection necessary.
  • Insert Node-Red listening port. This port must not be used by anything else on the machine Node-Red is running on, see the notes on port usage below.
  • Select Preferred Network. Ethernet is preferred if hub and HA in same network. Multiple networks are not tested.
  • Enable Periodic Reports. The interval with which the alarm systems reports to the monitoring station, default is 1 minute.
  • Encryption is preferred but optional. Password is 16, 24 or 32 ASCII characters.

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

Adjust the nodes according to your setup

CONFIGURATION

SERVER CONFIGURATION

  • Name: choose the name you want. This is the node name.
  • Listen to port: choose a free port. This port must be the same you set into the SIA configuration of your alarm panel
  • SIA Account: choose what you want, for example 000
  • SIA Password: optional, you can choose a password to decrypt the messages (Default, leave blank). This work if you select Crypted "yes" below.
  • Crypted: optional, AES decryption enabled/disabled (Default "No")
  • Password in HEX format: optional, select "yes" if the password you choose in your SIA configuration of your alarm panel is in HEX format (Default "No")
  • SIA message must be no older than (in secs): discard messages older than, for example, 20 seconds. This avoid processing old unwanted events (Default 0, that means that nothing will be discarded)
  • Emit error if no messages arrive within seconds: if a message is not received during this interval (in seconds), the node will emit an error on PIN 2. This is useful for monitoring the connection to your alarm panel (Default 120 seconds)
  • SIA-DC09 Device List: You can import your own list of device names and device ids. The node will emit the device name based on device ID in the SIA message. Currently compatible only with SIA-DC09. For example:
    • 0000,Alarm Panel
    • 1,PIR Bedrom
    • 2,Microwave Front Door
    • 4,PIR Soggiorno

NODE CONFIGURATION

  • Server: choose the server from the list, or add a new one
  • Name: choose the name you want. This is the node name.
  • Node Topic: this is the node topic. Choose what you want
  • FILTERS
    • Discard test messages: your alarm panel can send an automatic test message once a time, to check that the SIA-DCS node is connected. You can avoid the node sending a msg to the flow everytime this automatuc test message is received. The node will still emit an ERROR message on the PIN 2, if it doesn't receive any message during the period specified in Emit error if no messages arrive within seconds parameter.

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.
}