Python 用Bash控制TP-Link-Kasa本地交换机
我安装了该库以从本地服务器控制TPLink智能家居设备。虽然从命令行发出命令很简单,但我尝试根据查询结果在Bash中执行这些命令。我的困境纯粹是我的编码能力,我正在寻找一个正确的方向。我想做的是遵循以下语法错误的混乱:Python 用Bash控制TP-Link-Kasa本地交换机,python,bash,automation,cron-task,Python,Bash,Automation,Cron Task,我安装了该库以从本地服务器控制TPLink智能家居设备。虽然从命令行发出命令很简单,但我尝试根据查询结果在Bash中执行这些命令。我的困境纯粹是我的编码能力,我正在寻找一个正确的方向。我想做的是遵循以下语法错误的混乱: if kasa --host 127.0.0.2 status on; then echo "already its on" else kasa --host 127.0.0.2 on echo &
if kasa --host 127.0.0.2 status on; then
echo "already its on"
else
kasa --host 127.0.0.2 on
echo "now its on"
fi
当您发出命令“kasa--host Device_IP state”时,您会得到以下结果
No --strip nor --bulb nor --plug given, discovering..
== Red light - HS210(US) ==
Host: 127.0.0.2
Device state: OFF
== Generic information ==
Time: 2021-05-23 21:16:31
Hardware: 2.0
Software: 1.1.4 Build 200821 Rel.092912
MAC (rssi): XX:XX:XX:XX:XX:XX (-33)
Location: {'latitude': XXXXXX, 'longitude': -XXXXXX}
== Device specific information ==
LED state: True
On since: None
促使我需要bash脚本来控制设备的核心原因是,我生活在一个有线互联网服务非常糟糕的地区,通常需要调制解调器重新启动,这在家里很简单,但在异地就不需要了。我想创建一个脚本,cron将每隔十分钟左右运行一次,并检查互联网是否可访问和/或电缆调制解调器的电源是否已打开。基本上,如果电源关闭了,就打开它,如果互联网关闭了,就关闭电源,再打开电源,让它重新运行。可能是这样的吧
#!/usr/bin/env bash
if kasa --host Device_IP state 2>&1 | grep -Fq 'Device state: OFF'; then
: restart or start the device here
elif kasa --host Device_IP state 2>&1 | grep -Fq 'Device state: ON'; then
: device is already on
fi