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

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

Модератор: immortal

Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

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

Сообщение Gelezako » Пт окт 20, 2017 11:06 am

TransMatrix писал(а): 1.2. Свойство Ulica.Pressure не меняется, хотя датчик выставлен как "основной сенсор помещения" - полагаю тупо не так назвал?
если я всё правильно понял, то вот в чём ваша проблема. Модуль "простые устройства" работает с классом SDevices, но так же есть отдельный класс Rooms. У них разный набор свойств,методов и объектов. Это 2 класса никак не связаны. Если вы добавили датчик через "простые устройства", то вся информация с датчика будет доступна только внутри этого классаа и не стоит ожидать что в классе Rooms (в вашем случае Ulica.Pressure) что-то будет обновляться.
TransMatrix писал(а): 2. SonOff на прошивке "arendst/Sonoff-Tasmota". Подключены по MQTT.
Включение-выключение и статус - с определенных полей берет запись. Со значениями ON и OFF!!! А у простых устройств - 0 и 1!
Сижу, думаю как поменять. Пока две версии: или костыли, или плюнуть таки на эту "простоту"...
лучше использовать логические значения 0 и 1 для переключения. ON и OFF - зло:)
TransMatrix писал(а): 3. Датчики от этого самого SonOff... Эта добрая душа их передаёт "скопом" в записи SENSOR как "{"Time":"2017-10-20T08:22:37", "BME280":{"Temperature":26.4, "Humidity":40.9, "Pressure":1000.0}, "TempUnit":"C"}" - дешифровку в прошлой реинкарнации я освоил и поделился. Понять-бы, как теперь подружить его с "простыми" устройствами...
Что бы подружить с "простыми устройствами" есть 2 варианта.
1 Либо ваше железо изначально должно присылать уже распарсенные значения, а в "простых устройствах" вам останется только выбрать соотвествующие датчики.
2. Парсить JSON строку уже на стороне МЖД, вручную распихивать по свойствам, а уже потом в "простых устройствах" при добавлении устройств указывать эти свойства. Но при таком случае модуль "простые устройства" автоматически удалит ваши старые свойства и всёё перенесут в свой класс SDevices. (я тоже был сильно удивлён такому поведению и тоже не люблю модуль за это, но видимо по архитектуре так надо)
TransMatrix писал(а): Не, я не спорю - можно "по старому" реализовать, но смысл тогда от "простых устройств"???
Как я понимаю, этот модуль задумывался как самый лёгкий способ без программирования добавить устройство. Но ваще устройство должно быть простым :)
Если ваше устройство сложное, а вы пытаетесь использовать софт, который был написать для просто, то возникают вот такие проблемы :)

Я могу ошибаться, сам вот только только начал изучать как работает модуль, так что гуру поправьте.
Последний раз редактировалось Gelezako Пт окт 20, 2017 1:22 pm, всего редактировалось 1 раз.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Пт окт 20, 2017 11:19 am

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

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

If($params['NEW_VALUE']=='ON') {
$this->setProperty('status', 1);
} else {
$this->setProperty('status', 0);
}
Тогда простое устройство заработает нормально...если отправлять в MQTT надо тоже ON/OFF-сделать тоже самое, только наоборот if status==1 - setProperty(..., 'ON')
За это сообщение автора nick7zmail поблагодарили (всего 2):
TrDA (Чт фев 15, 2018 3:48 pm) • Rench410 (Ср янв 19, 2022 12:47 am)
Рейтинг: 2.33%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
TransMatrix
Сообщения: 186
Зарегистрирован: Вс май 28, 2017 9:24 am
Благодарил (а): 8 раз
Поблагодарили: 22 раза

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

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

