Страница 8 из 17

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

Добавлено: Пн сен 29, 2014 2:19 pm
Bagir
Да, конечно! Вот по этой ссылке как раз
http://localhost:8083/ZWaveAPI/Run/devi ... tate.value
ответ будет число 255. Это значение value.
Или если надо сразу все 6 групп, то так:
http://localhost:8083/ZWaveAPI/Run/devi ... larmSensor
ответSPOILER_SHOW
{"supported":true,"name":"AlarmSensor","data":{"name":"devices.19.instances.0.commandClasses.156.data","type":"NoneType","value":null,"updateTime":1410993460,"invalidateTime":1410993459,"version":{"name":"version","type":"int","value":1,"updateTime":1410993461,"invalidateTime":1410993460},"security":{"name":"security","type":"bool","value":false,"updateTime":1410993460,"invalidateTime":1410993459},"interviewDone":{"name":"interviewDone","type":"bool","value":true,"updateTime":1410993463,"invalidateTime":1410993459},"interviewCounter":{"name":"interviewCounter","type":"int","value":9,"updateTime":1410993462,"invalidateTime":1410993459},"alarmMap":{"name":"alarmMap","type":"int","value":33,"updateTime":1410993463,"invalidateTime":1410993459},"alarms":{"name":"alarms","type":"NoneType","value":null,"updateTime":1410993460,"invalidateTime":1410993459},"0":{"name":"0","type":"NoneType","value":null,"updateTime":1410993464,"invalidateTime":1411860768,"srcId":{"name":"srcId","type":"int","value":19,"updateTime":1411861633,"invalidateTime":1410993463},"sensorState":{"name":"sensorState","type":"int","value":255,"updateTime":1411861633,"invalidateTime":1410993463},"sensorTime":{"name":"sensorTime","type":"int","value":0,"updateTime":1411861633,"invalidateTime":1410993463}},"5":{"name":"5","type":"NoneType","value":null,"updateTime":1410993464,"invalidateTime":1411860768,"srcId":{"name":"srcId","type":"int","value":19,"updateTime":1411860808,"invalidateTime":1410993463},"sensorState":{"name":"sensorState","type":"int","value":0,"updateTime":1411860808,"invalidateTime":1410993463},"sensorTime":{"name":"sensorTime","type":"int","value":0,"updateTime":1411860808,"invalidateTime":1410993463}}},"id":156}
Это пример датчика протечки. У него из 6 групп есть только 0-General и 5-Flood.
К примеру у датчика дыма есть три группы. Их можно видеть в топике обзора на него.

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

Добавлено: Пн сен 29, 2014 2:31 pm
Bagir
Сергей, это конечно наверное нагло с моей стороны просить, но может сразу и 43 класс добавите. Он очень маленький и нужен для брелков и выключателей. И похоже как пока что нужен только мне одному. Но в будущем конечно должен пригодиться и остальным. Ответ браузера и описание я обновил в обзорном топике на брелок http://smartliving.ru/forum/viewtopic.p ... 921#p13921
В будущем я уверен, что сумею помогать в разработке системы не только идеями, но и работой. А пока что мне сложновато въехать в написанный код. В структуре файлов z-Wave я разобрался, но многое еще не ясно.

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

Добавлено: Вт сен 30, 2014 1:46 pm
sergejey
Добавил поддержку класса Alarm и класса контроллера сцены (пультов). В последнем читаю свойство CurrentScene -- возможно не то, что нужно, так что надо тестировать.
Для добавления новых свойств надо нажать на сканирование сети -- уже настроенные связи останутся и добавяться новые свойства.

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

