[Модуль] Broadlink (dev_broadlink)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

dr.pavlov.alex
Сообщения: 103
Зарегистрирован: Вс апр 23, 2017 7:09 pm
Благодарил (а): 38 раз
Поблагодарили: 1 раз

Re: Модуль Broadlink

Сообщение dr.pavlov.alex » Вт авг 01, 2017 6:37 pm

VooDooN писал(а):Тогда проверьте вкладку Debug в момент попытки запуска сервиса. Должна быть ошибка со словом broadlink и, скорее всего, ссылкой на файл с логом. Вот в логе должена быть причина проблемы.
19:20:59 running cycle_dev_broadlink.php

Fatal error: Using $this when not in object context in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 100
19:23:59 running cycle_dev_broadlink.php

Fatal error: Using $this when not in object context in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 126
19:53:28 running cycle_dev_broadlink.php

Fatal error: Using $this when not in object context in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 126
19:54:28 running cycle_dev_broadlink.php

Fatal error: Using $this when not in object context in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 126
19:55:03 running cycle_dev_broadlink.php

Fatal error: Using $this when not in object context in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 126
19:57:33 running cycle_dev_broadlink.php

Fatal error: Using $this when not in object context in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 126
20:31:10 running cycle_dev_broadlink.php

Fatal error: Using $this when not in object context in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 126
Aopen de7000 на Ubuntu 16.04.4 LTS+Broadlink
Аватара пользователя
igorewa
Сообщения: 515
Зарегистрирован: Ср дек 21, 2016 11:54 pm
Откуда: Киев
Благодарил (а): 12 раз
Поблагодарили: 43 раза

Re: Модуль Broadlink

Сообщение igorewa » Вт авг 01, 2017 8:33 pm

Кстати исправьте как нибудь в очередном обновлении скачущий размер шрифта после захода в сканировать устройства
Вложения
Снимок экрана 2017-08-01 в 20.28.49.png
Снимок экрана 2017-08-01 в 20.28.49.png (190.97 КБ) 5781 просмотр
ASUS H110T, I5 7500, DDR4-16Gb, SSD256 . WIN10 64 (LTSB)
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Модуль Broadlink

Сообщение dmw » Вт авг 01, 2017 9:46 pm

Я извиняюсь, а что это у вас такое АнтиКомар?))
Аватара пользователя
igorewa
Сообщения: 515
Зарегистрирован: Ср дек 21, 2016 11:54 pm
Откуда: Киев
Благодарил (а): 12 раз
Поблагодарили: 43 раза

Re: Модуль Broadlink

Сообщение igorewa » Ср авг 02, 2017 1:22 am

dmw писал(а):Я извиняюсь, а что это у вас такое АнтиКомар?))
))) Фумигатор подключенный в SP3 , травит комаров с 22х до 4х утра
ASUS H110T, I5 7500, DDR4-16Gb, SSD256 . WIN10 64 (LTSB)
Denis_k
Сообщения: 587
Зарегистрирован: Сб мар 19, 2016 7:24 pm
Благодарил (а): 299 раз
Поблагодарили: 27 раз

Re: Модуль Broadlink

Сообщение Denis_k » Ср авг 02, 2017 8:37 am

igorewa писал(а):
dmw писал(а):Я извиняюсь, а что это у вас такое АнтиКомар?))
))) Фумигатор подключенный в SP3 , травит комаров с 22х до 4х утра
у комаров комендантский час, полеты с 4 начинаются :D
MD на raspberry pi3
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Модуль Broadlink

Сообщение dmw » Ср авг 02, 2017 10:44 am

Чтото лог апача меня беспокоит по поводу отсутствия методов для SP1:
СпойлерПоказать
PHP Fatal error: Uncaught Error: Call to undefined method SP1::Send_data() in /var/www/modules/dev_broadlink/command.php:22\nStack trace:\n#0 {main}\n thrown in /var/www/modules/dev_broadlink/command.php on line 22

