Ещё немного обновлений

Новые релизы, обновления и т.п.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Ещё немного обновлений

Сообщение sergejey » Вт июн 27, 2017 2:01 pm

rtroyakov писал(а):После обновлений вот так:
22:20:53 0.76353100 Warning: cross-linked call of road.tempChanged
log:
road.tempChanged ->
road.tempChanged

Что это?(road - это датчик температуры с улицы)
И так по всем датчикам
смотрите метод tempChanged, возможно в нём стоит установка свойства температуры, а в свойстве прописан вызов tempChanged. это логическая ошибка и система просто блокирует рекурсию.
За это сообщение автора sergejey поблагодарил:
Hemol (Пт июл 21, 2017 7:55 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Ещё немного обновлений

Сообщение C_3AXAPOB » Ср июн 28, 2017 8:34 pm

Вот такой варнинг появился

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

20:01:32 0.25481400 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Ещё немного обновлений

Сообщение sergejey » Чт июн 29, 2017 4:24 pm

Это варнинг о рекурсии вызова методов, связанных с обновлением свойства. Может быть можно отловить событие при котором так происходит?

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Ещё немного обновлений

Сообщение C_3AXAPOB » Чт июн 29, 2017 11:07 pm

Вот лог за час. Больше не знаю как посмотреть.

СпойлерПоказать

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

23:00:01 0.00342900 app_openweather.processSubscription (HOURLY)
23:00:01 0.00237700 connect.processSubscription (HOURLY)
23:00:01 0.80885800 app_yatraffic.processSubscription (HOURLY)
23:00:01 0.80701800 optimizer.processSubscription (HOURLY)
23:00:01 0.20024300 idevices.processSubscription (SAY)
23:00:01 0.19920900 yandex_tts.processSubscription (SAY)
23:00:00 0.42257400 telegram.processSubscription (SAY)
23:00:00 0.38849800 kodi_notify.processSubscription (SAY)
22:47:34 0.30311500 HB sending to_set: {"name":"Switch2","service_name":"\u0421\u0432\u0435\u0442 - \u041a\u0443\u0445\u043d\u044f","service":"Switch","characteristic":"On","value":true}
22:46:42 0.42263900 HB sending to_set: {"name":"Switch2","service_name":"\u0421\u0432\u0435\u0442 - \u041a\u0443\u0445\u043d\u044f","service":"Switch","characteristic":"On","value":true}
22:42:55 0.93946600 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
22:42:55 0.82692800 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
22:42:55 0.76046600 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
22:42:55 0.64902000 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
22:42:55 0.56415200 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
22:42:55 0.35650000 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
22:42:55 0.28922900 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
22:42:55 0.16453500 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
22:42:55 0.09753200 Warning: cross-linked call of HomeBridge.dataUpdated
log:
HomeBridge.dataUpdated -> 
HomeBridge.dataUpdated
22:26:00 0.46780200 idevices.processSubscription (SAY)
22:26:00 0.46643900 yandex_tts.processSubscription (SAY)
22:26:00 0.17622200 telegram.processSubscription (SAY)
22:26:00 0.17437400 kodi_notify.processSubscription (SAY)
22:25:03 0.08493200 Executing (exclusive): mplayer /var/www/cached/voice/f806a789d774a470f0ee3852f26e4648_yandex.mp3 >/dev/null 2>&1
22:25:00 0.92574000 idevices.processSubscription (SAY)
22:25:00 0.92417300 yandex_tts.processSubscription (SAY)
22:25:00 0.13517100 telegram.processSubscription (SAY)
22:25:00 0.09170800 Executing (exclusive): mplayer /var/www/sounds/dingdong.mp3 >/dev/null 2>&1
22:25:00 0.06679100 kodi_notify.processSubscription (SAY)
22:00:02 0.50214600 app_openweather.processSubscription (HOURLY)
22:00:02 0.50033800 connect.processSubscription (HOURLY)
22:00:02 0.21633100 app_yatraffic.processSubscription (HOURLY)
22:00:02 0.21536600 optimizer.processSubscription (HOURLY)
22:00:01 0.59621300 idevices.processSubscription (SAY)
22:00:01 0.59514800 yandex_tts.processSubscription (SAY)
22:00:00 0.78818900 telegram.processSubscription (SAY)
22:00:00 0.78512500 Error registered (type: kodi_notify): {"error":{"code":-32602,"message":"Invalid params."},"id":1,"jsonrpc":"2.0"}URL=http://192.168.2.17:8080/jsonrpc?request={"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.alicevox.master","params":["http:\/\/192.168.2.91:80\/cached\/voice\/7500d44cc26bf0021f813e495650106c_yandex.wav"]},"id":1}
22:00:00 0.76248600 kodi_notify.processSubscription (SAY)
21:44:35 0.60941400 HB sending to_set: {"name":"Switch3","service_name":"\u0421\u0432\u0435\u0442- \u041a\u043e\u0440\u0438\u0434\u043e\u0440","service":"Switch","characteristic":"On","value":false}
21:43:35 0.52339500 HB sending to_set: {"name":"Switch3","service_name":"\u0421\u0432\u0435\u0442- \u041a\u043e\u0440\u0438\u0434\u043e\u0440","service":"Switch","characteristic":"On","value":true}
21:43:24 0.68565000 HB sending to_set: {"name":"Switch3","service_name":"\u0421\u0432\u0435\u0442- \u041a\u043e\u0440\u0438\u0434\u043e\u0440","service":"Switch","characteristic":"On","value":true}
21:00:04 0.05160000 Executing (exclusive): mplayer /var/www/cached/voice/441493b01a50e3298cd58cd0b3e90bf7_yandex.mp3 >/dev/null 2>&1
21:00:03 0.54030700 app_openweather.processSubscription (HOURLY)
21:00:03 0.53860800 connect.processSubscription (HOURLY)
21:00:03 0.33182500 app_yatraffic.processSubscription (HOURLY)
21:00:03 0.33079200 optimizer.processSubscription (HOURLY)
21:00:03 0.11104900 idevices.processSubscription (SAY)
21:00:03 0.10899800 yandex_tts.processSubscription (SAY)
21:00:02 0.80863600 telegram.processSubscription (SAY)
21:00:02 0.80608500 kodi_notify.processSubscription (SAY)
21:00:02 0.66063000 idevices.processSubscription (SAY)
21:00:02 0.65899700 yandex_tts.processSubscription (SAY)
21:00:01 0.99887400 telegram.processSubscription (SAY)
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Ещё немного обновлений

Сообщение zelevova » Пт июн 30, 2017 1:38 pm

Ivan писал(а):getURLBackground("URL")
Запрашивает страницу в другом потоке - используется когда нужно запросить URL в фоне когда не важен результат, например выполнить действие на другом компьютере или железке.
Переесть этой функции тем что она не блокирует выполняемый скрипт, что ускоряет производительность
Под li|u nix системами это не работает. Смотрим сюда
Нужно заменить код:

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

curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1);
на

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

curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1);
Внести эти изменения на гитхабе, ждем когда Сергей их применит.
Последний раз редактировалось zelevova Вс июл 02, 2017 2:42 am, всего редактировалось 2 раза.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Ещё немного обновлений

Сообщение zelevova » Пт июн 30, 2017 1:45 pm

C_3AXAPOB писал(а): HomeBridge.dataUpdated
Посмотри/покажи код этого метода. Скорее всего в нем беда. Возможно не методе объекта, а родителя (если он вызывается).
Короче покажи код и увидишь результат...
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Ещё немного обновлений

Сообщение C_3AXAPOB » Пт июн 30, 2017 1:50 pm

Код стандартный. Я там ничего не писал и не менял.


Отправлено с моего iPhone используя Tapatalk
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Ещё немного обновлений

Сообщение zelevova » Пт июн 30, 2017 2:58 pm

А ну если стандартный тогда хорошо. (не скрываемый сарказм)

А если по делу, то у меня не используется HomeBridge и кода его у меня тоже нет. Я даже попытался посмотреть в Connectе у тебя, но там тоже не нашел код. :D

PS: ничего личного просто удивление от умения формулировать вопросы... Всем добра и позитива.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Ещё немного обновлений

Сообщение C_3AXAPOB » Пт июн 30, 2017 7:16 pm

В методе только это
require(DIR_MODULES.'devices/processHomebridgeMQTT.inc.php');

Вот содержание этого файла:
СпойлерПоказать

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

