O NasBlogKontakt

Szablony

Szablony (template) to kompozytowe encje wirtualne, które łączą istniejące prymitywy boneIO (wejścia, wyjścia, czujniki) w encje wyższego poziomu dla Home Assistant. Aktualnie dostępne platformy to:

  • Termostat (thermostat) — encja climate w Home Assistant
  • Panel Alarmowy (alarm_control_panel) — encja alarm_control_panel w Home Assistant

Szablony są automatycznie wykrywane przez Home Assistant poprzez MQTT autodiscovery.

Konfiguracja w aplikacji webowej

Zalecany sposób konfiguracji.

Przykładowa konfiguracja webui

Widok umożliwiający podgląd zdefiniowanych szablonów, podgląd platformy, przypisanego obszaru i statusu. Można z jego poziomu dodać nowy szablon jak i usunąć nieużywany. Dodatkowo umożliwia ich eksport i import.

Dodawanie szablonu

Nazwa opcjiOpis
PlatformaWybór typu szablonu: thermostat lub alarm_control_panel.
IDUnikalny identyfikator szablonu. Generowany automatycznie na podstawie nazwy.
NazwaNazwa wyświetlana w Home Assistant.
Obszar/PokójWybór odpowiedniego obszaru dla grupowania urządzeń w HA.

Termostat

Termostat łączy czujnik temperatury z wyjściem przekaźnikowym w celu sterowania ogrzewaniem. Działa na zasadzie histerezy — włącza grzanie gdy temperatura spadnie poniżej target - hysteresis i wyłącza gdy przekroczy target + hysteresis.

Encja jest eksponowana do Home Assistant jako climate z trybami heat i off.

Ustawienia Termostatu — Podstawowe

Nazwa opcjiOpis
Czujnik temperaturyID czujnika temperatury używanego do odczytu aktualnej temperatury.
Wyjście grzewczeID wyjścia (przekaźnika) sterującego elementem grzewczym.
Tryb początkowyTryb w jakim termostat uruchomi się po restarcie: heat lub off.
Temperatura docelowaPoczątkowa temperatura docelowa w °C.

Ustawienia Termostatu — Zaawansowane

Nazwa opcjiOpis
HisterezaHistereza temperatury w °C. Domyślnie 0.5°C. Zapobiega częstemu przełączaniu przekaźnika.
Temperatura minimalnaMinimalna temperatura możliwa do ustawienia. Domyślnie 5°C.
Temperatura maksymalnaMaksymalna temperatura możliwa do ustawienia. Domyślnie 35°C.
Lista czujnikówOpcjonalna lista wielu czujników temperatury — używana jest średnia z dostępnych odczytów.

Przykładowa konfiguracja YAML — Termostat

Podstawowa konfiguracja termostatu
template:
  - id: thermostat_salon
    name: Termostat Salon
    platform: thermostat
    sensor_id: temp_salon
    output_id: OUT_01
    target_temperature: 21.0
    area: salon
Termostat z wieloma czujnikami i histerezą
template:
  - id: thermostat_sypialnia
    name: Termostat Sypialnia
    platform: thermostat
    sensor_ids:
      - temp_sypialnia_1
      - temp_sypialnia_2
    output_id: OUT_02
    target_temperature: 20.0
    hysteresis: 1.0
    min_temperature: 15.0
    max_temperature: 30.0
    mode: heat
    area: sypialnia

