Mosquito_pub不会在crontab e时发布,而是在终端中运行相同的脚本时发布

2024-10-02 04:34:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在终端上运行了下面的脚本,它发布了所有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

Tags: echo脚本jsonlocalhost主题sysmezzaninepub

热门问题