添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

如何在Python中创建一个BACnet模拟值巫师BAC0?

0 人关注

首先,我必须说,当涉及到Python和BAC0库时,我是一个绝对的初学者。

我想用我的python脚本创建一个Bacnet模拟值,它应该被发送到另一个(物理)Bacnet设备。 现在我只用 bacnet = BAC0.lite() 命令 "创建 "了一个Bacnet设备。这并不重要,但它是有效的。

我花了很多时间浏览文档,但我找不到让我的脚本发送一个模拟值的正确方法。

有谁能帮忙吗?

背景介绍 :我有一个设备能够非常容易地发送一个模拟值(0 ... 10 V)到一个MQTT-broker。现在我想让Raspi接收该模拟值并将其 "转化 "为Bacnet模拟值。这个Bacnet模拟值将被发送到一个DDC,以控制一个泵的功率。要做到这一点,我需要正确的命令/代码,在python脚本中 "创建 "Bacnet模拟值。

python
bacnet
David
David
发布于 2021-03-20
1 个回答
Christian Tremblay
Christian Tremblay
发布于 2021-10-20
已采纳
0 人赞同

下面是一个例子。

#!/usr/bin/python
import weakref
import BAC0
from bacpypes.basetypes import EngineeringUnits, DateTime
from bacpypes.primitivedata import CharacterString, Date, Time
from BAC0.core.devices.local.models import (
    analog_input,
    datetime_value,
    character_string,
from BAC0.core.devices.local.object import ObjectFactory
from BAC0.core.devices.local.models import make_state_text
def start_device():
    print("Starting BACnet device")
    new_device = BAC0.lite(deviceId=10032)
    time.sleep(1)
    # Analog Values
    _new_objects = analog_input(
        instance=1,
        name="Current_Temp",
        description="Current Temperature in degC",
        presentValue=0,
        properties={"units": "degreesCelsius"},
    _new_objects = analog_input(
        instance=2,
        name="Current_Pressure",
        description="Current Pressure in kPa",
        presentValue=0,
        properties={"units": "kilopascals"},
    # Character Strings
    # _new_objects = character_string(
    #    instance=1,
    #    name="Location",
    #    description="City code for data",
    #    presentValue="on-24",
    #    is_commandable=True,