Класс Rooms - "родной" для системы. При наличии привязки сенсора к комнате (свойство "Местоположение) и установленной галочке "Основной сенсор помещения" - должен обновлять соответствующий параметр помещения - температуру, влажность, присутствие и т.д.
Он, собственно, это и делает, но для ряда датчиков - тупо нет в комнатах соответствующего свойства и непонятно, как оно должно называться!

Насчёт ON-OFF и прочия - это тонкости ПРОШИВКИ и что-то сильно менять там я не могу, чтобы не было мучительно больно при обновлении GIT!
UPD: Через MQTT командами cmnd/%имя девайса%/StateText1 и StateText2 - задаём 0 и 1: это, собственно, ответы статуса реле - вместо OFF и ON!
Надо будет статейку набить, пожалуй, в ВиКи...
За это сообщение автора TransMatrix поблагодарил:
TrDA (Пн фев 19, 2018 4:44 pm)
Рейтинг: 1.16%
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

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

Сообщение Gelezako » Пт окт 20, 2017 1:27 pm

[quote="nick7zmail"]

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

If($params['NEW_VALUE']=='ON') {
$this->setProperty('status', 1);
} else {
$this->setProperty('status', 0);
}
ээм, этот код содержит небольшую ошибку, если по какой-то причине устройство ответит не ON и не OFF, а любое другое, к примеру из-за плохой связи или ошибки в ПО самого устройства, то ваш мный дом всегда будет воспринимать такой ответ как выключить. Поэтому, моё мнение нужно явно задавать, примерно вот так:

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

If($params['NEW_VALUE']=='ON') {
$this->setProperty('status', 1);
} else If($params['NEW_VALUE']=='OFF'{
$this->setProperty('status', 0);
}
За это сообщение автора Gelezako поблагодарил:
TrDA (Пн фев 19, 2018 4:44 pm)
Рейтинг: 1.16%
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

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

Сообщение Gelezako » Пт окт 20, 2017 1:31 pm

TransMatrix писал(а):Класс Rooms - "родной" для системы. При наличии привязки сенсора к комнате (свойство "Местоположение) и установленной галочке "Основной сенсор помещения" - должен обновлять соответствующий параметр помещения - температуру, влажность, присутствие и т.д.
не понимаю почему вы считаете что он должен это делать?
TransMatrix писал(а): Он, собственно, это и делает, но для ряда датчиков - тупо нет в комнатах соответствующего свойства и непонятно, как оно должно называться!
всё верно, ничего не работает потому что нет ни свойств, ни реализации, не то что "для ряда датчиков", там нет ничего вообще, ни для каких датчиков. Всё что есть в этом классе, это предзабитые объекты для самых распространённых помещений и небольшая логика для определения что в нём кто-то есть.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

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

Сообщение nightwind » Пт окт 20, 2017 1:52 pm

Gelezako писал(а): не понимаю почему вы считаете что он должен это делать?
вот почему

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

if ($linked_room && $this->getProperty('mainSensor')) {
  if ($this->class_title=='STempSensors') {
   sg($linked_room.'.temperature',$value);
  } elseif ($this->class_title=='SHumSensors') {
   sg($linked_room.'.humidity',$value);
  }
 } 
это в php файлах простых устройств смотреть надо
За это сообщение автора nightwind поблагодарил:
TransMatrix (Сб окт 21, 2017 8:34 pm)
Рейтинг: 1.16%
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

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

Сообщение Gelezako » Пт окт 20, 2017 2:01 pm

nightwind писал(а):
Gelezako писал(а): не понимаю почему вы считаете что он должен это делать?
вот почему

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

if ($linked_room && $this->getProperty('mainSensor')) {
  if ($this->class_title=='STempSensors') {
   sg($linked_room.'.temperature',$value);
  } elseif ($this->class_title=='SHumSensors') {
   sg($linked_room.'.humidity',$value);
  }
 }
это в php файлах простых устройств смотреть надо
как этот код связан с классом Rooms ?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
TransMatrix
Сообщения: 186
Зарегистрирован: Вс май 28, 2017 9:24 am
Благодарил (а): 8 раз
Поблагодарили: 22 раза

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

Сообщение TransMatrix » Пт окт 20, 2017 7:56 pm

Gelezako писал(а):как этот код связан с классом Rooms ?
$linked_room - сюда передано свойство "Местоположение" объекта, которое является одним из "Расположений", которые в свою очередь - класс Rooms! По факту - $linked_room, это один из объектов класса Rooms!

Используя при поиске по объектам свойство $linked_room мы можем выбрать, к примеру, все объекты в комнате и включить их или выключить. Ясен пень - если не забыли указать местоположения!

Благодаря этому свойству и привязываются датчики к комнатам...
T-REX-XP
Сообщения: 174
Зарегистрирован: Вт июн 16, 2015 10:54 pm
Благодарил (а): 16 раз
Поблагодарили: 32 раза

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

Сообщение T-REX-XP » Сб окт 21, 2017 2:42 pm

Можете добавить поддержку штор в этот модуль?? Купил шторы Xiaomi, если нужна какая то информаци для отладки, с радостью предоставлю.
Спасибо.
TransMatrix
Сообщения: 186
Зарегистрирован: Вс май 28, 2017 9:24 am
Благодарил (а): 8 раз
Поблагодарили: 22 раза

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

Сообщение TransMatrix » Сб окт 21, 2017 8:34 pm

Можно мааааленький вопрос?
Почему для датчиков "Тип условия" ТОЛЬКО выше и ниже, но нет "Равно"???

Собственно, хотел создать устройство "Приемник" типа "Датчик состояния", привязать его к принятому сигналу по value и при совпадении сигнала с определённым - какое-то действие...
Но там только "больше" и "меньше"!
За это сообщение автора TransMatrix поблагодарил:
TrDA (Пн фев 19, 2018 4:48 pm)
Рейтинг: 1.16%
Ответить