Модуль работы с Z-Wave устройствами
Модератор: immortal
-
- Сообщения: 162
- Зарегистрирован: Сб янв 28, 2017 2:17 pm
- Благодарил (а): 13 раз
- Поблагодарили: 7 раз
Re: Модуль работы с Z-Wave устройствами
Всем привет!
Хочу реанимировать ветку Z-Wave,
Нашел причину почему не всегда работает класс 48 (CLASS_SENSOR_BINARY), точнее, не со всеми датчиками.
Недавно приобрел плату RaZberry2 и датчики,
Датчик движения Vision Security Motion Sensor
Датчик протечки NEO Coolcam
Датчик открытия NEO Coolcam
Датчик движения NEO Coolcam
Первым подключил датчик Vision Security Motion Sensor VIS_ZP3102, который сразу был обнаружен в MD, все значения датчика обновляются (движение, температура), датчик определился как - Routing Binary Sensor. Вторым подключил датчик движения NEO Coolcam, у которого обновляется только значения параметра "освещенность" (Luminiscence, Lux, класс 49), параметр движения (Level) всегда показывает "0", не обновляется, датчик определился как - Notification Sensor (Датчик уведомления). Параметры датчиков протечки и открытия NEO Coolcam, после установки, также не обновляются (Level=0), датчики определились как Notification Sensor (Датчик уведомления). В Raw Data (команды) датчика Vision Security Motion Sensor VIS_ZP3102 обратил внимание на то, что в 48 классе, ссылка к значению "level" -> "value" (true/false) идет через (значение) "1". Напомню, у датчика Vision Security Motion Sensor VIS_ZP3102 все значения обновляются, датчик работает штатно. В остальных датчиках вместо "1" другие значения,
Датчик протечки NEO Coolcam - "6"; Датчик открытия NEO Coolcam - "10"; Датчик движения NEO Coolcam - "12";
Реализация в zwave.class.php (48 класс); Если в zwave.class.php, указано выше, вместо "1" поставить "6", у датчика протечки NEO Coolcam начинает обновляться значение при срабатывании (Level=1), аналогично с остальными датчиками NEO Coolcam.
Попробовал сам раскомментировать выбираемое значение в "...", не получается, падает zwave.class.php, не хватает знаний.
Прошу помощи у разработчика,
Сергей,
Посмотрите, что можно сделать.
Хочу реанимировать ветку Z-Wave,
Нашел причину почему не всегда работает класс 48 (CLASS_SENSOR_BINARY), точнее, не со всеми датчиками.
Недавно приобрел плату RaZberry2 и датчики,
Датчик движения Vision Security Motion Sensor
Датчик протечки NEO Coolcam
Датчик открытия NEO Coolcam
Датчик движения NEO Coolcam
Первым подключил датчик Vision Security Motion Sensor VIS_ZP3102, который сразу был обнаружен в MD, все значения датчика обновляются (движение, температура), датчик определился как - Routing Binary Sensor. Вторым подключил датчик движения NEO Coolcam, у которого обновляется только значения параметра "освещенность" (Luminiscence, Lux, класс 49), параметр движения (Level) всегда показывает "0", не обновляется, датчик определился как - Notification Sensor (Датчик уведомления). Параметры датчиков протечки и открытия NEO Coolcam, после установки, также не обновляются (Level=0), датчики определились как Notification Sensor (Датчик уведомления). В Raw Data (команды) датчика Vision Security Motion Sensor VIS_ZP3102 обратил внимание на то, что в 48 классе, ссылка к значению "level" -> "value" (true/false) идет через (значение) "1". Напомню, у датчика Vision Security Motion Sensor VIS_ZP3102 все значения обновляются, датчик работает штатно. В остальных датчиках вместо "1" другие значения,
Датчик протечки NEO Coolcam - "6"; Датчик открытия NEO Coolcam - "10"; Датчик движения NEO Coolcam - "12";
Реализация в zwave.class.php (48 класс); Если в zwave.class.php, указано выше, вместо "1" поставить "6", у датчика протечки NEO Coolcam начинает обновляться значение при срабатывании (Level=1), аналогично с остальными датчиками NEO Coolcam.
Попробовал сам раскомментировать выбираемое значение в "...", не получается, падает zwave.class.php, не хватает знаний.
Прошу помощи у разработчика,
Сергей,
Посмотрите, что можно сделать.
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Модуль работы с Z-Wave устройствами
Да тут бы интересно если МЖД подружить с Coolcam, как раз акция https://brands.aliexpress.com/en?spm=21 ... 4.1.Zp0FV0
Raspberry Pi 3B+
-
- Сообщения: 76
- Зарегистрирован: Пт июн 02, 2017 11:02 am
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Модуль работы с Z-Wave устройствами
Всем привет! Приобрел модуль Razbery 2 и сразу же затык. Как его подружить с малинкой. Может ли кто описать мануал от начала до конца. Что качать как подключать пароли логины...
Заранее спасибо
Заранее спасибо
- Вложения
-
- rr.JPG (46.33 КБ) 9261 просмотр
-
- Сообщения: 76
- Зарегистрирован: Пт июн 02, 2017 11:02 am
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Модуль работы с Z-Wave устройствами
Приобрел 2 реле от фибаро. Но что с ними делать ума не приложу Может кто сможет направить на путь истинный? В приложении z-wave они нашлись а как их добавить в классы и объекты без понятия Нужна помощь!!!Только если можно по подробнее так как в освоении МЖД я новичок
-
- Сообщения: 162
- Зарегистрирован: Сб янв 28, 2017 2:17 pm
- Благодарил (а): 13 раз
- Поблагодарили: 7 раз
Re: Модуль работы с Z-Wave устройствами
Можно через простые устройства, можно создать объекты.vshuka911 писал(а):Приобрел 2 реле от фибаро. Но что с ними делать ума не приложу Может кто сможет направить на путь истинный? В приложении z-wave они нашлись а как их добавить в классы и объекты без понятия Нужна помощь!!!Только если можно по подробнее так как в освоении МЖД я новичок
-
- Сообщения: 76
- Зарегистрирован: Пт июн 02, 2017 11:02 am
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Модуль работы с Z-Wave устройствами
А можно пожалуста по подробнее....Если нужно создавать обекты то как (хотя бы на одном примере) или есть готовая библиотека для z-wave которую можно импортировать
- Вложения
-
- rr.JPG (96.37 КБ) 9132 просмотра
-
- Сообщения: 162
- Зарегистрирован: Сб янв 28, 2017 2:17 pm
- Благодарил (а): 13 раз
- Поблагодарили: 7 раз
Re: Модуль работы с Z-Wave устройствами
Немного эксперементов и танцем с бубном и... 48 класс заработал.
Поправил zwave.class.php следующим образом,
Добавил побольше устройст на всякий случай, пока работает без ошибок.
Поправил zwave.class.php следующим образом,
Код: Выделить всё
if ($rec['CLASS_SENSOR_BINARY']) {
$sensor_data=$data->commandClasses->{"48"}->data;
if (isset($data->commandClasses->{"48"}->data->{"1"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"1"};
}
if (isset($data->commandClasses->{"48"}->data->{"2"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"2"};
}
if (isset($data->commandClasses->{"48"}->data->{"3"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"3"};
}
if (isset($data->commandClasses->{"48"}->data->{"4"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"4"};
}
if (isset($data->commandClasses->{"48"}->data->{"5"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"5"};
}
if (isset($data->commandClasses->{"48"}->data->{"6"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"6"};
}
if (isset($data->commandClasses->{"48"}->data->{"7"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"7"};
}
if (isset($data->commandClasses->{"48"}->data->{"8"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"8"};
}
if (isset($data->commandClasses->{"48"}->data->{"9"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"9"};
}
if (isset($data->commandClasses->{"48"}->data->{"10"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"10"};
}
if (isset($data->commandClasses->{"48"}->data->{"11"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"11"};
}
if (isset($data->commandClasses->{"48"}->data->{"12"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"12"};
}
if (isset($data->commandClasses->{"48"}->data->{"13"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"13"};
}
if (isset($data->commandClasses->{"48"}->data->{"14"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"14"};
}
if (isset($data->commandClasses->{"48"}->data->{"15"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"15"};
}
if (isset($data->commandClasses->{"48"}->data->{"16"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"16"};
}
if (isset($data->commandClasses->{"48"}->data->{"17"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"17"};
}
if (isset($data->commandClasses->{"48"}->data->{"18"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"18"};
}
if (isset($data->commandClasses->{"48"}->data->{"19"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"19"};
}
if (isset($data->commandClasses->{"48"}->data->{"20"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"20"};
}
if (isset($data->commandClasses->{"48"}->data->{"21"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"21"};
}
if (isset($data->commandClasses->{"48"}->data->{"22"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"22"};
}
if (isset($data->commandClasses->{"48"}->data->{"23"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"23"};
}
if (isset($data->commandClasses->{"48"}->data->{"24"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"24"};
}
$value=(int)$sensor_data->level->value;
if ($value!==$rec['LEVEL']) {
$rec['LEVEL']=$value;
$rec_updated=1;
}
$properties['Level']=$rec['LEVEL'];
$command_classes['Level']=48;
$updatedList['Level']=$sensor_data->{"updateTime"};
if ($sensor_data->{"updateTime"}>$updateTime) {
$updateTime=$sensor_data->{"updateTime"};
}
}
- Рейтинг: 1.16%
-
- Сообщения: 76
- Зарегистрирован: Пт июн 02, 2017 11:02 am
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Модуль работы с Z-Wave устройствами
Ребят! Кто подскажет как Homebrige для Razbery запустить на малинке через start up чтобы при включении ее в сеть он поднимался автоматически а то приходится после падения питания каждый раз запускать его снова
-
- Сообщения: 162
- Зарегистрирован: Сб янв 28, 2017 2:17 pm
- Благодарил (а): 13 раз
- Поблагодарили: 7 раз
Re: Модуль работы с Z-Wave устройствами
Сергей, прошу внести изменения по 48 классу в zwave.class.php при обновлении, использую в течение месяца, проблем и ошибок нет, все работает стабильно.
СпойлерПоказать
if ($rec['CLASS_SENSOR_BINARY']) {
$sensor_data=$data->commandClasses->{"48"}->data;
if (isset($data->commandClasses->{"48"}->data->{"1"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"1"};
}
if (isset($data->commandClasses->{"48"}->data->{"2"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"2"};
}
if (isset($data->commandClasses->{"48"}->data->{"3"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"3"};
}
if (isset($data->commandClasses->{"48"}->data->{"4"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"4"};
}
if (isset($data->commandClasses->{"48"}->data->{"5"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"5"};
}
if (isset($data->commandClasses->{"48"}->data->{"6"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"6"};
}
if (isset($data->commandClasses->{"48"}->data->{"7"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"7"};
}
if (isset($data->commandClasses->{"48"}->data->{"8"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"8"};
}
if (isset($data->commandClasses->{"48"}->data->{"9"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"9"};
}
if (isset($data->commandClasses->{"48"}->data->{"10"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"10"};
}
if (isset($data->commandClasses->{"48"}->data->{"11"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"11"};
}
if (isset($data->commandClasses->{"48"}->data->{"12"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"12"};
}
if (isset($data->commandClasses->{"48"}->data->{"13"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"13"};
}
if (isset($data->commandClasses->{"48"}->data->{"14"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"14"};
}
if (isset($data->commandClasses->{"48"}->data->{"15"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"15"};
}
if (isset($data->commandClasses->{"48"}->data->{"16"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"16"};
}
if (isset($data->commandClasses->{"48"}->data->{"17"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"17"};
}
if (isset($data->commandClasses->{"48"}->data->{"18"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"18"};
}
if (isset($data->commandClasses->{"48"}->data->{"19"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"19"};
}
if (isset($data->commandClasses->{"48"}->data->{"20"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"20"};
}
if (isset($data->commandClasses->{"48"}->data->{"21"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"21"};
}
if (isset($data->commandClasses->{"48"}->data->{"22"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"22"};
}
if (isset($data->commandClasses->{"48"}->data->{"23"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"23"};
}
if (isset($data->commandClasses->{"48"}->data->{"24"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"24"};
}
$value=(int)$sensor_data->level->value;
if ($value!==$rec['LEVEL']) {
$rec['LEVEL']=$value;
$rec_updated=1;
}
$properties['Level']=$rec['LEVEL'];
$command_classes['Level']=48;
$updatedList['Level']=$sensor_data->{"updateTime"};
if ($sensor_data->{"updateTime"}>$updateTime) {
$updateTime=$sensor_data->{"updateTime"};
}
}
$sensor_data=$data->commandClasses->{"48"}->data;
if (isset($data->commandClasses->{"48"}->data->{"1"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"1"};
}
if (isset($data->commandClasses->{"48"}->data->{"2"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"2"};
}
if (isset($data->commandClasses->{"48"}->data->{"3"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"3"};
}
if (isset($data->commandClasses->{"48"}->data->{"4"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"4"};
}
if (isset($data->commandClasses->{"48"}->data->{"5"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"5"};
}
if (isset($data->commandClasses->{"48"}->data->{"6"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"6"};
}
if (isset($data->commandClasses->{"48"}->data->{"7"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"7"};
}
if (isset($data->commandClasses->{"48"}->data->{"8"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"8"};
}
if (isset($data->commandClasses->{"48"}->data->{"9"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"9"};
}
if (isset($data->commandClasses->{"48"}->data->{"10"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"10"};
}
if (isset($data->commandClasses->{"48"}->data->{"11"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"11"};
}
if (isset($data->commandClasses->{"48"}->data->{"12"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"12"};
}
if (isset($data->commandClasses->{"48"}->data->{"13"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"13"};
}
if (isset($data->commandClasses->{"48"}->data->{"14"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"14"};
}
if (isset($data->commandClasses->{"48"}->data->{"15"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"15"};
}
if (isset($data->commandClasses->{"48"}->data->{"16"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"16"};
}
if (isset($data->commandClasses->{"48"}->data->{"17"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"17"};
}
if (isset($data->commandClasses->{"48"}->data->{"18"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"18"};
}
if (isset($data->commandClasses->{"48"}->data->{"19"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"19"};
}
if (isset($data->commandClasses->{"48"}->data->{"20"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"20"};
}
if (isset($data->commandClasses->{"48"}->data->{"21"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"21"};
}
if (isset($data->commandClasses->{"48"}->data->{"22"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"22"};
}
if (isset($data->commandClasses->{"48"}->data->{"23"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"23"};
}
if (isset($data->commandClasses->{"48"}->data->{"24"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"24"};
}
$value=(int)$sensor_data->level->value;
if ($value!==$rec['LEVEL']) {
$rec['LEVEL']=$value;
$rec_updated=1;
}
$properties['Level']=$rec['LEVEL'];
$command_classes['Level']=48;
$updatedList['Level']=$sensor_data->{"updateTime"};
if ($sensor_data->{"updateTime"}>$updateTime) {
$updateTime=$sensor_data->{"updateTime"};
}
}
-
- Сообщения: 162
- Зарегистрирован: Сб янв 28, 2017 2:17 pm
- Благодарил (а): 13 раз
- Поблагодарили: 7 раз
Re: Модуль работы с Z-Wave устройствами
Сергей, спасибо!airafree писал(а):Сергей, прошу внести изменения по 48 классу в zwave.class.php при обновлении, использую в течение месяца, проблем и ошибок нет, все работает стабильно.
СпойлерПоказатьif ($rec['CLASS_SENSOR_BINARY']) {
$sensor_data=$data->commandClasses->{"48"}->data;
if (isset($data->commandClasses->{"48"}->data->{"1"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"1"};
}
if (isset($data->commandClasses->{"48"}->data->{"2"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"2"};
}
if (isset($data->commandClasses->{"48"}->data->{"3"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"3"};
}
if (isset($data->commandClasses->{"48"}->data->{"4"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"4"};
}
if (isset($data->commandClasses->{"48"}->data->{"5"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"5"};
}
if (isset($data->commandClasses->{"48"}->data->{"6"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"6"};
}
if (isset($data->commandClasses->{"48"}->data->{"7"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"7"};
}
if (isset($data->commandClasses->{"48"}->data->{"8"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"8"};
}
if (isset($data->commandClasses->{"48"}->data->{"9"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"9"};
}
if (isset($data->commandClasses->{"48"}->data->{"10"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"10"};
}
if (isset($data->commandClasses->{"48"}->data->{"11"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"11"};
}
if (isset($data->commandClasses->{"48"}->data->{"12"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"12"};
}
if (isset($data->commandClasses->{"48"}->data->{"13"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"13"};
}
if (isset($data->commandClasses->{"48"}->data->{"14"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"14"};
}
if (isset($data->commandClasses->{"48"}->data->{"15"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"15"};
}
if (isset($data->commandClasses->{"48"}->data->{"16"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"16"};
}
if (isset($data->commandClasses->{"48"}->data->{"17"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"17"};
}
if (isset($data->commandClasses->{"48"}->data->{"18"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"18"};
}
if (isset($data->commandClasses->{"48"}->data->{"19"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"19"};
}
if (isset($data->commandClasses->{"48"}->data->{"20"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"20"};
}
if (isset($data->commandClasses->{"48"}->data->{"21"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"21"};
}
if (isset($data->commandClasses->{"48"}->data->{"22"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"22"};
}
if (isset($data->commandClasses->{"48"}->data->{"23"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"23"};
}
if (isset($data->commandClasses->{"48"}->data->{"24"})) {
$sensor_data=$data->commandClasses->{"48"}->data->{"24"};
}
$value=(int)$sensor_data->level->value;
if ($value!==$rec['LEVEL']) {
$rec['LEVEL']=$value;
$rec_updated=1;
}
$properties['Level']=$rec['LEVEL'];
$command_classes['Level']=48;
$updatedList['Level']=$sensor_data->{"updateTime"};
if ($sensor_data->{"updateTime"}>$updateTime) {
$updateTime=$sensor_data->{"updateTime"};
}
}
48 класс работает.