Модуль работы с Z-Wave устройствами

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Модуль работы с Z-Wave устройствами

Сообщение Bagir » Пт янв 16, 2015 2:35 pm

Ivan а вот в версии 2.0.0 были замечены битые пакеты? Например у меня датчик температуры запросто мог прислать давление. А розетки вообще сума сходили. Слали все что только можно придумать. Скорость ветра, освещенность, и просто всякий хлам. Подозреваю, что это из-за их возможности ретранслятора. А Z стик все это добро ел. Естественно весь этот хлам попадал в МД. И со временем, в настройке Z модуля, его скопилась целая помойка. Удалять было бесполезно, к.т. при обновлении сети, все это падало обратно в МД.
А как на счет 2.0.0, есть на что надеяться?
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Модуль работы с Z-Wave устройствами

Сообщение Bagir » Пт янв 16, 2015 2:58 pm

Ну дела!
Данные с датчиков температуры/влажности тоже не идут. Возможно конечно, что это следствие граблей с интервью, и сегодня вечером я их расшатаю.
Но вот еще косяк. Смотрите в истории сообщений куча записей Пульт 11. Это Z брелок, на который я уже давно хотел повесить управление подъемными воротами, да все руки не доходили до электрощита. Вот бы сейчас у меня ворота на распашку были... 11 - первая кнопка 11 - нажатие.
Теперь однозначно буду делать только с имобилайзером. Если метка не в зоне, пульт работать не должен.
Вложения
Безымянный.jpg
Безымянный.jpg (125.63 КБ) 15176 просмотров
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Модуль работы с Z-Wave устройствами

Сообщение Bagir » Пт янв 16, 2015 9:08 pm

