У меня есть малиновый PI B + в качестве метеостанции на улице. Внутри блока управления у меня есть PI и нагреватель (для защиты, если температура должна опускаться ниже 0 ° C).
Я запрограммировал некоторые функции в PHP, и они прекрасно работают с crontab, кроме одной.
Файл, который вызывает у меня ночные кошмары, должен взять две температуры с двух датчиков и записать два файла (один журнал и один мгновенный показатель температуры с некоторыми другими данными).
Я использую две команды, чтобы сделать это:
$temp_ex=round(system("checktemp"),1);
$temp_el=round(system("python temp_connectivity.py"),1);
первая команда выполняется каждый раз. Без проблем вообще.
Вторая команда, которая вызывает:
import Adafruit_BMP.BMP085 as BMP085
sensor = BMP085.BMP085()
print '{0:0.2f}'.format(sensor.read_temperature())
работает только если я запускаю свой php файл с терминалом. Я получаю правильную температуру.
Когда файл используется crontab, я всегда получаю 0 (даже при 20 ° C).
Оба файла Python и PHP имеют права на выполнение. Я попытался с командами system () и exec () безуспешно.
Кто-нибудь, кто может предложить мне выход? Заранее спасибо!
Там не было ничего плохого с датчиком или кодом.
Это был crontab, или разрешения, вращающиеся вокруг этой службы.
Я использовал «crontab -e» для создания своих рабочих мест, но этого было недостаточно. Я попробовал несколько других способов вызвать мой скрипт, но мне удалось заставить его работать, используя:
sudo crontab -e
Было много скриптов на python, которые не работали, но так как они были скрытыми и не очень важными, я не заметил, что они перестали работать.
Других решений пока нет …