Giter Site home page Giter Site logo

biancoroyal / node-red-contrib-bacnet Goto Github PK

View Code? Open in Web Editor NEW
23.0 11.0 16.0 1.67 MB

maintained by PLUS for Node-RED - https://plus4nodered.com

Home Page: https://www.npmjs.com/package/node-red-contrib-bacnet

License: MIT License

JavaScript 51.19% Shell 0.82% HTML 47.98%
node-bacstack bacnet node-red

node-red-contrib-bacnet's Introduction

Platform Node-RED Node-RED BACnet Repository GitHub NPM download Quality Travis CI Codacy Badge Gitpod Ready-to-Code

nodemodbus64

node-red-contrib-bacnet

Building Automation and Control Networks Protocol toolbox for Node-RED.

International IIoT Website for Node-RED

For an international area, Iniationware has provided the PLUS for Node-RED International website.

IIoT Webseite Deutschland für Node-RED

Für einen deutschsprachigen Bereich hat Iniationware die Webseite PLUS for Node-RED Germany bereitgestellt.

Install

Run command on Node-RED installation directory.

npm install node-red-contrib-bacnet 

or run command for global installation.

npm install -g node-red-contrib-bacnet 

try these options on npm install to build, if you have problems to install

--unsafe-perm --build-from-source

Flow Example

License

The MIT License with support via Subscription bundle or GitHub Sponsoring Klaus Landsdorf and Community driven work

Important

This is not an official product of the BACnet Advocacy Group. It is just to provide BACnet to Node-RED based on node-bacstack package. BACnet® is a registered trademark of American Society of Heating, Refrigerating and Air-Conditioning Engineers (ASHRAE).

Contribution NodeJS BACnet® Library

I'd like to give special thanks to fh1ch and Apollon77 for their work on the NodeJS-BACnet-Library.

node-red-contrib-bacnet's People

Contributors

biancode avatar ekristoffe avatar joelkrec avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-red-contrib-bacnet's Issues

Bacnet Gateway

Hi,

I have bacnet gateway with IP address 10.10.10.100
when I run bacwi I get:
bacwi
Received I-Am Request from 1602001, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603018, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603017, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603016, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603015, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603014, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603013, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603012, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603011, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603010, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603009, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603008, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603007, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603006, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603005, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603004, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603003, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603002, MAC = 10.10.10.100.186.192
Received I-Am Request from 1603001, MAC = 10.10.10.100.186.192
Received I-Am Request from 1601000, MAC = 10.10.10.100.186.192
;Device MAC (hex) SNET SADR (hex) APDU
;-------- -------------------- ----- -------------------- ----
1602001 0A:0A:0A:64:BA:C0 1602 00:18:71:D1 1476
1603018 0A:0A:0A:64:BA:C0 1603 00:18:75:CA 1476
1603017 0A:0A:0A:64:BA:C0 1603 00:18:75:C9 1476
1603016 0A:0A:0A:64:BA:C0 1603 00:18:75:C8 1476
1603015 0A:0A:0A:64:BA:C0 1603 00:18:75:C7 1476
1603014 0A:0A:0A:64:BA:C0 1603 00:18:75:C6 1476
1603013 0A:0A:0A:64:BA:C0 1603 00:18:75:C5 1476
1603012 0A:0A:0A:64:BA:C0 1603 00:18:75:C4 1476
1603011 0A:0A:0A:64:BA:C0 1603 00:18:75:C3 1476
1603010 0A:0A:0A:64:BA:C0 1603 00:18:75:C2 1476
1603009 0A:0A:0A:64:BA:C0 1603 00:18:75:C1 1476
1603008 0A:0A:0A:64:BA:C0 1603 00:18:75:C0 1476
1603007 0A:0A:0A:64:BA:C0 1603 00:18:75:BF 1476
1603006 0A:0A:0A:64:BA:C0 1603 00:18:75:BE 1476
1603005 0A:0A:0A:64:BA:C0 1603 00:18:75:BD 1476
1603004 0A:0A:0A:64:BA:C0 1603 00:18:75:BC 1476
1603003 0A:0A:0A:64:BA:C0 1603 00:18:75:BB 1476
1603002 0A:0A:0A:64:BA:C0 1603 00:18:75:BA 1476
1603001 0A:0A:0A:64:BA:C0 1603 00:18:75:B9 1476
1601000 0A:0A:0A:64:BA:C0 0 00 1476
;
; Total Devices: 20

Is it possible to address bacnet deviceId?
Currently, I see how to address 10.10.10.100 and all reads came from SADR 0 in my case 1601000, but I need address the other devices.

vbr,
Rosen

Example bacnet

Good day .
I am sorry if this has been posted many times or it is the wrong place to ask this, but for the lack of my knowledge I cannot find any tutorial online as to how exactly setup and type in the correct ip addresses to read a simple BACnet query

Node red is running on home assistant - 192.16.10.200
Bacnet.Room.Simulator is running on 192.16.10.60

I used the simple example
https://discourse.nodered.org/t/newbie-guide-for-node-red-bacnet-ip/54735

Either i get a --"Error: BacnetError Class: SERVICES (5) Code: REJECT_UNRECOGNIZED_SERVICE (67)"--
or a --"Error: ERR_TIMEOUT"--