Добавлено: Вт сен 30, 2014 3:00 pm
Bagir
Аларм отлично настроился. Сразу получаю в объект свойство тревоги. Вечерком обновлю обзоры датчика дыма и протечки, и можно будет считать их законченными.
А пульт и выключатель не обновляет свое свойство, пока не зайдешь в настройки Z устройств в МД, и не откроешь его (где линкуем свойства). Вероятно в этот момент происходит повторный опрос.
Изображение
Пульт ведет себя несколько по другому. Ранее я на это просто не обратил внимание. Если посмотреть на тот же датчик протечки, то при опускании его в воду, мы сразу увидим
Изображение
где 19 это id датчика протечки. Такое можно наблюдать со всеми устройствами в момент передачи ими данных. А теперь посмотрим, что будет, если нажать на кнопку пульта:
Изображение
2 это id стика (usb свистка - главного контроллера сети)
а id пульта 28. Но его тут нет. Соответственно и свойство само не обновляется. Пока что это все наблюдения. Будем копать.

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

Добавлено: Вт сен 30, 2014 3:10 pm
sergejey
Можно попробовать в файле ./modules/zwave/zwave.class.php
после строчки

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

echo "Unknown device (".$m[0].")\n"; 
добавить

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

echo serialize($v); 
перезапустить циклы и посмотреть что будет выдаваться -- возможно там "выщемим" код пульта

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

Добавлено: Вт сен 30, 2014 3:41 pm
Bagir
Сейчас сделаю!

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

Добавлено: Вт сен 30, 2014 3:54 pm
Bagir
Ну задачка. Вот, посмотрите сами, может на что глаз упадет:
Изображение
id выключателя 29
id пульта 28
Но этих цифр тут нет.
Сначала нажал на кнопку выключателя. Затем сразу на кнопку пульта. Отличия есть, но выключатель настроен "из коробки", а пульт я настроил на запуск сцен. Сейчас для чистоты эксперимента, я настрою выключатель точно так же как и пульт и все повторю.

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

Добавлено: Вт сен 30, 2014 4:13 pm
Bagir
Настроил выключатель так же на запуск сцен, и теперь по записям даже нельзя понять, какой выключатель был нажат
Изображение
instances.<цифра> зависит от кнопки. 1-4. А 0 всегда сопутствует. Видимо чтобы увидеть повторное нажатие той же кнопки.
Дело ясное, что дело темное. Если есть идеи, пишите! Пока буду копать вслепую.

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

Добавлено: Вт сен 30, 2014 4:32 pm
sergejey
Возможно нажатие кнопки на пульте меняет текущую сцену, которая хранится в общем контроллере сети. В таком случае, нужно будет делать привязку к этому свойству для устройства типа контроллер, а не для пульта.

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

Добавлено: Вт сен 30, 2014 4:37 pm
Bagir
Я тоже так подумал. В пользу этого предположения еще факт отсутствия этого класса в интервью пульта и выключателя. Возможно действительно надо смотреть в сторону свойств контроллера.
И еще грабли: Допустим мы нажали на кнопку 1.
http://localhost:8083/ZWaveAPI/Run/devi ... cene.value приняло значение 11. Мы увидим, что значение поменялось на 11, и поймем что нажата кнопка кнопка 1.
А вот если второй раз нажать на кнопку 1, то поллингом этого адреса мы уже ничего не увидим, т.к. значение как было 11, так таким и осталось. Следовательно, нам нужен сигнал о том, что было совершено действие с кнопками, а какое именно мы уже и поймем по этому значению value.
Но получается так, что и выключатель и пульт шлют одинаковые данные, и понять кто это прислал с помощью анализа echo serialize($v); невозможно. Придется как то подбивать клинья к контроллеру. Что то как то за мудрили zеторубы в этом вопросе... Но есть лазейка. Можно смотреть свойство updateTime, и сравнивать его с предыдущим. Так мы можем понять, что была нажата та же кнопка, если value не изменилось.
Вообще я слышал, что они собираются в корне переделать ПО, работающее по http://localhost:8083. И что даже там будут возможности указать GET запросы, чтобы не нужно было делать поллинг. Ну как бы это конечно правильно. Непонятно только куда смотрели до сих пор. Я вообще думал, что Z тема давно выглажена, чиста и прозрачна. А тут оказывается еще не вспаханное поле для творчества. Ну может быть даже так интересней..