Простые устройства / Simple Devices описание методов

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модераторы: Bagir, Ivan, Vit, immortal, PAV

skysilver
Сообщения: 1815
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 268 раз
Поблагодарили: 1075 раз
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение skysilver » Вт май 08, 2018 5:44 pm

sigment писал(а):
Вт май 08, 2018 11:01 am
Как сделать чтоб произносилось только один раз при включении, а не каждую секунду, бесконечно?
Где и как меняется свойство Relay09.status аж каждую секунду?!
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
sigment
Сообщения: 114
Зарегистрирован: Вт ноя 14, 2017 6:39 pm
Откуда: Москва
Благодарил (а): 32 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение sigment » Вт май 08, 2018 6:09 pm

Выставил в Устройствах / Broadlink обновлять каждую 1 секунду, если выставить 5 сек, то повторяет через 5 секунд. Свойство не меняется каждую секунд, а проверяет, я так понимаю и если status становится 1, то повторяет это бесконечно.
И я не совсем понимаю, зачем мне здесь использовать MQTT...
Raspberry Pi3, Xiaomi, BroadLink, ESP8266
skysilver
Сообщения: 1815
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 268 раз
Поблагодарили: 1075 раз
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение skysilver » Вт май 08, 2018 6:11 pm

sigment писал(а):
Вт май 08, 2018 6:09 pm
Выставил в Устройствах / Broadlink обновлять каждую 1 секунду,
В настройках модуля есть галочка "Обновлять только при изменении".
За это сообщение автора skysilver поблагодарил:
sigment (Вт май 08, 2018 6:23 pm)
Рейтинг: 1.47%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
sigment
Сообщения: 114
Зарегистрирован: Вт ноя 14, 2017 6:39 pm
Откуда: Москва
Благодарил (а): 32 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение sigment » Вт май 08, 2018 6:19 pm

А видел ее . Но так и не пробовал. )))

Спасибо. Все работает. Отвлекся на задавание вопросов и забыл пробовать поставить галку.
Raspberry Pi3, Xiaomi, BroadLink, ESP8266
tarasfrompir1
Сообщения: 1095
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 65 раз
Поблагодарили: 148 раз

Re: Простые устройства / Simple Devices описание методов

Сообщение tarasfrompir1 » Вт май 08, 2018 6:26 pm

Так вы все знаете а вопросы задаете?
За мкютт спросил используете? Вы пишите Я думаю что нет. ))).
Ну а я думаю что надо хоть что то ещё написать!! Али не надо?
Что пользуете какое оборудование , кака ось стоит или ещё что то ?
Или здесь все Ванги? Вобщем все никаких ответов. Понимаю теперь когда мне отвечали с потугами...
Разберитесь , найдите взаимосвязь и выставте свой баг... Вот это будет по делу...
Спасибо нам ПОМОЖЕТ..!
sigment
Сообщения: 114
Зарегистрирован: Вт ноя 14, 2017 6:39 pm
Откуда: Москва
Благодарил (а): 32 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение sigment » Вт май 08, 2018 6:41 pm

Да если бы я знал, что нужно написать, написал бы. Иногда задаешь вопрос, понимаешь, что даже сформулировать правильно не получается. ))) Или иногда дают такой ответ, который понять не можешь, а переспрашивать не удобно.
Мой MJD работает можно сказать на минимальной возможных возможностях, от того что можно было бы сделать. А минимальные потому что, из того, что сам могу сделать, то делаю. А когда еще что-то глючить начинает, то вообще труба.
Raspberry Pi3, Xiaomi, BroadLink, ESP8266
directman66
Сообщения: 1668
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 249 раз
Поблагодарили: 291 раз

Re: Простые устройства / Simple Devices описание методов

Сообщение directman66 » Чт май 17, 2018 9:35 am

Перенесу свой вопрос сюда:
Как добиться автоматического включения nobodyHome? На чистой системе оно само включатеся, на настроенной год назад, этот режим сам никогда не включался. Настройки методов и сценарий nobodyHome и nobodySome перенес, класс Rooms идентичен.