Итог обновления на 2.0.0
Не все гладко, не все так просто как должно быть, но однозначно надо. "Левых" данных пока не обнаружено. Розетки не передают скорость ветра, а датчик движения не шлет данные о влажности. И это очень радует. Возможно действительно кого то осенила мысль повесить проверку контрольной суммы на пакеты или что то вроде того.
Искаженных данных пока что тоже не обнаружено. Показатель заряда батареек не превышает 100%, температура в комнатах не прыгает временами до сотен градусов, да и освещение больше не зашкаливает за сварочную дугу.
Думаю, что у обеих этих проблем был одинаковый корень. И если он полностью исправлен, то никакие трудности обновления уже не пугают.
Мне удалось поднять все свои железки за исключением класса 48, о котором писал ранее. А этот класс у меня в датчиках движения на событии движения, и у бинарного сенсора на событии замыкания контактов.
"Сырые" данные с датчика обновляются и их можно легко прочитать
"level": {
"invalidateTime": 1421428814,
"updateTime": 1421428967,
"type": "bool",
"value": false
}
У меня два варианта: либо скобки у значения, либо то, что его засунули в "1": { } К сожалению сравнить мне уже не с чем. Проверьте кто может до обновления!
Конечно перспектива остаться без включения света при движении не радует, но обновиться все равно стоит. А пока sergejey с этим не разобрался, можно написать небольшую заплатку и при изменении того же UpdateTime проверять свойство "value" самому и обновлять статус объекта. Что я сейчас и сделаю.
Удачных вам танцев с бубном друзья :lol:
commandClasses 48 бинарного датчика (его еще называют термостат)Показать
{
"commandClasses": {
"48": {
"name": "SensorBinary",
"data": {
"invalidateTime": 1421428809,
"updateTime": 1421428810,
"type": "empty",
"value": null,
"supported": {
"invalidateTime": 1421428809,
"updateTime": 1421428810,
"type": "bool",
"value": true
},
"version": {
"invalidateTime": 1421428810,
"updateTime": 1421428811,
"type": "int",
"value": 2
},
"security": {
"invalidateTime": 1421428809,
"updateTime": 1421428810,
"type": "bool",
"value": false
},
"interviewDone": {
"invalidateTime": 1421428809,
"updateTime": 1421428815,
"type": "bool",
"value": true
},
"interviewCounter": {
"invalidateTime": 1421428809,
"updateTime": 1421428813,
"type": "int",
"value": 9
},
"typemask": {
"invalidateTime": 1421428809,
"updateTime": 1421428813,
"type": "int",
"value": 2
},
"1": {
"invalidateTime": 1421428814,
"updateTime": 1421428967,
"type": "empty",
"value": null,
"sensorTypeString": {
"invalidateTime": 1421428814,
"updateTime": 1421428815,
"type": "string",
"value": "Generalpurpose"
},
"level": {
"invalidateTime": 1421428814,
"updateTime": 1421428967,
"type": "bool",
"value": false
}
}
},
"id": 48
},
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Модуль работы с Z-Wave устройствами

Сообщение Bagir » Пт янв 16, 2015 9:53 pm

А вот и заплатка:
devices[39] - id железяки
level - свойство которое надо менять
Обязательно отвяжите это свойство в Z модуле, а то зациклит

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

//Заплатка для обновления свойства класса 48
$cmdUrl = "http://localhost:8083/ZWaveAPI/Run/devices[39].instances[0].commandClasses[48].data[1].level.value";
$ans = getURL($cmdUrl, 0);
switch ($ans) {
case 'true':
 $this->setProperty('level' , 1);
 break;
case 'false':
 $this->setProperty('level' , 0);
 break;
default: 
 say("непонятно");
} 
В Z модуле при изменении свойства Level у меня запускается метод IncomingData. У вас может быть например statuschanged, или что там у кого, не суть. Главное, отключить установку (линк) свойства, которое мы будем сами ставить заплаткой, иначе зациклит! Отключить надо только свойство, а запуск метода, в начал которого будет добавлен этот код, обязательно оставить.
Изображение
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль работы с Z-Wave устройствами

Сообщение sergejey » Сб янв 17, 2015 10:49 am

Bagir, отличные новости, что работать стало лучше! Запишусь в фан-клуб ZWave, если всё действительно так :) По поводу этого свойства, на следующей неделе разберусь -- есть у меня объект, где всё на ZWave.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Модуль работы с Z-Wave устройствами

Сообщение Bagir » Сб янв 17, 2015 2:17 pm

sergejey писал(а):есть у меня объект, где всё на ZWave.
Даже как то страшно звучит! Как общее впечатление?
Железки конечно очень полезные, и где нет возможности протянуть провода они сильно выручают, но очень уж беспокоят потери пакетов. Если раньше пакеты доходили битыми, то сейчас вероятнее всего они будут просто игнорироваться контроллером. Думаю, что точно такая же история и с вариантом, когда датчик напрямую передает команды исполнительным устройствам в его ассоциациях. С сервером опять же все как то проще. Тут мы хоть что то может обработать и на все повлиять. А отдельная Z паутина, ну не знаю. Страшно )) Разве как резервный вариант работы без сервера. Но такая возможность увы не настраивается.
Я бы совершенно спокойно отнесся к варианту сети на Мегах без сервера, ввиду надежности, на порядок превышающей Z. Но сравнивать радио датчики с проводными конечно глупо.
Сейчас у меня в сети 20 устройств. Вчера, когда обновлял Z ПО, а точнее разбирался с последствиями, целый вечер бегал по дому, собирал эти железяки, таскал к серверу и будил их :D Могу только представить чего бы стоил вариант будь их не 20 а 200 к примеру :shock: Очень надеюсь, что в следующих Z обновлениях больше таких номеров вытворять не придется.
По поводу класса 48. Заплатка нормально работает. Свет включается так же быстро как и раньше. Так что кто еще в раздумьях - смело обновляйтесь.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Smolalex
Сообщения: 110
Зарегистрирован: Вт апр 29, 2014 9:16 pm
Благодарил (а): 7 раз
Поблагодарили: 13 раз

Re: Модуль работы с Z-Wave устройствами

Сообщение Smolalex » Пт май 15, 2015 4:08 pm

Bagir писал(а):А вот и заплатка:
devices[39] - id железяки
level - свойство которое надо менять
Обязательно отвяжите это свойство в Z модуле, а то зациклит

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

//Заплатка для обновления свойства класса 48
$cmdUrl = "http://localhost:8083/ZWaveAPI/Run/devices[39].instances[0].commandClasses[48].data[1].level.value";
$ans = getURL($cmdUrl, 0);
switch ($ans) {
case 'true':
 $this->setProperty('level' , 1);
 break;
case 'false':
 $this->setProperty('level' , 0);
 break;
default: 
 say("непонятно");
} 
В Z модуле при изменении свойства Level у меня запускается метод IncomingData. У вас может быть например statuschanged, или что там у кого, не суть. Главное, отключить установку (линк) свойства, которое мы будем сами ставить заплаткой, иначе зациклит! Отключить надо только свойство, а запуск метода, в начал которого будет добавлен этот код, обязательно оставить.
Изображение
Bagir, мучаюсь с глазом. Сделал по твоей рекомендации. Цикл zwave падает при изменении значения Level. Потом поднимается и опять падает. С периодичностью 10 секунд. Похоже на зацикливание.Не могу найти причину. Свойство от Z-wave отвязано.
Похоже нельзя обращаться к Глазу в момент изменения Level.?