It would be really appreciated if you could give me a example as to what i need to change where and what goes where.
Thank you very much in advance

Bacnet room.txt

Dear companies, it needs money to make money!

A warm welcome to all companies that sell or offer our Open Source software! Very few or to say only a few companies give a small contribution to the projects to maintain and develop this software. Node.js and your security in the projects require a continuous development of the Node-RED contribution projects. Unfortunately we are only facing demands and no support. We have been observing this behavior for more than four years now. We want to leave a small statement about this: Please give us a little support via sponsoring, because many small supports will give us enough strength in the end to continue see https://osi.bianco-royal.com/

Buy me a ☕️ is here to find on PayPal or use GitHub sponsoring, please!

time out error with yabe simulator

[
HI ALL,
photo1658474240

Problem

unable to connect to yabe simulator to get the reading as shown on the ss the error from node-red is time out and the error show on the simulator log is confirmed server not handled : SERVICE CONFIRMED READ PROPERTY

Current behavior

Expected behavior

Minimal reproduction of the problem with instructions

Feature

  • ( ) feature request

What is the motivation / use case for changing the behavior?

Support

  • support request => Please do not submit support requests here, instead see use the link to our support page
  • ( ) simple question => please visit the Wiki and Info tab by clicking on the node inside Node-RED before

Your Environment

Please tell us about your environment:

  • ( ) I am using just the Node-RED package and got node-bacstack installed with it

  • ( ) I have installed node-bacstack global from source (using git clone)

  • ( ) I have installed node-bacstack as a global package (using npm i -g)

  • Device :

    • ( ) macOS: v
    • ( ) Linux: v
    • ( ) Windows: v
    • ( ) Raspbian: v
    • ( ) Other:
      • Name:
      • Version:
  • Description of the connecting BACnet system:

    • Name :
    • Version:
    • Vendor :
    • Link : https://
  • node-red-contrib-bacnet version: ``

  • Node: (min. 6.10.x)
    node --version =

"Error: ERR_TIMEOUT" ? Hard to debug

Which node-red-contrib-bacnet version are you using?

0.2.7

What happened?

Trying a basic BACNet-read
but keep getting:
"Error: ERR_TIMEOUT"

I've tested with Yet Another Barcnet Explore (Yabe) - it work fine and can browse the bacnet device and list

Any help would be highly appreciated. Thanks.

How can this be reproduced?

First configured BACNET Client. Selected inteterface IP of node-red instance and set broadcast address.
Set BACHNET Device = ip address of remote device (bacnet device)
Added BACNet-read node and selected Bacnet-client and Bacnet-device.

I'm really in doubt on what to fill in on these field on the BACNet-read node
Type: ?
Instance: ? (tried 20011 as this is device-id shown in Yabe)
Property id: ? (tried 85)

What did you expect to happen?

Respons from the bacnet device.

Other Information

No response

Is this supposed to work with Node Red v1.0.3? I get a lot of errors or blank information using the sample flow. Has something changed in the supporting code?

I'm submitting a ... (check one with "x")

Problem

  • ( ) bug report => please search github for a similar issue or PR before submitting
  • ( ) unexpected behavior => please visit the Wiki before

Current behavior

Expected behavior

Minimal reproduction of the problem with instructions

Feature

  • ( ) feature request

What is the motivation / use case for changing the behavior?

Support

  • support request => Please do not submit support requests here, instead see use the link to our support page
  • ( ) simple question => please visit the Wiki and Info tab by clicking on the node inside Node-RED before

Your Environment

Please tell us about your environment:

  • ( ) I am using just the Node-RED package and got node-bacstack installed with it

  • ( ) I have installed node-bacstack global from source (using git clone)

  • ( ) I have installed node-bacstack as a global package (using npm i -g)

  • Device :

    • ( ) macOS: v
    • ( ) Linux: v
    • ( ) Windows: v
    • ( ) Raspbian: v
    • ( ) Other:
      • Name:
      • Version:
  • Description of the connecting BACnet system:

    • Name :
    • Version:
    • Vendor :
    • Link : https://
  • node-red-contrib-bacnet version: ``

  • Node: (min. 6.10.x)
    node --version =

BACnet Write node test

Hello,
I'm using your great BACnet toolbox and have some suggestions.
For the BACnet Write node, would be nice to have one more configuration element: bacnetValueType of written value. Can be selected from list, like "Type" property. Now I have to add it via function block.
image
This type is "BACNET_APPLICATION_TAG_xx" from https://github.com/stargieg/bacnet-stack/blob/master/include/bacenum.h
I suggest to use YABE (Yet Another Bacnet Explorer) for everyone, for finding right configuration values of BACnet points needed to read/write.
image

image
So bacnetValueType=4 in my function block.

There is my flow:
[{"id":"3d1f1a2b.ea484e","type":"tab","label":"Temperatūros","disabled":false,"info":""},{"id":"f076b690.28a4e","type":"xiaomi-home","z":"3d1f1a2b.ea484e","name":"","x":230,"y":380,"wires":[["5e33fba1.d026bc","b5109086.b0a06"]]},{"id":"f84edd62.9cd608","type":"BACnet-Write","z":"3d1f1a2b.ea484e","name":"Holo temp.","deviceIPAddress":"192.168.0.40","objectType":"2","objectInstance":"353","propertyId":"85","priority":"15","server":"2108d4fe.dbbd1c","multipleWrite":false,"x":1130,"y":380,"wires":[[]]},{"id":"5e33fba1.d026bc","type":"switch","z":"3d1f1a2b.ea484e","name":"","property":"payload.sid","propertyType":"msg","rules":[{"t":"eq","v":"158d0001fd5b5a","vt":"str"},{"t":"eq","v":"158d0001f54bab","vt":"str"},{"t":"eq","v":"158d0001f544e8","vt":"str"},{"t":"eq","v":"158d0001c2ba6c","vt":"str"},{"t":"eq","v":"158d0001f54b6b","vt":"str"},{"t":"eq","v":"158d0001f54bc6","vt":"str"}],"checkall":"true","repair":false,"outputs":6,"x":410,"y":380,"wires":[["788e4c7c.a5b484","dc3411a3.d9aff8"],["746e78ea.2b6288"],["d6d21645.15415","6ab87523.c3f50c"],["50b021b3.f3542","6c9ff0a9.6253d"],["f029bbdd.19fdf8","ad81971c.db0dd8"],["85c143e5.2901b8","1ae2ad8.84695d3"]]},{"id":"788e4c7c.a5b484","type":"debug","z":"3d1f1a2b.ea484e","name":"sveciu k.","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1220,"y":60,"wires":[]},{"id":"746e78ea.2b6288","type":"debug","z":"3d1f1a2b.ea484e","name":"laiptines t.","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":530,"y":240,"wires":[]},{"id":"d6d21645.15415","type":"debug","z":"3d1f1a2b.ea484e","name":"holo t.","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1210,"y":100,"wires":[]},{"id":"8fb97380.92c9d8","type":"debug","z":"3d1f1a2b.ea484e","name":"msg4","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":510,"y":160,"wires":[]},{"id":"b5109086.b0a06","type":"function","z":"3d1f1a2b.ea484e","name":"","func":"return {value: msg.payload.temperature};","outputs":1,"noerr":0,"x":390,"y":160,"wires":[["8fb97380.92c9d8"]]},{"id":"1fbf6886.9fdff7","type":"BACnet-Write","z":"3d1f1a2b.ea484e","name":"Saliono temp.","deviceIPAddress":"192.168.0.40","objectType":"2","objectInstance":"328","propertyId":"85","priority":"15","server":"2108d4fe.dbbd1c","multipleWrite":false,"x":1140,"y":500,"wires":[[]]},{"id":"9835d991.f21788","type":"BACnet-Write","z":"3d1f1a2b.ea484e","name":"Svečių temp.","deviceIPAddress":"192.168.0.40","objectType":"2","objectInstance":"303","propertyId":"85","priority":"15","server":"2108d4fe.dbbd1c","multipleWrite":false,"x":1130,"y":320,"wires":[[]]},{"id":"456b8ef8.17c04","type":"BACnet-Write","z":"3d1f1a2b.ea484e","name":"Miegamojo temp.","deviceIPAddress":"192.168.0.40","objectType":"2","objectInstance":"278","propertyId":"85","priority":"15","server":"2108d4fe.dbbd1c","multipleWrite":false,"x":1150,"y":440,"wires":[[]]},{"id":"63b1496b.85b96","type":"BACnet-Write","z":"3d1f1a2b.ea484e","name":"Virtuvės temp.","deviceIPAddress":"192.168.0.40","objectType":"2","objectInstance":"253","propertyId":"85","priority":"15","server":"2108d4fe.dbbd1c","multipleWrite":false,"x":1140,"y":560,"wires":[[]]},{"id":"50b021b3.f3542","type":"debug","z":"3d1f1a2b.ea484e","name":"miegamo t.","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1230,"y":140,"wires":[]},{"id":"f029bbdd.19fdf8","type":"debug","z":"3d1f1a2b.ea484e","name":"svetainės t.","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1230,"y":180,"wires":[]},{"id":"85c143e5.2901b8","type":"debug","z":"3d1f1a2b.ea484e","name":"virtuvės t.","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1220,"y":220,"wires":[]},{"id":"c239c65c.b41608","type":"function","z":"3d1f1a2b.ea484e","name":"","func":"msg.payload = {\n bacnetValue: msg.payload.temperature,\n bacnetValueType: 4\n\n}\n\n\n\nreturn msg;","outputs":1,"noerr":0,"x":990,"y":440,"wires":[["456b8ef8.17c04","50b021b3.f3542"]]},{"id":"2e26f3d6.206db4","type":"function","z":"3d1f1a2b.ea484e","name":"","func":"msg.payload = {\n bacnetValue: msg.payload.temperature,\n bacnetValueType: 4\n\n}\n\n\n\nreturn msg;","outputs":1,"noerr":0,"x":990,"y":380,"wires":[["f84edd62.9cd608","d6d21645.15415"]]},{"id":"6015b073.4c417","type":"function","z":"3d1f1a2b.ea484e","name":"","func":"msg.payload = {\n bacnetValue: msg.payload.temperature,\n bacnetValueType: 4\n\n}\n\n\n\nreturn msg;","outputs":1,"noerr":0,"x":990,"y":320,"wires":[["9835d991.f21788","788e4c7c.a5b484"]]},{"id":"77114731.ee476","type":"function","z":"3d1f1a2b.ea484e","name":"","func":"msg.payload = {\n bacnetValue: msg.payload.temperature,\n bacnetValueType: 4\n\n}\n\n\n\nreturn msg;","outputs":1,"noerr":0,"x":990,"y":500,"wires":[["1fbf6886.9fdff7","f029bbdd.19fdf8"]]},{"id":"c6292d90.80488","type":"function","z":"3d1f1a2b.ea484e","name":"","func":"msg.payload = {\n bacnetValue: msg.payload.temperature,\n bacnetValueType: 4\n\n}\n\n\n\nreturn msg;","outputs":1,"noerr":0,"x":990,"y":560,"wires":[["63b1496b.85b96","85c143e5.2901b8"]]},{"id":"dc3411a3.d9aff8","type":"msg-resend","z":"3d1f1a2b.ea484e","interval":"60","intervalUnit":"secs","maximum":"0","bytopic":false,"clone":true,"firstDelayed":false,"addCounters":false,"highRate":true,"outputCountField":"","outputMaxField":"","name":"","x":850,"y":320,"wires":[["6015b073.4c417"]]},{"id":"6ab87523.c3f50c","type":"msg-resend","z":"3d1f1a2b.ea484e","interval":"60","intervalUnit":"secs","maximum":"0","bytopic":false,"clone":true,"firstDelayed":false,"addCounters":false,"highRate":true,"outputCountField":"","outputMaxField":"","name":"","x":850,"y":380,"wires":[["2e26f3d6.206db4"]]},{"id":"6c9ff0a9.6253d","type":"msg-resend","z":"3d1f1a2b.ea484e","interval":"60","intervalUnit":"secs","maximum":"0","bytopic":false,"clone":true,"firstDelayed":false,"addCounters":false,"highRate":true,"outputCountField":"","outputMaxField":"","name":"","x":850,"y":440,"wires":[["c239c65c.b41608"]]},{"id":"ad81971c.db0dd8","type":"msg-resend","z":"3d1f1a2b.ea484e","interval":"60","intervalUnit":"secs","maximum":"0","bytopic":false,"clone":true,"firstDelayed":false,"addCounters":false,"highRate":true,"outputCountField":"","outputMaxField":"","name":"","x":850,"y":500,"wires":[["77114731.ee476"]]},{"id":"1ae2ad8.84695d3","type":"msg-resend","z":"3d1f1a2b.ea484e","interval":"60","intervalUnit":"secs","maximum":"0","bytopic":false,"clone":true,"firstDelayed":false,"addCounters":false,"highRate":true,"outputCountField":"","outputMaxField":"","name":"","x":850,"y":560,"wires":[["c6292d90.80488"]]},{"id":"2108d4fe.dbbd1c","type":"BACnet-Client","z":"","name":"Bacnet0","port":"","adpuTimeout":""}]

Can't reset (or send NULL) to an analog_value

Which node-red-contrib-bacnet version are you using?

0.2.7 running in Raspberry pi 2

What happened?

Frankly speaking I'm not sure if this is a bug or not. I want to reset (write NULL) in analog_value property (85: present_value) in priority 8 (manual operation). When sending a blank instead of any value for APP_TAG 4 (REAL) I would expect to remove the value in the priority array, but instead appears 0.

How can this be reproduced?

I successfully read and write properties to different analog_values in my bacnet device (PLC). I always modify property 85 (present value) with priority 8 (manual operation). The issue comes when I want to "reset" this value and remove the value in that position of the priority array. From the bacnet documentation, I understand I have to send NULL to that paticular property and priority, which is indeed what I successfully do with YABE (Yet Another Bacnet Explorer); I simply select property 85 and priority 8 and leave the value to write in blank. When I replicate that in nodered the value written is 0, not null or void, which is not equivalent. I have tried sending directly APP-TAG NULL but I receive this error: "Error: getEnumName() can only be passed an integer value, was given "NaN"". I also tried to send literally NULL as value for REAL type but I receive a timeout error. Is this a bug or am I not understading how to use the write function?

Many thanks for the work done!

What did you expect to happen?

No response

Other Information

No response

Bacnet Write

Hi
Thanks for the great work. The read is working fine but cannot get write to work correctly. Please see screenshots and error. Any advice is appreciated
noderedbacnet
yabe

BACnet write priority Relase

hello
I found a little bug in the App-tag Setings. in fact, with the value "NULL", the number 0 is not entered in the field, its entering NULL. This means that the written array cannot be released again. It works if the number 0 is entered by hand. But it works for the rest of the entries.

I am using the following version:
1.3.5 Maintenance Release
node-red-contrib-bacnet 0.2.4

AND

BAcnet Server Simulator (BOSS Simulator Rev19)

Greetings from Switzerland Ruedi

and TX for the Work
2021-06-05 15_03_02-Node-RED
2021-06-05 15_13_51-Node-RED
2021-06-05 15_13_18-Node-RED

Sub Network

Describe the requested feature

Please help me How to access to sub network “Object ID”
Screenshot_20240423_195701_Adobe Acrobat

Motivation

Su ayuda por favor

/bacnet/ObjectTypes not accesible with adminAuth and httpAdminRoot

Which node-red-contrib-bacnet version are you using?

0.2.7

What happened?

  • When enabling adminAuth in node red settings, the objet list "/bacnet/ObjectTypes" goes 401
  • When enabling httpAdminRoot in node red settings, the objet list "/bacnet/ObjectTypes" goes 404

How can this be reproduced?

In node-redsettings enable httpAdminRoot or adminAuth

What did you expect to happen?

No response

Other Information

No response

PLUS for Node-RED (P4NR) - plus4nodered.com

This package is now maintained under the PLUS for Node-RED (P4NR) Community License.

We provide a lot new features and a better connectivity, plus 95% code coverage tested state of the OPC UA packages. see our Website

We invested time since 2022 to provide a very strong and fair licensed B2B Community access to get the very new OPC UA Node-RED package and soon the very new Modbus package and over time more and more like DNP and BACnet.
One Membership that gives you or your team a big PLUS for Node-RED with support, books, documentation and if needed the Member Source Code access.

Pro Contribution Packages
https://plus4nodered.com

B2B Community
https://p4nr.com

Books
https://leanpub.com/p4nr-opcuaclient. - the first 100 get a free Trial code inside the book to test all in our FlowFuse Playground instance

Unable to do a BACnet read from a BACnet Simulator

Hi,

I am successfully able to connect to a BACnet Simulator
but I am not able to read the present value from it

I am attaching the snapshot of the configuration I made and the response from the servers

Kindly help.
Regards.
Siddharth

Image from simulator
image

image of the node red
image

read properties
image

Error: BacnetError Class: SERVICES (5) Code: REJECT_UNRECOGNIZED_SERVICE (67)

Which node-red-contrib-bacnet version are you using?

0.2.6

What happened?

I imported the example of the BACnet room simulator yabe, changed the Device to my simulator's IP.After deploying, I got the error of "Error: BacnetError Class: SERVICES (5) Code: REJECT_UNRECOGNIZED_SERVICE (67)"

How can this be reproduced?

I was running the Room Control Simulator on a Win10 machine, Yabe can find the simulator on the same machine.
image

Imported the example of the BACnet room simulator yabe, changed the Device to my simulator's IP.
image
Then changed the BACnet client like the followings:
image
Run Read Temperature Water

What did you expect to happen?

No response

Other Information

No response

Node-RED v1.x and/or NodeJS 12 - not compatible

I'm submitting a ... (check one with "x")

Feature

  • ( x) feature request

What is the motivation / use case for changing the behavior?

  • node-red version: ``
    v1.x

  • Node: (min. 6.x)
    node --version = 12

ERR_TIMEOUT

Hello,
I am trying to use thid node and have a problem and a question.
Problem:
I can set up the bacnet read node, and it works well.
But when I try to use bacnet write, and I probably use it the wrong way, bacnet read gives this error: ERR_TIMEOUT.
Question: Can you upload some howto about the bacnet write? Maybe a sample code.

BACnet Multiple Write Feature not working

Which node-red-contrib-bacnet version are you using?

0.2.7

What happened?

I am trying to use the multiple-write feature, but it is not working. Following the documentation, the function node should be set up as:
image
Where type should be replaced by "tag". When using "tag", it raises an error:

Error: Cannot encode a value if the type has not been specified

If I use 'type' instead, it raises an error:

Error: BacnetError Class: DEVICE (0) Code: CONFIGURATION_IN_PROGRESS (2)

Have anyone tried multiple-write?

How can this be reproduced?

Import .json to reproduce the behaviour.

[ { "id": "f6fa9fdfa782b552", "type": "tab", "label": "Flow 1", "disabled": false, "info": "", "env": [] }, { "id": "975b3174b7066505", "type": "function", "z": "f6fa9fdfa782b552", "name": "map to BACnet0", "func": "\nlet arr_values = [\n {\n objectId: { type: 1, instance: 100 },\n values: [{\n type: 4,\n property: { id: 85 },\n value: [{ type: 4, value: 25.125 }],\n }]\n }\n]\n\nmsg.payload = { \n //deviceIPAddress: '172.19.21.197', \n values: arr_values \n }\nreturn msg;\n\n/*\n// SINGLE WRITE\n\nmsg.payload = {\n objectId: {type: 1, instance: 100},\n property: {Id: 85},\n values: [{\n type:4,\n value: msg.payload.variables[0].value[0]\n }]\n}\nreturn msg;\n\n*/", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 540, "y": 140, "wires": [ [ "bf389f9f7c79b94c" ] ] }, { "id": "85d64c34a50c7f73", "type": "inject", "z": "f6fa9fdfa782b552", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 340, "y": 140, "wires": [ [ "975b3174b7066505" ] ] }, { "id": "bf389f9f7c79b94c", "type": "BACnet-Write", "z": "f6fa9fdfa782b552", "name": "BACnet Write Num", "objectType": "1", "instance": "03818aeefee9cbdb", "valueTag": "4", "valueValue": "", "propertyId": "85", "priority": "", "device": "c91481bdd8c07bd6", "server": "f72e893c6c8738ab", "multipleWrite": true, "x": 750, "y": 140, "wires": [ [] ] }, { "id": "03818aeefee9cbdb", "type": "BACnet-Instance", "name": "", "instanceAddress": "" }, { "id": "c91481bdd8c07bd6", "type": "BACnet-Device", "name": "ModbusSlave", "deviceAddress": "172.19.21.197" }, { "id": "f72e893c6c8738ab", "type": "BACnet-Client", "name": "Bacnet-Client", "adpuTimeout": "10000", "port": "47808", "interface": "172.19.21.200", "broadcastAddress": "172.19.21.255" } ]

What did you expect to happen?

It should not raise an error and write the values into the BACnet instances.

Other Information

Using a JACE8000 as BACnet device. I already created a flow for multiple-reading from the BACnet network, it is working normally.

Problem with reading Change_State_Time with Bacnet Read Node

I'm submitting a issue regarding Bacnet reading node, when I try to read Change_State_Time I do get values which are incorrect, I can see the correct values in YABE and our EBO software but I don't get correct values when I try to read it through node-red, and this problem is happening for all the points.

Current behavior

BacnetNoderedError

Expected behavior

ExpectedBehaviour

node-red-contrib-bacnet : 0.2.4

node-red : 2.2.2

"Error stopping node: TimeoutError: timed out after 15000ms"

Hi,

Thanks for this node,

I get this error in node-red, Here is my flow.
Error: "Error stopping node: TimeoutError: timed out after 15000ms" and no data is being read from bacnet JACE device, only way to remedy this is to reboot the raspberry pi, and on next re-deployment, same error comes up.

capture

my flow.

[{"id":"9b2352f.6217bb","type":"tab","label":"Flow 1"},{"id":"c3d5cda4.00dac","type":"BACnet-Read","z":"9b2352f.6217bb","name":"AmpsPhaseA","objectType":"0","objectInstance":"3","propertyId":"85","arrayIndex":0,"deviceIPAddress":"192.168.1.250","server":"9ce827d5.f5d878","multipleRead":true,"x":226,"y":160,"wires":[["bd87f70c.039ae8"]]},{"id":"ea0f2044.f8a9c","type":"inject","z":"9b2352f.6217bb","name":"","topic":"","payload":"true","payloadType":"bool","repeat":"3","crontab":"","once":true,"x":79,"y":184,"wires":[["c3d5cda4.00dac","e6c9efb7.a2b85"]]},{"id":"bd87f70c.039ae8","type":"function","z":"9b2352f.6217bb","name":"Filter_AmpsPhaseA","func":"var numval = msg.payload.values[0].values[0].value[0].value || -1;\nmsg.payload = numval.toFixed(1);\nreturn msg;","outputs":1,"noerr":0,"x":423.5,"y":156,"wires":[["b167a608.263d48","779118a3.a89968"]]},{"id":"e6c9efb7.a2b85","type":"BACnet-Read","z":"9b2352f.6217bb","name":"AmpsPhaseB","objectType":"0","objectInstance":"4","propertyId":"85","arrayIndex":0,"deviceIPAddress":"192.168.1.250","server":"9ce827d5.f5d878","multipleRead":true,"x":225,"y":209,"wires":[["1fe13fc6.df35e"]]},{"id":"1fe13fc6.df35e","type":"function","z":"9b2352f.6217bb","name":"Filter_AmpsPhaseB","func":"var numval = msg.payload.values[0].values[0].value[0].value || -1;\nmsg.payload = numval.toFixed(1);\nreturn msg;","outputs":1,"noerr":0,"x":423,"y":204,"wires":[["bd08ba9d.a97c88","24125a17.070b76"]]},{"id":"b167a608.263d48","type":"ui_gauge","z":"9b2352f.6217bb","name":"","group":"9a0e0cd7.5806b","order":1,"width":0,"height":0,"gtype":"gage","title":"Amps Phase A","label":"A","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":627.5,"y":145,"wires":[]},{"id":"bd08ba9d.a97c88","type":"ui_gauge","z":"9b2352f.6217bb","name":"","group":"9a0e0cd7.5806b","order":2,"width":0,"height":0,"gtype":"gage","title":"Amps Phase B","label":"A","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":630,"y":202,"wires":[]},{"id":"779118a3.a89968","type":"ui_chart","z":"9b2352f.6217bb","name":"","group":"85cbd15b.55537","order":1,"width":0,"height":0,"label":"Amps Phase A","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"5","removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":630.5,"y":114,"wires":[[],[]]},{"id":"24125a17.070b76","type":"ui_chart","z":"9b2352f.6217bb","name":"","group":"85cbd15b.55537","order":2,"width":0,"height":0,"label":"Amps Phase B","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"5","removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":634.5,"y":230,"wires":[[],[]]},{"id":"9ce827d5.f5d878","type":"BACnet-Client","z":"","name":"JACE","port":"47808","adpuTimeout":"6000"},{"id":"9a0e0cd7.5806b","type":"ui_group","z":"","name":"Power","tab":"f5696bf6.939128","order":2,"disp":true,"width":"6"},{"id":"85cbd15b.55537","type":"ui_group","z":"","name":"Amps Graphs","tab":"f5696bf6.939128","order":1,"disp":true,"width":"6"},{"id":"f5696bf6.939128","type":"ui_tab","z":"","name":"Home","icon":"dashboard"}]

Help with simple BACnet read request

I'm submitting a ... (check one with "x")

Problem

  • ( ) bug report => please search github for a similar issue or PR before submitting
  • ( ) unexpected behavior => please visit the Wiki before

Current behavior

Any chance for a tip on how to use BACnet with node red?

https://discourse.nodered.org/t/bacnet-mstp-read-request/37199
Expected behavior

Need to know how to use node red with BACnet

Minimal reproduction of the problem with instructions

Feature

  • ( ) feature request

What is the motivation / use case for changing the behavior?

Support

  • support request => Please do not submit support requests here, instead see use the link to our support page
  • ( ) simple question => please visit the Wiki and Info tab by clicking on the node inside Node-RED before

Your Environment

Please tell us about your environment:

  • ( ) I am using just the Node-RED package and got node-bacstack installed with it

  • ( ) I have installed node-bacstack global from source (using git clone)

  • ( ) I have installed node-bacstack as a global package (using npm i -g)

  • Device :

    • ( ) macOS: v
    • ( ) Linux: v
    • ( ) Windows: v Windows 10
    • ( ) Raspbian: v
    • ( ) Other:
      • Name:
      • Version:
  • Description of the connecting BACnet system:

  • node-red-contrib-bacnet version: ``

  • Node: (min. 6.10.x)
    node --version =

client.js ignores Client>IPAddress setting in node-red and uses ALL_INTERFACES='0.0.0.0' resulting in bind EACCES error.

Problem

  • (x) bug report (possibly, but unsure)
  • (x) unexpected behavior (using node-bacnet lib and supplying the interface IP works)

Current behavior
My setup has multiple IP's on the same Network Interface in the same Subnet /22, the first IP 192.168.252.234 is used by another BACnet client and the second is free 192.168.252.235 intended to be used by node-red-contrib-bacnet.

  • in this senario, the library cannot bind exclusively only to the second IP address, instead tries to bind to all and fails everytime with "Error: ERR_TIMEOUT"

Expected behavior

  • should be able to bind the the specified IP in the Interface>Client>IP_address

Minimal reproduction of the problem with instructions

  • Simple BACnet Read Flow attached (file extn. changed to .txt to allow attaching)
    BACrpm.txt
  1. First set the interface with 2 IP addresses atleast and then assign the first one to another Program like YABE or backstack from skarg, the second free IP use that for the node-red-contrib-bacnet.

  2. Make a simple Read Prop Request to a BACnet Device and instantaly after the ADPU times out we get the "Error: ERR_TIMEOUT" message, this is the correct failure as we are not bound to any interface.

  3. I'm noticing that the lib tries to bind to 0.0.0.0 as seen in the file .node-red\node_modules\node-bacnet\lib\client.js line 18 where the const ALL_INTERFACES = '0.0.0.0'; is set , also needed is line 20 where the const BROADCAST_ADDRESS = '255.255.255.255';

  4. Inside node-red setting the Inteface>Client>IP_address seems to have no effect as it alwalys tries to bind to ALL_INTERFACES IP 0.0.0.0 , which can also result in a Error: bind EACCES as the interface IP is already in use by another client (as seen in the console if node-red is restarted after IP address change and Deployed.

  5. Dirty workaround is to set line 18 with const ALL_INTERFACES = '192.168.252.235'; as in my case and line 20 to const BROADCAST_ADDRESS = '192.168.255.255'; since i have a /22 subnet

Your Environment

Please tell us about your environment:

  • (x) I am using just the Node-RED package and installed node-bacstack locally (with npm i)

  • Device :

    • (x) Windows: v 10
  • Description of the connecting BACnet system:

  • (NA) The Problem is on the BACnet Client originating side and not yet out on the wire.
  • node-red-contrib-bacnet version: [email protected]

  • Node: (min. 6.10.x)** node --version v12.19.0

read

how to read multiple analog values using bacnet read

Fatal Error v0.0.3 & 0.0.7

9 Dec 16:48:53 - [info] Node-RED version: v0.17.5
9 Dec 16:48:53 - [info] Node.js version: v6.12.2
9 Dec 16:48:53 - [info] Linux 4.4.0-103-generic x64 LE

9 Dec 16:49:02 - TypeError: o.devices.add is not a function
at EventEmitter. (/home/djok/.node-red/node_modules/node-red-contrib-bacnet/bacnet/bacnet-client.js:1:445)
at emitOne (events.js:96:13)
at EventEmitter.emit (events.js:188:7)
at processUnconfirmedServiceRequest (/home/djok/.node-red/node_modules/bacstack/lib/bacnet-client.js:249:12)
at handlePdu (/home/djok/.node-red/node_modules/bacstack/lib/bacnet-client.js:286:9)
at handleNpdu (/home/djok/.node-red/node_modules/bacstack/lib/bacnet-client.js:343:5)
at self.receiveData (/home/djok/.node-red/node_modules/bacstack/lib/bacnet-client.js:354:7)
at Socket. (/home/djok/.node-red/node_modules/bacstack/lib/bacnet-transport.js:13:25)
at emitTwo (events.js:106:13)
at Socket.emit (events.js:191:7)
at UDP.onMessage (dgram.js:548:8)

BACnet write priority settings missing

Hello,
I was playing with this node and saw there is no option to set the priority yet.
Do you ave any plan to enable it in the future or could I make the modification and do a Pull request ?
Thanks.

Ps I am just playing with a rpi as slave (modbus, BACnet, mqtt, ...) and a windows pc (node-red) at home.

feature: cov-bacnet node for monitoring values

Feature

  • (X) feature request

What is the motivation / use case for changing the behavior?

COV is supported by the node-bacnet library and could be implemented in the package as a cov-bacnet node.

Device ID Question

Dear Sir:

First let me start by saying that this is the first time I am ever trying to work with Node-Red at all. I am a Building Automation Control Guy with 20 years of experience working in the field and have been working with Bacnet in and out every day for the past 8 years as my primary language.

What I am trying to do is I have a customer who has a very simplistic thermostat based system setup that currently is all stand-alone that was all installed by the previous building owners, so they inherited the system when they moved in. The system currently has no Building Management Device installed and so is completely stand-alone. The issue they are running into is when there is a power outage all of thermostats resort back to factory default date and wait for a time sync from the network...which never comes as there is no management device. So I am just needing a simple device to install to preform this task..thus I am looking into Node-red and your Pallet as a simple way to get that done.

The issue that I am running into, and I probably just don't know what I'm doing, is that when you go to configure the Bacnet Command block with the Time Sync function you are asked for a device...which I don't see a way to define...an example is given of an IP address and this may work if all of your devices were straight Bacnet/IP devices but using straight IP addresses is not standard for Bacnet Transit Packets which is what leaves me confused, for like in my building system all of the devices are MSTP (RS-485 Network Based) devices. I can install a router to get from Bacnet/IP to the MSTP network but to send to each individual device I would need to identify each thermostat as its Bacnet ID on the Network, 1, 2, 3, 4, 5, etc.

Can you please assist with this? Also, I see that you are looking for sponsorship and that your product is still in Beta. I would be willing to support you if you can support me.

Thank You,

Andy Burch
[email protected]

BACnet Write Node

I'm submitting a ... (check one with "x")

Problem

  • (x ) bug report => please search github for a similar issue or PR before submitting
  • ( ) unexpected behavior => please visit the Wiki before

Current behavior
When sending information from BACnet Write node the following error occurs "Error: BacnetAbort - Reason:4"

Expected behavior
I was passing a msg.payload to change the value of a Analog Value, app tag real, Present Value

Minimal reproduction of the problem with instructions

  1. any time I try to send data through the node.

Your Environment

Please tell us about your environment:
[{"id":"40c8fca2.b42554","type":"BACnet-Write","z":"e0a176f5.b2ea48","name":"","objectType":"2","instance":"dc885d8e.5caaa","valueTag":"4","valueValue":"{{payload}}","propertyId":"85","device":"bdded6be.320678","server":"b5033340.81aaa","multipleWrite":false,"x":620,"y":120,"wires":[["a9e65eb9.4bffd"]]},{"id":"dc885d8e.5caaa","type":"BACnet-Instance","z":"","name":"Test SADPR-OUTPUT%","instanceAddress":"3001617"},{"id":"bdded6be.320678","type":"BACnet-Device","z":"","name":"NCE","deviceAddress":"192.168.1.41"},{"id":"b5033340.81aaa","type":"BACnet-Client","z":"","name":"NCE","adpuTimeout":"6000","port":"47808","interface":"192.168.1.41","broadcastAddress":"192.168.1.255"}]

  • (x ) I am using just the Node-RED package and got node-bacstack installed with it

  • ( ) I have installed node-bacstack global from source (using git clone)

  • ( ) I have installed node-bacstack as a global package (using npm i -g)

  • Device :

    • ( ) macOS: v
    • ( ) Linux: v
    • ( ) Windows: v
    • (x ) Raspbian: v
    • ( ) Other:
      • Name:
      • Version:
  • node-red-contrib-bacnet version: ``

  • Node: (min. 6.10.x)
    node --version =0.1.0 via Palette

How do you specify the object id in the node settings of the object type you are trying to read ?

Hello, have been trying to implement a simple BACnetr read , got the basic BACnet command node for a simple whois to work, but could not figure out how to do a simple read_prop of the same device , in particular as an example to get the PresentValue(85) of Object analog_value(2) with Object_Id(4) from Device(7682)

without giving the device ip i get Error: ERR_TIMEOUT in the Debug while with the ip i get Error: BacnetError - Class:0 - Code:0

But in the BACnet Read node there is no setting for the object_id.

If possible an example flow of the 3 working nodes would be much helpful.

Regards,
Aniston

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.