该项目即将关闭。随着使用 https://github.com/OpenZWave/qt-openzwave 又名ozwdaemon
的 https://github.com/cgarwood/homeassistant-zwave_mqtt 的出现,我已经没有更多的希望了(假设他们偷了我的想法)如果有人问?)。以良好的开源方式,我会更好地投资这些项目,而不是重新发明轮子。这是一次短暂但有趣的旅程......
很快就会成为档案馆
目前状态:
Z-Wave 后端/REST API:测试版
浏览器前端: alpha
将您的 Z-Wave 网络公开为 MQTT 客户端alpha,但尚不适合日常使用
mqtt
(在 HA 内)及其发现,允许基于 GUI 的完整配置从某个地方开始,例如cd /tmp
git clone [email protected]:daringer/zwave-core.git
确保你已经安装了 python > 3.x
使用 pip 安装 venv: python -m pip install venv
创建一个新的虚拟环境并激活它:
python -m venv /tmp/zwave_core_venv
source /tmp/zwave_core_venv/bin/activate
cd /tmp/zwave-core
python -m pip install -r requirements.txt
# for example for home-assistant
cd ~ /.homeassistant
cp zwcfg_0xf5b17667.xml pyozw.sqlite zwscene.xml options.xml /tmp/zwave-core/
找到(并确定)您的 openzwave 安装(风格),请参阅 openzwave。对我来说,我更喜欢全系统,因为通过我的 pacman-ager 安装了 open-zwave。所以对我来说它是: /etc/openzwave
检查您的控制器串行设备(如/dev/ttyACM0
)是否可写
只需运行:
cd /tmp/zwave-core
python zwave_core/start.py
现在要启动网络,只需确保左上角的 4 个输入字段正确即可。控制器设备/dev/ttyACM0
, openzwave 数据库目录/etc/openzwave
, user-dir 是我们当前的工作目录,为了安全起见,我们将 openzwave 文件复制到了其中: .
。
完成后,单击左上角的“ON”,然后等待,同时观察控制器正在执行的任务填充的事件日志...
顾名思义,ZWave-core 应该是与 Z-Wave 设备和网络交互的核心组件。为 Z-Wave 协议提供高度透明且准确的接口,并且不隐藏任何细节。使用 REST API,这种透明度以独立于平台、易于访问的方式提供。
动态、基于 Web 的反应式界面将此 REST API 公开给浏览器,作为了解 Z-Wave 世界的清晰窗口。为了传输 Z-Wave 网络的高动态性,基于 Websocket 的推送是必须的,允许接收方以尽可能最小的延迟不会错过网络内的任何信息。
与这种简单的裸机方法相比,主要的显着特征是 MQTT 层,它在任何家庭自动化系统和 Z-Wave 网络之间引入了一个抽象层,以便分离不属于一起的部分:物理和功能层。前者可以独立部署,尽管 Z-Wave 网络本身无需事先了解周围环境,但后者可以自由地完全不关心物理层,而专注于以最终用户为中心的功能性挑战。因此,简单来说,zwave-core 提供了一个 Z-Wave 到 IP 的桥接器,使 Z-Wave 管理变得简单,从而弥合了 WiFi 和 ISM 频段之间的差距。
网址 | 方法 | 描述 |
---|---|---|
/网 | 得到 | ... |
/网络/行动 | 得到 | |
/网络/动作/动作 | 邮政 | |
/net/ctrl/动作 | 得到 | |
/net/ctrl/动作/动作 | 邮政 | |
/网络/选择 | 获取、删除、修补、发布 | |
/网络/信号 | 得到 | |
/节点 | 得到 | |
/节点/int:node_id | 获取、修补 | |
/节点/int:node_id/值/int:value_id | 获取、发布 | |
/节点/动作 | 得到 | |
/节点/int:node_id/操作/操作 | 邮政 | |
/目录 | 得到 |
127.0.0.1:5000/前端...
有多种方法可以访问 zwave 节点和实体。
zwave/raw/<node_id>/#
将为您提供有关所有 LAN 设备的详细列表,包括配置、只读、...homeassistant/<component type (eg, sensor)>/<node_id>/state#'
将自动填充