Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Центральный мозг умного дома > Z-Wave

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.03.2011, 15:37   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Протокол Z-Wave

Огромное спасибо пользователю PoltoS за проделанную работу
Цитата:
Получилось два: один для отправки, второй для посылки данных. Очень удобно для реверс-инжиниринга!
Для работы надо подправить строку
my $port = "/dev/ttyACM0";
на правильный порт.

zs.pl отправляет данные, указанные в командной строке.
zw.pl принимает, отправляет ack, если нужно, и выводит на экран полученное

А что слать-то?
Вот часть того, что я накопал:

Вообще, большинство команд выглядят так: 0 13 <TargetNodeId> <размер команды - 1> <команда> ...

PHP код:
(отправкаполучение)
DIMLevel=0..64h 
S 0 13 
<Node3 20 1 <Level5
R 1 13 1 
(это типичный ответчто всё хорошо)

SWITCH {
OFF|ON}
S 0 13 <Node3(Size-120 1 {0|FF5
R 1 13 1

ASSOCIATE
S 0 13 
<SourceNode4(Size-185 1 <Group> <TargetNode5
R 1 13 1

DISASSOCIATE
S 0 13 
<SourceNode4(Size-185 4 <Group> <TargetNode5
R 1 13 1

GET ASSOCIATION
S 0 13 
<Node3(Size-185 2 <Group
R 0 4 0 
<Node5(Size-185 3 <Group> <Max assoc.> <Currassoc.> 
R 1 13 1

GET LEVEL
S 0 13 
<Node3 20 2 0 5
R 0 4 0 
<Node3(Size20 3 <Level>

GET DIMMER LEVEL
S 0 13 
<Node3 26 2 0 5
R 0 4 0 
<Node3(Size26 3 <Level>

ADD
S 0 4A 01 B0
(далее нажимаете кнопки на добавляемом устройстве согласно иснтрукции и получаете ответ с присвоенным NodeId и возможностями устройства)

для duwi wall controller
R 0 4A B0 1 0 0 
R 0 4A B0 2 3 C 1 1 1 72 80 85 EF 20 26 27 85 82 
R 0 4A B0 4 3 C 1 1 1 72 80 85 EF 20 26 27 85 82 
R 0 4A B0 7 
<Node

для duwi 
switch
R 0 4A B0 1 0 0 
R 0 4A B0 3 4 D 4 10 1 72 86 82 87 75 27 25 85 EF 26 
R 0 4A B0 6 
<Node

Обратите внимание
что в этих пакетах оконцовка "возможностей" совпадает с оконцовкой стандартного Device Information Packetкоторый отправляется устройством ACT при каждом нажатииа duwi при тройном нажатии (сминструкции)
wall-button
R 0 49 84 
<NodeC 1 1 1 72 80 85 EF 20 26 27 85 82 
switch
R 0 49 84 <NodeD 4 10 1 72 86 82 87 75 27 25 85 EF 26 

Удалить узел так
:
S 0 4B 1 <Node
Есть ещё куча недорасшифрованного.. . будем реверсить дальше!
Почти всё это было получено при помощи USB сниффера, однако, как оказалось, есть исходники LinuxMCE, которые позволяют всё реверснутое мною просто собрать из сурсов!

Я не пробовал пока никаких термометров, но с ними должно быть всё просто.
Пока весь известный мне функционал софтин для Z-Wave можно реализовать из командной строки, а значит и из любой самописной проги!
Вложения
Тип файла: rar z.rar (1.8 Кб, 379 просмотров)
Admin вне форума   Ответить с цитированием
Старый 16.08.2013, 01:38   #2
Scorpio
Junior Member
 
Регистрация: 16.08.2013
Сообщений: 5
Вес репутации: 0
Scorpio is an unknown quantity at this point
По умолчанию

"Есть ещё куча недорасшифрованного.. . будем реверсить дальше!"

Доброго времени суток.
Собрался разобраться с z-wave и написать свою прогу управления. В сети не нашел полного и ясного описания протокола с примерами. Может у автора кода за прошедшее время оно уже появилось?
Scorpio вне форума   Ответить с цитированием
Старый 16.08.2013, 09:45   #3
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Где то встречал(не могу вспомнить) куски исходников работы с Z-Wave для LinuxMCE
Admin вне форума   Ответить с цитированием
Старый 16.08.2013, 15:37   #4
Kondor
Banned
 
Регистрация: 16.08.2013
Сообщений: 110
Вес репутации: 0
Kondor is infamous around these partsKondor is infamous around these parts
Post

Цитата:
Сообщение от Admin Посмотреть сообщение
Где то встречал(не могу вспомнить) куски исходников работы с Z-Wave для LinuxMCE
Куски исходников в самой LinuxMCE http://svn.linuxmce.org/svn/branches...004/src/ZWave/
Если нужно подсмотреть протокол работы, есть вот такая библиотека http://code.google.com/p/open-zwave/
Kondor вне форума   Ответить с цитированием
Старый 19.08.2013, 21:55   #5
Scorpio
Junior Member
 
Регистрация: 16.08.2013
Сообщений: 5
Вес репутации: 0
Scorpio is an unknown quantity at this point
По умолчанию

Спасибо. Попробую разобраться. Было бы не плохо найти библиотеку под винду.
Scorpio вне форума   Ответить с цитированием
Старый 22.08.2013, 07:32   #6
Scorpio
Junior Member
 
Регистрация: 16.08.2013
Сообщений: 5
Вес репутации: 0
Scorpio is an unknown quantity at this point
По умолчанию

Короче, ни хрена я не понял и ни фига у меня не получилось.
Есть у меня Z-Wave USB свисток и несколько датчиков. Датчики проверенные, работают с Vera Lite. Я так понимаю, что комп со свистком может являться статическим контроллером. И, первое, что я хочу сделать послать комманду ADD датчику с включенным питанием, чтобы, после его активации кнопкой, получить от него пакет данных.
Автор предлагает:
ADD
S 0 4A 01 B0
(далее нажимаете кнопки на добавляемом устройстве согласно иснтрукции и получаете ответ с присвоенным NodeId и возможностями устройства)


я так понимаю, что предполагается добавить в конце контрольную сумму.
Не выходит. В другом источнике написано, что первый байт всегда 01, потом размер пакета-1, потом комманды и данные, потом КС (XOR всех байтов, кроме первого, результат инвертирован). тоже никакой реакции.
Кто-нибудь мне может сказать, какую конкретно строку я должен послать в COM-порт в этом случае?
Простите за тупость, но как-то с этим протоколом все туманно...

Про open-zwave тоже не понял, как его использовать. Он, что в виде firmware поставляется для USB контроллеров определенных производителей? И как же тогда можно подсмотреть протокол?

Последний раз редактировалось Scorpio; 22.08.2013 в 07:44.
Scorpio вне форума   Ответить с цитированием
Старый 22.08.2013, 15:46   #7
Kondor
Banned
 
Регистрация: 16.08.2013
Сообщений: 110
Вес репутации: 0
Kondor is infamous around these partsKondor is infamous around these parts
По умолчанию

Цитата:
Сообщение от Scorpio Посмотреть сообщение
Про open-zwave тоже не понял, как его использовать. Он, что в виде firmware поставляется для USB контроллеров определенных производителей? И как же тогда можно подсмотреть протокол?
open-zwave - это библиотека для windows и Linux, в библиотеке есть пример, но сначала нужно проверить поддерживает библиотека Ваш USB свисток или нет http://code.google.com/p/open-zwave/...atibility_List попробуйте собрать библиотеку и пример MinOZW http://code.google.com/p/open-zwave/.../linux/MinOZW/ а вот потом смотрите исходники библиотеки.
Kondor вне форума   Ответить с цитированием
Старый 22.08.2013, 18:40   #8
Scorpio
Junior Member
 
Регистрация: 16.08.2013
Сообщений: 5
Вес репутации: 0
Scorpio is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Kondor Посмотреть сообщение
нужно проверить поддерживает библиотека Ваш USB свисток или нет
не поддерживает. Я так понимаю, что мой свисток только позволяет организовать обмен по протоколу Z-Wave через виртуальный порт и стандартный радиомодуль. Т.е. ПК может являться, как контроллером, так и датчиком. Перечисленные USB модели, если не ошибаюсь, имеют зашитые функции контроллера.
Сейчас бы мне проверенную строку ADD чтобы убедится в работоспособности железа.
Scorpio вне форума   Ответить с цитированием
Старый 10.02.2014, 16:42   #9
PoltoS
Junior Member
 
Регистрация: 10.02.2014
Сообщений: 2
Вес репутации: 0
PoltoS is an unknown quantity at this point
По умолчанию Re: Протокол Z-Wave

Цитата:
Сообщение от Scorpio Посмотреть сообщение
"Есть ещё куча недорасшифрованного.. . будем реверсить дальше!"

Доброго времени суток.
Собрался разобраться с z-wave и написать свою прогу управления. В сети не нашел полного и ясного описания протокола с примерами. Может у автора кода за прошедшее время оно уже появилось?
Детально никто протокол особо не расшифровывал, т.к. люди или ограничиваются десятком команд или уже используют профессиональное ПО, написанное людьми, имеющими доступ к полному описанию протокола.

Дело в том, что сам протокол закрыт. Для получения его требуется подписать NDA и купить комплект разработчика (100 000 руб). Для компаний это не дорого.

Собственно, изыскания, описанные сверху этого поста привели к созданию ПО Z-Way, которое поставляется с шилдом для Raspberry Pi, которая называется RaZberry, и со стиком.

Их логи полезно почитать для реверсинга - нет нужды в USB сниффере, всё валится в log.

Если же хочется покопаться, вместо кода LinuxMCE можно почитать мой старый AZW - код на базе LinuxMCE, но работающий отдельно. Он на Python (см. снизу страницы).
PoltoS вне форума   Ответить с цитированием
Старый 10.02.2014, 18:18   #10
Scorpio
Junior Member
 
Регистрация: 16.08.2013
Сообщений: 5
Вес репутации: 0
Scorpio is an unknown quantity at this point
По умолчанию Re: Протокол Z-Wave

ОК. спасибо.
Scorpio вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:14. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика