смотрите метод tempChanged, возможно в нём стоит установка свойства температуры, а в свойстве прописан вызов tempChanged. это логическая ошибка и система просто блокирует рекурсию.rtroyakov писал(а):После обновлений вот так:
22:20:53 0.76353100 Warning: cross-linked call of road.tempChanged
log:
road.tempChanged ->
road.tempChanged
Что это?(road - это датчик температуры с улицы)
И так по всем датчикам
Ещё немного обновлений
Модератор: immortal
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Ещё немного обновлений
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 510
- Зарегистрирован: Ср июн 08, 2016 4:17 pm
- Благодарил (а): 124 раза
- Поблагодарили: 101 раз
Re: Ещё немного обновлений
Вот такой варнинг появился
Код: Выделить всё
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
--------------------------------------------------
http://connect.smartliving.ru/profile/908
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Ещё немного обновлений
Это варнинг о рекурсии вызова методов, связанных с обновлением свойства. Может быть можно отловить событие при котором так происходит?
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 510
- Зарегистрирован: Ср июн 08, 2016 4:17 pm
- Благодарил (а): 124 раза
- Поблагодарили: 101 раз
Re: Ещё немного обновлений
Вот лог за час. Больше не знаю как посмотреть.
СпойлерПоказать
Код: Выделить всё
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
--------------------------------------------------
http://connect.smartliving.ru/profile/908
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Ещё немного обновлений
Под li|u nix системами это не работает. Смотрим сюдаIvan писал(а):getURLBackground("URL")
Запрашивает страницу в другом потоке - используется когда нужно запросить URL в фоне когда не важен результат, например выполнить действие на другом компьютере или железке.
Переесть этой функции тем что она не блокирует выполняемый скрипт, что ускоряет производительность
Нужно заменить код:
Код: Выделить всё
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
CONNECT: http://connect.smartliving.ru/profile/311
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Ещё немного обновлений
Посмотри/покажи код этого метода. Скорее всего в нем беда. Возможно не методе объекта, а родителя (если он вызывается).C_3AXAPOB писал(а): HomeBridge.dataUpdated
Короче покажи код и увидишь результат...
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
-
- Сообщения: 510
- Зарегистрирован: Ср июн 08, 2016 4:17 pm
- Благодарил (а): 124 раза
- Поблагодарили: 101 раз
Re: Ещё немного обновлений
Код стандартный. Я там ничего не писал и не менял.
Отправлено с моего iPhone используя Tapatalk
Отправлено с моего iPhone используя Tapatalk
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
--------------------------------------------------
http://connect.smartliving.ru/profile/908
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Ещё немного обновлений
А ну если стандартный тогда хорошо. (не скрываемый сарказм)
А если по делу, то у меня не используется HomeBridge и кода его у меня тоже нет. Я даже попытался посмотреть в Connectе у тебя, но там тоже не нашел код.
PS: ничего личного просто удивление от умения формулировать вопросы... Всем добра и позитива.
А если по делу, то у меня не используется HomeBridge и кода его у меня тоже нет. Я даже попытался посмотреть в Connectе у тебя, но там тоже не нашел код.
PS: ничего личного просто удивление от умения формулировать вопросы... Всем добра и позитива.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
-
- Сообщения: 510
- Зарегистрирован: Ср июн 08, 2016 4:17 pm
- Благодарил (а): 124 раза
- Поблагодарили: 101 раз
Re: Ещё немного обновлений
В методе только это
require(DIR_MODULES.'devices/processHomebridgeMQTT.inc.php');
Вот содержание этого файла:
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
--------------------------------------------------
http://connect.smartliving.ru/profile/908
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Ещё немного обновлений
Сергей...очередной предложение...не знаю куда писать, просто оставлю это тут =D
Я думаю, неплохо бы было сделать "Скин" для Режимов работы/Operational modes и Системных статусов/System States.
То есть простенький интерфейс для управления сложными процессами))) Наряду с "Простыми устройствами", "Комнатами" и подобными дополнениями...
То есть интерфейс с универсальными кодами, который будет опрашивать, к примеру, выбранные простые устройства...в общем организовывать деятельность режимов работы...Ибо если глянуть коннект, я думаю у многих будут повторяться основные режимы, и код в них. Что касается системных статусов - там так же код один и тот же...циклы только могут немного различаться...и проверяемые устройства...думаю в интерфейсе это было бы гораздо удобнее настраивать...
Я думаю, неплохо бы было сделать "Скин" для Режимов работы/Operational modes и Системных статусов/System States.
То есть простенький интерфейс для управления сложными процессами))) Наряду с "Простыми устройствами", "Комнатами" и подобными дополнениями...
То есть интерфейс с универсальными кодами, который будет опрашивать, к примеру, выбранные простые устройства...в общем организовывать деятельность режимов работы...Ибо если глянуть коннект, я думаю у многих будут повторяться основные режимы, и код в них. Что касается системных статусов - там так же код один и тот же...циклы только могут немного различаться...и проверяемые устройства...думаю в интерфейсе это было бы гораздо удобнее настраивать...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<