<?php
/*
    $params['PROPERTY']=$property;
    $params['NEW_VALUE']=(string)$value;
*/
DebMes("HB property: ".$params['PROPERTY']);
DebMes("HB value: ".$params['NEW_VALUE']);
$data=json_decode($params['NEW_VALUE'],true);
if ($data['name']) {
    $device=SQLSelectOne("SELECT * FROM devices WHERE LINKED_OBJECT LIKE '".DBSafe($data['name'])."'");
}
if ($params['PROPERTY']=='from_response' && gg('HomeBridge.mode')=='list') {
    $devices=array();
    foreach($data as $k=>$v) {
        if (is_array($v['services'])) {
            $devices[]=$k;
        }
    }
    $total = count($devices);
    if ($total>0) {
        DebMes("Got devices list");
        sg('HomeBridge.mode','');
        $to_remove=array();
        for ($i = 0; $i < $total; $i++) {
            $device=SQLSelectOne("SELECT ID FROM devices WHERE LINKED_OBJECT LIKE '".DBSafe($devices[$i])."'");
            if (!$device['ID']) {
                $to_remove[]=$devices[$i];
            }
        }
        $total = count($to_remove);
        if ($total) {
            for ($i = 0; $i < $total; $i++) {
                $payload=array();
                $payload['name']=$to_remove[$i];
                DebMes("Homebridge: removing unknown device ".$payload['name']);
                sg('HomeBridge.to_remove',json_encode($payload));
            }
        } else {
            DebMes("Nothing to remove");
        }
    }
}
// reply to status request from HomeKit
if ($params['PROPERTY']=='from_get' && $device['ID']) {
    $payload=array();
    $payload['name']=$device['LINKED_OBJECT'];
    $payload['service_name']=$device['TITLE'];
    if ($device['TYPE']=='relay' && $data['characteristic'] == 'On') {
            $payload['service']='Switch';
            $payload['characteristic'] = 'On';
            if (gg($device['LINKED_OBJECT'].'.status')) {
                $payload['value']=true;  
            } else {
                $payload['value']=false;
            }
    } elseif ($device['TYPE']=='sensor_temp' && $data['characteristic'] == 'CurrentTemperature') {
        $payload['service']='TemperatureSensor';
        $payload['characteristic'] = 'CurrentTemperature';
        $payload['value']=gg($device['LINKED_OBJECT'].'.value');
    } elseif ($device['TYPE']=='sensor_humidity' && $data['characteristic'] == 'CurrentRelativeHumidity') {
        $payload['service']='HumiditySensor';
        $payload['characteristic'] = 'CurrentRelativeHumidity';
        $payload['value']=gg($device['LINKED_OBJECT'].'.value');
    } elseif ($device['TYPE']=='motion' && $data['characteristic'] == 'MotionDetected') {
        $payload['service']='MotionSensor';
        $payload['characteristic'] = 'MotionDetected';
        $payload['value']=gg($device['LINKED_OBJECT'].'.status');
    }
    if (isset($payload['value'])) {
        sg('HomeBridge.to_set',json_encode($payload));
    }
}
// set status from HomeKit
if ($params['PROPERTY']=='from_set' && $device['ID']) {
    if ($device['TYPE']=='relay') {
        if ($data['characteristic']=='On') {
            if ($data['value']) {
                callMethod($device['LINKED_OBJECT'].'.turnOn');
            } else {
                callMethod($device['LINKED_OBJECT'].'.turnOff');
            }
        }
    }
    if ($device['TYPE']=='button') {
        if ($data['characteristic']=='ProgrammableSwitchEvent' || $data['characteristic']=='On') {
            callMethod($device['LINKED_OBJECT'].'.pressed');
            if ($data['characteristic'] == 'On') {
                $payload=array();
                $payload['name']=$device['LINKED_OBJECT'];
                $payload['service_name']=$device['TITLE'];
                //$payload['service'] = 'Switch';
                $payload['characteristic'] = 'On';
                $payload['value'] = false;
                sg('HomeBridge.to_set',json_encode($payload));
            }
        }
    }
}
/*
HomeBridge.to_add
{"name": "flex_lamp", "service_name": "light", "service": "Switch"}
HomeBridge.from_set
{"name":"flex_lamp","service_name":"light","characteristic":"On","value":false}
HomeBridge.from_get
{"name":"flex_lamp","service_name":"light","characteristic":"On"}
HomeBridge.to_set
{"name":"flex_lamp","service_name":"light","characteristic":"On","value":false}
 */ 
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Ещё немного обновлений

Сообщение nick7zmail » Пн июл 03, 2017 2:52 pm

Сергей...очередной предложение...не знаю куда писать, просто оставлю это тут =D
Я думаю, неплохо бы было сделать "Скин" для Режимов работы/Operational modes и Системных статусов/System States.

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