Zmienne konfiguracyjne — Termostat

  • id (Opcjonalne, string) — Unikalny identyfikator szablonu. Generowany automatycznie jeśli nie podany.
  • name (Opcjonalne, string) — Nazwa wyświetlana w Home Assistant. Jeśli nie ustawiona, używa ID.
  • platform (Wymagane, string) — Musi być ustawione na thermostat.
  • sensor_id (Opcjonalne, string) — ID głównego czujnika temperatury. Wymagane dla termostatu jeśli sensor_ids nie jest ustawione.
  • sensor_ids (Opcjonalne, lista string) — Lista ID czujników temperatury. Używana jest średnia z dostępnych odczytów. Alternatywa dla sensor_id.
  • output_id (Wymagane, string) — ID wyjścia (przekaźnika) sterującego elementem grzewczym.
  • mode (Opcjonalne, string, dozwolone: ['heat', 'off'], domyślnie: heat) — Początkowy tryb klimatyzacji.
  • target_temperature (Opcjonalne, float, domyślnie: 21.0) — Początkowa temperatura docelowa w °C.
  • hysteresis (Opcjonalne, float, domyślnie: 0.5) — Histereza temperatury w °C. Zapobiega częstemu przełączaniu przekaźnika.
  • min_temperature (Opcjonalne, float, domyślnie: 5.0) — Minimalna temperatura możliwa do ustawienia w interfejsie.
  • max_temperature (Opcjonalne, float, domyślnie: 35.0) — Maksymalna temperatura możliwa do ustawienia w interfejsie.
  • area (Opcjonalne, string) — Odniesienie do ID obszaru zdefiniowanego w sekcji areas. Tworzy pod-urządzenie powiązane z głównym urządzeniem BoneIO.

Panel Alarmowy

Panel alarmowy to strefowy system alarmowy z maszyną stanów. Monitoruje strefy wejściowe, zarządza stanami uzbrajania/rozbrajania z timerami i steruje urządzeniami wyjściowymi (syrena, powiadomienie, światło) przy wyzwoleniu.

Encja jest eksponowana do Home Assistant jako alarm_control_panel z obsługą kodów PIN.

Koncepcje

Strefy (zones)

Strefa grupuje wejścia sterownika i definiuje w jakich trybach uzbrojenia jest aktywna. Każda strefa może opcjonalnie używać opóźnienia wejścia (entry delay) — daje to czas na rozbrojenie alarmu przed wyzwoleniem.

Każde wejście w strefie może być skonfigurowane jako:

  • NC (Normally Closed) — normalnie zamknięte — wyzwolenie następuje po rozwarciu obwodu
  • NO (Normally Open) — normalnie otwarte — wyzwolenie następuje po zwarciu obwodu

Tryby uzbrojenia

Panel obsługuje 3 tryby uzbrojenia:

  • armed_away — Pełne uzbrojenie, wszystkie skonfigurowane strefy aktywne
  • armed_home — Uzbrojenie domowe, aktywne tylko strefy przypisane do tego trybu
  • armed_night — Uzbrojenie nocne, aktywne tylko strefy przypisane do tego trybu

Blokada uzbrojenia

Panel automatycznie blokuje możliwość uzbrojenia jeśli którekolwiek z wejść w aktywnych strefach jest w stanie wyzwolonym. Zapobiega to uzbrojeniu alarmu w sytuacji gdy np. drzwi lub okno jest otwarte.

Timery

TimerDomyślnieOpis
Czas uzbrajania30sCzas oczekiwania po komendzie uzbrojenia zanim alarm przejdzie w stan uzbrojony.
Opóźnienie wejścia30sCzas po wyzwoleniu strefy z opóźnieniem zanim alarm przejdzie w stan wyzwolony.
Czas wyzwolenia5minCzas przez jaki alarm pozostaje wyzwolony zanim automatycznie się rozbroi.

Wyjścia alarmowe

Wyjścia aktywowane przy wyzwoleniu alarmu. Każde wyjście ma przypisany typ:

TypOpis
sirenSyrena alarmowa
notificationPowiadomienie
lightOświetlenie (np. migające światło)
customNiestandardowe wyjście

Kody PIN

Lista kodów PIN z przypisanymi nazwami użytkowników. Kody są używane do uzbrajania/rozbrajania alarmu. Nazwa użytkownika jest zapisywana w logach — umożliwia identyfikację osoby która rozbroiła alarm. Opcjonalnie kod może być wymagany również do uzbrojenia (opcja code_arm_required).

Ustawienia Panelu Alarmowego — Podstawowe

Nazwa opcjiOpis
IDUnikalny identyfikator panelu alarmowego.
NazwaNazwa wyświetlana w Home Assistant.
Obszar/PokójWybór odpowiedniego obszaru.
StrefyLista stref z przypisanymi wejściami i trybami uzbrojenia.
WyjściaLista wyjść aktywowanych przy wyzwoleniu alarmu.

Ustawienia Panelu Alarmowego — Zaawansowane

