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) — encjaclimatew Home Assistant - Panel Alarmowy (
alarm_control_panel) — encjaalarm_control_panelw 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 opcji | Opis |
|---|---|
| Platforma | Wybór typu szablonu: thermostat lub alarm_control_panel. |
| ID | Unikalny identyfikator szablonu. Generowany automatycznie na podstawie nazwy. |
| Nazwa | Nazwa wyświetlana w Home Assistant. |
| Obszar/Pokój | Wybó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 opcji | Opis |
|---|---|
| Czujnik temperatury | ID czujnika temperatury używanego do odczytu aktualnej temperatury. |
| Wyjście grzewcze | ID wyjścia (przekaźnika) sterującego elementem grzewczym. |
| Tryb początkowy | Tryb w jakim termostat uruchomi się po restarcie: heat lub off. |
| Temperatura docelowa | Początkowa temperatura docelowa w °C. |
Ustawienia Termostatu — Zaawansowane
| Nazwa opcji | Opis |
|---|---|
| Histereza | Histereza temperatury w °C. Domyślnie 0.5°C. Zapobiega częstemu przełączaniu przekaźnika. |
| Temperatura minimalna | Minimalna temperatura możliwa do ustawienia. Domyślnie 5°C. |
| Temperatura maksymalna | Maksymalna temperatura możliwa do ustawienia. Domyślnie 35°C. |
| Lista czujników | Opcjonalna lista wielu czujników temperatury — używana jest średnia z dostępnych odczytów. |
Przykładowa konfiguracja YAML — Termostat
template:
- id: thermostat_salon
name: Termostat Salon
platform: thermostat
sensor_id: temp_salon
output_id: OUT_01
target_temperature: 21.0
area: salontemplate:
- 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: sypialniaZmienne 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_idsnie 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
| Timer | Domyślnie | Opis |
|---|---|---|
| Czas uzbrajania | 30s | Czas oczekiwania po komendzie uzbrojenia zanim alarm przejdzie w stan uzbrojony. |
| Opóźnienie wejścia | 30s | Czas po wyzwoleniu strefy z opóźnieniem zanim alarm przejdzie w stan wyzwolony. |
| Czas wyzwolenia | 5min | Czas 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:
| Typ | Opis |
|---|---|
siren | Syrena alarmowa |
notification | Powiadomienie |
light | Oświetlenie (np. migające światło) |
custom | Niestandardowe 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 opcji | Opis |
|---|---|
| ID | Unikalny identyfikator panelu alarmowego. |
| Nazwa | Nazwa wyświetlana w Home Assistant. |
| Obszar/Pokój | Wybór odpowiedniego obszaru. |
| Strefy | Lista stref z przypisanymi wejściami i trybami uzbrojenia. |
| Wyjścia | Lista wyjść aktywowanych przy wyzwoleniu alarmu. |
Ustawienia Panelu Alarmowego — Zaawansowane
| Nazwa opcji | Opis |
|---|---|
| Czas uzbrajania | Czas oczekiwania po komendzie uzbrojenia. Przykład: 30s. |
| Opóźnienie wejścia | Czas opóźnienia wejścia przed wyzwoleniem. Przykład: 30s. |
| Czas wyzwolenia | Czas przez jaki alarm pozostaje wyzwolony. Przykład: 5min. |
| Kody PIN | Lista kodów PIN z nazwami użytkowników. |
| Kod wymagany do uzbrojenia | Czy kod PIN jest wymagany również do uzbrojenia alarmu. |
Przykładowa konfiguracja YAML — Panel Alarmowy
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: domZmienne 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.