Несколько вопросов по работе и модулям
Добавлено: Вс дек 10, 2017 4:25 pm
Приветствую. Решили поэскпериментировать с установкой Majordomo.
Возник ряд вопросов и уточнений.
1. учитывая современные тенденции в линуксе я бы посоветовал в мануал дописать запуск скриптов не через cron, а через systemd. Гораздо проще написать ему юнит на запуск и автоматический перезапуск, прописывать это в кроне. Тем более что у нас с товарищем на Debian 9 запись в виде @reboot /usr/bin/php /var/www/html/cycle.php в crontab так и не взлетела.
2. нигде не написано что надо поставить php-xml (php5.6-xml или php7.0-xml). Я бы предложил поставить его в зависимость deb-пакета. Без него циклы не работают. Или хотя бы написать об этом на сайте
3. Почему-то в последней версии Majordomo отсутсвует модуль rss_channels. Без него циклы запускаются, но выдают ошибку. Не знаю вылетали из-за него или нет. Но если он вызывается циклами то, как мне кажется, надо чтобы он был в составе. Мне в итоге пришлось вылезти на .com-версию сайта, оттуда слить старую версию Majordomo и вытащить версию rss-channels, потому что я нигде не нашел где можно было бы отдельно его скачать.
4. Планируется ли обновление модуля для MegaD? исполнительные модули, которые есть сейчас старые. Там есть только 7170* А мы используем 8170*. Не знаю по этому или нет, но в списке данных по обнаруженному модулю ничего нет.
5. посмотрел в X-ray увидел что вываливается ошибка:
Это нормально? Или это потому что у меня в периферии стоит модуль 7170?
6. По мануалам из интернета пытался настроить лампочку... в итоге получилось. Но вот что непонятно:
Я делают объект lamp1. У этого объекта есть три метода: switch, turnOn, turnOff.
Сделал в Управлении Виртуальный выключатель, добавил на сцену.
Добавил в упрощенном виде и вызываю метод switch.
Метод выглядит так:
То есть, как я понимаю, при нажатии на выключатель на сцене должно произойти переключение.
Но вот загадка, если в методах turnOn и turnOff есть ошибка... то ничего не работает!
Как это так, если должен вызываться метод switch и почему он зависит от кода turnOn и turnOff?
Более того если я метод switch сделаю пустым, а turnOn и turnOff будут рабочими... то по-прежнему все будет работать! Получается switch вызывает не метод объекта?
7. У виртуального выключателя есть период опроса. Если я правильно понимаю то это период с которым должен проверяться статус лампы и, при включении/выключении лампы размыкателем должен меняться ее статус в системе. Но, когда я поставил период опроса и включил лампу с кнопки... ничего не изменилось. Почему?
Обнолвнеие состояние можно реализовать только скриптами? Но почему, не проще ли это сделать сразу функционалом сервера, тем более что для умного дома это просто необходимо.
Возник ряд вопросов и уточнений.
1. учитывая современные тенденции в линуксе я бы посоветовал в мануал дописать запуск скриптов не через cron, а через systemd. Гораздо проще написать ему юнит на запуск и автоматический перезапуск, прописывать это в кроне. Тем более что у нас с товарищем на Debian 9 запись в виде @reboot /usr/bin/php /var/www/html/cycle.php в crontab так и не взлетела.
СпойлерПоказать
В связи с этим я в /etc/sysеemd/system просто сделал сервис cycles.service со следующим содержанием:
Думаю что пояснять тут ничего особо не надо, но если кто не знаком я готов дать пояснения.
Код: Выделить всё
[Unit]
Description=Start cycles for Majordomo
[Service]
ExecStart=/usr/bin/php /var/www/html/cycle.php
Restart=always
User=www-data
Group=www-data
[Install]
WantedBy=multi-user.target
3. Почему-то в последней версии Majordomo отсутсвует модуль rss_channels. Без него циклы запускаются, но выдают ошибку. Не знаю вылетали из-за него или нет. Но если он вызывается циклами то, как мне кажется, надо чтобы он был в составе. Мне в итоге пришлось вылезти на .com-версию сайта, оттуда слить старую версию Majordomo и вытащить версию rss-channels, потому что я нигде не нашел где можно было бы отдельно его скачать.
4. Планируется ли обновление модуля для MegaD? исполнительные модули, которые есть сейчас старые. Там есть только 7170* А мы используем 8170*. Не знаю по этому или нет, но в списке данных по обнаруженному модулю ничего нет.
5. посмотрел в X-ray увидел что вываливается ошибка:
СпойлерПоказать
Код: Выделить всё
16:15:23 0.13967500 GetURL to http://192.168.0.14/sec/?cmd=all (source require) finished with error:
Operation timed out after 60001 milliseconds with 0 bytes received
{"url":"http:\/\/192.168.0.14\/sec\/?cmd=all","content_type":null,"http_code":0,"header_size":0,"request_size":158,"filetime":-1,"ssl_verify_result":0,"redirect_count":0,"total_time":60.001428,"namelookup_time":5.2e-5,"connect_time":0.001113,"pretransfer_time":0.00116,"size_upload":0,"size_download":0,"speed_download":0,"speed_upload":0,"download_content_length":-1,"upload_content_length":-1,"starttransfer_time":0,"redirect_time":0,"redirect_url":"","primary_ip":"192.168.0.14","certinfo":[],"primary_port":80,"local_ip":"192.168.0.12","local_port":33430}
6. По мануалам из интернета пытался настроить лампочку... в итоге получилось. Но вот что непонятно:
Я делают объект lamp1. У этого объекта есть три метода: switch, turnOn, turnOff.
Сделал в Управлении Виртуальный выключатель, добавил на сцену.
Добавил в упрощенном виде и вызываю метод switch.
Метод выглядит так:
Код: Выделить всё
file_get_contents("http://192.168.0.14/sec/?cmd=7:2");
$state =file_get_contents("http://192.168.0.14/sec/?pt=7&cmd=get");
if ($state == "ON") {
setGlobal('lamp1.status', 1);
} else {
setGlobal('lamp1.status', 0);}
Но вот загадка, если в методах turnOn и turnOff есть ошибка... то ничего не работает!
Как это так, если должен вызываться метод switch и почему он зависит от кода turnOn и turnOff?
Более того если я метод switch сделаю пустым, а turnOn и turnOff будут рабочими... то по-прежнему все будет работать! Получается switch вызывает не метод объекта?
7. У виртуального выключателя есть период опроса. Если я правильно понимаю то это период с которым должен проверяться статус лампы и, при включении/выключении лампы размыкателем должен меняться ее статус в системе. Но, когда я поставил период опроса и включил лампу с кнопки... ничего не изменилось. Почему?
Обнолвнеие состояние можно реализовать только скриптами? Но почему, не проще ли это сделать сразу функционалом сервера, тем более что для умного дома это просто необходимо.