用于与RFLink 433MHz收发器交互的库和CLI工具。
rflink的Python项目详细描述
用于与RFLink 433MHz收发器交互的库和CLI工具。
要求
- python 3.4(或更高版本)
说明
这个包主要作为home assistant rflink组件实现的库创建。cli主要是为了调试目的而创建的,但如果需要,将来可能会扩展为更真实的应用程序。
该软件包还提供了一个cli实用程序,允许多个客户端(如home assistant+domoticz或多个home assistant实例)共享单个rflink硬件。
更改
- 2018年11月1日—由于emontnemery的贡献,添加了rflinkproxycli命令。
安装
$ pip install rflink
rflink debug cli的用法
$ rflink -h Command line interface for rflink library. Usage: rflink [-v | -vv] [options] rflink [-v | -vv] [options] [--repeat <repeat>] (on | off | allon | alloff) <id> rflink (-h | --help) rflink --version Options: -p --port=<port> Serial port to connect to [default: /dev/ttyACM0], or TCP port in TCP mode. --baud=<baud> Serial baud rate [default: 57600]. --host=<host> TCP mode, connect to host instead of serial port. --repeat=<repeat> How often to repeat a command [default: 1]. -m=<handling> How to handle incoming packets [default: event]. --ignore=<ignore> List of device ids to ignore, end with * to match wildcard. -h --help Show this screen. -v Increase verbosity --version Show version.
拦截并显示rflink数据包:
$ rflink rflink Nodo RadioFrequencyLink RFLink Gateway V1.1 R45 newkaku_00000001_4 off newkaku_00000001_3 on alectov1_0334_temp 7.4 °C alectov1_0334_bat low alectov1_0334_hum 26 %
打开或关闭设备:
$ rflink on newkaku_0000_1 $ rflink off newkaku_0000_1
使用TCP模式而不是串行端口(例如:ESP8266串行网桥):
$ rflink --host 1.2.3.4 --port 1234
调试日志以详细模式显示,用于调试:
$ rflink -vv DEBUG:asyncio:Using selector: EpollSelector DEBUG:rflink.protocol:connected DEBUG:rflink.protocol:received data: 20;00;Nodo RadioFrequen DEBUG:rflink.protocol:received data: cyLink - RFLink Gateway DEBUG:rflink.protocol:received data: V1.1 - R45; DEBUG:rflink.protocol:got packet: 20;00;Nodo RadioFrequencyLink - RFLink Gateway V1.1 - R45; DEBUG:rflink.protocol:decoded packet: {'revision': '45', 'node': 'gateway', 'version': '1.1', 'protocol': 'unknown', 'firmware': 'RFLink Gateway', 'hardware': 'Nodo RadioFrequencyLink'} DEBUG:rflink.protocol:got event: {'version': '1.1', 'revision': '45', 'firmware': 'RFLink Gateway', 'hardware': 'Nodo RadioFrequencyLink', 'id': 'rflink'} rflink Nodo RadioFrequencyLink RFLink Gateway V1.1 R45 DEBUG:rflink.protocol:received data: 2 DEBUG:rflink.protocol:received data: 0;01;NewKaku;ID=00000001 DEBUG:rflink.protocol:received data: ;SWITCH=4;CMD=OFF; DEBUG:rflink.protocol:got packet: 20;01;NewKaku;ID=00000001;SWITCH=4;CMD=OFF; DEBUG:rflink.protocol:decoded packet: {'id': '00000001', 'protocol': 'newkaku', 'command': 'off', 'switch': '4', 'node': 'gateway'} DEBUG:rflink.protocol:got event: {'id': 'newkaku_00000001_4', 'command': 'off'} newkaku_00000001_4 off
rflinkproxy cli的用法
$ rflinkproxy -h Command line interface for rflink proxy. Usage: rflinkproxy [-v | -vv] [options] rflinkproxy (-h | --help) rflinkproxy --version Options: --listenport=<port> Port to listen on --port=<port> Serial port to connect to [default: /dev/ttyACM0], or TCP port in TCP mode. --baud=<baud> Serial baud rate [default: 57600]. --host=<host> TCP mode, connect to host instead of serial port. --repeat=<repeat> How often to repeat a command [default: 1]. -h --help Show this screen. -v Increase verbosity --version Show version.
共享连接到串行端口/dev/ttyacm1的rflink, 代理将在端口2345上侦听:
$ rflink --port /dev/ttyACM0 --listenport 2345
共享TCP模式RFLink而不是串行端口(例如:ESP8266串行网桥) 代理将在端口2345上侦听:
$ rflink --host 1.2.3.4 --port 1234 --listenport 2345
调试日志以详细模式显示,用于调试:
$ rflink -vv --host 1.2.3.4 --port 1234 --listenport 2345 DEBUG:asyncio:Using selector: EpollSelector INFO:rflinkproxy.__main__:Serving on ('0.0.0.0', 2345) INFO:rflinkproxy.__main__:Initiating Rflink connection DEBUG:rflink.protocol:connected INFO:rflinkproxy.__main__:Connected to Rflink INFO:rflinkproxy.__main__:Incoming connection from: ::1:63293 DEBUG:rflinkproxy.__main__:got packet: 20;00;Xiron;ID=4001;TEMP=00f1;HUM=38;BAT=LOW; DEBUG:rflinkproxy.__main__:decoded packet: {'node': 'gateway', 'protocol': 'xiron', 'id': '4001', 'temperature': 24.1, 'temperature_unit': '°C', 'humidity': 38, 'humidity_unit': '%', 'battery': 'low'} INFO:rflinkproxy.__main__:forwarding packet 20;00;Xiron;ID=4001;TEMP=00f1;HUM=38;BAT=LOW; to clients DEBUG:rflinkproxy.__main__:got packet: 20;00;NewKaku;ID=013373f6;SWITCH=10;CMD=ON; DEBUG:rflinkproxy.__main__:decoded packet: {'node': 'gateway', 'protocol': 'newkaku', 'id': '013373f6', 'switch': '10', 'command': 'on'} INFO:rflinkproxy.__main__:forwarding packet 20;00;NewKaku;ID=013373f6;SWITCH=10;CMD=ON; to clients DEBUG:rflinkproxy.__main__:got packet: 20;00;Auriol V2;ID=D101;TEMP=006f;BAT=OK; DEBUG:rflinkproxy.__main__:decoded packet: {'node': 'gateway', 'protocol': 'auriol v2', 'id': 'd101', 'temperature': 11.1, 'temperature_unit': '°C', 'battery': 'ok'} INFO:rflinkproxy.__main__:forwarding packet 20;00;Auriol V2;ID=D101;TEMP=006f;BAT=OK; to clients