PHP Fatal error: Uncaught Error: Call to undefined method SP1::Check_temperature() in /var/www/modules/dev_broadlink/dev_broadlink_check.inc.php:96\nStack trace:\n#0 /var/www/modules/dev_broadlink/dev_broadlink.class.php(374): require()\n#1 /var/www/modules/scripts/scripts.class.php(139) : eval()'d code(3): dev_broadlink->check_params()\n#2 /var/www/modules/scripts/scripts.class.php(139): eval()\n#3 /var/www/lib/common.class.php(696): scripts->runScript('broadlink_updat...', '')\n#4 /var/www/modules/objects/objects.class.php(569) : eval()'d code(18): runScript('broadlink_updat...')\n#5 /var/www/modules/objects/objects.class.php(569): eval()\n#6 /var/www/objects/index.php(152): objects->callMethod('onNewMinute', Array)\n#7 {main}\n thrown in /var/www/modules/dev_broadlink/dev_broadlink_check.inc.php on line 96
в broadlink.class.php для SP1 действительно нет таких методов, там Set_Power() только.
Кто может вызывать их и почемуто именно для SP1 которого у меня нет?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Ср авг 02, 2017 12:34 pm

Send_data это для rm...проверь выбранный тип устройства в выпадающем меню.

Отправлено с моего Xperia Z через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Модуль Broadlink

Сообщение dmw » Ср авг 02, 2017 2:59 pm

Уже разобрался, там немного все сложней.
Проверьте работает ли у всех кнопка "Обновить" в панели управления модуля Broadlink?
Наблюдаю на двух серверах данную ошибку, на обоих PHP 7.0

В файле broadlink.class.php в начале метода public function model($devtype = NULL) есть такая проверка:

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

if(is_null($devtype)) {
    $dtswitch= self::dtsw_par();
} else {
    $dtswitch=$devtype;
}
Отрабатывает она нормально, но почемуто в результате $dtswitch - это строка.
Поэтому следующий по коду комплекс switch ($dtswitch) обрабатывает любую сроку вида "0x2711" как число = 0, т.е. $model = "SP1" и $type = 0 соответственно возвращается для каждого устройства в моей базе.
Если изменить вышеуказанный код на:

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

if(is_null($devtype)) {
    $dtswitch= self::dtsw_par();
} else {
    $dtswitch=hexdec($devtype);
}
То все работает нормально, кроме если $devtype = null, с этим связана вторая проблема..

Вторая проблема:
Вызывается метод dtsw_par() в котором объект $this не определен, соответственно возвращается еще один fatal error:
PHP Fatal error: Uncaught Error: Using $this when not in object context in /var/www/modules/dev_broadlink/broadlink.class.php:129
Я так думаю, что не определен $this потому что гдето на какомто этапе функция dtsw_par() вызывается из статического метода, скорее всего из:
public static function CreateDevice($h = "", $m = "", $p = 80, $d = 0)
но на сколько это влияет пока неизвестно, изучаю..
или может я не прав?
Аватара пользователя
vitt76
Сообщения: 372
Зарегистрирован: Вс апр 09, 2017 2:36 pm
Благодарил (а): 101 раз
Поблагодарили: 51 раз

Re: Модуль Broadlink

Сообщение vitt76 » Ср авг 02, 2017 4:11 pm

Небольшой оффтоп, гляньте, плиз, файл
\modules\devices\Rooms_onActivity.php
у всех пустой?
Broadlink + Orange Pi PC ARMBIAN 5.31
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Ср авг 02, 2017 4:58 pm

dmw, ты прав! Но как это решить - я не нашел...изначально было так

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

        if(is_null($devtype)) {
             $dtswitch=$this->devtype;
         } else {
             $dtswitch=$devtype;
         }
Поиском по инету - да, нашел что ошибка из-за вызова из статического метода...вынес её по аналогии во внешнюю функцию (по аналогии с тем же $host), но, видимо, это не помогло...на большее у меня не хватило мозгов))

На счет hexdec - немного не понял логики...понял что работает, но логики не понял =D...она же просто преобразовывает 16-ричное число в десятичное? Я понимаю, что функциям то пофиг с чем работать - с 16 ричными или 10 ричным...но зачем насильно преобразовывать =D...

Если найдешь решение первой проблемы - буду благодарен! У меня мозгов не хватило на это.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить