Интеграция Z-Uno с сигнализацией ГрандМагистр

Данный раздел предназначен для русскоязычных пользователей. Если вы владеете английским, рекомендуем также просмотреть общую ветку обсуждений на английском.
SerjioTT
Posts: 15
Joined: 14 Dec 2019 13:05

Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by SerjioTT »

Всем привет!
Делаю мониторинг и управление двумя контрольными приборами сигнализации ГрандМагиср с помощью Z-Uno Shield.
По сути всё сводится к тому чтобы организовать:
1 два канала чтобы поставить\взять под охрану - сухой контакт, закрыть на 1 сек (по одному каналу на каждый ППК)
2 два пина как сенсор чтобы ловить alarm c каждого ППК
3 два пина чтобы отслеживать что прибор встал под охрану (например от внешней команды с кнопки) и находится в Armed state - признак - присутствует "-" на пине

Это мой первый проект на Z-Uno, пока не понимаю как организовать 3 пункт.
Скетч ниже. Пока такой.
Контроллер HC2 но с таким скетчем не вижу на нём состояние pin5 и pin6, которые планировал использовать под п.3 как раз.
Ещё неясно нужно ли делать виртуальное устройство на HC2 или всю логику нужно делать на Zuno ...

Прошу совета или где посмотреть подобный проект...

Code: Select all

// Global variables

byte pin3SensorBinaryState;

byte pin4SensorBinaryState;

byte pin5SensorBinaryState;

byte pin6SensorBinaryState;

byte pin12SensorBinaryState;

byte pin13SwitchBinaryState = 0;

byte pin14SwitchBinaryState = 0;

// Z-Wave channels
ZUNO_SETUP_CHANNELS(
  ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_SMOKE, pin3SensorBinaryGetter),
  ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_MOTION, pin4SensorBinaryGetter),
  ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_GENERAL_PURPOSE, pin5SensorBinaryGetter),
  ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_GENERAL_PURPOSE, pin6SensorBinaryGetter),
  ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_WATER, pin12SensorBinaryGetter),
  ZUNO_SWITCH_BINARY(pin13SwitchBinaryGetter, pin13SwitchBinarySetter),
  ZUNO_SWITCH_BINARY(pin14SwitchBinaryGetter, pin14SwitchBinarySetter)
);

void setup() {
  pinMode(3, INPUT_PULLUP);
  pin3SensorBinaryState = !digitalRead(3);

  pinMode(4, INPUT_PULLUP);
  pin4SensorBinaryState = !digitalRead(4);

  pinMode(5, INPUT_PULLUP);
  pin5SensorBinaryState = !digitalRead(5);

  pinMode(6, INPUT_PULLUP);
  pin6SensorBinaryState = !digitalRead(6);

  pinMode(12, INPUT);
  pin12SensorBinaryState = !digitalRead(12);

  pinMode(13, OUTPUT);

  pinMode(14, OUTPUT);
}

void loop() {
  byte _pin3SensorBinaryState = digitalRead(3);
  if (pin3SensorBinaryState != _pin3SensorBinaryState) {
    pin3SensorBinaryState = _pin3SensorBinaryState;
    zunoSendReport(1);
  }

  byte _pin4SensorBinaryState = digitalRead(4);
  if (pin4SensorBinaryState != _pin4SensorBinaryState) {
    pin4SensorBinaryState = _pin4SensorBinaryState;
    zunoSendReport(2);
  }

  byte _pin5SensorBinaryState = digitalRead(5);
  if (pin5SensorBinaryState != _pin5SensorBinaryState) {
    pin5SensorBinaryState = _pin5SensorBinaryState;
    zunoSendReport(3);
  }

  byte _pin6SensorBinaryState = digitalRead(6);
  if (pin6SensorBinaryState != _pin6SensorBinaryState) {
    pin6SensorBinaryState = _pin6SensorBinaryState;
    zunoSendReport(4);
  }

  byte _pin12SensorBinaryState = digitalRead(12);
  if (pin12SensorBinaryState != _pin12SensorBinaryState) {
    pin12SensorBinaryState = _pin12SensorBinaryState;
    zunoSendReport(5);
  }

  digitalWrite(13, pin13SwitchBinaryState ? HIGH : LOW);

  digitalWrite(14, pin14SwitchBinaryState ? HIGH : LOW);

  delay(20);
}

// Getters and setters

byte pin3SensorBinaryGetter() {
  return pin3SensorBinaryState;
}

byte pin4SensorBinaryGetter() {
  return pin4SensorBinaryState;
}

byte pin5SensorBinaryGetter() {
  return pin5SensorBinaryState;
}

byte pin6SensorBinaryGetter() {
  return pin6SensorBinaryState;
}

byte pin12SensorBinaryGetter() {
  return pin12SensorBinaryState;
}

void pin13SwitchBinarySetter(byte value) {
  pin13SwitchBinaryState = value;
}

byte pin13SwitchBinaryGetter() {
  return pin13SwitchBinaryState;
}

void pin14SwitchBinarySetter(byte value) {
  pin14SwitchBinaryState = value;
}

