Простые устройства / Simple Devices

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

Модератор: immortal

Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Простые устройства / Simple Devices

Сообщение xor » Вт окт 10, 2017 10:14 pm

К тому, как работать - через статус или метод?
Если работать через статус, он будет дважды обновляться, сначала непосредственно, потом через принудительный вызов мотион_детектед. Да? А потом сработает таймаут сброса статуса, по-моему, это зашито в методе простого детектора. И вот, начинай сначала.
А потом сам датчик сбросит статус, а это уже никого не интересует, тк он по таймауту сброшен.
Так?


А если через методы работать, то они неск. раз срабатывают. См. выше. Плюс опять таймаут сброса статуса.
Я, честно говоря, запутался. Сначала комментил таймаут, тк. МЖД показывал, что суслика нет(статус=0 по таймауту), а он есть(по датчику)!

В общем, плюнул и ушёл с простых датчиков движения.
Выжидаю...
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

Re: Простые устройства / Simple Devices

Сообщение nightwind » Ср окт 11, 2017 11:26 am

Логическая ошибка кроется в том, что Pressed - должен быть не методом, а ивентом. Не ты его вызываешь, чтобы нажать на кнопку, а нажатая кнопка уведомляет о своем нажатии через ивент pressed.
Обновление статуса - это событие - оно должно вызывать метод pressed.
А вот для программного нажатия кнопки должен быть метод - press.
Тогда все будет как положено.
Метод pressed самому из своего кода вызывать в любом случае нельзя!

Простые устройства же из интерфейса, что из меню, что из сцены вызывают его, ломая всю логику.

РЕШЕНИЕ - добавить к простым устройствам специальные методы для программной сработки. К кнопке нужен метод press. (если он конечно нужен), сейчас включать кнопку можно только сменой статуса
fedor
Сообщения: 13
Зарегистрирован: Вт сен 20, 2016 8:48 pm
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: Простые устройства / Simple Devices

Сообщение fedor » Вс окт 15, 2017 12:02 pm

подскажите, как удалить модуль?
Вернее вопрос в другом, я не хочу использовать данный модуль, скрыл его. после удалил класс SDevices.
Доволен, но через какое то время данный класс появляется снова.
Удалил данный модуль в "система". снова удалил класс, но он появился снова.
Подскажите где и что нужно сделать?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Простые устройства / Simple Devices

Сообщение nick7zmail » Вс окт 15, 2017 12:18 pm

Этот модуль часть системы. Его не удалить)) Не хотите использовать - просто не создавайте там устройства...класс пусит висит...само его существование не коим образом не нагружает систему.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
fedor
Сообщения: 13
Зарегистрирован: Вт сен 20, 2016 8:48 pm
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: Простые устройства / Simple Devices

Сообщение fedor » Вс окт 15, 2017 12:39 pm

Я вас понял. Спасибо.
тогда копну дальше. Есть класс Rooms. в нем объекты. у объектов свойства Temperature и Humidity с сохранением истории. т.е. дублируются данные в таблицу phistory от установленного датчика температуры (которые так же пишутся в данную таблицу.
Данная таблица и так нагружена, хотел убрать сохранение истории Temperature и Humidity в комнатах. убрал сохранение истории поставив 0. все бы хорошо но после перезапуска cycle_websockets, все восстановилось как было.
Я конечно понимаю где и что исправить нужно:
'temperature'=>array('DESCRIPTION'=>'Temperature','KEEP_HISTORY'=>0),
'humidity'=>array('DESCRIPTION'=>'Humidity','KEEP_HISTORY'=>0),
что бы этого не происходило, но после обновления системы все же вернется, и снова придется править файлы.
Вот я и хотел просто удалить данный модуль, т.к. не использую "простые устройства" делаю все по своему, хотя классы Rooms и OperationalModes мне нужны.

немного добавлю.
а если в cycle_websockets.php
закомментировать
if (file_exists(DIR_MODULES . 'devices/devices.class.php')) {
include_once(DIR_MODULES . 'devices/devices.class.php');
$devices = new devices();
}
решит мой вопрос?
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

Re: Простые устройства / Simple Devices

Сообщение nightwind » Вт окт 17, 2017 12:06 pm

Федор, храните историю в объектах комнат, а не датчиков)
У датчика вообще не должно быть поля с данными, а только ссылка для привязки.
За это сообщение автора nightwind поблагодарил:
vitt76 (Вт окт 17, 2017 2:32 pm)
Рейтинг: 1.16%
fedor
Сообщения: 13
Зарегистрирован: Вт сен 20, 2016 8:48 pm
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: Простые устройства / Simple Devices

