@@ -23,10 +23,6 @@ if [ ! -f "$VENV_PATH/bin/activate" ]; then
2323 exit 1
2424fi
2525
26- # 最大重试次数和重试间隔
27- MAX_RETRIES=3
28- RETRY_DELAY=2
29-
3026# 日志记录函数
3127log () {
3228 local OPERATION=$1
@@ -63,33 +59,41 @@ source "$VENV_PATH/bin/activate"
6359# 执行操作
6460case " $ACTION " in
6561 on|off)
66- echo " 正在尝试 $ACTION 插座..."
6762 VALUE=$( [[ " $ACTION " == " on" ]] && echo " True" || echo " False" )
68- for (( i= 1 ; i<= MAX_RETRIES; i++ )) ; do
69- OUTPUT=$( miiocli $DEVICE_TYPE --ip $DEVICE_IP --token $DEVICE_TOKEN on 2>&1 )
70- if [ $? -eq 0 ]; then
71- echo " 操作成功!"
72- log " $ACTION " " 成功"
73- break
74- else
75- echo " 尝试 $i /$MAX_RETRIES 失败,等待 $RETRY_DELAY 秒后重试..."
76- sleep $RETRY_DELAY
77- fi
78- done
63+ ACTION_CHINESE=$( [[ " $ACTION " == " on" ]] && echo " 打开" || echo " 关闭" )
64+ echo " 正在尝试$ACTION_CHINESE 插座..."
7965
80- if [ $i -gt $MAX_RETRIES ]; then
81- echo " 操作失败,请检查设备状态或网络连接。"
82- log " $ACTION " " 失败" " $OUTPUT "
66+ OUTPUT=$( miiocli $DEVICE_TYPE --ip $DEVICE_IP --token $DEVICE_TOKEN raw_command set_properties " [{'siid': 2, 'piid': 1, 'value': $VALUE }]" 2>&1 )
67+ if [ $? -eq 0 ] && [[ " $OUTPUT " == * " 成功" * ]]; then # 检查输出内容
68+ echo " 操作成功!"
69+ log " $ACTION " " 成功" # 仍然记录日志
70+ else
71+ echo " $OUTPUT "
72+ echo " 操作失败,请检查设备ip token和网络连接。"
73+ log " $ACTION " " 失败" " $OUTPUT " # 仍然记录日志
74+ fi
75+ ;;
76+ status)
77+ echo " 正在查询插座状态..."
78+ OUTPUT=$( miiocli $DEVICE_TYPE --ip $DEVICE_IP --token $DEVICE_TOKEN raw_command get_properties " [{'siid': 2, 'piid': 1}]" 2>&1 )
79+ if [ $? -eq 0 ] && [[ " $OUTPUT " == * " 状态信息" * ]]; then # 检查输出内容
80+ echo " 查询成功:$OUTPUT "
81+ log " status" " 成功" " 状态: $OUTPUT "
82+ else
83+ echo " 查询失败:$OUTPUT "
84+ echo " 操作失败,请检查设备ip token和网络连接。"
85+ log " status" " 失败" " $OUTPUT "
8386 fi
8487 ;;
8588 info)
86- echo " 正在查询插座信息 ..."
89+ echo " 正在获取设备信息 ..."
8790 OUTPUT=$( miiocli $DEVICE_TYPE --ip $DEVICE_IP --token $DEVICE_TOKEN info 2>&1 )
88- if [ $? -eq 0 ]; then
91+ if [ $? -eq 0 ] && [[ " $OUTPUT " == * " 设备信息 " * ]] ; then # 检查输出内容
8992 echo " 获取成功:$OUTPUT "
9093 log " info" " 成功" " $OUTPUT "
9194 else
9295 echo " 获取失败:$OUTPUT "
96+ echo " 操作失败,请检查设备ip token和网络连接。"
9397 log " info" " 失败" " $OUTPUT "
9498 fi
9599 ;;
@@ -98,6 +102,3 @@ case "$ACTION" in
98102 show_help
99103 ;;
100104esac
101-
102- # 退出Python虚拟环境
103- deactivate
0 commit comments