Python 用Bash控制TP-Link-Kasa本地交换机

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 &

我安装了该库以从本地服务器控制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 "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