Несколько вопросов по работе и модулям

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Ответить
Yarra
Сообщения: 2
Зарегистрирован: Вс дек 10, 2017 1:15 pm
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Несколько вопросов по работе и модулям

Сообщение Yarra » Вс дек 10, 2017 4:25 pm

Приветствую. Решили поэскпериментировать с установкой Majordomo.
Возник ряд вопросов и уточнений.

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
Думаю что пояснять тут ничего особо не надо, но если кто не знаком я готов дать пояснения.
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 увидел что вываливается ошибка:
СпойлерПоказать

Код: Выделить всё

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} 
Это нормально? Или это потому что у меня в периферии стоит модуль 7170?

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. У виртуального выключателя есть период опроса. Если я правильно понимаю то это период с которым должен проверяться статус лампы и, при включении/выключении лампы размыкателем должен меняться ее статус в системе. Но, когда я поставил период опроса и включил лампу с кнопки... ничего не изменилось. Почему?
Обнолвнеие состояние можно реализовать только скриптами? Но почему, не проще ли это сделать сразу функционалом сервера, тем более что для умного дома это просто необходимо.
Ответить