我在终端上运行了下面的脚本,它发布了所有4个主题;但当使用crontab -e运行它时,它每分钟只发布pm25主题。AQI值是从我从python-aqi function下载的现成python模块中计算出来的。问题的原因是什么?下面是脚本:
#!/bin/sh
# to get pm2.5 from Home Assistant Rest API xiaomi airpurifier in Mezzanine and Bedroom
# then calculate aqi by using python aqi module obtained from https://pypi.org/project/python-aqi/
# output 4 topics:
# xiaomi_airpuriier/bedroom/pm25 999
# xiaomi_airpuriier/bedroom/aqi 999
# xiaomi_airpuriier/mezzanine/pm25 999
# xiaomi_airpuriier/mezzanine/aqi 999
# crontab -e every minute
bedroom=$(curl -s GET \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLC.....gEZfY" \
-H "Content-Type: application/json" \
http://localhost:8123/api/states/sensor.xiaomi_airpurifier_air_quality_pm25)
mezzanine=$(curl -s GET \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLC.....gEZfY" \
-H "Content-Type: application/json" \
http://localhost:8123/api/states/sensor.xiaomi_airpurifier_air_quality_pm252)
bedroom_pm25=$(echo "$bedroom" | python3 -c "import sys, json; print(json.load(sys.stdin)['state'])")
bedroom_aqi=$(aqi aqi.algos.epa pm25:$bedroom_pm25)
mezzanine_pm25=$(echo "$mezzanine" | python3 -c "import sys, json; print(json.load(sys.stdin)['state'])")
mezzanine_aqi=$(aqi aqi.algos.epa pm25:$mezzanine_pm25)
#echo $bedroom_pm25 $bedroom_aqi $mezzanine_pm25 $mezzanine_aqi
# publish to mqtt
mosquitto_pub -h localhost -t xiaomi_airpurifier/bedroom/pm25 -m $bedroom_pm25
mosquitto_pub -h localhost -t xiaomi_airpurifier/bedroom/aqi -m $bedroom_aqi
mosquitto_pub -h localhost -t xiaomi_airpurifier/mezzanine/pm25 -m $mezzanine_pm25
mosquitto_pub -h localhost -t xiaomi_airpurifier/mezzanine/aqi -m $mezzanine_aqi发布于 2020-02-06 21:25:50
crontab -e中的小米空气净化器bash脚本

https://stackoverflow.com/questions/60094603
复制相似问题