我在终端上运行了下面的脚本,它发布了所有4个主题;但是当使用crontab-e运行它时,每分钟只发布pm25主题。aqi值是从我下载的现成python模块中计算出来的:python-aqi function问题的原因是什么? 以下是脚本:
#!/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
crontab-e中的小米airpurifier bash脚本
相关问题 更多 >
编程相关推荐