问题标签 [bacnet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 通过互联网使用 javascript 连接到 BACnet 设备
我想获得有关正在研究的项目的建议或资源。目标是创建一个 BMS(楼宇管理系统)来管理 BACnet 网络中的一些设备。
是否可以创建一个 Web 应用程序(使用 javascript),通过发送 xml 请求通过互联网对 BACnet 设备执行一些 ajax 调用?
我在谷歌上找不到任何具体的东西。你听说过这样的事情吗?阅读设备规格看起来是可能的,但安全性呢?是否可以像在公共 IP 地址上发送带有 xml 消息的 POST HTTP 请求一样简单?
谢谢你的时间 !
python - Scapy:使用 PacketListField 剖析一个数据包中包含的多个数据包
我正在尝试剖析数据包,它封装了另一个类似数据包的结构,称为“标签”。结构看起来像这样
为此,我创建了一个派生自现有 的类PacketListField
,如下所示:
引用guessBACNetTagClass
的是一个函数,它返回剖析标签所需的正确类。
从上面的字典中可以看出,目前有BACNetTagClasses
两个这样的类。
在封装层,称为APDU
我添加了TagListField
就像另一个字段一样。
我目前正在尝试剖析的数据包包含多个标签。第一个(类型BACNetTag_Object_Identifier
)可以正确解析,但其余标签仅列为原始有效负载。
我的实施有问题PacketListField
吗?据我了解,该领域应尝试剖析剩余的标签,直到没有更多的字节。
更新:
使用.show()
揭示了有关数据包结构的更多信息
Scapy 只是将剩余的字节作为Raw
层附加到现有tags
字段。这很有趣,但我仍然不知道为什么会这样。
java - BACnet 访问远程设备
我正在使用 bacnet4j 来访问远程设备。
现在我可以正常访问 3 个设备中的 1 个,但不能访问其他 2 个。使用 BACnet 发现工具,我设置了正确的端口和 BBMD 地址,并找到以下列表:
- 设备 92068:BACnetDemo 在 IP:bac1 在网络 50 上,MAC localnet:45:186:192
- 设备 2100:BACnet 路由在 IP:bac1 上的网络 50 与 MAC localnet:59:186:192
- 设备 1001:001 - 001 - CBM24 在 IP:bac1 上的网络 1201,MAC 1
这是java代码:
我在以下时间超时:
每次我运行它时,我都无法访问设备/路由器 2100 和 1001。我尝试使用不同的本地设备直接访问它们,上面的路由器方法。有人知道吗?
2 个设备 2100 和 1001 具有与之关联的对象,但另一个项目没有。
有人知道我做错了什么吗?
c# - 如何使用 C# 从 Bacnet 获取警报
我正在尝试从在 Bacnet 协议上运行的 PLC 访问警报。我正在使用 Windows 10 IoT 平台(在 RPI 上运行)。我可以读取所有 Bacnet 对象“属性”,例如事件状态、警报等,但我需要获取所有对象的所有警报。
我知道 GetAlarmSummary 和 GetEnrollmentSummary 已被弃用,我应该使用 GetEventInformation 服务,但是当我浏览对象时,我可以找到通知类对象,但我不知道它们如何与二进制或模拟对象连接。
我也知道像 (binary, analog, multistateValue) 这样的 Bacnet 对象具有通知类编号,该编号指示连接到该对象的通知类的编号,但我真的不知道它们如何相互反应以及如何生成错误消息。我注意到有错误的对象将事件状态设置为警报,但我不知道它们如何与通知类合作,因为当我尝试浏览通知类时,我只获得类型和优先级,但没有关于连接对象的信息。谁能提供一些我可以使用的代码示例或给我一些要点来完成这个问题?
谢谢
c# - BACnet 虚拟设备 - 从不响应直接命令
一些背景知识: 我正在尝试创建一个带有虚拟设备的虚拟 BACnet 路由器(请参阅相关帖子)。我的测试环境由运行在我的服务器上的 VM ( 10.2.0.15 ) 组成,其中运行着 BACnet 资源管理器和 Wireshark。我正在 VS2013 中编写代码,并在我的本地机器( 192.168.56.1 )上运行 wireshark。
当我启动虚拟路由器并从 VM 发送 who-is 广播时,我会在 vm 上运行的 wireshark 上看到命令和响应。在我的本地机器上,我只看到了 wireshark 中的命令,但没有看到响应。
所有这一切都很好。但是,i-am 响应的源地址(根据 VM 上的 wireshark 以及 BACnet explorer 的详细信息)是 VM 和我的机器之间的网关 (10.2.0.2) 的源地址。
问题 针对特定虚拟设备的后续 who-is 命令永远不会到达我的本地计算机。我可以看到在 vm 上使用 wireshark 创建的命令,但我的代码从来没有看到请求,我本地机器上的 wireshark 也没有看到新的数据包。
问题 初始 i-am 响应的源地址应该是我本地机器的 IP 还是我分配给虚拟设备的 IP 地址?如上所述,源地址目前是虚拟机和我的机器之间的网关的地址。
这是我用来构建对 who-is 命令的响应的 NPDU 部分的代码 - 希望有人能指出我做错了什么。
openhab - openhab 中的后台绑定以及如何配置 .cfg 文件
我从 github 下载了一个backnet 插件并将其放在插件文件夹中。但我不知道如何配置 .cfg 文件和自述文件无济于事。有人用过这个插件吗??我想要它,这样我就可以从施耐德电气服务器读取数据。因为它不是官方插件,你认为这很容易,或者我应该找到另一种方式,如果你认识任何人?提前致谢
python - 应用程序启动时自动启动命令的麻烦
所以我正在尝试使用 BACpypes 库来学习 python 和 BACnet,我现在有点卡住了。
我正在尝试让“WhoIs-IAm”示例应用程序在启动时进行自动“IAm”广播,但关于我的新手技能,我无法构建它。
于是就有了样本。
我只是不知道如何调用 do_iam 所以它会在应用程序启动时自动启动。
有什么帮助吗?
谢谢。
android - bacnet4j可以在android中工作吗
我想BACnet
在安卓平板电脑上做一个客户端。
可以用BACnet4J
在Android
吗?如果是,是否有不同的 jar 文件Android
?
python - VOLTTRON Failing Bacnet Proxy agent
I am trying to configure bacnet proxy agent in Volttron Project and for some reason i am getting this error in volltron.log when i start the proxy agent:
Can you please guide whether I am doing anything wrong in configuration files ? For IP address of device I have tried three variants in config files:
- IPADDRESS/24
- IPADDRESS
- IPADDRESS:PORT(47808)
Where <> is the ip address of device.
Unfortunately none of these work.
Here is the following description of various files:
============================VOLTTRON LOG================================
==========================================================================
=====================BACNET PROXY AGENT CONFIG==========================
I ran the volttron/scripts/bacnet/bacnet_scan.py and the following was the result:
vendorID = 24
python - Bacnet 设备无法识别 pointName
所以下面是我对volttron的配置。我有一个与 bacnet 兼容的 VAV,我使用 grab_bacnet 在其上生成了配置 csv。问题是 bacnet 代理以及 bacnet 驱动程序中的所有方法都无法从设备中获取任何内容。
这也是要注意,当我启动 bacnet 代理和主驱动程序代理时,volttron.log 中没有显示错误。但是我尝试如下所示的测试代理,我得到一个 keyError,它告诉我请求将发送到错误的设备或 bacnet 根本无法识别设备。
这是我在 testagent 未运行时得到的错误。
其次,通过执行器在我的 TestAgent 上进行如下调用:
volttron 给我错误:RemoteError:volttron.platform.jsonrpc.RemoteError("KeyError('dmpr_pos_1')")
编辑 1 python scripts/bacnet/bacnet_scan.py --ini scripts/bacnet/BACpypes.ini
之后我像这样运行了grab_bacnet:
其中一个值在 csv 文件中是这样的:
谁能指导我解决这个问题?