В простых устройствах у всех датчиков движения включил настройку Игнорировать события от устройства, когда никого.
Всем выключателям поставил Изменение означает активность в помещении Нет
И все равно не срабатывает автаматический режим.

Я так понимаю, при выключении nobodyHome должен включаться какойто таймер, который продлевается при срабатывании простых устройств, но его не вижу даже на голой системе.
Теперь разобрался, что таймер

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

nobodyHome callMethodSafe('NobodyHomeMode.activate'); 2018-05-17 12:27:05  
в x-ray висит и все время продлевается. Как узнать, какое именно устройство вызывает

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

 ClearTimeOut("nobodyHome"); 
 SetTimeOut("nobodyHome","callMethodSafe('NobodyHomeMode.activate');", 1*60*60);
Этот код есть в файлах

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

SDevices_statusUpdated.php
SMotions_motionDetected.php
SOpenClose_statusUpdated.php
SThermostats_statusUpdated.php
по всем этим типам прошелся и выключил влияние на активность.

Нашел у себя еще какой-то древнющий класс keysensor c датчиками движения, там в коде метода был ClearTimeOut("nobodyHome");
Почистил )
Последний раз редактировалось directman66 Чт май 17, 2018 9:49 am, всего редактировалось 1 раз.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
tarasfrompir1
Сообщения: 1095
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 65 раз
Поблагодарили: 148 раз

Re: Простые устройства / Simple Devices описание методов

Сообщение tarasfrompir1 » Чт май 17, 2018 9:45 am

Проверь на главной странице вверху как у тебя написано

Кто-то дома: Коридор
или
Никого нет дома - ну или в таком духе ...
если первое то ищи в этой комнате статус присутствия

если же второе то -пока не знаю что предположить...
Спасибо нам ПОМОЖЕТ..!
directman66
Сообщения: 1668
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 249 раз
Поблагодарили: 291 раз

Re: Простые устройства / Simple Devices описание методов

Сообщение directman66 » Чт май 17, 2018 9:51 am

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

Кто-то есть. Активность: Кухня-гостиная 
пошел ковырять методы всех устройств гостиной )))

Похоже нашел. Есть у меня такой замечательный скрипт копирования картинки с телевизора

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

include_once(DIR_MODULES.'app_smarttv/app_smarttv.class.php');
$dir='/var/www/webcam/tmpjpg/';
$path=$dir.'tv.jpg';
if(!is_dir($dir)) mkdir($dir) ;  
unlink($path);  //УДАЛЯЕМ ФАЙЛ


$smartTv=new app_smarttv();
$alias = '47gl';
//$alias = 'LG47eth';
$image = $smartTv->control($alias,'getImg');
SaveFile($path,$image);


//if ( file_exists($path))
if (file_get_contents($path))
{
echo "files exists";} 
else {
$smartTv2=new app_smarttv();
$alias = 'LG47eth';
$image = $smartTv2->control($alias,'getImg');
SaveFile($path,$image); 
}

//вызываем датчик движения гостиной, что говорит о том, что в комнате кто-то есть и смотрит телик
if (file_exists($path)) {cm('Motion05.motionDetected');}
который на выходе видимо создает пустой файл, если телевизор выключен. Похоже придется удалять или не создавать пустой файл перед вызовом cm('Motion05.motionDetected');

Видимо надо добавить что-то такое

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

  $dirname = "D:\\";
    $dirhandle = opendir($dirname);
    $filename = "";
    
    while (($filename = readdir($dirhandle)) !== false)
        if (filesize($filename) == 0)
            unlink($filename);
    
    closedir($dirhandle);
 
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
tarasfrompir1
Сообщения: 1095
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 65 раз
Поблагодарили: 148 раз

Re: Простые устройства / Simple Devices описание методов

Сообщение tarasfrompir1 » Чт май 17, 2018 10:02 am

если размер переменной имадж больше 100 то сохраняй.. иначе нет
и после этого - if (file_exists($path)) {cm('Motion05.motionDetected');}
удаляй сам файл -

НО это как по мне не причем.
Спасибо нам ПОМОЖЕТ..!
Ответить