byte pin14SwitchBinaryGetter() {
  return pin14SwitchBinaryState;
}
User avatar
PoltoS
Posts: 7624
Joined: 26 Jan 2011 19:36

Re: Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by PoltoS »

Для пункта 3 нужен sensor binary на нужном пине с PULLUP.

Вот пример: https://z-uno.z-wave.me/shield/configur ... m_3=pullup
SerjioTT
Posts: 15
Joined: 14 Dec 2019 13:05

Re: Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by SerjioTT »

Спасибо большое за Ваш ответ!
У меня в скетче так и сделано, только не 12 пин, а 5 и 6
но на контроллере не появляется устройств связанных с 5 и 6 пином при включении зуны в сеть...
как же использовать события замыкания с 5 и 6 пина на землю в контроллере?

update:
прошил зуну вашим скетчем с пином 12 как General_Purpose, действительно появился один motion sensor на контроллере
добавил на 6 пин ZUNO_SENSOR_BINARY_TYPE_GENERAL_PURPOSE в конфигураторе
прошил зуну таким скетчем (6 и 12 пин как General_Purpose)
перевключил в сеть - появился всё равно только один motion sensor

update:
сделал скетч на 3 пина с General_Purpose, но на контроллере всё равно появляется только одно устройство motion sensor...
User avatar
PoltoS
Posts: 7624
Joined: 26 Jan 2011 19:36

Re: Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by PoltoS »

В вашем устройстве 4 бинарных датчика и 2 реле - что из этого видно в контроллере? Возможно, это проблема HC2, что он данную комбинацию не показывает. Попробуйте параметр 12 (https://z-uno.z-wave.me/z-wave/configur ... arameters/)

И попробуйте Generic Purpose поменять, например, на Door.
SerjioTT
Posts: 15
Joined: 14 Dec 2019 13:05

Re: Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by SerjioTT »

PoltoS wrote:
16 Dec 2019 00:04
4 бинарных датчика и 2 реле - что из этого видно в контроллере?
видно 2 бинарных датчика TYPE_SMOKE и TYPE_MOTION
а также два реле.

после отправки 1 в 12 параметр появилось аж 13 :D устройств
это правда too much =)
но всё равно наверное придётся их все сделать скрытыми и сделать одно виртуальное устройство.
ещё непонятно как понять какие из них те, что мне нужны. ну да ладно - поэкспериментирую.

спасибо большое!
SerjioTT
Posts: 15
Joined: 14 Dec 2019 13:05

Re: Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by SerjioTT »

приветствую!
я использовал в скетче 7 BinarySwitch разных типов с признаком срабатывания FreeOrGround
получилась такая картина
2019-12-17_23-03-52.jpg
2019-12-17_23-03-52.jpg (416.46 KiB) Viewed 7457 times
но к сожалению события приходят только с одного - 12го пина

предполагаю вот почему
If the sketch have more than one channel of the same type and simple association is used (means set up using Association Command Class) to association Life Line group with the controller, unsolicited reports will be sent only from the first channel of that type. To get all unsolicited reports from Z-Uno a channel association is required (means set up using MultiChannel Association Command Class).
Как заставить zuno использовать MultiChannel Association для передачи состояние входов контроллеру ??
SerjioTT
Posts: 15
Joined: 14 Dec 2019 13:05

Re: Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by SerjioTT »

Как использовать MultiChannel вместо Single разобрался.
Всего лишь нужно поменять S -> M на HC2 в настройках ассоциаций на корневом устройстве Zuno для Group0

К сожалению, это не помогло, приходит информация только с 12 пина :(
Что делаю:
- исключаю Zuno из сети
- шью скетч
- включаю в сеть
- в настройках ассоциаций вижу S + M
- оставляю только M
- save

параметр 12 = 1
MultiChannel включено

поведение Zuno мне непонятно...
User avatar
PoltoS
Posts: 7624
Joined: 26 Jan 2011 19:36

Re: Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by PoltoS »

Призываю @rkv
SerjioTT
Posts: 15
Joined: 14 Dec 2019 13:05

Re: Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by SerjioTT »

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

UPD
поменял типы входов: Free or ground -> 12v or ground
этот скетч залил в zuno и УРА! - при появлении +12 на ADC0 - ADC4 на HC2 вижу изменения состояний трёх сенсоров + два сенсора (154.0.1 и 154.1.1) срабатывают одновременно от ADC0, к тому же при появлении на 12 pin минуса тоже меняется состояние сенсора на контроллере.
Итого имею 5 каналов на вход. Это уже хорошо.

Но задача получить 7 входных сигналов на контроллере.
Pin 7 и 8 по прежнему не передают своё состояние на контроллер ни в режиме Free or ground, ни в режиме 12v or ground...
User avatar
PoltoS
Posts: 7624
Joined: 26 Jan 2011 19:36

Re: Интеграция Z-Uno с сигнализацией ГрандМагистр

Post by PoltoS »

Я бы для начала предложил проверить в Z-Way - чтобы понять, в ком проблема. У Вас есть такая возможность?
Post Reply