『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 145|回复: 2

python 如何调用 knx 设备?

[复制链接]

1

主题

1

帖子

28

积分

新手上路

Rank: 1

积分
28
金钱
27
HASS币
0
发表于 2024-10-30 14:39:35 | 显示全部楼层 |阅读模式
我有10个照明配电箱,里面的控制模块是KNX协议的,硬件ABB的。这10个配电箱的knx系统目前正常工作,控制着火车站台不同区域的灯具的开关。控制电脑里安装的是winSwitch。
我现在,想让火车站车辆的来车监控系统和照明系统联动,当机车来的时候,来车系统监管平台会给我JSON格式的数据(REST API),就是给我一个接口,我能调用,WEB端给的。
当接口数据上报过来,我解析出来,然后给KNX系统发开灯或关灯的指令。
目前照明系统的图谱结构 是这样的:knx系统是由IPR/S3.1.1 带总线电源,再带两个LK/S4.1(耦合器),每个LK/S4.1(耦合器),带5个SA/S 8.16.6.1(开关执行器)。
要实现这样的联动,我想请教大家的是:
1,是不是我要安装一个HA的盒子,把已经有的knx系统,添加到HA盒子里面,再通过HA的API接口,实现来车监控系统数据控制knx系统的灯具开关。是这样的技术路径吗?
2,或者说,如果不用HA和那个盒子,直接在python环境中安装pip install xknx,安装这个xknx库,通过这个库,调用knx系统,有谁有成功的demo,发给我测试一下。
多谢。

回复

使用道具 举报

0

主题

20

帖子

672

积分

高级会员

Rank: 4

积分
672
金钱
652
HASS币
0
发表于 2024-11-10 17:18:40 | 显示全部楼层
你两个思路都是可行的。
方式二你最终还是需要一个电脑24小时跑脚本,那不如跑ha方便。

所以你直接用方案1,找个树莓派或者其他ha盒子来做自动化,调试起来也还算容易。
回复

使用道具 举报

0

主题

20

帖子

672

积分

高级会员

Rank: 4

积分
672
金钱
652
HASS币
0
发表于 2024-11-10 17:35:18 | 显示全部楼层
给你一个简单的python代码


import asyncio
from xknx import XKNX
from xknx.devices import Switch
from xknx.io import ConnectionConfig, ConnectionType

async def main():
    # 创建连接配置
    config = ConnectionConfig(
        gateway_ip='10.65.22.100',  # 替换为你的KNX IP接口地址
        gateway_port=3671,        
        connection_type=ConnectionType.TUNNELING,
    )

    # 创建XKNX实例并配置连接
    xknx = XKNX(connection_config=config)

    await xknx.start()  # 启动XKNX

    switch = Switch(
        xknx,
        name='TestSwitch',
        group_address='1/1/80'
    )
    xknx.devices.async_add(switch)


    #开灯
    print("开灯")
    await xknx.devices['TestSwitch'].set_on()

    # 等待一会儿
    await asyncio.sleep(5)

    #关灯
    print("关灯")
    await xknx.devices['TestSwitch'].set_off()


    # 关闭XKNX连接
    await xknx.stop()

# 运行主函数
if __name__ == "__main__":
    asyncio.run(main())
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-21 17:08 , Processed in 1.632886 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表