DBNet for HomeAssistant
Integrace AMIT regulátorů do systému HomeAssistant.
AMIT používá proprietární protokol pro komunikaci s PLC nazývaný
DBNet. Ten je založený na UDP protokolu ve stylu
client/server, kdy jednotlivá PLC jako klienti mají IP:port a přiřazenou DBNet adresu. Je tedy nutné implementovat
knihovnu pro zpřístupnění proprietárního protokolu dalším aplikacím. To zajišťuje knihovna
dbnet2 napsaná v C++
a obsahuje jednak command line
dbnet2_client tak knihovnu
libdbnet2, pomocí které lze implementovat obecné klienty
i servery.
HomeAssistant (Hass) naprogramován v Pythonu a běžně běží např. na
Raspberry PI (RPI) na ARM64 architektuře.
Binární knihovny je tedy nutné zkompilovat pro tuto architekturu.
Spolupracující zařízení musí být integrována a umístěna jako podadreář zdrojových kódů
homeassistant/components.
Instalace
Nové verze
HomeAssistant 0.116+ požadují
Python 3.8 ale pokud je na RPI instalovaný
Debian Buster, který používá standardně Python 3.7,
je tedy nutné buď počkat na nový
Debian Bulleys nebo vlastními silami nainstalovat novější Python. Existuje
backport balíček
https://community.home-assistant.io/t/home-assistant-core-python-3-8-backport-for-debian-buster/234859.
Do virtuálního prostředí Pythonu pro Hass nainstalovat Python knihovnu dbnet2 (viz.
dbnet2*.whl)
sudo su homeassistant
cd /srv/homeassistant/homeassistant_venv
source bin/activate
pip3 install -v dbnet2-0.0.2-cp38-cp38-linux_armv7l.whl
sudo systemctl restart home-assistant.service
Rozbalit integraci
hass-dbnetbus.zip do
homeassistant/components. Zkoušeno s verzí
Home Assistant 2021.3.3.
Proměnné a aliasy Amit regulátoru jsou definované typicky pro každý regulátor v
DetStudiu a je možně je vyexportovat do CSV souboru. Tento soubor je
pak uveden v definici stanic (
stations.cfg). Názvy proměnných musí být jedinečně po agregaci všech stanic. To lze zjistit nastavení prefixování jednotlivých definičních souborů.
Definiční soubor stanic pak uveden v konfiguraci hass
configuration.yaml. Ovládací
prvky, které se mají objevit v GUI se přidávají do tohoto souboru s odkazem na konkrétní proměnnou regulátoru. Příklad pro domácí řídící systém ADOREG je v
dbnet2-hass-config.zip.
# configuration.yaml
dbnetbus:
default:
station_config: !secret station_config
client_addr: 31
sensor:
- platform: dbnetbus
unit_of_measurement: °C
precision: 1
items:
t_venk:
name: Venkovní teplota (TV1)
register: Ven_t
podlaha_t_skutecna:
name: "$Mis_Tab_text[16]: T.skutečná (TRTV1)"
register: Mis_Tab_t[16,0]
podlaha_t_zadana:
name: "$Mis_Tab_text[16]: T.žádaná"
register: Mis_Tab_t_Po[16,0]
binary_sensor:
- platform: dbnetbus
items:
podlaha_cerp:
name: "$Mis_Tab_text[16]: Čerpadlo"
register: "DO0.5"
radiator_cerp:
name: "$Mis_Tab_text[17]: Čerpadlo"
register: "DO0.6"
switch:
- platform: dbnetbus
items:
an_rezim_tyce:
name: "$Zdr_Tab_Text[5]: Režim Topné tyče AN"
register: Zdr_Tab_Rez[5,0]
rezim_obdobi:
name: Období Zima/Léto
register: "Stav.1"
climate:
- platform: dbnetbus
temp_unit: 'C'
preset_modes:
sleep:
state: 0
eco:
state: 1
read_only: True
comfort:
state: 2
external:
state: 3
read_only: True
hvac_modes:
"off":
state: 0
heat:
state: 1
items:
podlaha:
name: "$Mis_Tab_text[16]"
target_temp_register: Mis_Tab_t_Po[16,0]
current_temp_register: Mis_Tab_t[16,0]
preset_mode_register: Mis_Tab_Rez[16,0]
heating_register: DO0.5
preset_modes:
sleep:
target_temp_register: Mis_Tab_t_Ut[16,0]
comfort:
target_temp_register: Mis_Tab_t_Km[16,0]
....
Definice stanic:
var_files:
- a311_vars.csv
- file:
name: test_vars.csv
codepage: cp1250
- file:
name: test_vars2.csv
prefix: dup_
alias_files:
- a311_aliases.csv
- test_aliases.csv
- file:
name: test_aliases2.csv
prefix: dup_
stations:
ADOREG:
ip: 192.168.0.10
port: 59
addr: 4
password: ~
timeout: 1000
timezone: 1
Definice exportované z programu
DetStudio, kde jsou odkazy na konkrétní proměnné regulátoru.
AI_DIVal;4639;F;4;;Hodnota pro rozhodnuti log1/0 na analogovem vstupu
AI_Stav;4320;I;4;;Stavy vstupů
AI_Tab_Ftr;4309;MF[24,1];4;;Konstanty pro filt 1R
AI_Tab_Kor;4602;MF[24,2];4;;Analogové vstupy, korekční konstanty
AI0;4016;MF[12,1];4;;Analogové vstupy
AI0_R;4588;MF[12,1];4;;Vyčítané analogové hodnoty přímo ze vstupů
Balíček
dbnet2-*-Linux.deb obsahuje binární command line utility a není pro funkci Hass nutno instalovat.
Amit Hass integration
Integrace AMIT DBNet protokolu do HomeAssistant
AMIT DBNet protocol integration to HomeAssistant