Nazwa opcjiOpis
Czas uzbrajaniaCzas oczekiwania po komendzie uzbrojenia. Przykład: 30s.
Opóźnienie wejściaCzas opóźnienia wejścia przed wyzwoleniem. Przykład: 30s.
Czas wyzwoleniaCzas przez jaki alarm pozostaje wyzwolony. Przykład: 5min.
Kody PINLista kodów PIN z nazwami użytkowników.
Kod wymagany do uzbrojeniaCzy kod PIN jest wymagany również do uzbrojenia alarmu.

Przykładowa konfiguracja YAML — Panel Alarmowy

Panel alarmowy z dwoma strefami
template:
  - id: alarm_dom
    name: Alarm Domowy
    platform: alarm_control_panel
    arming_time: 30s
    delay_time: 30s
    trigger_time: 5min
    code_arm_required: false
    codes:
      - name: Jan
        code: "1234"
      - name: Anna
        code: "5678"
    zones:
      - name: Strefa Wejściowa
        inputs:
          - id: IN_01
            type: normally_closed
          - id: IN_02
            type: normally_closed
        arm_modes:
          - armed_away
          - armed_home
          - armed_night
        entry_delay: true
      - name: Strefa Okien
        inputs:
          - id: IN_03
            type: normally_closed
          - id: IN_04
            type: normally_open
        arm_modes:
          - armed_away
          - armed_night
        entry_delay: false
    outputs:
      - id: OUT_05
        type: siren
      - id: OUT_06
        type: light
    area: dom

Zmienne konfiguracyjne — Panel Alarmowy

  • id (Opcjonalne, string) — Unikalny identyfikator panelu alarmowego. Generowany automatycznie jeśli nie podany.
  • name (Opcjonalne, string) — Nazwa wyświetlana w Home Assistant. Jeśli nie ustawiona, używa ID.
  • platform (Wymagane, string) — Musi być ustawione na alarm_control_panel.
  • codes (Opcjonalne, lista) — Lista kodów PIN z nazwami użytkowników.
    • name (Wymagane, string) — Nazwa użytkownika (używana w logach do identyfikacji osoby).
    • code (Wymagane, string) — Numeryczny kod PIN.
  • code_arm_required (Opcjonalne, boolean, domyślnie: false) — Czy kod PIN jest wymagany również do uzbrojenia alarmu.
  • arming_time (Opcjonalne, timeperiod) — Czas oczekiwania po komendzie uzbrojenia zanim alarm przejdzie w stan uzbrojony. Przykład: 30s.
  • delay_time (Opcjonalne, timeperiod) — Czas opóźnienia wejścia przed wyzwoleniem alarmu. Przykład: 30s.
  • trigger_time (Opcjonalne, timeperiod) — Czas przez jaki alarm pozostaje wyzwolony zanim automatycznie się rozbroi. Przykład: 5min.
  • zones (Opcjonalne, lista) — Lista stref alarmowych.
    • name (Wymagane, string) — Nazwa strefy.
    • inputs (Opcjonalne, lista) — Lista wejść przypisanych do strefy.
      • id (Wymagane, string) — ID wejścia sterownika.
      • type (Opcjonalne, string, dozwolone: ['normally_closed', 'normally_open'], domyślnie: normally_closed) — Typ obwodu wejścia (NC/NO).
    • arm_modes (Opcjonalne, lista string, dozwolone: ['armed_away', 'armed_home', 'armed_night']) — Tryby uzbrojenia w których strefa jest aktywna.
    • entry_delay (Opcjonalne, boolean, domyślnie: false) — Czy strefa używa opóźnienia wejścia przed wyzwoleniem.
  • outputs (Opcjonalne, lista) — Lista wyjść aktywowanych przy wyzwoleniu alarmu.
    • id (Wymagane, string) — ID wyjścia (przekaźnika).
    • type (Opcjonalne, string, dozwolone: ['siren', 'notification', 'light', 'custom'], domyślnie: siren) — Typ wyjścia alarmowego.
  • area (Opcjonalne, string) — Odniesienie do ID obszaru zdefiniowanego w sekcji areas. Tworzy pod-urządzenie powiązane z głównym urządzeniem BoneIO.