Integracja z alarmem Satel Integra 64

Istnieje oczywiście możliwość integracji przez moduł eth, ale ponieważ jest on kosztowny zaprojektowałem proste rozwiązanie wykorzystując wolne wyjścia w domowej centrali Satel Integra. Nie jest to dwukierunkowa integracja, a jedynie przekazywanie informacji od alarmu do HomeAssistant. Dzięki temu można stworzyć fajne automatyzacje na podstawie wykrytego ruchu. Koszt integracji ok 50 PLN

W tym rozwiązaniu akumulator w centrali alarmowej jest wykorzystywany jako UPS dla RaspberryPI, co oczywiście skraca czas działania alarmu przy długich wyłączeniach prądu.

Hardware

  • Konwerter poziomów logicznych dwukierunkowy, 4-kanałowy – Pololu – 2 szt.
  • Przetwornica Step-Down – 9-38V – na 5V – USB – 5A
  • NodeMCU (alternatywnie Wemos D1 mini – tańsze rozwiązanie, ja miałem pod ręką akurat wolny chipset NodeMCU)

Schemat blokowy

Zastosowałem 25W przetwornicę napięcia, aby z alarmu zasilić od razu RaspberryPI na którym jest uruchomiony HomeAssistant. Dzięki temu w przypadku braku zasilania RPi działa aż do wyczerpania baterii w alarmie.

Ważne jest użycie i skonfigurowanie odpowiednich wyjść w na płycie Integra – nie wszystkie wyjścia są wyjściami wysokoprądowymi.

Uwaga na schemacie nie zaznaczono masy.

Widok płytki od strony elementów

Software

Alarm

Konfiguracja w systemie alarmowym jest wykonana w oprogramowaniu DLOADX.

Wyjścia typu Out są wysterowane przez 3 sekundy przez wejścia z czujek PIR

Wyjście OUT Integra64OpisNodeMcu
4Zasilanie 12V/3A: – Raspberry 5V/2,5A – NodeMCU 5V/300mA –
5Załączony alarm w strefach: 1, 3D3/GPIO0
6PIR1D1/GPIO5
7PIR2D4/GPIO2
9PIR3D2/GPIO4
10PIR4D5/GPIO14
12PIR5D0/GPIO16
13PIR6D6/GPIO12
14PIR7D7/GPIO13

HomeAssistant

ESPHome

Należy wcześniej zainstalować addon ESPHome w HomeAssistant

Konfiguracja NodeMCU w ESPHome. Należy dodatkowo utworzyć plik secrets.yaml

esphome:
  name: alarm
  platform: ESP8266
  board: nodemcuv2

wifi:
  networks:
  - ssid: !secret ssid
    password: !secret password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Alarm Fallback Hotspot"
    password: !secret password_fallback

captive_portal:

# Enable logging
logger:
  level: INFO

# Enable Home Assistant API
api:
  port: 6053

ota:
  - platform: esphome
  
#web_server:

mqtt:
  broker:  !secret mqtt_broker_ip
  username: !secret mqtt_username
  password: !secret mqtt_password

binary_sensor:
  - platform: gpio
    pin: 
      number: GPIO0
    filters:
      - invert:
      - delayed_on: 250ms
      - delayed_off: 250ms
    name: "alarm_1_3"
    
  - platform: gpio
    pin: 
      number: GPIO5
    filters:
      - invert:
      - delayed_on: 250ms
      - delayed_off: 250ms
    name: "ruch_pir1"
    device_class: motion

  - platform: gpio
    pin: 
      number: GPIO2
    filters:
      - invert:
      - delayed_on: 250ms
      - delayed_off: 250ms
    name: "ruch_pir2"
    device_class: motion
    
  - platform: gpio
    pin: 
      number: GPIO4
    filters:
      - invert:
      - delayed_on: 250ms
      - delayed_off: 250ms
    name: "ruch_pir3"
    device_class: motion

  - platform: gpio
    pin: 
      number: GPIO14
    filters:
      - invert:
      - delayed_on: 250ms
      - delayed_off: 250ms
    name: "ruch_pir4"
    device_class: motion
    
  - platform: gpio
    pin: 
      number: GPIO16
    filters:
      - invert:
      - delayed_on: 250ms
      - delayed_off: 250ms
    name: "ruch_pir5"   
    device_class: motion
    
  - platform: gpio
    pin: 
      number: GPIO12
    filters:
      - invert:
      - delayed_on: 250ms
      - delayed_off: 250ms
    name: "ruch_pir6"
    device_class: motion
    
  - platform: gpio
    pin:  
      number: GPIO13
    filters:
      - invert:
      - delayed_on: 250ms
      - delayed_off: 250ms
    name: "ruch_pir7"
    device_class: motion

Plik secrets.yaml

#mqtt
mqtt_broker_ip: 192.168.1.1
mqtt_username: uzytkownik_mqtt
mqtt_password: haslo_mqtt

# Your Wi-Fi SSID and password
ssid: 'nazwa_wifi'
password: 'haslo_wifi'

#Wifi Fallback Hotspot
password_fallback: 'magiczne_haslo'

Przykładowe automatyzacje

Włączenie/wyłączenie światła

- id: 'auto_kuchnia_swiatla_on'
  alias: 'Kuchnia - Włącz światło'
  trigger:
    platform: state
    entity_id: binary_sensor.ruch_pir1
    from: 'off'
    to: 'on'
  condition:
    condition: and
    conditions:
    - condition: state
      entity_id: light.kuchnia
      state: 'off'
      for:
        seconds: 5
    - condition: template
      value_template: "{{ states.sun.sun.attributes.elevation  | int < 3 }}"
  action:
    service: light.turn_on
    entity_id: light.kuchnia

- id: 'auto_kuchnia_swiatla_off'
  alias: 'Kuchnia - wyłącz po 3 min'
  trigger:
    platform: state
    entity_id: binary_sensor.ruch_pir1
    to: 'off'
    for: 
      minutes: 3
  condition:
    - condition: state
      entity_id: light.kuchnia
      state: 'on'
  action:
    service: light.turn_off
    entity_id: light.kuchnia

Wyłączenie urządzeń przy załączeniu strefy w alarmie

- id: 'auto_alarm_swiatla_off'
  alias: 'Alarm - Wyłącz światła przy załączonym alarmie'
  trigger:
    platform: state
    entity_id: binary_sensor.alarm_1_3
    from: 'off'
    to: 'on'
    for: 
      seconds: 15
  condition:
    - condition: state
      entity_id: group.swiatla_dol
      state: 'on'
  action:
    - service: light.turn_off
      entity_id: group.swiatla_dol
    - service: switch.turn_off
      entity_id: switch.pompa_wody
    - service: light.turn_off
      entity_id: light.lampki_choinkowe
    - service: media_player.turn_off
      entity_id: media_player.amplituner
    - service: media_player.turn_off
      entity_id: media_player.tv

Linki

https://esphome.io

https://www.satel.pl/instrukcje

Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *