Использование MegaD в openHAB

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
fild
Сообщения: 19
Зарегистрирован: 24 янв 2019, 08:57

Re: Использование MegaD в openHAB

Сообщение fild » 05 фев 2019, 09:05

хм, а как-то сменить очередность? Загрузить Items, а потом инициализировать Биндинг? или такого механизма нет?

Petros
Сообщения: 386
Зарегистрирован: 21 авг 2012, 22:09

Re: Использование MegaD в openHAB

Сообщение Petros » 05 фев 2019, 09:07

Да вот нужно подумать как раз

Petros
Сообщения: 386
Зарегистрирован: 21 авг 2012, 22:09

Re: Использование MegaD в openHAB

Сообщение Petros » 08 фев 2019, 15:50

Вроде бы решил проблему выключений, прошу опробовать!
https://github.com/Pshatsillo/openhab2M ... ag/2.0.4.3

UPD. Проверил на себе. Работает

fild
Сообщения: 19
Зарегистрирован: 24 янв 2019, 08:57

Re: Использование MegaD в openHAB

Сообщение fild » 11 фев 2019, 06:43

Petros писал(а):
08 фев 2019, 15:50
Вроде бы решил проблему выключений, прошу опробовать!
https://github.com/Pshatsillo/openhab2M ... ag/2.0.4.3

UPD. Проверил на себе. Работает
Спасибо, подтверждаю РАБОТАЕТ

martiniman
Сообщения: 190
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Использование MegaD в openHAB

Сообщение martiniman » 11 фев 2019, 12:14

Пойдем далее - настройка I2C в Things, способ из нового биндинга MQTTv2, если так попробовать?

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

Thing device m8_p34         [hostname="192.168.53.188", port="34", password="sec", refresh="5"]{
    Type number  : Temp  "Температура"   [ transformationPattern="JS:megad_i2c_1.js"  ]
    Type number  : Hum   "Влажность"     [ transformationPattern="JS:megad_i2c_2.js"  ]
    Type number  : Press "Даление"       [ transformationPattern="JS:megad_i2c_3.js"  ]
}

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

megad_i2c_1.js
(function(msg){
    //temp:22.60/press:766.68/hum:39.463
    return msg.split("/")[0].split(":")[1];
})
(input)
Как тут задать тип для "Temp Hum Press", в PaperUI выглядит так:
Вложения
Скриншот 2019-02-11 11.13.00.png
Скриншот 2019-02-11 11.13.00.png (15.71 КБ) 140 просмотров

Petros
Сообщения: 386
Зарегистрирован: 21 авг 2012, 22:09

Re: Использование MegaD в openHAB

Сообщение Petros » 11 фев 2019, 13:46

Не понял вопроса, с js не знаком

Кстати, а кто-нибудь пользуется/перешел на на новую версию onewire?

martiniman
Сообщения: 190
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Использование MegaD в openHAB

Сообщение martiniman » 11 фев 2019, 17:46

Помогите разобраться, тип канала i2c - String, соответственной так работает - показывает данные (темп, влаж, давл), но с полученными Item типа String не проделаешь математических операций, у кого как сделано?

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

Thing device m8_p34_bmx280_temp     [hostname="192.168.53.188", port="34", password="sec", refresh="5", scl="35", i2c_dev="bmx280", i2c_par="1"]
Thing device m8_p34_bmx280_hum      [hostname="192.168.53.188", port="34", password="sec", refresh="5", scl="35", i2c_dev="bmx280", i2c_par="2"]
Thing device m8_p34_bmx280_press    [hostname="192.168.53.188", port="34", password="sec", refresh="5", scl="35", i2c_dev="bmx280"]

String  m8p34_temp      "m8p34 temp [%.1f °C]"   { channel="megad:device:in:m8_p34_bmx280_temp:i2c" }
String  m8p34_hum       "m8p34 hum [%.1f %%]"   { channel="megad:device:in:m8_p34_bmx280_hum:i2c" }
String  m8p34_press     "m8p34 press [%.1f ]"      { channel="megad:device:in:m8_p34_bmx280_press:i2c"}

Если меняю тип Item на Number - то у всех 3х Item появляются значения температуры.

Petros
Сообщения: 386
Зарегистрирован: 21 авг 2012, 22:09

Re: Использование MegaD в openHAB

Сообщение Petros » 11 фев 2019, 19:48

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

String  m8p34_press_as_string     "[%s]" 
Number  m8p34_press_Value     "m8p34 press [%.1f ]"

var String pv = m8p34_press_as_string.state.toString()

m8p34_press_Value.postUpdate(pv.trim())
далее работать со второй переменной

или

при мат. операциях использовать такую конструкцию

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

Float::parseFloat(String::format("%s",m8p34_press_as_string.state).trim())

martiniman
Сообщения: 190
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Использование MegaD в openHAB

Сообщение martiniman » 11 фев 2019, 20:27

Тогда проще парсить целиком i2c строку, чем создавать Thing+Item на каждое значение.

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

Thing device m8_p34    [hostname="192.168.53.188", port="34", password="sec", refresh="5"]

String  m8p34_i2c    { channel="megad:device:in:m8_p34:i2c" }
Number  m8p34_temp    "m8p34 temp [%.1f °C]"  <temperature>
Number  m8p34_hum     "m8p34 hum [%.1f %%]"   <humidity>
Number  m8p34_press   "m8p34 press [%.1f ]"   <pressure>

rule "m8p34_i2c"
when
    Item m8p34_i2c received update
then
	var String i2c0 = m8p34_i2c.state.toString.split("/").get(0).split(":").get(1)
	var String i2c1 = m8p34_i2c.state.toString.split("/").get(1).split(":").get(1)
	var String i2c2 = m8p34_i2c.state.toString.split("/").get(2).split(":").get(1)
	m8p34_temp.postUpdate(	i2c0)
	m8p34_press.postUpdate(	i2c1)
	m8p34_hum.postUpdate(	i2c2)
end
Может просто добавить еще 3 канала в биндинг конкретно для bmx280 с типом Number, т.к. это дешевый и точный датчик?
или настройку добавить, чекбокс, "передавать bmx280 температуру и влажность в :temp и :humidity каналы"

Petros
Сообщения: 386
Зарегистрирован: 21 авг 2012, 22:09

Re: Использование MegaD в openHAB

Сообщение Petros » 12 фев 2019, 10:15

martiniman писал(а):
11 фев 2019, 20:27
Может просто добавить еще 3 канала в биндинг конкретно для bmx280 с типом Number, т.к. это дешевый и точный датчик?
или настройку добавить, чекбокс, "передавать bmx280 температуру и влажность в :temp и :humidity каналы"
Нет. Думаю моя позиция по I2c давно обозначена.

martiniman
Сообщения: 190
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Использование MegaD в openHAB

Сообщение martiniman » 12 фев 2019, 14:55

Баг или нет: у itemа типа Dimmer в channel изменил порт с 13 на 12, сохранил, кручу диммер из PaperUI - на Меге срабатывают сразу 2 порта 12 и 13 (вместо одного 12го).
Сделал рестарт OH - всё ок. Получается после сохранения Items файла биндинг как-то неправильно инициализируется.
--
Прошу уважаемого Petros добавить каналы Click, DoubleClick и Hold для для соответсвующих режимов кнопок.

Ответить