Может зависит от версии . Я обновился до 2.0.1-rc15
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Модуль работы с Z-Wave устройствами

Сообщение Bagir » Пн май 18, 2015 10:50 pm

Таких бед у меня не наблюдается. И если не брать во внимание полное отсутствие надежности работы сети z-wave, сам модуль работы с Z сетью в МД работает отлично. Но к сожалению, очень часто падает сам стик.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Smolalex
Сообщения: 110
Зарегистрирован: Вт апр 29, 2014 9:16 pm
Благодарил (а): 7 раз
Поблагодарили: 13 раз

Re: Модуль работы с Z-Wave устройствами

Сообщение Smolalex » Вт май 26, 2015 12:16 pm

Bagir писал(а):Таких бед у меня не наблюдается. И если не брать во внимание полное отсутствие надежности работы сети z-wave, сам модуль работы с Z сетью в МД работает отлично. Но к сожалению, очень часто падает сам стик.
У меня RaZberry на Raspberry, MJ на Cubietruck. Cеть z-wave и MJ работают надёжно.

Но вот столкнулся с такой проблемой.

Имеется объект и свойство связанные с z-wave. (датчик движения)
Имеется метод вызываемый при изменении свойства.
При чтении свойства объекта (вызывается метод) именно в момент изменения падает цикл z-wave.

Пробовал отвязывать свойство.

Датчик движения ассоциирован в сети z-wave с выключателем.
Пробовал отвязаться от датчика движения и привязаться к выключателю.
При чтении свойства выключателя в момент изменения падает цикл z-wave.

Подскажите как обойти это, а именно прочитать значение либо объекта MJ, либо самого z-wave без
падения цикла z-wave.
SergNB
Сообщения: 15
Зарегистрирован: Вс ноя 29, 2015 11:13 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Модуль работы с Z-Wave устройствами

Сообщение SergNB » Вс ноя 29, 2015 11:35 pm

Эх... жаль, что произошла авария и часть сообщений форума потерялась, писал-писал, теперь переписывать, ну что-ж, всякое бывает.
Очень печально, что у такого активного пользователя, как Bagir, оказалась такая ненадежная точка интеграции с Z-wave сетью в виде стика. Много времени вложено в развитие интеграции MD + Z-Wave и в конце звучит разочарование.
У меня вся текущая автоматизация построена на Z-wave, где контроллером является VeraLite и никаких проблем с потерями пакетов, сбоями и т.п. не наблюдается, за 2,5 года Vera ни разу не зависла.
Причин с потерей пакетов может быть несколько и я хочу высказать свои предположения.
Возможно, действительно есть какие-то проблемы со стиком.
А возможно, проблемы с маршрутизацией пакетов в Z-wave сети.
В каком-то из сообщений упоминалось, что после полного обнуления, все устройства для включения в сеть подносились к контроллеру, включались в сеть и уносились обратно на их постоянное место. При этом в памяти устройства в таблице маршрутизации появлялся прямой маршрут до контроллера, т.к. устройство считало, что контроллер в прямой видимости (при включении в сеть, так и было, верно?). И дальше, вероятно, устройство старательно отсылало пакеты напрямую в контроллер и видимо в большинстве случаев это проходило успешно, но иногда пакеты видимо терялись. Косвенным подтверждением этому может служить ответ на вопрос, проблемы с потерями были со всеми устройствами или с теми, которые наиболее далеко находились от стика?
Например в Vera, после добавления нового устройства в Z-wave сеть и установки устройства на его постоянное место рекомендуется нажать кнопку Repair Network, что запускает процесс обновления таблиц маршрутизации на всех устройствах сети и прописывание наиболее оптимальных маршрутов, чтобы посылать пакеты не напрямую к контроллеру, а по цепочке через ближайшие устройства.
Возможно причина и не в этом, но как идею проверить можно.
Так же можно в переменных каждого устройства обновить информацию о ближайших устройствах, в переменной Neighbors и потом вручную прописать маршрутизацию используя переменную ManualRoute.
Ответить