Сообщение fedor » Вт окт 17, 2017 8:10 pm

Спасибо за ответы.
К сожалению мне это не подходит.
Предлагаю разработчику этого отличного продукта, все же рассмотреть вариант возможности отключения данного модуля.
Спасибо всем кто откликнулся!
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Простые устройства / Simple Devices

Сообщение xor » Вт окт 17, 2017 8:47 pm

To fedor:
Можно создать класс myRooms и работать с ним, чтобы не было неожиданностей.
А из Rooms всё поудалять.
Аватара пользователя
vitt76
Сообщения: 372
Зарегистрирован: Вс апр 09, 2017 2:36 pm
Благодарил (а): 101 раз
Поблагодарили: 51 раз

Re: Простые устройства / Simple Devices

Сообщение vitt76 » Ср окт 18, 2017 4:43 pm

А отключение в эконом-режиме так и не работает ((
Broadlink + Orange Pi PC ARMBIAN 5.31
TransMatrix
Сообщения: 186
Зарегистрирован: Вс май 28, 2017 9:24 am
Благодарил (а): 8 раз
Поблагодарили: 22 раза

Re: Простые устройства / Simple Devices

Сообщение TransMatrix » Пт окт 20, 2017 10:32 am

Третья реинкарнация сервера: решил "делать по умному" через простые устройства...

1. Итак, есть "метеостанция" на ESP8266+BME280. В Мажордомо шлёт через WiFi-IoT модуль.
Сначала сделал привязку на свойства расположения "улица" (объект Ulica) - температура, влажность, давление... У класса Rooms давления (и CO2) не оказалось - я их добавил.
Ну и потом начал переделывать на "простые" устройства...
В ESP8266 модуле свойство bmet привязал к Sensor_temp02->value, аналогично для влажности и давления. Вроде норм, в простых устройствах показания меняются...
Но:
1.1. В свойствах Rooms->Ulica - температура, влажность и давление с меткой "(linked to: esp8266_wifiot)"!
1.2. Свойство Ulica.Pressure не меняется, хотя датчик выставлен как "основной сенсор помещения" - полагаю тупо не так назвал?
1.3. Датчика для CO2 я не нашёл в простых...

2. SonOff на прошивке "arendst/Sonoff-Tasmota". Подключены по MQTT.
Включение-выключение и статус - с определенных полей берет запись. Со значениями ON и OFF!!! А у простых устройств - 0 и 1!
Сижу, думаю как поменять. Пока две версии: или костыли, или плюнуть таки на эту "простоту"...

3. Датчики от этого самого SonOff... Эта добрая душа их передаёт "скопом" в записи SENSOR как "{"Time":"2017-10-20T08:22:37", "BME280":{"Temperature":26.4, "Humidity":40.9, "Pressure":1000.0}, "TempUnit":"C"}" - дешифровку в прошлой реинкарнации я освоил и поделился. Понять-бы, как теперь подружить его с "простыми" устройствами...

4. RcSwitch...
В прошлой версии я создал класс RcSwitch, в нем объекты для 315 и 433 приемников. Получаемое значение с приемника и обработчик, в котором искались в созданном классе RfButton соответствующий объект с совпадающим кодом и для него выполнялся метод onPlay.
Теперь опять-же сижу, думаю как перенести на простые... По факту мои RfButton - это близкий родич для "кнопки"...

Не, я не спорю - можно "по старому" реализовать, но смысл тогда от "простых устройств"???
Ответить