项目作者: estbeetoo

项目描述 :
HDL for Node-RED, utilizing pure JavaScript HDL Buspro driver
高级语言: HTML
项目地址: git://github.com/estbeetoo/node-red-contrib-hdl.git
创建时间: 2016-07-08T15:46:29Z
项目社区:https://github.com/estbeetoo/node-red-contrib-hdl

开源协议:Other

下载


node-red-contrib-hdl

Description

HDL nodes for node-red.

HDL for node-red, utilizing pure JavaScript HDL Buspro driver (working in tunneling mode).
Based on https://github.com/caligo-mentis/smart-bus.

Install via NPM

From inside your node-red directory:

  1. npm install node-red-contrib-hdl

What’s inside?

It includes three nodes:

  1. hdl-controller : a unique CONFIG node that holds connection configuration for hdl and will acts as the encapsulator for HDL access. As a node-red ‘config’ node, it cannot be added to a graph, but it acts as a singleton object that gets created in the the background when you add an ‘hdl-in’ or ‘hdl-out’ node and configure it accordingly.

  2. hdl-out : HDL output node that can send HDL commands to a HDL network.

  3. hdl-in : HDL listener node, who emits flow messages based on activity on the HDL bus.

Example of msg ready to be sent into the hdl-out node:

  1. {
  2. "topic": "1.3",
  3. "payload": {
  4. "code": 39,
  5. "data": {
  6. "channel": 5,
  7. "level": 100
  8. }
  9. }
  10. }
  • topic can contain target address, for example 1.3, where 1 is subnet number and 3 is device number.
  • payload must be a JavaScript object or a string in JSON format, which contains fields:
    • device - device number of target (example: 1.3). It can be empty, then msg.topic field will be handled as target device number
    • code (alias: cmd and command) - command code (example: 39). Full list of operation codes take here: https://raw.githubusercontent.com/estbeetoo/node-red-contrib-hdl/master/doc/HDL-BUS%20Pro%20operation%20codes(Eng)%20Jan%2008%202013.pdf
    • data (aliases: params and args) - object with different fields for specified operation code.
      • Operation code 0x0031 (decimal 49):
        • data.channel - integer, channel number of DMX dimmer, for example.
        • data.level - integer, level of luminosity to be set to the channel.
        • data.time - integer, how many time level change should take[TODO: write the number range here].
      • Operation code 0x0032 (decimal 50):
        • data.channel - integer, channel number of DMX dimmer, for example.
        • data.success - any type, if it can be interpreted as Boolean true, value of 0xF8 will be sent. Otherwise, 0xF5 will be sent.
        • data.value - integer, value to be set to the channel.
      • Operation code 0xE01C (decimal 57372):
        • data.switch - integer, number of switch.
        • data.status - any type, if it can be interpreted as Boolean true integer value 255 will be sent to the switch. Otherwise, 0 will be sent.

Usage

‘hdl-in’ and ‘hdl-out’ node configuration:

‘hdl-controller’ CONFIG node configuration:

How send value to HDL by Inject-node:

According to official documentation: http://nodered.org/docs/getting-started/adding-nodes.html

License

Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)