├── HomeAssistant ├── trovis557x │ ├── trigger_updates.yaml │ ├── coils │ │ ├── 7_wmz.yaml │ │ ├── 2_messwerte.yaml │ │ ├── 9_sonstiges.yaml │ │ ├── 8_zeitprogramme.yaml │ │ ├── 1_regler.yaml │ │ ├── 3_hk1.yaml │ │ ├── 4_hk2.yaml │ │ ├── 5_hk3.yaml │ │ └── 6_hk4_ww.yaml │ ├── registers │ │ ├── 7_wmz.yaml │ │ ├── 9_sonstiges.yaml │ │ ├── 8_zeitprogramme.yaml │ │ ├── 1_regler.yaml │ │ ├── 6_hk4_ww.yaml │ │ ├── 4_hk2.yaml │ │ ├── 3_hk1.yaml │ │ ├── 5_hk3.yaml │ │ └── 2_messwerte.yaml │ ├── input_boolean.yaml │ ├── input_datetime.yaml │ ├── input_numbers.yaml │ ├── statistics.yaml │ ├── trigger_startup.yaml │ ├── trigger_actions.yaml │ └── template_sensors.yaml ├── www │ ├── trovis557x │ │ ├── fonts │ │ │ ├── DS-DIGI.TTF │ │ │ ├── DS-DIGIB.TTF │ │ │ ├── DS-DIGII.TTF │ │ │ ├── DS-DIGIT.TTF │ │ │ ├── readme.md │ │ │ └── DIGITAL.TXT │ │ └── images │ │ │ ├── readme.md │ │ │ ├── drehschalter │ │ │ ├── readme.md │ │ │ ├── typ1-stellung-0.png │ │ │ ├── typ1-stellung-1.png │ │ │ ├── typ1-stellung-10.png │ │ │ ├── typ1-stellung-2.png │ │ │ ├── typ1-stellung-3.png │ │ │ ├── typ1-stellung-4.png │ │ │ ├── typ1-stellung-5.png │ │ │ ├── typ2-stellung-0.png │ │ │ ├── typ2-stellung-1.png │ │ │ ├── typ2-stellung-10.png │ │ │ ├── typ2-stellung-2.png │ │ │ ├── typ2-stellung-3.png │ │ │ ├── typ2-stellung-4.png │ │ │ ├── typ2-stellung-5.png │ │ │ ├── typ3.0-stellung-0.png │ │ │ ├── typ3.0-stellung-1.png │ │ │ ├── typ3.0-stellung-2.png │ │ │ ├── typ3.0-stellung-3.png │ │ │ ├── typ3.0-stellung-4.png │ │ │ ├── typ3.0-stellung-5.png │ │ │ ├── typ3.1-stellung-0.png │ │ │ ├── typ3.1-stellung-1.png │ │ │ ├── typ3.1-stellung-2.png │ │ │ ├── typ3.1-stellung-3.png │ │ │ ├── typ3.1-stellung-4.png │ │ │ ├── typ3.1-stellung-5.png │ │ │ ├── typ3.2-stellung-0.png │ │ │ ├── typ3.2-stellung-1.png │ │ │ ├── typ3.2-stellung-2.png │ │ │ ├── typ3.2-stellung-3.png │ │ │ ├── typ3.2-stellung-4.png │ │ │ ├── typ3.2-stellung-5.png │ │ │ ├── typ4-stellung-0.png │ │ │ ├── typ4-stellung-1.png │ │ │ ├── typ4-stellung-10.png │ │ │ ├── typ4-stellung-2.png │ │ │ ├── typ4-stellung-3.png │ │ │ ├── typ3.0-stellung-10.png │ │ │ ├── typ3.1-stellung-10.png │ │ │ ├── typ3.2-stellung-10.png │ │ │ ├── typ1-stellung-unavailable.png │ │ │ ├── typ2-stellung-unavailable.png │ │ │ ├── typ3.0-stellung-unavailable.png │ │ │ ├── typ3.1-stellung-unavailable.png │ │ │ ├── typ3.2-stellung-unavailable.png │ │ │ └── typ4-stellung-unavailable.png │ │ │ ├── 1px_grau.png │ │ │ ├── background.png │ │ │ ├── ww-speicher.png │ │ │ ├── 1px_transparent.png │ │ │ ├── highres_transparent.png │ │ │ └── gesamtstatus │ │ │ ├── readme.md │ │ │ ├── status-3.svg │ │ │ ├── status-4.svg │ │ │ ├── status-5.svg │ │ │ ├── status-6.svg │ │ │ ├── status-7.svg │ │ │ ├── status-8.svg │ │ │ └── status-9.svg │ ├── loadfonts.js │ └── fonts.css ├── secrets.yaml ├── configuration.yaml └── readme.md ├── SmartHomeNG ├── shNG-plugins │ └── trovis557x │ │ ├── assets │ │ └── todo │ │ ├── webif │ │ └── todo │ │ ├── requirements.txt │ │ ├── _listen.py │ │ ├── plugin.yaml │ │ └── __init__.py ├── shNG-etc │ ├── plugin.yaml │ └── logging.yaml └── readme.md ├── docs ├── Trovis_Settings_(5576).xlsx └── _readme.txt ├── community ├── readme.md └── @falkio8 │ ├── readme.md │ ├── Trovis.svg │ └── dashboard.yaml ├── templates ├── _readme.txt ├── 5576-003_listen.py ├── 5573_rev2.14_coil-blocks ├── 5573_rev2.54_coil-blocks ├── 5573_rev2.14_reg-blocks └── 5573_rev2.54_reg-blocks ├── readme.md ├── tools ├── _readme.txt ├── coil_sniffer.py └── register_sniffer.py └── snippets ├── SmartHomeNG └── heizkurve.py └── HomeAssistant ├── readme.md └── seitenaufteilung.yaml /HomeAssistant/trovis557x/trigger_updates.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/fonts/DS-DIGI.TTF: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/fonts/DS-DIGIB.TTF: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/fonts/DS-DIGII.TTF: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/fonts/DS-DIGIT.TTF: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/fonts/readme.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SmartHomeNG/shNG-plugins/trovis557x/assets/todo: -------------------------------------------------------------------------------- 1 | On ToDo list. 2 | -------------------------------------------------------------------------------- /SmartHomeNG/shNG-plugins/trovis557x/webif/todo: -------------------------------------------------------------------------------- 1 | On the ToDo list. 2 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/readme.md: -------------------------------------------------------------------------------- 1 | Die Bilder, die in diesem Projekt verwendet werden. 2 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/coils/7_wmz.yaml: -------------------------------------------------------------------------------- 1 | ############################## Wärmemengezähler ################################ 2 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/coils/2_messwerte.yaml: -------------------------------------------------------------------------------- 1 | ############################# Sensoren ('Fühler') ############################## 2 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/coils/9_sonstiges.yaml: -------------------------------------------------------------------------------- 1 | ################################# Sonstiges #################################### 2 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/registers/7_wmz.yaml: -------------------------------------------------------------------------------- 1 | ############################## Wärmemengezähler ################################ 2 | -------------------------------------------------------------------------------- /docs/Trovis_Settings_(5576).xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/docs/Trovis_Settings_(5576).xlsx -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/registers/9_sonstiges.yaml: -------------------------------------------------------------------------------- 1 | ################################# Sonstiges #################################### 2 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/readme.md: -------------------------------------------------------------------------------- 1 | Die verschiedenen Arten der Drehschalter, jeweils mit Statusanzeige (Basis: 5576, 5579). 2 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/1px_grau.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/1px_grau.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/background.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/ww-speicher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/ww-speicher.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/1px_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/1px_transparent.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/highres_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/highres_transparent.png -------------------------------------------------------------------------------- /SmartHomeNG/shNG-plugins/trovis557x/requirements.txt: -------------------------------------------------------------------------------- 1 | pymodbus >= 2.2.0 2 | 3 | # Generiert Fehler: 4 | # pymodbus>=2.2.0;python_version<"3.8" 5 | # pymodbus>=3.0.2;python_version>="3.8" 6 | -------------------------------------------------------------------------------- /community/readme.md: -------------------------------------------------------------------------------- 1 | For community uploads - please keep in mind potential licenses of your uploads. 2 | Please upload your files to a new branch, and create a pull request when finished. 3 | -------------------------------------------------------------------------------- /HomeAssistant/secrets.yaml: -------------------------------------------------------------------------------- 1 | # add this to your secrets.yaml (HA root directory) 2 | 3 | trovis_connection_type: tcp 4 | trovis_ip: 192.168.178.59 5 | trovis_port: 502 6 | trovis_modbus_address: 246 7 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-0.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-1.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-10.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-2.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-3.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-4.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-5.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-0.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-1.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-10.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-2.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-3.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-4.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-5.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-0.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-1.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-2.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-3.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-4.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-5.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-0.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-1.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-2.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-3.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-4.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-5.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-0.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-1.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-2.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-3.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-4.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-5.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-0.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-1.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-10.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-2.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-3.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-10.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-10.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-10.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-unavailable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ1-stellung-unavailable.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-unavailable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ2-stellung-unavailable.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-unavailable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.0-stellung-unavailable.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-unavailable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.1-stellung-unavailable.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-unavailable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ3.2-stellung-unavailable.png -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-unavailable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tom-Bom-badil/samson_trovis_557x/HEAD/HomeAssistant/www/trovis557x/images/drehschalter/typ4-stellung-unavailable.png -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/input_boolean.yaml: -------------------------------------------------------------------------------- 1 | ############################# Input Boolean ################################### 2 | 3 | trovis_hk1_simu_tag_nacht: 4 | name: 'Trovis Rk1 Simulation Umstellung Tag/Nacht' 5 | initial: true 6 | -------------------------------------------------------------------------------- /templates/_readme.txt: -------------------------------------------------------------------------------- 1 | This directory contains a copy of some important files for archiving. 2 | 3 | If you figure out further configurations different to my 5576-003, 4 | please feel free to rename and adjust these files and send them back to me 5 | for integration into the project. 6 | -------------------------------------------------------------------------------- /docs/_readme.txt: -------------------------------------------------------------------------------- 1 | Settings file (xslx): 2 | 3 | Thanks to user ClearY / ClearEyetem) from the Haustechnikdialog forum for providing this file from this discussion: 4 | https://www.haustechnikdialog.de/Forum/t/226142/Neue-Fernwaermeanlage-How-to-start 5 | The file helps you to note all settings of your Trovis. 6 | -------------------------------------------------------------------------------- /community/@falkio8/readme.md: -------------------------------------------------------------------------------- 1 | @falkio8 commented on Oct 21, 2024: 2 | --- 3 | Meine persönlichen Vorlagen die auf Basis der Vorarbeit von @Tom-Bom-badil entstanden sind. Ggf. für andere 5573 Nutzer hilfreich. 4 | 5 | aktueller wip: 6 | ![grafik](https://github.com/user-attachments/assets/bd9d42e3-957a-44a6-9095-69adb05d9d5b) 7 | -------------------------------------------------------------------------------- /SmartHomeNG/shNG-etc/plugin.yaml: -------------------------------------------------------------------------------- 1 | # This code needs to be copied into the existing /etc/plugin.yaml 2 | 3 | trovis557x: 4 | class_name: trovis557x 5 | class_path: plugins.trovis557x 6 | modbus_mode: 'rtu' 7 | modbus_port: /dev/trovis 8 | # modbus_mode: 'tcp' 9 | # modbus_port: '192.168.178.59:502' 10 | 11 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/gesamtstatus/readme.md: -------------------------------------------------------------------------------- 1 | Die Dateien 'status-X.svg' sollten an das eigene Heizungsschema angepasst werden, entsprechend den in [trovis_regler_gesamtstatus](https://github.com/Tom-Bom-badil/samson_trovis_557x/blob/80c6700b1edc35a4ae95b511abf8605cfc9dd7d8/HomeAssistant/trovis557x/template_sensors.yaml#L8) festgelegten Werten (0-9). 2 | -------------------------------------------------------------------------------- /SmartHomeNG/shNG-etc/logging.yaml: -------------------------------------------------------------------------------- 1 | # This code needs to be copied into the existing /etc/logging.yaml 2 | # The corresponding logs can be found in /var/log 3 | # 4 | # WARNING - changing to 'DEBUG can produce huge amounts of data within short time 5 | 6 | loggers: 7 | plugins.trovis557x: 8 | handlers: [shng_details_file] 9 | level: WARNING 10 | # level: DEBUG 11 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/input_datetime.yaml: -------------------------------------------------------------------------------- 1 | ############################### Input Datetime ################################ 2 | 3 | both_date_and_time: 4 | name: Input with both date and time 5 | has_date: true 6 | has_time: true 7 | 8 | only_date: 9 | name: Input with only date 10 | has_date: true 11 | has_time: false 12 | 13 | only_time: 14 | name: Input with only time 15 | has_date: false 16 | has_time: true -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/coils/8_zeitprogramme.yaml: -------------------------------------------------------------------------------- 1 | ############################### Datum und Zeit ################################# 2 | 3 | - name: "Trovis Regler Auto Sommerzeit" 4 | unique_id: trovis_r_autosommerzeit 5 | slave: !secret trovis_modbus_address 6 | address: 136 7 | scan_interval: 60 8 | 9 | - name: "Trovis Regler Sommerbetrieb" 10 | unique_id: trovis_r_sommerbetrieb 11 | slave: !secret trovis_modbus_address 12 | address: 8 13 | scan_interval: 60 14 | -------------------------------------------------------------------------------- /HomeAssistant/www/loadfonts.js: -------------------------------------------------------------------------------- 1 | function loadcss() { 2 | let css = '/local/fonts.css?v=0.005' 3 | 4 | let link = document.createElement('link'); 5 | let head = document.getElementsByTagName('head')[0]; 6 | let tmp; 7 | link.rel = 'stylesheet'; 8 | link.type = 'text/css'; 9 | 10 | tmp = link.cloneNode(true); 11 | tmp.href = css; 12 | head.appendChild(tmp); 13 | console.info('%c Font Style sheet loaded', 'color: white; background: #000; font-weight: 700;'); 14 | } 15 | loadcss(); 16 | -------------------------------------------------------------------------------- /HomeAssistant/www/fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "mydsdigir"; 3 | src: url(/local/trovis557x/fonts/ds-digi.woff2) format('woff2'); 4 | } 5 | 6 | @font-face { 7 | font-family: "mydsdigib"; 8 | src: url(/local/trovis557x/fonts/ds-digib.woff2) format('woff2'); 9 | } 10 | 11 | @font-face { 12 | font-family: "mydsdigii"; 13 | src: url(/local/trovis557x/fonts/ds-digii.woff2) format('woff2'); 14 | } 15 | 16 | @font-face { 17 | font-family: "mydsdigit"; 18 | src: url(/local/trovis557x/fonts/ds-digit.woff2) format('woff2'); 19 | } 20 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/coils/1_regler.yaml: -------------------------------------------------------------------------------- 1 | ################################## Regler ##################################### 2 | 3 | - name: "Trovis Regler Sammelstoerung" 4 | unique_id: trovis_r_sammelstoerung 5 | slave: !secret trovis_modbus_address 6 | address: 0 7 | scan_interval: 60 8 | 9 | - name: "Trovis Regler Sperrung Handbetrieb" 10 | unique_id: trovis_r_handbetriebsperrung 11 | slave: !secret trovis_modbus_address 12 | address: 149 13 | scan_interval: 60 14 | 15 | - name: "Trovis Regler Sperrung Drehschalter" 16 | unique_id: trovis_r_drehschaltersperrung 17 | slave: !secret trovis_modbus_address 18 | address: 150 19 | scan_interval: 60 20 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | Informationen zu Samson Trovis 557x Heizungsreglern (und baugleichen Pewo, Yados, Sauter Modellen) und Software für deren Modbus-Anbindung. 2 | 3 | Das umfangreiche [Wiki](https://github.com/Tom-Bom-badil/samson_trovis_557x/wiki) ist ein guter Startpunkt. 4 | 5 | Bei Fragen bitte eine neue [Discussion](https://github.com/Tom-Bom-badil/samson_trovis_557x/discussions) starten. 6 | 7 | ------------ 8 | 9 | Information on the Samson Trovis 557x heating controllers (and identical Pewo, Yados, Sauter models) and software to connect it to modbus. 10 | 11 | The [Wiki](https://github.com/Tom-Bom-badil/samson_trovis_557x/wiki) (German only) is a good starting point. 12 | 13 | In case of questions, please use the [Discussions](https://github.com/Tom-Bom-badil/samson_trovis_557x/discussions) section. 14 | -------------------------------------------------------------------------------- /templates/5576-003_listen.py: -------------------------------------------------------------------------------- 1 | listen_tabelle = { # TROVIS-Listen 2 | # Register 3 | 'Liste_Schalter': {0: 'PA', 1: 'Auto', 2: 'Standby', 3: 'Hand', 4: 'Sonne', 5: 'Mond'}, 4 | 'Liste_Lesemodus': {0: '24h', 1: 'Cont', 2: 'Coil'}, 5 | 'Liste_Durchfluss': {0: 'm³/h', 1: 'l/h'}, 6 | 'Liste_Volumen': {0: 'm³', 1: 'l'}, 7 | 'Liste_Arbeit': {0: 'MWh', 1: 'kWh', 2: 'GJ'}, 8 | 'Liste_Leistung': {0: 'kW', 1: 'MW'}, 9 | 'Liste_Temperatur': {0: '°C'}, 10 | # Coils 11 | 'Liste_NJ': {0: 'nein', 1: 'ja'}, 12 | 'Liste_AE': {0: 'aus', 1: 'ein'}, 13 | 'Liste_IA': {0: 'inaktiv', 1: 'aktiv'}, 14 | 'Liste_HZ': {0: 'halt', 1: 'zu'}, 15 | 'Liste_HA': {0: 'halt', 1: 'auf'}, 16 | 'Liste_FA': {0: 'ferngesteuert', 1: 'autark'}, 17 | 'Liste_FS': {0: 'fallend', 1: 'steigend'}, 18 | 19 | } -------------------------------------------------------------------------------- /SmartHomeNG/shNG-plugins/trovis557x/_listen.py: -------------------------------------------------------------------------------- 1 | listen_tabelle = { # TROVIS-Listen 2 | # Register 3 | 'Liste_Schalter': {0: 'PA', 1: 'Auto', 2: 'Standby', 3: 'Hand', 4: 'Sonne', 5: 'Mond'}, 4 | 'Liste_Lesemodus': {0: '24h', 1: 'Cont', 2: 'Coil'}, 5 | 'Liste_Durchfluss': {0: 'm³/h', 1: 'l/h'}, 6 | 'Liste_Volumen': {0: 'm³', 1: 'l'}, 7 | 'Liste_Arbeit': {0: 'MWh', 1: 'kWh', 2: 'GJ'}, 8 | 'Liste_Leistung': {0: 'kW', 1: 'MW'}, 9 | 'Liste_Temperatur': {0: '°C'}, 10 | # Coils 11 | 'Liste_NJ': {0: 'nein', 1: 'ja'}, 12 | 'Liste_AE': {0: 'aus', 1: 'ein'}, 13 | 'Liste_IA': {0: 'inaktiv', 1: 'aktiv'}, 14 | 'Liste_HZ': {0: 'halt', 1: 'zu'}, 15 | 'Liste_HA': {0: 'halt', 1: 'auf'}, 16 | 'Liste_FA': {0: 'ferngesteuert', 1: 'autark'}, 17 | 'Liste_FS': {0: 'fallend', 1: 'steigend'}, 18 | 19 | } 20 | -------------------------------------------------------------------------------- /templates/5573_rev2.14_coil-blocks: -------------------------------------------------------------------------------- 1 | #Gerätekennung BlockAnfang BlockEnde Klasse 2 | "5573"____________; 1; 9; 1 3 | "5573"____________; 10; 18; 1 4 | "5573"____________; 22; 23; 1 5 | "5573"____________; 33; 34; 2 6 | "5573"____________; 57; 67; 2 7 | "5573"____________; 88; 112; 3 8 | "5573"____________; 116; 119; 3 9 | "5573"____________; 133; 144; 3 10 | "5573"____________; 145; 164; 3 11 | "5573"____________; 246; 255; 3 12 | "5573"____________; 300; 309; 3 13 | "5573"____________; 998; 1009; 1 14 | "5573"____________; 1025; 1044; 3 15 | "5573"____________; 1200; 1213; 3 16 | "5573"____________; 1225; 1238; 3 17 | "5573"____________; 1800; 1809; 3 18 | "5573"____________; 1825; 1845; 3 19 | -------------------------------------------------------------------------------- /HomeAssistant/configuration.yaml: -------------------------------------------------------------------------------- 1 | # Add this to your configuration.yaml (HA root directory) 2 | 3 | homeassistant: 4 | packages: 5 | trovis: 6 | input_number: !include trovis557x/input_numbers.yaml 7 | input_datetime: !include trovis557x/input_datetime.yaml 8 | sensor main: !include trovis557x/template_sensors.yaml 9 | sensor statistics: !include trovis557x/statistics.yaml 10 | sensor curves: !include trovis557x/heating_curves.yaml 11 | template triggers: !include trovis557x/trigger_actions.yaml 12 | automation start: !include trovis557x/trigger_startup.yaml 13 | automation update: !include trovis557x/trigger_updates.yaml 14 | 15 | modbus: 16 | - name: trovis 17 | type: !secret trovis_connection_type 18 | host: !secret trovis_ip 19 | port: !secret trovis_port 20 | sensors: !include_dir_merge_list trovis557x/registers/ 21 | binary_sensors: !include_dir_merge_list trovis557x/coils/ 22 | message_wait_milliseconds: 30 23 | timeout: 10 24 | delay: 5 25 | -------------------------------------------------------------------------------- /SmartHomeNG/readme.md: -------------------------------------------------------------------------------- 1 | Ein smartHomeNG Plugin zum Auslesen von SAMSON TROVIS 557x Automationssystemen (Heizungsregler). Unterstützt werden alle Modelle mit Modbus (5571, 5573, 5576, 5578, 5579). 2 | 3 | Die Dateien gehören in die angegebenen Unterverzeichnisse von shNG (üblicherweise /usr/local/smarthome/). 4 | Achtung! Das offizielle shNG-Repo kann von diesen Dateien abweichen, da ich meine Änderungen ausschliesslich hier durchführe. 5 | 6 | Weitere Details sind im [Wiki](https://github.com/Tom-Bom-badil/samson_trovis_557x/wiki) zu finden. 7 | 8 | ------------ 9 | 10 | A smartHomeNG plugin to read out SAMSON TROVIS 557x Heating Automation Controllers. The plugin supports all Modbus models (5571, 5573, 5576, 5578, 5579). 11 | 12 | All files to be copied into the mentioned subdirectories of shNG (usually /usr/local/smarthome). 13 | Attention! The official shNG repo may deviate from these files, as I am no longer pushing changes towards there. 14 | 15 | Further details can be found on the [Wiki](https://github.com/Tom-Bom-badil/samson_trovis_557x/wiki) (German). 16 | -------------------------------------------------------------------------------- /templates/5573_rev2.54_coil-blocks: -------------------------------------------------------------------------------- 1 | #Gerätekennung BlockAnfang BlockEnde Klasse 2 | "5573"____________; 1; 9; 1 3 | "5573"____________; 10; 18; 1 4 | "5573"____________; 22; 23; 1 5 | "5573"____________; 33; 34; 2 6 | "5573"____________; 57; 67; 2 7 | "5573"____________; 88; 113; 3 8 | "5573"____________; 116; 119; 3 9 | "5573"____________; 130; 144; 3 10 | "5573"____________; 145; 172; 3 11 | "5573"____________; 246; 255; 3 12 | "5573"____________; 300; 309; 3 13 | "5573"____________; 401; 422; 3 14 | "5573"____________; 500; 531; 3 15 | "5573"____________; 601; 620; 3 16 | "5573"____________; 801; 802; 3 17 | "5573"____________; 901; 928; 3 18 | "5573"____________; 998; 1009; 1 19 | "5573"____________; 1025; 1046; 3 20 | "5573"____________; 1200; 1213; 3 21 | "5573"____________; 1225; 1238; 3 22 | "5573"____________; 1800; 1812; 3 23 | "5573"____________; 1825; 1845; 3 24 | "5573"____________; 2101; 2124; 3 25 | "5573"____________; 2201; 2224; 3 26 | "5573"____________; 9910; 9910; 3 27 | -------------------------------------------------------------------------------- /HomeAssistant/readme.md: -------------------------------------------------------------------------------- 1 | !!! Achtung - work in progress - hier passieren noch jede Menge Änderungen !!! 2 | Einbindung einer Trovis 557x in Home Assistant: 3 | 4 | - Schritt 1: Inhalt der configuration.yaml in die eigene Datei einfügen (Datei liegt im Root-Verzeichnis von HA). 5 | - Schritt 2: Inhalt der secrets.yaml in die eigene Datei einfügen und ggf. anpassen (Datei liegt im Root-Verzeichnis von HA). 6 | - Schritt 3: Im Root-Verzeichnis von HA ein Verzeichnis trovis557x erstellen, Inhalt von trovis557x/* hineinkopieren. 7 | - Schritt 4: Den Inhalt von www in das eigene www-Verzeichnis kopieren (nur notwendig, wenn die Visualisierung übernommen werden soll). 8 | - Schritt 5: Neustart von HA, danach home-assistant.log auf mögliche Fehler prüfen. 9 | 10 | Hinweis: Die Dateistruktur entspricht der von Home Assistant, beginnend mit dem HA-Rootverzeichnis. Der Hauptteil der Konfiguration befindet sich nach Funktion geordnet im Verzeichnis trovis557x/. Grund dafür ist, späteren Einsteigern die Einarbeitung in die verschiedenen Reglermodelle mit ihren verschiedenen Funktionen, Sensoren und der Anzahl der Heizkreise zu vereinfachen. 11 | 12 | ![image](https://github.com/user-attachments/assets/8a63f0f1-9b86-4e58-8d63-7ef36a1bdbc8) 13 | 14 | ![image](https://github.com/user-attachments/assets/9e5afcb6-dc93-482a-af58-27dabdc65364) 15 | 16 | ![image](https://github.com/user-attachments/assets/92a11eab-7830-4968-a9ad-f55ce3d4e378) 17 | 18 | ![image](https://github.com/user-attachments/assets/316d281d-3a5d-4682-aa76-038e5564cf59) 19 | -------------------------------------------------------------------------------- /tools/_readme.txt: -------------------------------------------------------------------------------- 1 | Sniffers / .py files: 2 | 3 | Use these tools with caution - they were made quick&dirty and are highly experimental. 4 | The tools check one by one if a register/coil is readable. 5 | If yes, the value is displayed - if no, an error is shown. 6 | At the end, all found blocks are shown, and a 'quick read-out' by using validated blocks 7 | instead of single registers/coils is done. 8 | 9 | The tools require that you can communicate with your Trovis, so a stable interface is a MUST. 10 | 11 | The following points need to be validated / changed in case of need: 12 | - Interface: Default in code is /dev/ttytrovis, may need to be changed to /dev/trovis or such 13 | - Unit no.: Default in code is 247, may need to be changed as set in trovis menu 14 | 15 | A 'block' the sniffers checks for readable registers/coils should not exceed 120 16 | (recommended: 100 in order to keep it easy and to be on safe side). 17 | 18 | Pretty much on top of the code, you can add search blocks by adding new lines as follows 19 | (add as many lines/search blocks as you like): 20 | suchbereiche.append([0,99]) # Check first block of 100 registers (0-99) 21 | suchbereiche.append([100,199]) # Check second block of 100 registers (100-199) 22 | suchbereiche.append([765,798]) # Check third block of 100 registers (765-798) 23 | 24 | Usage: 25 | - check/validate above points 26 | - amend registers as needed in source code 27 | - run a shell: 28 | > cd /usr/local/smarthome/plugins/trovis_557x/tools # or wherever shNG resides 29 | > python3 register_sniffer.py 30 | > python3 coils_sniffer.py 31 | 32 | Note: When seaching for many registers/coils, it may take hours to finish! 33 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/fonts/DIGITAL.TXT: -------------------------------------------------------------------------------- 1 | DS-Font's TrueType Fonts 2 | Font name: DS-Digital (Normal, Bold, Italic, Bold Italic), Version 1.0 3 | Author: Dusit Supasawat 4 | Web Site: http://ds-font.hypermart.net 5 | Contact me: Dusit Supasawat, 325/38 Suksawat32 Ratburana Bangkok Thailand 10140 6 | Email address: dusit@mailcity.com 7 | 8 | Thanks for trying! We hope you really enjoy this my typeface. This font is 9 | distributed as shareware. You can use this font for a long time as you want. 10 | After all, when you think this font can be usefulness for you. You can send 11 | me some money, that would be way cool. 12 | 13 | I'm only asking $20 US shareware fee per this typeface for personal use. 14 | And $45 US is the usual amount per this typeface for commercial use. 15 | 16 | Distribution: You are free to distribute this archive so long as this text 17 | file is distributed with the archive, the font file have not been modified, 18 | and it is understood that the font's copyright remains with the original 19 | author (Dusit Supasawat). 20 | 21 | To register send your payment to: 22 | 23 | Dusit Supasawat 24 | 325/38 Suksawat32 Ratburana 25 | Bangkok Thailand 10140 26 | 27 | And fill out something as this order form, and send it in with your payment. 28 | 29 | Font name:_________________________________________ 30 | Your information 31 | Name:______________________________________________ 32 | Address:___________________________________________ 33 | City, State : _____________________________________ 34 | Zip Code:__________________________________________ 35 | Country:___________________________________________ 36 | E-MAIL address:____________________________________ 37 | 38 | 39 | You will receive fonts which you order by Email after registration. These fonts 40 | will be generated for you by specify your name in font information. 41 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/gesamtstatus/status-3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 16 | 17 | 18 | Dummy Seite 19 | 20 | Tabelle.222 21 | Status 3 Bitte in HomeAssistant die Datei www/trovis557x/stat... 22 | 23 | 24 | 25 | Status 3 26 | Bitte in HomeAssistant die Datei 27 | www/trovis557x/images/gesamtstatus-3.svg 28 | mit einem eigenen Bild ersetzen. 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/gesamtstatus/status-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 16 | 17 | 18 | Dummy Seite 19 | 20 | Tabelle.222 21 | Status 3 Bitte in HomeAssistant die Datei www/trovis557x/stat... 22 | 23 | 24 | 25 | Status 4 26 | Bitte in HomeAssistant die Datei 27 | www/trovis557x/images/gesamtstatus-4.svg 28 | mit einem eigenen Bild ersetzen. 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/gesamtstatus/status-5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 16 | 17 | 18 | Dummy Seite 19 | 20 | Tabelle.222 21 | Status 3 Bitte in HomeAssistant die Datei www/trovis557x/stat... 22 | 23 | 24 | 25 | Status 5 26 | Bitte in HomeAssistant die Datei 27 | www/trovis557x/images/gesamtstatus-5.svg 28 | mit einem eigenen Bild ersetzen. 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/gesamtstatus/status-6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 16 | 17 | 18 | Dummy Seite 19 | 20 | Tabelle.222 21 | Status 3 Bitte in HomeAssistant die Datei www/trovis557x/stat... 22 | 23 | 24 | 25 | Status 6 26 | Bitte in HomeAssistant die Datei 27 | www/trovis557x/images/gesamtstatus-6.svg 28 | mit einem eigenen Bild ersetzen. 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/gesamtstatus/status-7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 16 | 17 | 18 | Dummy Seite 19 | 20 | Tabelle.222 21 | Status 3 Bitte in HomeAssistant die Datei www/trovis557x/stat... 22 | 23 | 24 | 25 | Status 7 26 | Bitte in HomeAssistant die Datei 27 | www/trovis557x/images/gesamtstatus-7.svg 28 | mit einem eigenen Bild ersetzen. 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/gesamtstatus/status-8.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 16 | 17 | 18 | Dummy Seite 19 | 20 | Tabelle.222 21 | Status 3 Bitte in HomeAssistant die Datei www/trovis557x/stat... 22 | 23 | 24 | 25 | Status 8 26 | Bitte in HomeAssistant die Datei 27 | www/trovis557x/images/gesamtstatus-8.svg 28 | mit einem eigenen Bild ersetzen. 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /HomeAssistant/www/trovis557x/images/gesamtstatus/status-9.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 16 | 17 | 18 | Dummy Seite 19 | 20 | Tabelle.222 21 | Status 3 Bitte in HomeAssistant die Datei www/trovis557x/stat... 22 | 23 | 24 | 25 | Status 9 26 | Bitte in HomeAssistant die Datei 27 | www/trovis557x/images/gesamtstatus-9.svg 28 | mit einem eigenen Bild ersetzen. 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/registers/8_zeitprogramme.yaml: -------------------------------------------------------------------------------- 1 | ############################### Datum und Zeit ################################### 2 | 3 | - name: "Trovis Regler Datum" 4 | unique_id: trovis_z_datum 5 | slave: !secret trovis_modbus_address 6 | address: 100 7 | scan_interval: 60 8 | 9 | - name: "Trovis Regler Jahr" 10 | unique_id: trovis_z_jahr 11 | slave: !secret trovis_modbus_address 12 | address: 101 13 | scan_interval: 60 14 | 15 | - name: "Trovis Regler Uhrzeit" 16 | unique_id: trovis_z_uhrzeit 17 | slave: !secret trovis_modbus_address 18 | address: 99 19 | scan_interval: 60 20 | 21 | - name: "Trovis Hk123 Sommerbetrieb ein" 22 | unique_id: trovis_z_hk123_sommer_ein 23 | slave: !secret trovis_modbus_address 24 | address: 112 25 | scan_interval: 900 26 | 27 | - name: "Trovis Hk123 Sommerbetrieb aus" 28 | unique_id: trovis_z_hk123_sommer_aus 29 | slave: !secret trovis_modbus_address 30 | address: 113 31 | scan_interval: 900 32 | 33 | - name: "Trovis Hk123 Sommerbetrieb ein Tage" 34 | unique_id: trovis_z_hk123_sommer_ein_tage 35 | slave: !secret trovis_modbus_address 36 | address: 114 37 | scan_interval: 900 38 | 39 | - name: "Trovis Hk123 Sommerbetrieb aus Tage" 40 | unique_id: trovis_z_hk123_sommer_aus_tage 41 | slave: !secret trovis_modbus_address 42 | address: 115 43 | scan_interval: 900 44 | 45 | - name: "Trovis Hk4 Desinfektionstag" 46 | unique_id: trovis_z_hk4_desinfektionstag 47 | slave: !secret trovis_modbus_address 48 | address: 1830 49 | scan_interval: 900 50 | 51 | - name: "Trovis Hk4 Desinfektionsstart" 52 | unique_id: trovis_z_hk4_desinfektionsstart 53 | slave: !secret trovis_modbus_address 54 | address: 1831 55 | scan_interval: 900 56 | 57 | - name: "Trovis Hk4 Desinfektionsende" 58 | unique_id: trovis_z_hk4_desinfektionsende 59 | slave: !secret trovis_modbus_address 60 | address: 1832 61 | scan_interval: 900 62 | 63 | - name: "Trovis Hk4 Desinfektionsdauer" 64 | unique_id: trovis_z_hk4_desinfektionsdauer 65 | slave: !secret trovis_modbus_address 66 | address: 1838 67 | scan_interval: 60 68 | 69 | -------------------------------------------------------------------------------- /snippets/SmartHomeNG/heizkurve.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # heizkurve.py 3 | 4 | _VERSION = '0.1.0' 5 | _DESCRIPTION = 'Erzeugt Daten für plot.heatingcurve für Samson Trovis Regler für ATs -25..20 °C' 6 | 7 | # {{ plot.heatingcurve('heizkurve', 'heizung.rk1.heizkurve.wertepaare', 'heizung.sensoren.af1', 'heizung.sensoren.vf1', 8 | # { 9 | # chart: {height:'28%', zoomType:'xy'}, 10 | # title: {text:''}, 11 | # legend:{enabled:false}, 12 | # xAxis: {title: {x:0, y:-25}, labels:{y:-5}, min: -25, tickPosition:'inside', tickLength:'2', showLastLabel:false, tickInterval:5, reversed: true}, 13 | # yAxis: {title: {x:40, y:15}, labels:{x:20,y:15}, tickPosition:'inside', tickLength:'2', showFirstLabel:false, max: 40}, 14 | # plotOptions: {series: {color:'#FF0000'}}, 15 | # series:[{className: 'series-1-custom-css'}] 16 | # } 17 | # ) }} 18 | 19 | # Ausgangsformel: 20 | # 24+Niveau+2*Steigung*(RTsoll-20) - (0,1+0,9*Steigung) * (1,5*(AT-20)+0,01*(AT-20)^2) 21 | 22 | # Dummy Items, bitte ignorieren 23 | # heizung.sensoren.af1 = 6.2 24 | # heizung.rk1.status.tagbetrieb_rk1 = 1 25 | # heizung.rk1.status.nachtbetrieb_rk1 = 0 26 | # heizung.rk1.heizkurve.niveau = -1 27 | # heizung.rk1.heizkurve.steigung = 0.2 28 | # heizung.rk1.heizkurve.tag_soll = 22 29 | # heizung.rk1.heizkurve.nacht_soll = 19 30 | # heizung.rk1.heizkurve.vorlauf_min = 20 31 | # heizung.rk1.heizkurve.vorlauf_max = 37 32 | 33 | def heizkurve(sh): 34 | AT = -25 35 | KURVE = '[' 36 | if sh.heizung.rk1.status.tagbetrieb_rk1(): SOLL = sh.heizung.rk1.heizkurve.tag_soll() 37 | else: SOLL = sh.heizung.rk1.heizkurve.nacht_soll() 38 | while AT < 21: 39 | VL = 24 + sh.heizung.rk1.heizkurve.niveau() + \ 40 | 2 * sh.heizung.rk1.heizkurve.steigung() * (SOLL-20) - \ 41 | (0.1 + 0.9 * sh.heizung.rk1.heizkurve.steigung()) * \ 42 | (1.5*(AT-20) + 0.01 * pow(AT-20,2)) 43 | if VLsh.heizung.rk1.heizkurve.vorlauf_max(): VL=sh.heizung.rk1.heizkurve.vorlauf_max() 45 | KURVE=KURVE+'['+str(AT)+','+str(round(VL,1))+'],' 46 | AT += 1 47 | KURVE = KURVE[:-1] + ']' 48 | # sh.heizung.rk1.heizkurve.wertepaare(KURVE) 49 | return KURVE 50 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/coils/3_hk1.yaml: -------------------------------------------------------------------------------- 1 | ################# Heizkreis 1 (Regelkreis 1 - CO1/PA1) ######################## 2 | 3 | - name: "Trovis Hk1 Handbetrieb" 4 | unique_id: trovis_hk1_handbetrieb 5 | slave: !secret trovis_modbus_address 6 | address: 4 7 | scan_interval: 60 8 | 9 | - name: "Trovis Hk1 Automatikbetrieb" 10 | unique_id: trovis_hk1_automatikbetrieb 11 | slave: !secret trovis_modbus_address 12 | address: 999 13 | scan_interval: 60 14 | 15 | - name: "Trovis Hk1 Tagbetrieb" 16 | unique_id: trovis_hk1_tagbetrieb 17 | slave: !secret trovis_modbus_address 18 | address: 1000 19 | scan_interval: 60 20 | 21 | - name: "Trovis Hk1 Nachtbetrieb" 22 | unique_id: trovis_hk1_nachtbetrieb 23 | slave: !secret trovis_modbus_address 24 | address: 1001 25 | scan_interval: 60 26 | 27 | - name: "Trovis Hk1 Haltebetrieb" 28 | unique_id: trovis_hk1_haltebetrieb 29 | slave: !secret trovis_modbus_address 30 | address: 1002 31 | scan_interval: 60 32 | 33 | - name: "Trovis Hk1 Stuetzbetrieb" 34 | unique_id: trovis_hk1_stuetzbetrieb 35 | slave: !secret trovis_modbus_address 36 | address: 1003 37 | scan_interval: 60 38 | 39 | - name: "Trovis Hk1 Aufheizbetrieb" 40 | unique_id: trovis_hk1_aufheizbetrieb 41 | slave: !secret trovis_modbus_address 42 | address: 1004 43 | scan_interval: 60 44 | 45 | - name: "Trovis Hk1 Ruecklauftemperaturbegrenzung" 46 | unique_id: trovis_hk1_rlbegrenzung 47 | slave: !secret trovis_modbus_address 48 | address: 1005 49 | scan_interval: 60 50 | 51 | - name: "Trovis Hk1 AT Abschaltung" 52 | unique_id: trovis_hk1_atabschaltung 53 | slave: !secret trovis_modbus_address 54 | address: 1006 55 | scan_interval: 60 56 | 57 | - name: "Trovis Hk1 Standby" 58 | unique_id: trovis_hk1_standby 59 | slave: !secret trovis_modbus_address 60 | address: 1007 61 | scan_interval: 60 62 | 63 | - name: "Trovis Hk1 Frostschutz" 64 | unique_id: trovis_hk1_frostschutz 65 | slave: !secret trovis_modbus_address 66 | address: 1008 67 | scan_interval: 60 68 | 69 | # Binaerausgang BA1 70 | - name: "Trovis HK1 Umwaelzpumpe" 71 | unique_id: trovis_hk1_up1 72 | slave: !secret trovis_modbus_address 73 | address: 56 74 | scan_interval: 60 75 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/coils/4_hk2.yaml: -------------------------------------------------------------------------------- 1 | ################# Heizkreis 2 (Regelkreis 2 - CO2/PA2) ######################## 2 | 3 | - name: "Trovis Hk2 Handbetrieb" 4 | unique_id: trovis_hk2_handbetrieb 5 | slave: !secret trovis_modbus_address 6 | address: 5 7 | scan_interval: 60 8 | 9 | - name: "Trovis Hk2 Automatikbetrieb" 10 | unique_id: trovis_hk2_automatikbetrieb 11 | slave: !secret trovis_modbus_address 12 | address: 1199 13 | scan_interval: 60 14 | 15 | - name: "Trovis Hk2 Tagbetrieb" 16 | unique_id: trovis_hk2_tagbetrieb 17 | slave: !secret trovis_modbus_address 18 | address: 1200 19 | scan_interval: 60 20 | 21 | - name: "Trovis Hk2 Nachtbetrieb" 22 | unique_id: trovis_hk2_nachtbetrieb 23 | slave: !secret trovis_modbus_address 24 | address: 1201 25 | scan_interval: 60 26 | 27 | - name: "Trovis Hk2 Haltebetrieb" 28 | unique_id: trovis_hk2_haltebetrieb 29 | slave: !secret trovis_modbus_address 30 | address: 1202 31 | scan_interval: 60 32 | 33 | - name: "Trovis Hk2 Stuetzbetrieb" 34 | unique_id: trovis_hk2_stuetzbetrieb 35 | slave: !secret trovis_modbus_address 36 | address: 1203 37 | scan_interval: 60 38 | 39 | - name: "Trovis Hk2 Aufheizbetrieb" 40 | unique_id: trovis_hk2_aufheizbetrieb 41 | slave: !secret trovis_modbus_address 42 | address: 1204 43 | scan_interval: 60 44 | 45 | - name: "Trovis Hk2 Ruecklauftemperaturbegrenzung" 46 | unique_id: trovis_hk2_rlbegrenzung 47 | slave: !secret trovis_modbus_address 48 | address: 1205 49 | scan_interval: 60 50 | 51 | - name: "Trovis Hk2 AT Abschaltung" 52 | unique_id: trovis_hk2_atabschaltung 53 | slave: !secret trovis_modbus_address 54 | address: 1206 55 | scan_interval: 60 56 | 57 | - name: "Trovis Hk2 Standby" 58 | unique_id: trovis_hk2_standby 59 | slave: !secret trovis_modbus_address 60 | address: 1207 61 | scan_interval: 60 62 | 63 | - name: "Trovis Hk2 Frostschutz" 64 | unique_id: trovis_hk2_frostschutz 65 | slave: !secret trovis_modbus_address 66 | address: 1208 67 | scan_interval: 60 68 | 69 | # Binaerausgang BA2 70 | - name: "Trovis Hk2 Umwaelzpumpe" 71 | unique_id: trovis_hk2_up2 72 | slave: !secret trovis_modbus_address 73 | address: 57 74 | scan_interval: 60 75 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/coils/5_hk3.yaml: -------------------------------------------------------------------------------- 1 | ################# Heizkreis 3 (Regelkreis 3 - CO3/PA3) ######################## 2 | # 3 | # Hk3 ist nur bei den 'großen' Modellen vorhanden (5578, 5579). 4 | # Warmwasser ist Hk4! 5 | 6 | - name: "Trovis Hk3 Handbetrieb" 7 | unique_id: trovis_hk3_handbetrieb 8 | slave: !secret trovis_modbus_address 9 | address: 6 10 | scan_interval: 60 11 | 12 | - name: "Trovis Hk3 Automatikbetrieb" 13 | unique_id: trovis_hk3_automatikbetrieb 14 | slave: !secret trovis_modbus_address 15 | address: 1399 16 | scan_interval: 60 17 | 18 | - name: "Trovis Hk3 Tagbetrieb" 19 | unique_id: trovis_hk3_tagbetrieb 20 | slave: !secret trovis_modbus_address 21 | address: 1400 22 | scan_interval: 60 23 | 24 | - name: "Trovis Hk3 Nachtbetrieb" 25 | unique_id: trovis_hk3_nachtbetrieb 26 | slave: !secret trovis_modbus_address 27 | address: 1401 28 | scan_interval: 60 29 | 30 | - name: "Trovis Hk3 Haltebetrieb" 31 | unique_id: trovis_hk3_haltebetrieb 32 | slave: !secret trovis_modbus_address 33 | address: 1402 34 | scan_interval: 60 35 | 36 | - name: "Trovis Hk3 Stuetzbetrieb" 37 | unique_id: trovis_hk3_stuetzbetrieb 38 | slave: !secret trovis_modbus_address 39 | address: 1403 40 | scan_interval: 60 41 | 42 | - name: "Trovis Hk3 Aufheizbetrieb" 43 | unique_id: trovis_hk3_aufheizbetrieb 44 | slave: !secret trovis_modbus_address 45 | address: 1404 46 | scan_interval: 60 47 | 48 | - name: "Trovis Hk3 Ruecklauftemperaturbegrenzung" 49 | unique_id: trovis_hk3_rlbegrenzung 50 | slave: !secret trovis_modbus_address 51 | address: 1405 52 | scan_interval: 60 53 | 54 | - name: "Trovis Hk3 AT Abschaltung" 55 | unique_id: trovis_hk3_atabschaltung 56 | slave: !secret trovis_modbus_address 57 | address: 1406 58 | scan_interval: 60 59 | 60 | - name: "Trovis Hk3 Standby" 61 | unique_id: trovis_hk3_standby 62 | slave: !secret trovis_modbus_address 63 | address: 1407 64 | scan_interval: 60 65 | 66 | - name: "Trovis Hk3 Frostschutz" 67 | unique_id: trovis_hk3_frostschutz 68 | slave: !secret trovis_modbus_address 69 | address: 1408 70 | scan_interval: 60 71 | 72 | # Binaerausgang BA3 73 | - name: "Trovis Hk3 Umwaelzpumpe" 74 | unique_id: trovis_hk3_up3 75 | slave: !secret trovis_modbus_address 76 | address: 58 77 | scan_interval: 60 78 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/coils/6_hk4_ww.yaml: -------------------------------------------------------------------------------- 1 | ################# Heizkreis 4, Warmwasser (Regelkreis 4 - CO4/PA4) ############ 2 | 3 | - name: "Trovis Hk4 Handbetrieb" 4 | unique_id: trovis_hk4_handbetrieb 5 | slave: !secret trovis_modbus_address 6 | address: 7 7 | scan_interval: 60 8 | 9 | - name: "Trovis Hk4 Automatikbetrieb" 10 | unique_id: trovis_hk4_automatikbetrieb 11 | slave: !secret trovis_modbus_address 12 | address: 1799 13 | scan_interval: 60 14 | 15 | - name: "Trovis Hk4 Desinfektion aktiv" 16 | unique_id: trovis_hk4_desinfektion 17 | slave: !secret trovis_modbus_address 18 | address: 1800 19 | scan_interval: 60 20 | 21 | - name: "Trovis Hk4 TW Vorrang" 22 | unique_id: trovis_hk4_twvorrang 23 | slave: !secret trovis_modbus_address 24 | address: 1801 25 | scan_interval: 60 26 | 27 | - name: "Trovis Hk4 Maximale Ladetemperatur" 28 | unique_id: trovis_hk4_maxladetemp 29 | slave: !secret trovis_modbus_address 30 | address: 1802 31 | scan_interval: 60 32 | 33 | - name: "Trovis Hk4 Ruecklauftemperaturbegrenzung" 34 | unique_id: trovis_hk4_rlbegrenzung 35 | slave: !secret trovis_modbus_address 36 | address: 1803 37 | scan_interval: 60 38 | 39 | - name: "Trovis Hk4 Standby" 40 | unique_id: trovis_hk4_standby 41 | slave: !secret trovis_modbus_address 42 | address: 1804 43 | scan_interval: 60 44 | 45 | - name: "Trovis Hk4 Frostschutz" 46 | unique_id: trovis_hk4_frostschutz 47 | slave: !secret trovis_modbus_address 48 | address: 1805 49 | scan_interval: 60 50 | 51 | - name: "Trovis Hk4 Zwangsladung" 52 | unique_id: trovis_hk4_zwangsladung 53 | slave: !secret trovis_modbus_address 54 | address: 1806 55 | scan_interval: 60 56 | 57 | - name: "Trovis Hk4 Solar UP1" 58 | unique_id: trovis_hk4_solar_up1 59 | slave: !secret trovis_modbus_address 60 | address: 1807 61 | scan_interval: 60 62 | 63 | - name: "Trovis Hk4 SF2 Zwangsladung" 64 | unique_id: trovis_hk4_sf2zwangsladung 65 | slave: !secret trovis_modbus_address 66 | address: 1808 67 | scan_interval: 60 68 | 69 | - name: "Trovis Hk4 Zwischenheizbetrieb" 70 | unique_id: trovis_hk4_zwischenheizbetrieb 71 | slave: !secret trovis_modbus_address 72 | address: 1830 73 | scan_interval: 60 74 | 75 | # Binaerausgang BA4 76 | - name: "Trovis HK4 Speicherladepumpe" 77 | unique_id: trovis_hk4_slp 78 | slave: !secret trovis_modbus_address 79 | address: 59 80 | scan_interval: 60 81 | 82 | # Binaerausgang BA5 83 | - name: "Trovis HK4 Zirkulationspumpe" 84 | unique_id: trovis_hk4_zp 85 | slave: !secret trovis_modbus_address 86 | address: 60 87 | scan_interval: 60 88 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/registers/1_regler.yaml: -------------------------------------------------------------------------------- 1 | ################################## Regler ##################################### 2 | 3 | - name: "Trovis Regler Modell" 4 | unique_id: trovis_r_modell 5 | slave: !secret trovis_modbus_address 6 | address: 0 7 | scan_interval: 3600 8 | 9 | - name: "Trovis Regler Hydraulik (Anlage)" 10 | unique_id: trovis_r_anlage 11 | slave: !secret trovis_modbus_address 12 | address: 1 13 | scale: 0.1 14 | precision: 1 15 | scan_interval: 60 16 | 17 | - name: "Trovis Regler Firmwareversion" 18 | unique_id: trovis_r_firmware 19 | slave: !secret trovis_modbus_address 20 | address: 2 21 | scale: 0.01 22 | precision: 2 23 | scan_interval: 900 24 | 25 | - name: "Trovis Regler Hardwareversion" 26 | unique_id: trovis_r_hardware 27 | slave: !secret trovis_modbus_address 28 | address: 3 29 | #precision: 0 30 | scan_interval: 3600 31 | 32 | - name: "Trovis Regler Sonderfunktionen" 33 | unique_id: trovis_r_sonderfunktionen 34 | slave: !secret trovis_modbus_address 35 | address: 4 36 | scan_interval: 3600 37 | 38 | - name: "Trovis Regler Seriennummer" 39 | unique_id: trovis_r_seriennummer 40 | slave: !secret trovis_modbus_address 41 | address: 5 42 | scan_interval: 3600 43 | 44 | - name: "Trovis Regler Fehlerstatus" 45 | unique_id: trovis_r_fehlerstatus 46 | slave: !secret trovis_modbus_address 47 | address: 149 48 | scan_interval: 60 49 | 50 | - name: "Trovis Regler Schalter oben" 51 | unique_id: trovis_r_schalteroben 52 | slave: !secret trovis_modbus_address 53 | address: 102 54 | scan_interval: 60 55 | 56 | - name: "Trovis Regler Schalter mitte" 57 | unique_id: trovis_r_schaltermitte 58 | slave: !secret trovis_modbus_address 59 | address: 103 60 | scan_interval: 60 61 | 62 | - name: "Trovis Regler Schalter unten" 63 | unique_id: trovis_r_schalterunten 64 | slave: !secret trovis_modbus_address 65 | address: 104 66 | scan_interval: 60 67 | 68 | - name: "Trovis Regler AT Grenzwert" 69 | unique_id: trovis_r_sommer_at_min 70 | slave: !secret trovis_modbus_address 71 | address: 116 72 | scan_interval: 900 73 | scale: 0.1 74 | precision: 1 75 | unit_of_measurement: "°C" 76 | device_class: temperature 77 | data_type: int16 78 | min_value: 0 79 | max_value: 30 80 | nan_value: 32767 81 | 82 | - name: "Trovis Regler AT Verzoegerung" 83 | unique_id: trovis_r_at_verzoegerung 84 | slave: !secret trovis_modbus_address 85 | address: 117 86 | scan_interval: 900 87 | unit_of_measurement: "K" 88 | device_class: temperature 89 | data_type: int16 90 | min_value: 1 91 | max_value: 6 92 | 93 | # bitte noch ignorieren, Vorbereitung für spätere Schreibvorgänge 94 | # 1732 -> Register 144 95 | # besser: switch, command_on/command_off, write_type holding 96 | - name: "Trovis Regler Schreibzugriff setzen" 97 | unique_id: trovis_r_schreibzugriff 98 | slave: !secret trovis_modbus_address 99 | address: 144 100 | scan_interval: 60 101 | -------------------------------------------------------------------------------- /tools/coil_sniffer.py: -------------------------------------------------------------------------------- 1 | import serial 2 | from datetime import datetime 3 | from pymodbus.client.sync import ModbusSerialClient as ModbusClient 4 | 5 | connection = ModbusClient(method='rtu',port ='/dev/ttytrovis', timeout=0.5) 6 | connection.connect() 7 | print('Verbindung über: ', connection) 8 | 9 | suchbereiche = list() 10 | bereiche = list() 11 | coils = list() 12 | 13 | # Diese Coilbereiche durchsuchen - mehrere Bereiche können angegeben werden (ein Bereich je Zeile): 14 | suchbereiche.append([0,99]) # Durchsuche die ersten 100 Coils 15 | # suchbereiche.append([300,499]) # Ggf zweiter Bereich usw usw 16 | 17 | 18 | 19 | ################################################################################################# 20 | # Bereits durchsuchte Bereiche: 21 | 22 | # suchbereiche.append([0,9999]) 23 | # ([1, 39], [56, 68], [87, 112], [115, 123], [129, 167], [175, 214], [221, 237], [244, 308], 24 | # [321, 337], [997, 1008], [1016, 1018], [1024, 1044], [1199, 1208], [1211, 1212], [1216, 1218], 25 | # [1224, 1237], [1799, 1808], [1824, 1844], [9899, 9910]) 26 | 27 | # ... hier erweitern ... 28 | ################################################################################################# 29 | 30 | 31 | # Gültige Coils finden: 32 | def durchsuche_bereiche(suchbereiche): 33 | anfangzeit = datetime.now() 34 | for bereich in suchbereiche: 35 | anfang = bereich[0] 36 | ende = bereich[1] 37 | gefunden_anfang = -1 #0 38 | gefunden_ende = 0 39 | while anfang <= ende: 40 | try: 41 | ergebnis = int((connection.read_coils(anfang, 1, unit=247)).bits[0]) 42 | print(str(anfang) + ":" + str(ergebnis)) 43 | if gefunden_anfang == -1: 44 | gefunden_anfang = anfang 45 | gefunden_ende = anfang 46 | if anfang==bereich[1]: 47 | bereiche.append([gefunden_anfang, gefunden_ende]) 48 | except Exception as e: 49 | print(str(anfang), 'Fehler: ', e) 50 | if gefunden_anfang != -1: 51 | bereiche.append([gefunden_anfang, gefunden_ende]) 52 | gefunden_anfang = -1 53 | anfang += 1 54 | endzeit = datetime.now() 55 | print('Gefundene Coilbereiche:', bereiche) 56 | dauer = endzeit - anfangzeit 57 | print('Suchzeit: ', dauer, 's') 58 | return bereiche 59 | 60 | # Gefundenen gültige Coils mit Werten am Stück ausgeben: 61 | def lese_coils(liste): 62 | print('Auslesen aller gefundenen Coils am Stück:') 63 | anfangzeit = datetime.now() 64 | for anfang, ende in liste: 65 | try: 66 | ergebnis = connection.read_coils(anfang, ende-anfang+1, unit=247) 67 | except Exception as e: 68 | print(str(anfang), 'Fehler: ', e) 69 | coilnum = anfang 70 | for coil in ergebnis.bits: 71 | coils.append([coilnum, int(coil)]) 72 | coilnum += 1 73 | # unsauber, aber Länge von ergebnis ist immer Vielfaches von 74 | # 8 (8 bits = 1 Byte) und wird ggf rechts mit Nullen aufgefüllt, 75 | # daher sind im Ergebnis ggf mehr Elemente als angefragt: 76 | if coilnum > ende: 77 | break 78 | endzeit = datetime.now() 79 | print(coils) 80 | dauer = endzeit - anfangzeit 81 | print('Auslesezeit: ', dauer, 's') 82 | return coils 83 | 84 | 85 | # Hauptroutine 86 | gefunden = durchsuche_bereiche(suchbereiche) 87 | lese_coils(gefunden) 88 | connection.close() -------------------------------------------------------------------------------- /snippets/HomeAssistant/readme.md: -------------------------------------------------------------------------------- 1 | In diesem Bereich finden sich verschiedene Code-Snippets. ALLE (!) Snippets sind **work-in-progress** und noch nicht fertiggestellt - sie sollen nur dem Einstieg in diese Bereiche der Trovis-Visualisierung in Home Assistant dienen. Hilfe ist gern willkommen! 2 | 3 | # **Die Originalvorlage** 4 | Diese komplett interaktive Ansicht habe ich ca. 2014 begonnen - seit 2019 ist sie fast unverändert, es werden im Minutentakt Daten gelogged und visualisiert. Das Backend ist SmartHomeNG, das Frontend die smartVISU. Ziel meines HA-Projektes ist, diese Anzeige so originalgetreu wie möglich in HA zu implementieren (mit einigen verbesserungen). 5 | 6 | Hier ein Screenshot aus der Heizperiode: 7 | ![__Vorlage - smartVISU im Einsatz__](https://github.com/user-attachments/assets/dd0faec7-c7be-47ee-b9c6-371eeabb3a05) 8 | 9 | # Datei ha-visu_aktuell.yaml 10 | 11 | Enthält den aktuellen Stand meiner Visu-Entwicklung für HA. Derzeit funktional: 12 | 13 | 14 | - Links oben: Bild des aktuellen Heizungsschemas wird bei Statusänderungen umgeschaltet, die angezeigten Sensorwerte sind _live_. Zur Anpassung nach Bedarf den Template Sensor [trovis_regler_gesamtstatus](https://github.com/Tom-Bom-badil/samson_trovis_557x/blob/fb5b95a82fc74c09eb616c466df82a3f73f5a9c4/HomeAssistant/trovis557x/template_sensors.yaml#L8C7-L8C34) anpassen und unter [www/trovis557x/images/status*.svg](https://github.com/Tom-Bom-badil/samson_trovis_557x/tree/master/HomeAssistant/www/trovis557x/images) eigene Bilder einfügen. 15 | - Links unten: Alle angezeigten Werte inkl Position der Reglerknöpfe, Heizkurve mit Umschaltung Tag-/Nachtsoll, Temperaturen und deren Historie, Reglertyp + Firmware usw sind _live_ und kommen direkt aus dem Regler. Es gibt aber noch etliche Punkte, die ich hier noch implementieren will. 16 | - Rechts: Plots für bis zu 48 zurück. 17 | 18 | ![image](https://github.com/user-attachments/assets/422a527a-26ce-4999-910a-64a8a472cc0d) 19 | 20 | ![image](https://github.com/user-attachments/assets/a1801727-38e4-4c24-a4e4-10fb0a285a1e) 21 | 22 | # **Datei seitenaufteilung.yaml** 23 | 24 | Ziel: Eine Konzept für die Aufteilung der Reglervisualisierung mit automatischer Anpassung an verschiedene Auflösungen (Heizungsschema interaktiv links oben, Reglerbild interaktiv links unten, rechts 3 Graphen mit Export-Funktionen etc). 25 | 26 | ![seitenaufteilung](https://github.com/user-attachments/assets/374489ba-a67d-4748-b063-ee1df406f228) 27 | 28 | # **Datei reglerbild_interaktiv.yaml** 29 | Ziel: Darstellung einer 5575/5576/5579 mit interaktiven Elementen und der tatsächlichen Heizkurve und aktuellem VL als plotly-Graph. 30 | 31 | ![reglerbild_interaktiv](https://github.com/user-attachments/assets/d9cff9b5-2bd7-4564-8b1c-4be8c340e9a5) 32 | 33 | # **Datei plotly.yaml** 34 | Ziel: Einbindung eines Graphen per plotly. Die Plotly-Bibliothek ist extrem gut dokumentiert und meiner Meinung nach nicht so buggy und deutlich flexibler / mächtiger als die üblicherweise verwendenten Lösungen wie HistoryGraphCard oder ApexCharts. Doku [hier](https://plotly.com/javascript). ACHTUNG! Die Beispieldatei enthält einen Datensimulator, der für 48h Daten generiert (zur Winterzeit --> daher sieht man zur Sommerzeit eine Stunde Versatz bzw. rechts einen 1h freien Bereich). Für die Visualisierung von Echtdaten muss die entsprechende entity: statt der fn: angebunden werden. Für einen Plot sollte die Entity bereits historische Werte aus einer Datenbank liefern. 35 | 36 | Bereich R1 (rechts oben): 37 | ![plotly_1](https://github.com/user-attachments/assets/4e264bbf-5d39-43ae-a783-4ce92bb04e4d) 38 | 39 | Heizkurve auf dem Regler: 40 | 41 | ![plotly_2](https://github.com/user-attachments/assets/5bc4732e-2dc4-48da-b3d8-2964ac58fbba) 42 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/input_numbers.yaml: -------------------------------------------------------------------------------- 1 | ############################# Input Numbers ################################### 2 | 3 | trovis_visu_heizkreis: 4 | name: 'Enthält die anzuzeigende Heizukurve auf dem Regler in der Visu' 5 | initial: 1 6 | min: 0 7 | max: 4 8 | 9 | ################################## Hk1 ###################################### 10 | 11 | trovis_hk1_steigung: 12 | name: 'Trovis Rk1 Steigung' 13 | min: 0.2 14 | max: 3.2 15 | step: 0.1 16 | 17 | trovis_hk1_niveau: 18 | name: 'Trovis Rk1 Niveau' 19 | min: -20 20 | max: 20 21 | step: 1 22 | 23 | trovis_hk1_raumsoll_tag: 24 | name: 'Trovis Rk1 Raumsoll Tag' 25 | min: 0 26 | max: 40 27 | step: 0.5 28 | 29 | trovis_hk1_raumsoll_nacht: 30 | name: 'Trovis Rk1 Raumsoll Nacht' 31 | min: 0 32 | max: 40 33 | step: 0.5 34 | 35 | trovis_hk1_vl_min: 36 | name: 'Trovis Rk1 VL min' 37 | min: 0 38 | max: 100 39 | step: 1 40 | 41 | trovis_hk1_vl_max: 42 | name: 'Trovis Rk1 VL max' 43 | min: 0 44 | max: 100 45 | step: 1 46 | 47 | ################################## Hk2 ###################################### 48 | 49 | trovis_hk2_steigung: 50 | name: 'Trovis Rk2 Steigung' 51 | min: 0.2 52 | max: 3.2 53 | step: 0.1 54 | 55 | trovis_hk2_niveau: 56 | name: 'Trovis Rk2 Niveau' 57 | min: -20 58 | max: 20 59 | step: 1 60 | 61 | trovis_hk2_raumsoll_tag: 62 | name: 'Trovis Rk2 Raumsoll Tag' 63 | min: 0 64 | max: 40 65 | step: 0.5 66 | 67 | trovis_hk2_raumsoll_nacht: 68 | name: 'Trovis Rk2 Raumsoll Nacht' 69 | min: 0 70 | max: 40 71 | step: 0.5 72 | 73 | trovis_hk2_vl_min: 74 | name: 'Trovis Rk2 VL min' 75 | min: 0 76 | max: 100 77 | step: 1 78 | 79 | trovis_hk2_vl_max: 80 | name: 'Trovis Rk2 VL max' 81 | min: 0 82 | max: 100 83 | step: 1 84 | 85 | ################################## Hk3 ###################################### 86 | 87 | trovis_hk3_steigung: 88 | name: 'Trovis Rk3 Steigung' 89 | min: 0.2 90 | max: 3.2 91 | step: 0.1 92 | 93 | trovis_hk3_niveau: 94 | name: 'Trovis Rk3 Niveau' 95 | min: -20 96 | max: 20 97 | step: 1 98 | 99 | trovis_hk3_raumsoll_tag: 100 | name: 'Trovis Rk3 Raumsoll Tag' 101 | min: 0 102 | max: 40 103 | step: 0.5 104 | 105 | trovis_hk3_raumsoll_nacht: 106 | name: 'Trovis Rk3 Raumsoll Nacht' 107 | min: 0 108 | max: 40 109 | step: 0.5 110 | 111 | trovis_hk3_vl_min: 112 | name: 'Trovis Rk3 VL min' 113 | min: 0 114 | max: 100 115 | step: 1 116 | 117 | trovis_hk3_vl_max: 118 | name: 'Trovis Rk3 VL max' 119 | min: 0 120 | max: 100 121 | step: 1 122 | 123 | ################################## Hk4 ###################################### 124 | 125 | trovis_hk4_soll_tw: 126 | name: 'Trovis Rk4 Sollwert' 127 | min: 20 128 | max: 90 129 | step: 1 130 | 131 | trovis_hk4_haltewert_tw: 132 | name: 'Trovis Rk4 Haltewert' 133 | min: 20 134 | max: 90 135 | step: 1 136 | 137 | trovis_hk4_schaltdifferenz_tw: 138 | name: 'Trovis Rk4 Schaltdifferenz' 139 | min: 0 140 | max: 30 141 | step: 1 142 | 143 | trovis_hk4_ueberhoehung_tw: 144 | name: 'Trovis Rk4 Überhöhung' 145 | min: 0 146 | max: 50 147 | step: 1 148 | 149 | trovis_hk4_maxladetemperatur_tw: 150 | name: 'Trovis Rk4 Maximale Ladetemperatur (VLsek)' 151 | min: 0 152 | max: 90 153 | step: 1 154 | 155 | trovis_hk4_maxrl_tw: 156 | name: 'Trovis Rk4 Maximale Rücklauftemperatur (RLpri)' 157 | min: 5 158 | max: 90 159 | step: 1 160 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/statistics.yaml: -------------------------------------------------------------------------------- 1 | ######################### Tages- und Wochenstatistiken ######################### 2 | 3 | # AF1 4 | - platform: statistics 5 | name: "Trovis Stat AF1 24h min" 6 | entity_id: sensor.trovis_fuhler_aussen_1_af1 7 | state_characteristic: value_min 8 | precision: 1 9 | max_age: 10 | hours: 24 11 | 12 | - platform: statistics 13 | name: "Trovis Stat AF1 24h max" 14 | entity_id: sensor.trovis_fuhler_aussen_1_af1 15 | state_characteristic: value_max 16 | precision: 1 17 | max_age: 18 | hours: 24 19 | 20 | - platform: statistics 21 | name: "Trovis Stat AF1 7d min" 22 | entity_id: sensor.trovis_fuhler_aussen_1_af1 23 | state_characteristic: value_min 24 | precision: 1 25 | max_age: 26 | hours: 168 27 | 28 | - platform: statistics 29 | name: "Trovis Stat AF1 7d max" 30 | entity_id: sensor.trovis_fuhler_aussen_1_af1 31 | state_characteristic: value_max 32 | precision: 1 33 | max_age: 34 | hours: 168 35 | 36 | # VF1 37 | - platform: statistics 38 | name: "Trovis Stat VF1 24h min" 39 | entity_id: sensor.trovis_fuhler_vorlauf_1_vf1 40 | state_characteristic: value_min 41 | precision: 1 42 | max_age: 43 | hours: 24 44 | 45 | - platform: statistics 46 | name: "Trovis Stat VF1 24h max" 47 | entity_id: sensor.trovis_fuhler_vorlauf_1_vf1 48 | state_characteristic: value_max 49 | precision: 1 50 | max_age: 51 | hours: 24 52 | 53 | - platform: statistics 54 | name: "Trovis Stat VF1 7d min" 55 | entity_id: sensor.trovis_fuhler_vorlauf_1_vf1 56 | state_characteristic: value_min 57 | precision: 1 58 | max_age: 59 | hours: 168 60 | 61 | - platform: statistics 62 | name: "Trovis Stat VF1 7d max" 63 | entity_id: sensor.trovis_fuhler_vorlauf_1_vf1 64 | state_characteristic: value_max 65 | precision: 1 66 | max_age: 67 | hours: 168 68 | 69 | # RueF1 70 | - platform: statistics 71 | name: "Trovis Stat Ruef1 24h min" 72 | entity_id: sensor.trovis_fuhler_rucklauf_1_ruf1 73 | state_characteristic: value_min 74 | precision: 1 75 | max_age: 76 | hours: 24 77 | 78 | - platform: statistics 79 | name: "Trovis Stat Ruef1 24h max" 80 | entity_id: sensor.trovis_fuhler_rucklauf_1_ruf1 81 | state_characteristic: value_max 82 | precision: 1 83 | max_age: 84 | hours: 24 85 | 86 | - platform: statistics 87 | name: "Trovis Stat Ruef1 7d min" 88 | entity_id: sensor.trovis_fuhler_rucklauf_1_ruf1 89 | state_characteristic: value_min 90 | precision: 1 91 | max_age: 92 | hours: 168 93 | 94 | - platform: statistics 95 | name: "Trovis Stat Ruef1 7d max" 96 | entity_id: sensor.trovis_fuhler_rucklauf_1_ruf1 97 | state_characteristic: value_max 98 | precision: 1 99 | max_age: 100 | hours: 168 101 | 102 | # SF1 103 | - platform: statistics 104 | name: "Trovis Stat SF1 24h min" 105 | entity_id: sensor.trovis_fuhler_speicher_1_sf1 106 | state_characteristic: value_min 107 | precision: 1 108 | max_age: 109 | hours: 24 110 | 111 | - platform: statistics 112 | name: "Trovis Stat SF1 24h max" 113 | entity_id: sensor.trovis_fuhler_speicher_1_sf1 114 | state_characteristic: value_max 115 | precision: 1 116 | max_age: 117 | hours: 24 118 | 119 | - platform: statistics 120 | name: "Trovis Stat SF1 7d min" 121 | entity_id: sensor.trovis_fuhler_speicher_1_sf1 122 | state_characteristic: value_min 123 | precision: 1 124 | max_age: 125 | hours: 168 126 | 127 | - platform: statistics 128 | name: "Trovis Stat SF1 7d max" 129 | entity_id: sensor.trovis_fuhler_speicher_1_sf1 130 | state_characteristic: value_max 131 | precision: 1 132 | max_age: 133 | hours: 168 134 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/registers/6_hk4_ww.yaml: -------------------------------------------------------------------------------- 1 | ################# Heizkreis 4, Warmwasser (Regelkreis 4 - CO4/PA4) ############ 2 | 3 | - name: "Trovis Hk4 Betriebsart" 4 | unique_id: trovis_hk4_betriebsart 5 | slave: !secret trovis_modbus_address 6 | address: 111 7 | scan_interval: 60 8 | 9 | - name: "Trovis Hk4 SOLL TW" # 50 10 | unique_id: trovis_hk4_soll 11 | slave: !secret trovis_modbus_address 12 | address: 1799 13 | scan_interval: 300 14 | scale: 0.1 15 | precision: 1 16 | unit_of_measurement: "°C" 17 | device_class: temperature 18 | data_type: int16 19 | nan_value: 32767 20 | 21 | - name: "Trovis Hk4 maxSOLL TW" # 60 22 | unique_id: trovis_hk4_maxsoll 23 | slave: !secret trovis_modbus_address 24 | address: 1800 25 | scan_interval: 300 26 | scale: 0.1 27 | precision: 1 28 | unit_of_measurement: "°C" 29 | device_class: temperature 30 | data_type: int16 31 | nan_value: 32767 32 | 33 | - name: "Trovis Hk4 minSOLL TW" # 45 34 | unique_id: trovis_hk4_minsoll 35 | slave: !secret trovis_modbus_address 36 | address: 1801 37 | scan_interval: 300 38 | scale: 0.1 39 | precision: 1 40 | unit_of_measurement: "°C" 41 | device_class: temperature 42 | data_type: int16 43 | nan_value: 32767 44 | 45 | - name: "Trovis Hk4 Schaltdifferenz TW" # 10 46 | unique_id: trovis_hk4_schaltdifferenz 47 | slave: !secret trovis_modbus_address 48 | address: 1802 49 | scan_interval: 300 50 | scale: 0.1 51 | precision: 1 52 | unit_of_measurement: "°C" 53 | device_class: temperature 54 | data_type: int16 55 | nan_value: 32767 56 | 57 | - name: "Trovis Hk4 Ueberhoehung TW" # 22 58 | unique_id: trovis_hk4_ueberhoehung 59 | slave: !secret trovis_modbus_address 60 | address: 1803 61 | scan_interval: 300 62 | scale: 0.1 63 | precision: 1 64 | unit_of_measurement: "°C" 65 | device_class: temperature 66 | data_type: int16 67 | nan_value: 32767 68 | 69 | - name: "Trovis Hk4 Nachlauf SLP" # 80 70 | unique_id: trovis_hk4_nachlauf_slp 71 | slave: !secret trovis_modbus_address 72 | address: 1804 73 | scan_interval: 300 74 | scale: 0.1 75 | precision: 1 76 | data_type: int16 77 | nan_value: 32767 78 | 79 | - name: "Trovis Hk4 maxLadetemperatur TW" # 80 80 | unique_id: trovis_hk4_max_ladetemp 81 | slave: !secret trovis_modbus_address 82 | address: 1805 83 | scan_interval: 300 84 | scale: 0.1 85 | precision: 1 86 | unit_of_measurement: "°C" 87 | device_class: temperature 88 | data_type: int16 89 | nan_value: 32767 90 | 91 | - name: "Trovis Hk4 Haltewert TW" # 50 92 | unique_id: trovis_hk4_haltewert 93 | slave: !secret trovis_modbus_address 94 | address: 1806 95 | scan_interval: 300 96 | scale: 0.1 97 | precision: 1 98 | unit_of_measurement: "°C" 99 | device_class: temperature 100 | data_type: int16 101 | nan_value: 32767 102 | 103 | - name: "Trovis Hk4 maxRL TW" # 65 104 | unique_id: trovis_hk4_max_rl 105 | slave: !secret trovis_modbus_address 106 | address: 1827 107 | scan_interval: 300 108 | scale: 0.1 109 | precision: 1 110 | unit_of_measurement: "°C" 111 | device_class: temperature 112 | data_type: int16 113 | nan_value: 32767 114 | 115 | - name: "Trovis Hk4 Desinfektionstemperatur TW" # 70? 116 | unique_id: trovis_hk4_desinfektionstemp 117 | slave: !secret trovis_modbus_address 118 | address: 1829 119 | scan_interval: 300 120 | scale: 0.1 121 | precision: 1 122 | unit_of_measurement: "°C" 123 | device_class: temperature 124 | data_type: int16 125 | nan_value: 32767 126 | 127 | #------------------------------- 128 | # minsoll: 1801, werte: [20.0,25.0,30.0,35.0,40.0,45.0,50.0,55.0,60.0,65.0,70.0,75.0,80.0,85.0,90.0] 129 | # maxsoll: 1800, werte: [20.0,25.0,30.0,35.0,40.0,45.0,50.0,55.0,60.0,65.0,70.0,75.0,80.0,85.0,90.0] 130 | # solltemperatur: 1799, werte: [20.0,25.0,30.0,35.0,40.0,45.0,50.0,55.0,60.0,65.0,70.0,75.0,80.0,85.0,90.0] 131 | -------------------------------------------------------------------------------- /templates/5573_rev2.14_reg-blocks: -------------------------------------------------------------------------------- 1 | # Achtung - 40.000er Register! Je nach verwendeten Tools ggf. vom Wert 40.001 abziehen (Start mit Register Nr. 0 statt 40.001)! 2 | # Gerätekennung BlockAnfang BlockEnde Klasse 3 | "5573"____________; 40001; 40006; 3 4 | "5573"____________; 40010; 40031; 1 5 | "5573"____________; 40099; 40125; 3 6 | "5573"____________; 40133; 40163; 3 7 | "5573"____________; 40300; 40320; 2 8 | "5573"____________; 41000; 41044; 2 9 | "5573"____________; 41056; 41071; 3 10 | "5573"____________; 41090; 41092; 3 11 | "5573"____________; 41200; 41244; 2 12 | "5573"____________; 41256; 41271; 2 13 | "5573"____________; 41800; 41809; 2 14 | "5573"____________; 41810; 41813; 2 15 | "5573"____________; 41828; 41840; 2 16 | "5573"____________; 41863; 41871; 2 17 | "5573"____________; 46470; 46499; 1 18 | "5573"____________; 46500; 46530; 3 19 | "5573"____________; 46531; 46562; 3 20 | "5573"____________; 46563; 46593; 3 21 | "5573"____________; 46594; 46624; 3 22 | "5573"____________; 46625; 46658; 3 23 | "5573"____________; 46750; 46780; 3 24 | "5573"____________; 46781; 46812; 3 25 | "5573"____________; 46813; 46843; 3 26 | "5573"____________; 46844; 46874; 3 27 | "5573"____________; 46875; 46908; 3 28 | "5573"____________; 47000; 47030; 3 29 | "5573"____________; 47031; 47062; 3 30 | "5573"____________; 47063; 47093; 3 31 | "5573"____________; 47094; 47124; 3 32 | "5573"____________; 47125; 47158; 3 33 | "5573"____________; 47250; 47280; 3 34 | "5573"____________; 47281; 47312; 3 35 | "5573"____________; 47313; 47343; 3 36 | "5573"____________; 47344; 47374; 3 37 | "5573"____________; 47375; 47408; 3 38 | "5573"____________; 47500; 47530; 3 39 | "5573"____________; 47531; 47562; 3 40 | "5573"____________; 47563; 47593; 3 41 | "5573"____________; 47594; 47624; 3 42 | "5573"____________; 47625; 47658; 3 43 | "5573"____________; 47750; 47780; 3 44 | "5573"____________; 47781; 47812; 3 45 | "5573"____________; 47813; 47843; 3 46 | "5573"____________; 47844; 47874; 3 47 | "5573"____________; 47875; 47908; 3 48 | "5573"____________; 48000; 48030; 3 49 | "5573"____________; 48031; 48062; 3 50 | "5573"____________; 48063; 48093; 3 51 | "5573"____________; 48094; 48124; 3 52 | "5573"____________; 48125; 48158; 3 53 | "5573"____________; 48250; 48280; 3 54 | "5573"____________; 48281; 48312; 3 55 | "5573"____________; 48313; 48343; 3 56 | "5573"____________; 48344; 48374; 3 57 | "5573"____________; 48375; 48408; 3 58 | "5573"____________; 48500; 48530; 3 59 | "5573"____________; 48531; 48562; 3 60 | "5573"____________; 48563; 48593; 3 61 | "5573"____________; 48594; 48624; 3 62 | "5573"____________; 48625; 48658; 3 63 | "5573"____________; 48750; 48780; 3 64 | "5573"____________; 48781; 48812; 3 65 | "5573"____________; 48813; 48843; 3 66 | "5573"____________; 48844; 48874; 3 67 | "5573"____________; 48875; 48908; 3 68 | "5573"____________; 49000; 49030; 3 69 | "5573"____________; 49031; 49062; 3 70 | "5573"____________; 49063; 49093; 3 71 | "5573"____________; 49094; 49124; 3 72 | "5573"____________; 49125; 49158; 3 73 | "5573"____________; 49250; 49280; 3 74 | "5573"____________; 49281; 49312; 3 75 | "5573"____________; 49313; 49343; 3 76 | "5573"____________; 49344; 49374; 3 77 | "5573"____________; 49375; 49408; 3 78 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/registers/4_hk2.yaml: -------------------------------------------------------------------------------- 1 | ################# Heizkreis 2 (Regelkreis 2 - CO2/PA2) ########################## 2 | # 3 | # Annahme: Verwendung einer 3-Punkt-Regelung. Warmwasser ist Hk4! 4 | 5 | - name: "Trovis Hk2 Betriebsart" 6 | unique_id: trovis_hk2_betriebsart 7 | slave: !secret trovis_modbus_address 8 | address: 107 9 | scan_interval: 60 10 | 11 | - name: "Trovis Hk2 3Pkt Stellsignal" 12 | unique_id: trovis_hk2_stellsignal 13 | slave: !secret trovis_modbus_address 14 | address: 108 15 | scan_interval: 60 16 | # precision: 0 17 | data_type: int16 18 | nan_value: 32767 19 | 20 | - name: "Trovis Hk2 VL Soll" 21 | unique_id: trovis_hk2_vlsoll 22 | slave: !secret trovis_modbus_address 23 | address: 1199 24 | scan_interval: 60 25 | scale: 0.1 26 | precision: 1 27 | unit_of_measurement: "°C" 28 | device_class: temperature 29 | data_type: int16 30 | nan_value: 32767 31 | 32 | - name: "Trovis Hk2 Raumsoll Tag" 33 | unique_id: trovis_hk2_raumsoll_tag 34 | slave: !secret trovis_modbus_address 35 | address: 1202 36 | scan_interval: 900 37 | scale: 0.1 38 | precision: 1 39 | unit_of_measurement: "°C" 40 | device_class: temperature 41 | data_type: int16 42 | nan_value: 32767 43 | 44 | - name: "Trovis Hk2 Raumsoll Nacht" 45 | unique_id: trovis_hk2_raumsoll_nacht 46 | slave: !secret trovis_modbus_address 47 | address: 1203 48 | scan_interval: 900 49 | scale: 0.1 50 | precision: 1 51 | unit_of_measurement: "°C" 52 | device_class: temperature 53 | data_type: int16 54 | nan_value: 32767 55 | 56 | - name: "Trovis Hk2 VL min" 57 | unique_id: trovis_hk2_vl_min 58 | slave: !secret trovis_modbus_address 59 | address: 1201 60 | scan_interval: 900 61 | scale: 0.1 62 | precision: 1 63 | unit_of_measurement: "°C" 64 | device_class: temperature 65 | data_type: int16 66 | nan_value: 32767 67 | 68 | - name: "Trovis Hk2 VL max" 69 | unique_id: trovis_hk2_vl_max 70 | slave: !secret trovis_modbus_address 71 | address: 1200 72 | scan_interval: 900 73 | scale: 0.1 74 | precision: 1 75 | unit_of_measurement: "°C" 76 | device_class: temperature 77 | data_type: int16 78 | nan_value: 32767 79 | 80 | - name: "Trovis Hk2 VL Steigung" 81 | unique_id: trovis_hk2_steigung 82 | slave: !secret trovis_modbus_address 83 | address: 1205 84 | scan_interval: 60 85 | scale: 0.1 86 | precision: 1 87 | min_value: 0.2 88 | max_value: 3.2 89 | data_type: int16 90 | nan_value: 32767 91 | 92 | - name: "Trovis Hk2 VL Niveau" 93 | unique_id: trovis_hk2_niveau 94 | slave: !secret trovis_modbus_address 95 | address: 1206 96 | scan_interval: 60 97 | scale: 0.1 98 | precision: 1 99 | unit_of_measurement: "°C" 100 | device_class: temperature 101 | data_type: int16 102 | # min_value: -30 103 | max_value: 30 104 | nan_value: 32767 105 | 106 | - name: "Trovis Hk2 RL Fusspunkt" 107 | unique_id: trovis_hk2_rl_fusspunkt 108 | slave: !secret trovis_modbus_address 109 | address: 1211 110 | scan_interval: 900 111 | scale: 0.1 112 | precision: 1 113 | unit_of_measurement: "°C" 114 | device_class: temperature 115 | data_type: int16 116 | nan_value: 32767 117 | 118 | - name: "Trovis Hk2 RL Niveau" 119 | unique_id: trovis_hk2_rl_niveau 120 | slave: !secret trovis_modbus_address 121 | address: 1209 122 | scan_interval: 900 123 | scale: 0.1 124 | precision: 1 125 | unit_of_measurement: "°C" 126 | device_class: temperature 127 | data_type: int16 128 | nan_value: 32767 129 | 130 | - name: "Trovis Hk2 RL Steigung" 131 | unique_id: trovis_hk2_rl_steigung 132 | slave: !secret trovis_modbus_address 133 | address: 1208 134 | scan_interval: 900 135 | scale: 0.1 136 | precision: 1 137 | unit_of_measurement: "°C" 138 | device_class: temperature 139 | data_type: int16 140 | nan_value: 32767 141 | 142 | - name: "Trovis Hk2 RL max" 143 | unique_id: trovis_hk2_rl_max 144 | slave: !secret trovis_modbus_address 145 | address: 1210 146 | scan_interval: 900 147 | scale: 0.1 148 | precision: 1 149 | unit_of_measurement: "°C" 150 | device_class: temperature 151 | data_type: int16 152 | nan_value: 32767 153 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/registers/3_hk1.yaml: -------------------------------------------------------------------------------- 1 | ################# Heizkreis 1 (Regelkreis 1 - CO1/PA1) ######################## 2 | # 3 | # Annahme: Verwendung einer 3-Punkt-Regelung. 4 | # Bei einer eigenen 4-Punkte-Kennlinie sind die Register 1012-1027 auszuwerten. 5 | 6 | - name: "Trovis Hk1 Betriebsart" 7 | unique_id: trovis_hk1_betriebsart 8 | slave: !secret trovis_modbus_address 9 | address: 105 10 | scan_interval: 60 11 | 12 | - name: "Trovis Hk1 3Pkt Stellsignal" 13 | unique_id: trovis_hk1_stellsignal 14 | slave: !secret trovis_modbus_address 15 | address: 106 16 | scan_interval: 60 17 | # precision: 0 18 | data_type: int16 19 | nan_value: 32767 20 | 21 | - name: "Trovis Hk1 VL Soll" 22 | unique_id: trovis_hk1_vlsoll 23 | slave: !secret trovis_modbus_address 24 | address: 999 25 | scan_interval: 60 26 | scale: 0.1 27 | precision: 1 28 | unit_of_measurement: "°C" 29 | device_class: temperature 30 | data_type: int16 31 | nan_value: 32767 32 | 33 | - name: "Trovis Hk1 Raumsoll Tag" 34 | unique_id: trovis_hk1_raumsoll_tag 35 | slave: !secret trovis_modbus_address 36 | address: 1002 37 | scan_interval: 900 38 | scale: 0.1 39 | precision: 1 40 | unit_of_measurement: "°C" 41 | device_class: temperature 42 | data_type: int16 43 | nan_value: 32767 44 | 45 | - name: "Trovis Hk1 Raumsoll Nacht" 46 | unique_id: trovis_hk1_raumsoll_nacht 47 | slave: !secret trovis_modbus_address 48 | address: 1003 49 | scan_interval: 900 50 | scale: 0.1 51 | precision: 1 52 | unit_of_measurement: "°C" 53 | device_class: temperature 54 | data_type: int16 55 | nan_value: 32767 56 | 57 | - name: "Trovis Hk1 VL min" 58 | unique_id: trovis_hk1_vl_min 59 | slave: !secret trovis_modbus_address 60 | address: 1001 61 | scan_interval: 900 62 | scale: 0.1 63 | precision: 1 64 | unit_of_measurement: "°C" 65 | device_class: temperature 66 | data_type: int16 67 | nan_value: 32767 68 | 69 | - name: "Trovis Hk1 VL max" 70 | unique_id: trovis_hk1_vl_max 71 | slave: !secret trovis_modbus_address 72 | address: 1000 73 | scan_interval: 900 74 | scale: 0.1 75 | precision: 1 76 | unit_of_measurement: "°C" 77 | device_class: temperature 78 | data_type: int16 79 | nan_value: 32767 80 | 81 | - name: "Trovis Hk1 VL Steigung" 82 | unique_id: trovis_hk1_steigung 83 | slave: !secret trovis_modbus_address 84 | address: 1005 85 | scan_interval: 60 86 | scale: 0.1 87 | precision: 1 88 | min_value: 0.2 89 | max_value: 3.2 90 | data_type: int16 91 | nan_value: 32767 92 | 93 | - name: "Trovis Hk1 VL Niveau" 94 | unique_id: trovis_hk1_niveau 95 | slave: !secret trovis_modbus_address 96 | address: 1006 97 | scan_interval: 60 98 | scale: 0.1 99 | precision: 1 100 | unit_of_measurement: "°C" 101 | device_class: temperature 102 | data_type: int16 103 | # min_value: -30 104 | max_value: 30 105 | nan_value: 32767 106 | 107 | - name: "Trovis Hk1 RL Fusspunkt" 108 | unique_id: trovis_hk1_rl_fusspunkt 109 | slave: !secret trovis_modbus_address 110 | address: 1011 111 | scan_interval: 900 112 | scale: 0.1 113 | precision: 1 114 | unit_of_measurement: "°C" 115 | device_class: temperature 116 | data_type: int16 117 | nan_value: 32767 118 | 119 | - name: "Trovis Hk1 RL Niveau" 120 | unique_id: trovis_hk1_rl_niveau 121 | slave: !secret trovis_modbus_address 122 | address: 1009 123 | scan_interval: 900 124 | scale: 0.1 125 | precision: 1 126 | unit_of_measurement: "°C" 127 | device_class: temperature 128 | data_type: int16 129 | nan_value: 32767 130 | 131 | - name: "Trovis Hk1 RL Steigung" 132 | unique_id: trovis_hk1_rl_steigung 133 | slave: !secret trovis_modbus_address 134 | address: 1008 135 | scan_interval: 900 136 | scale: 0.1 137 | precision: 1 138 | unit_of_measurement: "°C" 139 | device_class: temperature 140 | data_type: int16 141 | nan_value: 32767 142 | 143 | - name: "Trovis Hk1 RL max" 144 | unique_id: trovis_hk1_rl_max 145 | slave: !secret trovis_modbus_address 146 | address: 1010 147 | scan_interval: 900 148 | scale: 0.1 149 | precision: 1 150 | unit_of_measurement: "°C" 151 | device_class: temperature 152 | data_type: int16 153 | nan_value: 32767 154 | -------------------------------------------------------------------------------- /templates/5573_rev2.54_reg-blocks: -------------------------------------------------------------------------------- 1 | #Achtung - 40.000er Register! Je nach verwendeten Tools ggf. vom Wert 40.001 abziehen (Start mit Register Nr. 0 statt 40.001)! 2 | #Gerätekennung BlockAnfang BlockEnde Klasse 3 | "5573"____________; 40001; 40006; 3 4 | "5573"____________; 40010; 40031; 1 5 | "5573"____________; 40034; 40043; 1 6 | "5573"____________; 40070; 40085; 3 7 | "5573"____________; 40099; 40125; 3 8 | "5573"____________; 40133; 40163; 3 9 | "5573"____________; 40300; 40320; 2 10 | "5573"____________; 40900; 40932; 2 11 | "5573"____________; 41000; 41045; 2 12 | "5573"____________; 41046; 41072; 3 13 | "5573"____________; 41090; 41104; 3 14 | "5573"____________; 41200; 41244; 2 15 | "5573"____________; 41254; 41272; 2 16 | "5573"____________; 41800; 41809; 2 17 | "5573"____________; 41810; 41813; 2 18 | "5573"____________; 41827; 41850; 2 19 | "5573"____________; 41863; 41871; 2 20 | "5573"____________; 42000; 42001; 3 21 | "5573"____________; 42200; 42203; 3 22 | "5573"____________; 46400; 46429; 3 23 | "5573"____________; 46470; 46499; 1 24 | "5573"____________; 46500; 46530; 3 25 | "5573"____________; 46531; 46562; 3 26 | "5573"____________; 46563; 46593; 3 27 | "5573"____________; 46594; 46624; 3 28 | "5573"____________; 46625; 46658; 3 29 | "5573"____________; 46750; 46780; 3 30 | "5573"____________; 46781; 46812; 3 31 | "5573"____________; 46813; 46843; 3 32 | "5573"____________; 46844; 46874; 3 33 | "5573"____________; 46875; 46908; 3 34 | "5573"____________; 47000; 47030; 3 35 | "5573"____________; 47031; 47062; 3 36 | "5573"____________; 47063; 47093; 3 37 | "5573"____________; 47094; 47124; 3 38 | "5573"____________; 47125; 47158; 3 39 | "5573"____________; 47250; 47280; 3 40 | "5573"____________; 47281; 47312; 3 41 | "5573"____________; 47313; 47343; 3 42 | "5573"____________; 47344; 47374; 3 43 | "5573"____________; 47375; 47408; 3 44 | "5573"____________; 47500; 47530; 3 45 | "5573"____________; 47531; 47562; 3 46 | "5573"____________; 47563; 47593; 3 47 | "5573"____________; 47594; 47624; 3 48 | "5573"____________; 47625; 47658; 3 49 | "5573"____________; 47750; 47780; 3 50 | "5573"____________; 47781; 47812; 3 51 | "5573"____________; 47813; 47843; 3 52 | "5573"____________; 47844; 47874; 3 53 | "5573"____________; 47875; 47908; 3 54 | "5573"____________; 48000; 48030; 3 55 | "5573"____________; 48031; 48062; 3 56 | "5573"____________; 48063; 48093; 3 57 | "5573"____________; 48094; 48124; 3 58 | "5573"____________; 48125; 48158; 3 59 | "5573"____________; 48250; 48280; 3 60 | "5573"____________; 48281; 48312; 3 61 | "5573"____________; 48313; 48343; 3 62 | "5573"____________; 48344; 48374; 3 63 | "5573"____________; 48375; 48408; 3 64 | "5573"____________; 48500; 48530; 3 65 | "5573"____________; 48531; 48562; 3 66 | "5573"____________; 48563; 48593; 3 67 | "5573"____________; 48594; 48624; 3 68 | "5573"____________; 48625; 48658; 3 69 | "5573"____________; 48750; 48780; 3 70 | "5573"____________; 48781; 48812; 3 71 | "5573"____________; 48813; 48843; 3 72 | "5573"____________; 48844; 48874; 3 73 | "5573"____________; 48875; 48908; 3 74 | "5573"____________; 49000; 49030; 3 75 | "5573"____________; 49031; 49062; 3 76 | "5573"____________; 49063; 49093; 3 77 | "5573"____________; 49094; 49124; 3 78 | "5573"____________; 49125; 49158; 3 79 | "5573"____________; 49250; 49280; 3 80 | "5573"____________; 49281; 49312; 3 81 | "5573"____________; 49313; 49343; 3 82 | "5573"____________; 49344; 49374; 3 83 | "5573"____________; 49375; 49408; 3 84 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/registers/5_hk3.yaml: -------------------------------------------------------------------------------- 1 | ################# Heizkreis 3 (Regelkreis 3 - CO3/PA3) ########################## 2 | # 3 | # Annahme: Verwendung einer 3-Punkt-Regelung. Warmwasser ist Hk4! 4 | # Hk3 ist nur bei den 'großen' Modellen vorhanden (5578, 5579). 5 | 6 | - name: "Trovis Hk3 Betriebsart" 7 | unique_id: trovis_hk3_betriebsart 8 | slave: !secret trovis_modbus_address 9 | address: 109 10 | scan_interval: 60 11 | 12 | - name: "Trovis Hk3 3Pkt Stellsignal" 13 | unique_id: trovis_hk3_stellsignal 14 | slave: !secret trovis_modbus_address 15 | address: 110 16 | scan_interval: 60 17 | # precision: 0 18 | data_type: int16 19 | nan_value: 32767 20 | 21 | - name: "Trovis Hk3 VL Soll" 22 | unique_id: trovis_hk3_vlsoll 23 | slave: !secret trovis_modbus_address 24 | address: 1399 25 | scan_interval: 60 26 | scale: 0.1 27 | precision: 1 28 | unit_of_measurement: "°C" 29 | device_class: temperature 30 | data_type: int16 31 | nan_value: 32767 32 | 33 | - name: "Trovis Hk3 Raumsoll Tag" 34 | unique_id: trovis_hk3_raumsoll_tag 35 | slave: !secret trovis_modbus_address 36 | address: 1402 37 | scan_interval: 900 38 | scale: 0.1 39 | precision: 1 40 | unit_of_measurement: "°C" 41 | device_class: temperature 42 | data_type: int16 43 | nan_value: 32767 44 | 45 | - name: "Trovis Hk3 Raumsoll Nacht" 46 | unique_id: trovis_hk3_raumsoll_nacht 47 | slave: !secret trovis_modbus_address 48 | address: 1403 49 | scan_interval: 900 50 | scale: 0.1 51 | precision: 1 52 | unit_of_measurement: "°C" 53 | device_class: temperature 54 | data_type: int16 55 | nan_value: 32767 56 | 57 | - name: "Trovis Hk3 VL min" 58 | unique_id: trovis_hk3_vl_min 59 | slave: !secret trovis_modbus_address 60 | address: 1401 61 | scan_interval: 900 62 | scale: 0.1 63 | precision: 1 64 | unit_of_measurement: "°C" 65 | device_class: temperature 66 | data_type: int16 67 | nan_value: 32767 68 | 69 | - name: "Trovis Hk3 VL max" 70 | unique_id: trovis_hk3_vl_max 71 | slave: !secret trovis_modbus_address 72 | address: 1400 73 | scan_interval: 900 74 | scale: 0.1 75 | precision: 1 76 | unit_of_measurement: "°C" 77 | device_class: temperature 78 | data_type: int16 79 | nan_value: 32767 80 | 81 | - name: "Trovis Hk3 VL Steigung" 82 | unique_id: trovis_hk3_steigung 83 | slave: !secret trovis_modbus_address 84 | address: 1405 85 | scan_interval: 60 86 | scale: 0.1 87 | precision: 1 88 | min_value: 0.2 89 | max_value: 3.2 90 | data_type: int16 91 | nan_value: 32767 92 | 93 | - name: "Trovis Hk3 VL Niveau" 94 | unique_id: trovis_hk3_niveau 95 | slave: !secret trovis_modbus_address 96 | address: 1406 97 | scan_interval: 60 98 | scale: 0.1 99 | precision: 1 100 | unit_of_measurement: "°C" 101 | device_class: temperature 102 | data_type: int16 103 | # min_value: -30 104 | max_value: 30 105 | nan_value: 32767 106 | 107 | - name: "Trovis Hk3 RL Fusspunkt" 108 | unique_id: trovis_hk3_rl_fusspunkt 109 | slave: !secret trovis_modbus_address 110 | address: 1411 111 | scan_interval: 900 112 | scale: 0.1 113 | precision: 1 114 | unit_of_measurement: "°C" 115 | device_class: temperature 116 | data_type: int16 117 | nan_value: 32767 118 | 119 | - name: "Trovis Hk3 RL Niveau" 120 | unique_id: trovis_hk3_rl_niveau 121 | slave: !secret trovis_modbus_address 122 | address: 1409 123 | scan_interval: 900 124 | scale: 0.1 125 | precision: 1 126 | unit_of_measurement: "°C" 127 | device_class: temperature 128 | data_type: int16 129 | nan_value: 32767 130 | 131 | - name: "Trovis Hk3 RL Steigung" 132 | unique_id: trovis_hk3_rl_steigung 133 | slave: !secret trovis_modbus_address 134 | address: 1408 135 | scan_interval: 900 136 | scale: 0.1 137 | precision: 1 138 | unit_of_measurement: "°C" 139 | device_class: temperature 140 | data_type: int16 141 | nan_value: 32767 142 | 143 | - name: "Trovis Hk3 RL max" 144 | unique_id: trovis_hk3_rl_max 145 | slave: !secret trovis_modbus_address 146 | address: 1410 147 | scan_interval: 900 148 | scale: 0.1 149 | precision: 1 150 | unit_of_measurement: "°C" 151 | device_class: temperature 152 | data_type: int16 153 | nan_value: 32767 154 | -------------------------------------------------------------------------------- /tools/register_sniffer.py: -------------------------------------------------------------------------------- 1 | import serial 2 | from datetime import datetime 3 | from pymodbus.client.sync import ModbusSerialClient as ModbusClient 4 | 5 | connection = ModbusClient(method='rtu',port ='/dev/ttytrovis', timeout=0.5) 6 | connection.connect() 7 | print('Verbindung über: ', connection) 8 | 9 | suchbereiche = list() 10 | bereiche = list() 11 | register = list() 12 | 13 | # Diese Registerbereiche durchsuchen - mehrere Bereiche können angegeben werden (ein Bereich je Zeile): 14 | suchbereiche.append([0,99]) # Durchsuche die ersten 100 Register 15 | # suchbereiche.append([300,499]) # Ggf zweiter Bereich usw usw (max 124 Register pro Bereich!) 16 | 17 | ################################################################################################# 18 | # Bereits durchsuchte Bereiche: 19 | 20 | # suchbereiche.append([0,10299]) 21 | gueltig = ( # normalerweise können 124 Register gelesen werden; ab 10000 nur 49; Auslesezeit 19.5s 22 | [0, 6], [9, 40], [98, 154], [159, 166], [200, 214], [299, 319], [999, 1044], 23 | [1053, 1071], [1089, 1095], [1199, 1243], [1255, 1271], [1455, 1470], [1799, 1812], 24 | [1827, 1839], [1855, 1870], [2999, 3123], [3124, 3248], [3249, 3250], [3499, 3548], 25 | [3999, 4123], [4124, 4248], [4249, 4373], [4374, 4498], [4499, 4623], [4624, 4748], 26 | [4749, 4873], [4874, 4998], [4999, 5123], [5124, 5248], [5249, 5373], [5374, 5498], 27 | [5499, 5623], [5624, 5748], [5749, 5873], [5874, 5998], [5999, 6046], [6489, 6613], 28 | [6614, 6738], [6739, 6863], [6864, 6988], [6989, 7113], [7114, 7238], [7239, 7363], 29 | [7364, 7488], [7489, 7613], [7614, 7738], [7739, 7863], [7864, 7988], [7989, 8113], 30 | [8114, 8238], [8239, 8363], [8364, 8488], [8489, 8613], [8614, 8738], [8739, 8863], 31 | [8864, 8988], [8989, 9113], [9114, 9238], [9239, 9363], [9364, 9488], [9489, 9613], 32 | [9614, 9738], [9739, 9863], [9864, 9988], [9989, 9999], 33 | [10000, 10040], [10041, 10080], [10081, 10120], [10121, 10160], [10161, 10200], 34 | [10201, 10240], [10241, 10253] 35 | ) 36 | 37 | #for start, ende in gueltig: 38 | # suchbereiche.append([start,ende]) 39 | 40 | # ... hier ggf. erweitern ... 41 | ################################################################################################# 42 | 43 | 44 | # Gültige Register finden: 45 | def durchsuche_bereiche(suchbereiche): 46 | anfangzeit = datetime.now() 47 | for bereich in suchbereiche: 48 | anfang = bereich[0] 49 | ende = bereich[1] 50 | gefunden_anfang = -1 #0 51 | gefunden_ende = 0 52 | while anfang <= ende: 53 | try: 54 | ergebnis = connection.read_holding_registers(anfang, 1, unit=247) 55 | print(str(anfang) + ":" + str(ergebnis.registers)) 56 | if gefunden_anfang == -1: 57 | gefunden_anfang = anfang 58 | gefunden_ende = anfang 59 | if anfang==bereich[1]: 60 | bereiche.append([gefunden_anfang, gefunden_ende]) 61 | except Exception as e: 62 | print(str(anfang), 'Fehler: ', e) 63 | if gefunden_anfang != -1: 64 | bereiche.append([gefunden_anfang, gefunden_ende]) 65 | gefunden_anfang = -1 66 | anfang += 1 67 | endzeit = datetime.now() 68 | print('Gefundene Registerbereiche:', bereiche) 69 | dauer = endzeit - anfangzeit 70 | print('Suchzeit: ', dauer, 's') 71 | return bereiche 72 | 73 | # Gefundenen gültige Register mit Werten am Stück ausgeben: 74 | def lese_register(liste): 75 | print('Auslesen aller gefundenen Register am Stück:') 76 | anfangzeit = datetime.now() 77 | for anfang, ende in liste: 78 | try: 79 | ergebnis = connection.read_holding_registers(anfang, ende-anfang+1, unit=247) 80 | print(anfang, '-', ende, ':', ergebnis) 81 | except Exception as e: 82 | print(str(anfang), 'Fehler: ', e) 83 | regnum = anfang 84 | try: 85 | for reg in ergebnis.registers: 86 | register.append([regnum, int(reg)]) 87 | regnum += 1 88 | except Exception as f: 89 | print(f) 90 | endzeit = datetime.now() 91 | print(register) 92 | dauer = endzeit - anfangzeit 93 | print('Auslesezeit: ', dauer, 's') 94 | return register 95 | 96 | 97 | # Hauptroutine 98 | gefunden = durchsuche_bereiche(suchbereiche) 99 | lese_register(gefunden) 100 | 101 | #lese_register(suchbereiche) 102 | 103 | connection.close() -------------------------------------------------------------------------------- /snippets/HomeAssistant/seitenaufteilung.yaml: -------------------------------------------------------------------------------- 1 | type: vertical-stack 2 | cards: 3 | - type: horizontal-stack 4 | square: false 5 | columns: 9 6 | cards: 7 | - name: 'Menübutton' 8 | type: custom:button-card 9 | show_name: true 10 | show_icon: false 11 | show_state: true 12 | aspect_ratio: 2/1 13 | tap_action: 14 | action: toggle 15 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 16 | - name: >- 17 | [[[ return `${states['sensor.trovis_fuhler_vorlauf_1_vf1'].state} °C` 18 | ]]] 19 | show_name: true 20 | show_state: false 21 | show_icon: false 22 | type: custom:button-card 23 | aspect_ratio: 2/1 24 | tap_action: 25 | action: toggle 26 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 27 | - name: ←⌂ Außen 28 | show_name: true 29 | show_icon: false 30 | show_state: true 31 | type: custom:button-card 32 | aspect_ratio: 2/1 33 | tap_action: 34 | action: toggle 35 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 36 | - name: →⌂ Innen 37 | show_name: true 38 | show_icon: false 39 | show_state: true 40 | type: custom:button-card 41 | aspect_ratio: 2/1 42 | tap_action: 43 | action: toggle 44 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 45 | - name: ≈ Warmwasser 46 | show_name: true 47 | show_icon: false 48 | show_state: true 49 | type: custom:button-card 50 | aspect_ratio: 2/1 51 | tap_action: 52 | action: toggle 53 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 54 | - name: _ Heizung Vorlauf 55 | show_name: true 56 | show_icon: false 57 | show_state: true 58 | type: custom:button-card 59 | aspect_ratio: 2/1 60 | tap_action: 61 | action: toggle 62 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 63 | - name: KWL Zuluft 64 | show_name: true 65 | show_icon: false 66 | show_state: true 67 | type: custom:button-card 68 | aspect_ratio: 2/1 69 | tap_action: 70 | action: toggle 71 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 72 | - name: KWL Fortluft 73 | show_name: true 74 | show_icon: false 75 | show_state: true 76 | type: custom:button-card 77 | aspect_ratio: 2/1 78 | tap_action: 79 | action: toggle 80 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 81 | - name: Lüftungsstufe 82 | show_name: true 83 | show_icon: false 84 | show_state: true 85 | type: custom:button-card 86 | aspect_ratio: 2/1 87 | tap_action: 88 | action: toggle 89 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 90 | - type: horizontal-stack 91 | name: dashboard_komplett 92 | cards: 93 | - name: ~~ links ~~ 94 | type: vertical-stack 95 | card_mod: 96 | style: | 97 | ha-card { 98 | background: transparent; 99 | padding: 5%; 100 | } 101 | cards: 102 | - name: L1 103 | type: custom:button-card 104 | card_mod: 105 | style: | 106 | ha-card { 107 | --ha-card-border-radius: 0px; 108 | --ha-card-border-color: #990000; 109 | --ha-card-border-width: 1px; 110 | --card-mod-icon-color: white; 111 | padding: 0; 112 | height: 41vh; 113 | background: transparent; 114 | } 115 | - name: L2 116 | type: custom:button-card 117 | card_mod: 118 | style: | 119 | ha-card { 120 | --ha-card-border-radius: 0px; 121 | --ha-card-border-color: #990000; 122 | --ha-card-border-width: 1px; 123 | --card-mod-icon-color: white; 124 | padding: 0; 125 | height: 41vh; 126 | background: transparent; 127 | } 128 | - name: ~~ rechts ~~ 129 | type: vertical-stack 130 | cards: 131 | - name: R1 132 | type: custom:button-card 133 | card_mod: 134 | style: | 135 | ha-card { 136 | --ha-card-border-radius: 0px; 137 | --ha-card-border-color: #990000; 138 | --ha-card-border-width: 1px; 139 | --card-mod-icon-color: white; 140 | padding: 0; 141 | height: 27vh; 142 | background: transparent; 143 | } 144 | - name: R2 145 | type: custom:button-card 146 | card_mod: 147 | style: | 148 | ha-card { 149 | --ha-card-border-radius: 0px; 150 | --ha-card-border-color: #990000; 151 | --ha-card-border-width: 1px; 152 | --card-mod-icon-color: white; 153 | padding: 0; 154 | height: 27vh; 155 | background: transparent; 156 | } 157 | - name: R3 158 | type: custom:button-card 159 | card_mod: 160 | style: | 161 | ha-card { 162 | --ha-card-border-radius: 0px; 163 | --ha-card-border-color: #990000; 164 | --ha-card-border-width: 1px; 165 | --card-mod-icon-color: white; 166 | padding: 0; 167 | height: 27vh; 168 | background: transparent; 169 | } 170 | -------------------------------------------------------------------------------- /SmartHomeNG/shNG-plugins/trovis557x/plugin.yaml: -------------------------------------------------------------------------------- 1 | plugin: 2 | 3 | type: interface 4 | description: 5 | de: 'Plugin zum Auslesen von SAMSON TROVIS 557x Heizungsreglern' 6 | en: 'Plugin to read out SAMSON TROVIS 557x heating controllers' 7 | maintainer: Tom-Bom-badil 8 | # tester: # Who tests this plugin? 9 | state: ready # change to ready when done with development 10 | keywords: iot samson trovis 5573 5576 5578 5579 11 | documentation: https://github.com/Tom-Bom-badil/samson_trovis_557x/wiki 12 | support: https://knx-user-forum.de/forum/supportforen/smarthome-py/1390281-trovis-557x-heizungsregler-plugin 13 | version: 2.0.0 14 | sh_minversion: 1.5 15 | # sh_maxversion: # maximum shNG version to use this plugin (leave empty if latest) 16 | multi_instance: False 17 | restartable: unknown 18 | classname: trovis557x 19 | 20 | item_attributes: 21 | 22 | type: 23 | type: str 24 | mandatory: True 25 | description: 26 | de: 'Den Typ aller verwendeten Items vorerst auf list setzen (wird noch geändert)' 27 | en: 'Set all items in use to type list (will be changed lateron)' 28 | 29 | desc: 30 | type: str 31 | mandatory: False 32 | description: 33 | de: 'Beschreibung des Items' 34 | en: 'Description of the item' 35 | 36 | trovis557x_var: 37 | type: str 38 | mandatory: True 39 | description: 40 | de: 'Kennzeichnet das Item zur Benutzung durch das Plugin (Kurznamen des gewünschten Wertes/Bits hier zuweisen)' 41 | en: 'Marks the item for use by the plugin (the short name of the requested register/coil must be assigned here)' 42 | 43 | liste: 44 | type: list 45 | mandatory: False 46 | description: 47 | de: 'Enthält alle Item-Informationen (Buswert, umgerechneter Wert, Einheit oder Listentext)' 48 | en: 'Contains the full item information (bus value, real value, unit or list text)' 49 | 50 | werte: 51 | type: list 52 | mandatory: False 53 | description: 54 | de: 'Für Register, die stufenweise mit Werten belegt sind' 55 | en: 'For registers that contain step values' 56 | 57 | invalid_to_zero: 58 | type: bool 59 | mandatory: False 60 | description: 61 | de: 'Setzt 32767 (=NaN, nicht verfügbar) auf 0 fuer ausgeschaltete oder nicht verfuegbare Register' 62 | en: 'Sets 32767 (=NaN, unavailable) to 0 for switched-off or unavailable registers' 63 | 64 | parameters: 65 | 66 | # Wichtige Parameter 67 | # Important parameters 68 | 69 | modbus_mode: 70 | type: str 71 | default: 'rtu' # rtu (serial) or tcp (LAN) 72 | description: 73 | de: 'Wie die Modbus-Kommunikation duchgeführt wird (rtu oder tcp)' 74 | en: 'How modbus communication is done (rtu or tcp)' 75 | 76 | modbus_port: 77 | type: str 78 | default: '/dev/ttytrovis' 79 | # rtu: z.B./eg. /dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyAMA0, /dev/ttytrovis, /dev/trovis 80 | # rtu remark: chmod 777 /dev/ wird empfohlen / is recommended 81 | # tcp: xxx.xxx.xxx.xxx:Port, e.g. '192.168.178.59:502'. You MUST specify the port at the end! 82 | description: 83 | de: 'Modbus Verbindung, z.B. /dev/ttyUSB0 (rtu mit socat/mbusd) oder 192.168.178.52:502 (tcp)' 84 | en: 'Modbus connection, e.g. /dev/ttyUSB0 (rtu with socat/mbusd) or 192.168.178.52:502 (tcp)' 85 | 86 | modbus_speed: 87 | type: int 88 | default: 19200 89 | description: 90 | de: 'Modbus-Geschwindigkeit (Trovis: PA6 - Modbus, Baudrate)' 91 | en: 'Modbus speed (Trovis: PA6 - Modbus, Baudrate)' 92 | 93 | modbus_trovis_address: 94 | type: int 95 | # Unbedingt richtige Stationsadresse in der Trovis einstellen! 96 | # You MUST set the right station address in the Trovis! 97 | default: 247 # !!! Factory default Trovis: 255; Modbus spec says <=247 !!! 98 | description: 99 | de: 'Stationsadresse der Trovis (Trovis: PA6 - Modbus, ST.-NR <=247!)' 100 | en: 'Station address of the Trovis (Trovis: PA6 - Modbus, ST.-NR <=247!)' 101 | 102 | # Optionale Parameter 103 | # Optional parameters 104 | 105 | cycle: 106 | type: int 107 | default: 60 108 | description: 109 | de: 'Ausleseintervall' 110 | en: 'Reading interval' 111 | 112 | # Diese Parameter sollten so belassen werden: 113 | # You should leave these parameters as is: 114 | 115 | modbus_timeout: 116 | type: num 117 | default: 0.5 118 | description: 119 | de: 'Modbus Timeout' 120 | en: 'Modbus timeout' 121 | 122 | modbus_debug: 123 | type: bool 124 | default: False # ToDo / Einschalten des Debug-Modus in pymodbus noch herausfinden 125 | description: 126 | de: 'Debug-Meldungen von pymodbus' 127 | en: 'Debug messages from pymodbus' 128 | 129 | 130 | # Entfallene Parameter 131 | # Deprecated parameters 132 | 133 | #model: 134 | # type: int 135 | # default: 5576 136 | # description: 137 | # de: 'Modell des Heizungsreglers (5573, 5576, 5578, 5579)' 138 | # en: 'Model of the heating controller (5573, 5576, 5578, 5579)' 139 | 140 | #revision: 141 | # type: int 142 | # default: 003 143 | # description: 144 | # # Steht auf dem Aufkleber auf der Seite des Reglers 145 | # de: 'Baureihe des Heizungsreglers (001, 002, 003 usw)' 146 | # en: 'Revision of the heating controller (001, 002, 003 usw)' 147 | 148 | plugin_functions: NONE 149 | item_structs: NONE 150 | logic_parameters: NONE 151 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/registers/2_messwerte.yaml: -------------------------------------------------------------------------------- 1 | ############################# Sensoren ('Fühler') ############################## 2 | # 3 | # Maximalausbau - Anordnung nach elektrischem Schaltplan der 5579 (Port 1-17). 4 | # 5 | # Es können alle Sensoren bestückt werden, auch wenn die aktuell eingestellte 6 | # Anlage diese nicht auswertet. Messwerte werden in jedem Fall geliefert. 7 | # Trotzdem nochmal gegenprüfen, ob irgendwelche Reglereinstellungen Bezug auf 8 | # einen nachinstallierten Sensor nehmen!!! 9 | # 10 | # Sensoranschluss: 2-Draht, links Port, rechts Massesteg Mitte (Polung egal). 11 | # !!! Richtige Seite des Massestegs nutzen - andere Seite ist N von 230V. !!! 12 | # Sensortyp beachten (PT100, PT1000, NTC5K usw - CO5-F01..03, meist PT1000). 13 | 14 | 15 | # Port / Anschluss 1 16 | - name: "Trovis Fühler Außen 1 (AF1)" 17 | unique_id: trovis_f_AF1 18 | slave: !secret trovis_modbus_address 19 | address: 9 20 | scan_interval: 60 21 | scale: 0.1 22 | precision: 1 23 | unit_of_measurement: "°C" 24 | device_class: temperature 25 | data_type: int16 26 | nan_value: 32767 27 | 28 | # Port / Anschluss 2 29 | - name: "Trovis Fühler Außen 2 (AF2)" 30 | unique_id: trovis_f_AF2 31 | slave: !secret trovis_modbus_address 32 | address: 10 33 | scan_interval: 60 34 | scale: 0.1 35 | precision: 1 36 | unit_of_measurement: "°C" 37 | device_class: temperature 38 | data_type: int16 39 | nan_value: 32767 40 | 41 | # Port / Anschluss 3 42 | - name: "Trovis Fühler Speicher 1 (SF1)" 43 | unique_id: trovis_f_SF1 44 | slave: !secret trovis_modbus_address 45 | address: 22 46 | scan_interval: 60 47 | scale: 0.1 48 | precision: 1 49 | unit_of_measurement: "°C" 50 | device_class: temperature 51 | data_type: int16 52 | nan_value: 32767 53 | 54 | # Port / Anschluss 4 55 | - name: "Trovis Fühler Speicher 2 (SF2)" 56 | unique_id: trovis_f_SF2 57 | slave: !secret trovis_modbus_address 58 | address: 23 59 | scan_interval: 60 60 | scale: 0.1 61 | precision: 1 62 | unit_of_measurement: "°C" 63 | device_class: temperature 64 | data_type: int16 65 | nan_value: 32767 66 | 67 | # Port / Anschluss 5 68 | - name: "Trovis Fühler Raum 1 (RF1)" 69 | unique_id: trovis_f_RF1 70 | slave: !secret trovis_modbus_address 71 | address: 19 72 | scan_interval: 60 73 | scale: 0.1 74 | precision: 1 75 | unit_of_measurement: "°C" 76 | device_class: temperature 77 | data_type: int16 78 | nan_value: 32767 79 | 80 | # Port / Anschluss 6 81 | - name: "Trovis Fühler Raum 2 (RF2)" 82 | unique_id: trovis_f_RF2 83 | slave: !secret trovis_modbus_address 84 | address: 20 85 | scan_interval: 60 86 | scale: 0.1 87 | precision: 1 88 | unit_of_measurement: "°C" 89 | device_class: temperature 90 | data_type: int16 91 | nan_value: 32767 92 | 93 | # Port / Anschluss 7 94 | - name: "Trovis Fühler Raum 3 (RF3)" 95 | unique_id: trovis_f_RF3 96 | slave: !secret trovis_modbus_address 97 | address: 21 98 | scan_interval: 60 99 | scale: 0.1 100 | precision: 1 101 | unit_of_measurement: "°C" 102 | device_class: temperature 103 | data_type: int16 104 | nan_value: 32767 105 | 106 | # Port / Anschluss 8 107 | - name: "Trovis Fühler Vorlauf 1 (VF1)" 108 | unique_id: trovis_f_VF1 109 | slave: !secret trovis_modbus_address 110 | address: 12 111 | scan_interval: 60 112 | scale: 0.1 113 | precision: 1 114 | unit_of_measurement: "°C" 115 | device_class: temperature 116 | data_type: int16 117 | nan_value: 32767 118 | 119 | # Port / Anschluss 9 120 | - name: "Trovis Fühler Vorlauf 2 (VF2)" 121 | unique_id: trovis_f_VF2 122 | slave: !secret trovis_modbus_address 123 | address: 13 124 | scan_interval: 60 125 | scale: 0.1 126 | precision: 1 127 | unit_of_measurement: "°C" 128 | device_class: temperature 129 | data_type: int16 130 | nan_value: 32767 131 | 132 | # Port / Anschluss 10 133 | - name: "Trovis Fühler Vorlauf 3 (VF3)" 134 | unique_id: trovis_f_VF3 135 | slave: !secret trovis_modbus_address 136 | address: 14 137 | scan_interval: 60 138 | scale: 0.1 139 | precision: 1 140 | unit_of_measurement: "°C" 141 | device_class: temperature 142 | data_type: int16 143 | nan_value: 32767 144 | 145 | # Port / Anschluss 11 146 | - name: "Trovis Fühler Vorlauf 4 (VF4)" 147 | unique_id: trovis_f_VF4 148 | slave: !secret trovis_modbus_address 149 | address: 15 150 | scan_interval: 60 151 | scale: 0.1 152 | precision: 1 153 | unit_of_measurement: "°C" 154 | device_class: temperature 155 | data_type: int16 156 | nan_value: 32767 157 | 158 | # Port / Anschluss 12 159 | - name: "Trovis Fühler Rücklauf 1 (RüF1)" 160 | unique_id: trovis_f_RueF1 161 | slave: !secret trovis_modbus_address 162 | address: 16 163 | scan_interval: 60 164 | scale: 0.1 165 | precision: 1 166 | unit_of_measurement: "°C" 167 | device_class: temperature 168 | data_type: int16 169 | nan_value: 32767 170 | 171 | # Port / Anschluss 13 172 | - name: "Trovis Fühler Rücklauf 2 (RüF2)" 173 | unique_id: trovis_f_RueF2 174 | slave: !secret trovis_modbus_address 175 | address: 17 176 | scan_interval: 60 177 | scale: 0.1 178 | precision: 1 179 | unit_of_measurement: "°C" 180 | device_class: temperature 181 | data_type: int16 182 | nan_value: 32767 183 | 184 | # Port / Anschluss 14 185 | - name: "Trovis Fühler Rücklauf 3 (RüF3)" 186 | unique_id: trovis_f_RueF3 187 | slave: !secret trovis_modbus_address 188 | address: 18 189 | scan_interval: 60 190 | scale: 0.1 191 | precision: 1 192 | unit_of_measurement: "°C" 193 | device_class: temperature 194 | data_type: int16 195 | nan_value: 32767 196 | 197 | # Port / Anschluss 15 198 | - name: "Trovis Fühler Ferngeber 1 (FG1)" 199 | unique_id: trovis_f_FG1 200 | slave: !secret trovis_modbus_address 201 | address: 25 202 | scan_interval: 60 203 | scale: 0.1 204 | precision: 1 205 | unit_of_measurement: "K" 206 | device_class: temperature 207 | data_type: int16 208 | nan_value: 32767 209 | 210 | # Port / Anschluss 16 211 | - name: "Trovis Fühler Ferngeber 2 (FG2)" 212 | unique_id: trovis_f_FG2 213 | slave: !secret trovis_modbus_address 214 | address: 26 215 | scan_interval: 60 216 | scale: 0.1 217 | precision: 1 218 | unit_of_measurement: "K" 219 | device_class: temperature 220 | data_type: int16 221 | nan_value: 32767 222 | 223 | # Port / Anschluss 17 224 | - name: "Trovis Fühler Speicher/Ferngeber 3 (SF3/FG3)" 225 | unique_id: trovis_f_SF3_FG3 226 | slave: !secret trovis_modbus_address 227 | address: 24 228 | scan_interval: 60 229 | scale: 0.1 230 | precision: 1 231 | unit_of_measurement: "°C" 232 | device_class: temperature 233 | data_type: int16 234 | nan_value: 32767 235 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/trigger_startup.yaml: -------------------------------------------------------------------------------- 1 | 2 | - alias: 'Get initial heating curve simulation values after restart' 3 | 4 | trigger: 5 | 6 | platform: homeassistant 7 | event: 'start' 8 | 9 | action: 10 | 11 | ##################################### Rk1 #################################### 12 | 13 | - action: input_number.set_value 14 | metadata: {} 15 | target: 16 | entity_id: input_number.trovis_hk1_steigung 17 | data: 18 | value: "{{ states('sensor.trovis_hk1_steigung')|float(0.0)|round(1) }}" 19 | 20 | - action: input_number.set_value 21 | metadata: {} 22 | target: 23 | entity_id: input_number.trovis_hk1_niveau 24 | data: 25 | value: "{{ states('sensor.trovis_hk1_niveau')|int(0) }}" 26 | 27 | - action: input_number.set_value 28 | metadata: {} 29 | target: 30 | entity_id: input_number.trovis_hk1_raumsoll_tag 31 | data: 32 | value: "{{ states('sensor.trovis_hk1_raumsoll_tag')|float(0.0)|round(1) }}" 33 | 34 | - action: input_number.set_value 35 | metadata: {} 36 | target: 37 | entity_id: input_number.trovis_hk1_raumsoll_nacht 38 | data: 39 | value: "{{ states('sensor.trovis_hk1_raumsoll_nacht')|float(0.0)|round(1) }}" 40 | 41 | - action: input_number.set_value 42 | metadata: {} 43 | target: 44 | entity_id: input_number.trovis_hk1_vl_min 45 | data: 46 | value: "{{ states('sensor.trovis_hk1_vl_min')|int(0) }}" 47 | 48 | - action: input_number.set_value 49 | metadata: {} 50 | target: 51 | entity_id: input_number.trovis_hk1_vl_max 52 | data: 53 | value: "{{ states('sensor.trovis_hk1_vl_max')|int(0) }}" 54 | 55 | ##################################### Rk2 #################################### 56 | 57 | - action: input_number.set_value 58 | metadata: {} 59 | target: 60 | entity_id: input_number.trovis_hk2_steigung 61 | data: 62 | value: "{{ states('sensor.trovis_hk2_steigung')|float(0.0)|round(1) }}" 63 | 64 | - action: input_number.set_value 65 | metadata: {} 66 | target: 67 | entity_id: input_number.trovis_hk2_niveau 68 | data: 69 | value: "{{ states('sensor.trovis_hk2_niveau')|int(0) }}" 70 | 71 | - action: input_number.set_value 72 | metadata: {} 73 | target: 74 | entity_id: input_number.trovis_hk2_raumsoll_tag 75 | data: 76 | value: "{{ states('sensor.trovis_hk2_raumsoll_tag')|float(0.0)|round(1) }}" 77 | 78 | - action: input_number.set_value 79 | metadata: {} 80 | target: 81 | entity_id: input_number.trovis_hk2_raumsoll_nacht 82 | data: 83 | value: "{{ states('sensor.trovis_hk2_raumsoll_nacht')|float(0.0)|round(1) }}" 84 | 85 | - action: input_number.set_value 86 | metadata: {} 87 | target: 88 | entity_id: input_number.trovis_hk2_vl_min 89 | data: 90 | value: "{{ states('sensor.trovis_hk2_vl_min')|int(0) }}" 91 | 92 | - action: input_number.set_value 93 | metadata: {} 94 | target: 95 | entity_id: input_number.trovis_hk2_vl_max 96 | data: 97 | value: "{{ states('sensor.trovis_hk2_vl_max')|int(0) }}" 98 | 99 | ##################################### Rk3 #################################### 100 | 101 | # - action: input_number.set_value 102 | # metadata: {} 103 | # target: 104 | # entity_id: input_number.trovis_hk3_steigung 105 | # data: 106 | # value: "{{ states('sensor.trovis_hk3_steigung')|float(0.0)|round(1) }}" 107 | 108 | # - action: input_number.set_value 109 | # metadata: {} 110 | # target: 111 | # entity_id: input_number.trovis_hk3_niveau 112 | # data: 113 | # value: "{{ states('sensor.trovis_hk3_niveau')|int(0) }}" 114 | 115 | # - action: input_number.set_value 116 | # metadata: {} 117 | # target: 118 | # entity_id: input_number.trovis_hk3_raumsoll_tag 119 | # data: 120 | # value: "{{ states('sensor.trovis_hk3_raumsoll_tag')|float(0.0)|round(1) }}" 121 | 122 | # - action: input_number.set_value 123 | # metadata: {} 124 | # target: 125 | # entity_id: input_number.trovis_hk3_raumsoll_nacht 126 | # data: 127 | # value: "{{ states('sensor.trovis_hk3_raumsoll_nacht')|float(0.0)|round(1) }}" 128 | 129 | # - action: input_number.set_value 130 | # metadata: {} 131 | # target: 132 | # entity_id: input_number.trovis_hk3_vl_min 133 | # data: 134 | # value: "{{ states('sensor.trovis_hk3_vl_min')|int(0) }}" 135 | 136 | # - action: input_number.set_value 137 | # metadata: {} 138 | # target: 139 | # entity_id: input_number.trovis_hk3_vl_max 140 | # data: 141 | # value: "{{ states('sensor.trovis_hk3_vl_max')|int(0) }}" 142 | 143 | 144 | ##################################### Rk4 #################################### 145 | 146 | - action: input_number.set_value 147 | metadata: {} 148 | target: 149 | entity_id: input_number.trovis_hk4_haltewert_tw 150 | data: 151 | value: "{{ states('sensor.trovis_hk4_haltewert_tw')|int(0) }}" 152 | 153 | - action: input_number.set_value 154 | metadata: {} 155 | target: 156 | entity_id: input_number.trovis_hk4_maxladetemperatur_tw 157 | data: 158 | value: "{{ states('sensor.trovis_hk4_maxladetemperatur_tw')|int(0) }}" 159 | 160 | - action: input_number.set_value 161 | metadata: {} 162 | target: 163 | entity_id: input_number.trovis_hk4_maxrl_tw 164 | data: 165 | value: "{{ states('sensor.trovis_hk4_maxrl_tw')|int(0) }}" 166 | 167 | - action: input_number.set_value 168 | metadata: {} 169 | target: 170 | entity_id: input_number.trovis_hk4_schaltdifferenz_tw 171 | data: 172 | value: "{{ states('sensor.trovis_hk4_schaltdifferenz_tw')|int(0) }}" 173 | 174 | - action: input_number.set_value 175 | metadata: {} 176 | target: 177 | entity_id: input_number.trovis_hk4_soll_tw 178 | data: 179 | value: "{{ states('sensor.trovis_hk4_soll_tw')|int(0) }}" 180 | 181 | - action: input_number.set_value 182 | metadata: {} 183 | target: 184 | entity_id: input_number.trovis_hk4_ueberhoehung_tw 185 | data: 186 | value: "{{ states('sensor.trovis_hk4_ueberhoehung_tw')|int(0) }}" 187 | 188 | 189 | # beispiel: 190 | # automation 3: 191 | # triggers: 192 | # # Multiple entities for which you want to perform the same action. 193 | # - trigger: state 194 | # entity_id: 195 | # - light.bedroom_closet 196 | # - light.kiddos_closet 197 | # - light.linen_closet 198 | # to: "on" 199 | # # Trigger when someone leaves one of those lights on for 10 minutes. 200 | # for: "00:10:00" 201 | # actions: 202 | # - action: light.turn_off 203 | # target: 204 | # # Turn off whichever entity triggered the automation. 205 | # entity_id: "{{ trigger.entity_id }}" 206 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/trigger_actions.yaml: -------------------------------------------------------------------------------- 1 | ############################ Triggers & Actions ############################### 2 | 3 | ################################### Hk1 ##################################### 4 | 5 | - trigger: 6 | - trigger: homeassistant 7 | event: start 8 | - trigger: state 9 | entity_id: sensor.trovis_hk1_steigung 10 | 11 | action: 12 | - action: input_number.set_value 13 | target: 14 | entity_id: input_number.trovis_hk1_steigung 15 | data: 16 | value: "{{ states('sensor.trovis_hk1_steigung')|float(0.0)|round(1) }}" 17 | 18 | - trigger: 19 | - trigger: homeassistant 20 | event: start 21 | - trigger: state 22 | entity_id: sensor.trovis_hk1_niveau 23 | 24 | action: 25 | - action: input_number.set_value 26 | target: 27 | entity_id: input_number.trovis_hk1_niveau 28 | data: 29 | value: "{{ states('sensor.trovis_hk1_niveau')|int(0) }}" 30 | 31 | - trigger: 32 | - trigger: homeassistant 33 | event: start 34 | - trigger: state 35 | entity_id: sensor.trovis_hk1_raumsoll_tag 36 | 37 | action: 38 | - action: input_number.set_value 39 | target: 40 | entity_id: input_number.trovis_hk1_raumsoll_tag 41 | data: 42 | value: "{{ states('sensor.trovis_hk1_raumsoll_tag')|float(0.0)|round(1) }}" 43 | 44 | - trigger: 45 | - trigger: homeassistant 46 | event: start 47 | - trigger: state 48 | entity_id: sensor.trovis_hk1_raumsoll_nacht 49 | 50 | action: 51 | - action: input_number.set_value 52 | target: 53 | entity_id: input_number.trovis_hk1_raumsoll_nacht 54 | data: 55 | value: "{{ states('sensor.trovis_hk1_raumsoll_nacht')|float(0.0)|round(1) }}" 56 | 57 | - trigger: 58 | - trigger: homeassistant 59 | event: start 60 | - trigger: state 61 | entity_id: sensor.trovis_hk1_vl_min 62 | 63 | action: 64 | - action: input_number.set_value 65 | target: 66 | entity_id: input_number.trovis_hk1_vl_min 67 | data: 68 | value: "{{ states('sensor.trovis_hk1_vl_min')|int(0) }}" 69 | 70 | - trigger: 71 | - trigger: homeassistant 72 | event: start 73 | - trigger: state 74 | entity_id: sensor.trovis_hk1_vl_max 75 | 76 | action: 77 | - action: input_number.set_value 78 | target: 79 | entity_id: input_number.trovis_hk1_vl_max 80 | data: 81 | value: "{{ states('sensor.trovis_hk1_vl_max')|int(0) }}" 82 | 83 | ################################### Hk2 ##################################### 84 | 85 | # - trigger: 86 | # - trigger: homeassistant 87 | # event: start 88 | # - trigger: state 89 | # entity_id: sensor.trovis_hk2_steigung 90 | 91 | # action: 92 | # - action: input_number.set_value 93 | # target: 94 | # entity_id: input_number.trovis_hk2_steigung 95 | # data: 96 | # value: "{{ states('sensor.trovis_hk2_steigung')|float(0.0)|round(1) }}" 97 | 98 | # - trigger: 99 | # - trigger: homeassistant 100 | # event: start 101 | # - trigger: state 102 | # entity_id: sensor.trovis_hk2_niveau 103 | 104 | # action: 105 | # - action: input_number.set_value 106 | # target: 107 | # entity_id: input_number.trovis_hk2_niveau 108 | # data: 109 | # value: "{{ states('sensor.trovis_hk2_niveau')|int(0) }}" 110 | 111 | - trigger: 112 | - trigger: homeassistant 113 | event: start 114 | - trigger: state 115 | entity_id: sensor.trovis_hk2_raumsoll_tag 116 | 117 | action: 118 | - action: input_number.set_value 119 | target: 120 | entity_id: input_number.trovis_hk2_raumsoll_tag 121 | data: 122 | value: "{{ states('sensor.trovis_hk2_raumsoll_tag')|float(0.0)|round(1) }}" 123 | 124 | - trigger: 125 | - trigger: homeassistant 126 | event: start 127 | - trigger: state 128 | entity_id: sensor.trovis_hk2_raumsoll_nacht 129 | 130 | action: 131 | - action: input_number.set_value 132 | target: 133 | entity_id: input_number.trovis_hk2_raumsoll_nacht 134 | data: 135 | value: "{{ states('sensor.trovis_hk2_raumsoll_nacht')|float(0.0)|round(1) }}" 136 | 137 | - trigger: 138 | - trigger: homeassistant 139 | event: start 140 | - trigger: state 141 | entity_id: sensor.trovis_hk2_vl_min 142 | 143 | action: 144 | - action: input_number.set_value 145 | target: 146 | entity_id: input_number.trovis_hk2_vl_min 147 | data: 148 | value: "{{ states('sensor.trovis_hk2_vl_min')|int(0) }}" 149 | 150 | - trigger: 151 | - trigger: homeassistant 152 | event: start 153 | - trigger: state 154 | entity_id: sensor.trovis_hk2_vl_max 155 | 156 | action: 157 | - action: input_number.set_value 158 | target: 159 | entity_id: input_number.trovis_hk2_vl_max 160 | data: 161 | value: "{{ states('sensor.trovis_hk2_vl_max')|int(0) }}" 162 | 163 | ################################### Hk3 ##################################### 164 | 165 | # - trigger: 166 | # - trigger: homeassistant 167 | # event: start 168 | # - trigger: state 169 | # entity_id: sensor.trovis_hk3_steigung 170 | 171 | # action: 172 | # - action: input_number.set_value 173 | # target: 174 | # entity_id: input_number.trovis_hk3_steigung 175 | # data: 176 | # value: "{{ states('sensor.trovis_hk3_steigung')|float(0.0)|round(1) }}" 177 | 178 | # - trigger: 179 | # - trigger: homeassistant 180 | # event: start 181 | # - trigger: state 182 | # entity_id: sensor.trovis_hk3_niveau 183 | 184 | # action: 185 | # - action: input_number.set_value 186 | # target: 187 | # entity_id: input_number.trovis_hk3_niveau 188 | # data: 189 | # value: "{{ states('sensor.trovis_hk3_niveau')|int(0) }}" 190 | 191 | # - trigger: 192 | # - trigger: homeassistant 193 | # event: start 194 | # - trigger: state 195 | # entity_id: sensor.trovis_hk3_raumsoll_tag 196 | 197 | # action: 198 | # - action: input_number.set_value 199 | # target: 200 | # entity_id: input_number.trovis_hk3_raumsoll_tag 201 | # data: 202 | # value: "{{ states('sensor.trovis_hk3_raumsoll_tag')|float(0.0)|round(1) }}" 203 | 204 | # - trigger: 205 | # - trigger: homeassistant 206 | # event: start 207 | # - trigger: state 208 | # entity_id: sensor.trovis_hk3_raumsoll_nacht 209 | 210 | # action: 211 | # - action: input_number.set_value 212 | # target: 213 | # entity_id: input_number.trovis_hk3_raumsoll_nacht 214 | # data: 215 | # value: "{{ states('sensor.trovis_hk3_raumsoll_nacht')|float(0.0)|round(1) }}" 216 | 217 | # - trigger: 218 | # - trigger: homeassistant 219 | # event: start 220 | # - trigger: state 221 | # entity_id: sensor.trovis_hk3_vl_min 222 | 223 | # action: 224 | # - action: input_number.set_value 225 | # target: 226 | # entity_id: input_number.trovis_hk3_vl_min 227 | # data: 228 | # value: "{{ states('sensor.trovis_hk3_vl_min')|int(0) }}" 229 | 230 | # - trigger: 231 | # - trigger: homeassistant 232 | # event: start 233 | # - trigger: state 234 | # entity_id: sensor.trovis_hk3_vl_max 235 | 236 | # action: 237 | # - action: input_number.set_value 238 | # target: 239 | # entity_id: input_number.trovis_hk3_vl_max 240 | # data: 241 | # value: "{{ states('sensor.trovis_hk3_vl_max')|int(0) }}" -------------------------------------------------------------------------------- /community/@falkio8/Trovis.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 39 | 41 | 42 | 44 | image/svg+xml 45 | 47 | 48 | 49 | 50 | 51 | 56 | 63 | 70 | 73 | 79 | 84 | 85 | TROVIS 5573-1 96 | 99 | 105 | 112 | 113 | 116 | 122 | 129 | 130 | 131 | 132 | -------------------------------------------------------------------------------- /HomeAssistant/trovis557x/template_sensors.yaml: -------------------------------------------------------------------------------- 1 | ############################# Template Sensors ################################ 2 | 3 | - platform: template 4 | 5 | sensors: 6 | 7 | # Trovis - overall state; used for grabbing the right visu status pic top left 8 | # Example for Anlage 2.x: 9 | # {% if hk1 %} 1 --> automatically uses gesamtstatus-1.svg 10 | # {% elif ww %} 2 --> automatically uses gesamtstatus-2.svg 11 | # {% else %} 0 --> automatically uses gesamtstatus-0.svg 12 | # {% endif %} 13 | trovis_regler_gesamtstatus: 14 | unique_id: trovis_r_gesamtstatus 15 | friendly_name: "Trovis Regler Gesamtstatus" 16 | value_template: >- 17 | {# hier alle wichtigen Merkmale der eigenen Heizung definieren #} 18 | {% set hk1 = is_state('binary_sensor.trovis_hk1_umwaelzpumpe', 'on') %} 19 | {% set ww = is_state('binary_sensor.trovis_hk4_speicherladepumpe', 'on') %} 20 | {# Heizungszustände ableiten -> Bild zur Zahl wird automatisch ausgewählt #} 21 | {# Bilder: /www/trovis557x/images/gesamtstatus/status-.svg #} 22 | {% if hk1 and not ww %} 1 23 | {% elif ww and not hk1 %} 2 24 | {% elif hk1 and ww %} 3 25 | {% else %} 0 26 | {% endif %} 27 | 28 | # Trovis - heating curve to display if you tap/click a button 29 | # set to 0/1/2/3/4 (0=do nothing, 1..3=Rk1..3/Heating, 4=Rk4/HotWaterTank) 30 | trovis_regler_button1_click: # top button 31 | unique_id: trovis_r_button_1_click 32 | friendly_name: "Trovis Regler Button1 Klick/Tap" 33 | value_template: 1 34 | 35 | trovis_regler_button1_doubleclick: 36 | unique_id: trovis_r_button_1_doubleclick 37 | friendly_name: "Trovis Regler Button1 Double Klick/Tap" 38 | value_template: 1 39 | 40 | trovis_regler_button2_click: # middle button 41 | unique_id: trovis_r_button_2_click 42 | friendly_name: "Trovis Regler Button2 Klick/Tap" 43 | value_template: 2 44 | 45 | trovis_regler_button2_doubleclick: 46 | unique_id: trovis_r_button_2_doubleclick 47 | friendly_name: "Trovis Regler Button2 Double Klick/Tap" 48 | value_template: 2 49 | 50 | trovis_regler_button3_click: # bottom button 51 | unique_id: trovis_r_button_3_click 52 | friendly_name: "Trovis Regler Button3 Klick/Tap" 53 | value_template: 3 54 | 55 | trovis_regler_button3_doubleclick: 56 | unique_id: trovis_r_button_3_doubleclick 57 | friendly_name: "Trovis Regler Button3 Double Klick/Tap" 58 | value_template: 4 59 | 60 | # Trovis - current date formatted 61 | trovis_regler_datum_formatiert: 62 | unique_id: trovis_z_datum_formatiert 63 | friendly_name: "Trovis Regler Datum (formatiert)" 64 | value_template: >- 65 | {% if states('sensor.trovis_regler_datum')|float < 1000 %} 66 | {{ '0' + states('sensor.trovis_regler_datum')[:1] + '.' + states('sensor.trovis_regler_datum')[-2:] + '.' + states('sensor.trovis_regler_jahr') }} 67 | {% else %} 68 | {{ states('sensor.trovis_regler_datum')[:2] + '.' + states('sensor.trovis_regler_datum')[-2:] + '.' + states('sensor.trovis_regler_jahr') }} 69 | {% endif %} 70 | 71 | # Trovis - date summer mode on 72 | trovis_hk123_sommerbetrieb_ein_formatiert: 73 | unique_id: trovis_z_sommerbetrieb_ein_formatiert 74 | friendly_name: "Trovis Sommerbetrieb ein (formatiert)" 75 | value_template: >- 76 | {% if states('sensor.trovis_hk123_sommerbetrieb_ein')|float < 1000 %} 77 | {{ '0' + states('sensor.trovis_hk123_sommerbetrieb_ein')[:1] + '.' + states('sensor.trovis_hk123_sommerbetrieb_ein')[-2:] + '.' }} 78 | {% else %} 79 | {{ states('sensor.trovis_hk123_sommerbetrieb_ein')[:2] + '.' + states('sensor.trovis_hk123_sommerbetrieb_ein')[-2:] + '.' }} 80 | {% endif %} 81 | 82 | # Trovis - date summer mode off 83 | trovis_hk123_sommerbetrieb_aus_formatiert: 84 | unique_id: trovis_z_sommerbetrieb_aus_formatiert 85 | friendly_name: "Trovis Sommerbetrieb aus (formatiert)" 86 | value_template: >- 87 | {% if states('sensor.trovis_hk123_sommerbetrieb_aus')|float < 1000 %} 88 | {{ '0' + states('trovis_hk123_sommerbetrieb_aus')[:1] + '.' + states('sensor.trovis_hk123_sommerbetrieb_aus')[-2:] + '.' }} 89 | {% else %} 90 | {{ states('sensor.trovis_hk123_sommerbetrieb_aus')[:2] + '.' + states('sensor.trovis_hk123_sommerbetrieb_aus')[-2:] + '.' }} 91 | {% endif %} 92 | 93 | # Trovis - current time formatted 94 | trovis_regler_uhrzeit_formatiert: 95 | unique_id: trovis_z_uhrzeit_formatiert 96 | friendly_name: "Trovis Regler Uhrzeit (formatiert)" 97 | value_template: >- 98 | {% if states('sensor.trovis_regler_uhrzeit')|float < 10 %} 99 | {{ '00:0' + states('sensor.trovis_regler_uhrzeit') }} 100 | {% elif states('sensor.trovis_regler_uhrzeit')|float < 60 %} 101 | {{ '00:' + states('sensor.trovis_regler_uhrzeit') }} 102 | {% elif states('sensor.trovis_regler_uhrzeit')|float < 1000 %} 103 | {{ '0' + states('sensor.trovis_regler_uhrzeit')[:1] + ':' + states('sensor.trovis_regler_uhrzeit')[-2:] }} 104 | {% else %} 105 | {{ states('sensor.trovis_regler_uhrzeit')[:2] + ':' + states('sensor.trovis_regler_uhrzeit')[-2:] }} 106 | {% endif %} 107 | 108 | # Trovis - disinfection weekday 109 | trovis_hk4_desinfektionstag_formatiert: 110 | unique_id: trovis_z_hk4_desinfektionstag_formatiert 111 | friendly_name: "Trovis Hk4 Desinfektionstag (formatiert)" 112 | value_template: > 113 | {% set weekdays = ['aus', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'] %} 114 | {% set disinfection_day = states('sensor.trovis_hk4_desinfektionstag') | int %} 115 | {{ weekdays[disinfection_day] }} 116 | 117 | # Trovis - disinfection start time formatted 118 | trovis_hk4_desinfektionsstart_formatiert: 119 | unique_id: trovis_z_hk4_desinfektionsstart_formatiert 120 | friendly_name: "Trovis HK4 Desinfektionsstart (formatiert)" 121 | value_template: >- 122 | {% if states('sensor.trovis_hk4_desinfektionsstart')|float < 10 %} 123 | {{ '00:0' + states('sensor.trovis_hk4_desinfektionsstart') }} 124 | {% elif states('sensor.trovis_hk4_desinfektionsstart')|float < 60 %} 125 | {{ '00:' + states('sensor.trovis_hk4_desinfektionsstart') }} 126 | {% elif states('sensor.trovis_hk4_desinfektionsstart')|float < 1000 %} 127 | {{ '0' + states('sensor.trovis_hk4_desinfektionsstart')[:1] + ':' + states('sensor.trovis_hk4_desinfektionsstart')[-2:] }} 128 | {% else %} 129 | {{ states('sensor.trovis_hk4_desinfektionsstart')[:2] + ':' + states('sensor.trovis_hk4_desinfektionsstart')[-2:] }} 130 | {% endif %} 131 | 132 | # Trovis - disinfection end time formatted 133 | trovis_hk4_desinfektionsende_formatiert: 134 | unique_id: trovis_z_hk4_desinfektionsende_formatiert 135 | friendly_name: "Trovis HK4 Desinfektionsende (formatiert)" 136 | value_template: >- 137 | {% if states('sensor.trovis_hk4_desinfektionsende')|float < 10 %} 138 | {{ '00:0' + states('sensor.trovis_hk4_desinfektionsende') }} 139 | {% elif states('sensor.trovis_hk4_desinfektionsende')|float < 60 %} 140 | {{ '00:' + states('sensor.trovis_hk4_desinfektionsende') }} 141 | {% elif states('sensor.trovis_hk4_desinfektionsende')|float < 1000 %} 142 | {{ '0' + states('sensor.trovis_hk4_desinfektionsende')[:1] + ':' + states('sensor.trovis_hk4_desinfektionsende')[-2:] }} 143 | {% else %} 144 | {{ states('sensor.trovis_hk4_desinfektionsende')[:2] + ':' + states('sensor.trovis_hk4_desinfektionsende')[-2:] }} 145 | {% endif %} 146 | 147 | # Trovis - disinfection duration formatted 148 | trovis_hk4_desinfektionsdauer_formatiert: 149 | unique_id: trovis_z_hk4_desinfektionsdauer_formatiert 150 | friendly_name: "Trovis HK4 Desinfektionsdauer (formatiert)" 151 | value_template: >- 152 | {% if states('sensor.trovis_hk4_desinfektionsdauer')|float < 10 %} 153 | {{ '00:0' + states('sensor.trovis_hk4_desinfektionsdauer') }} 154 | {% elif states('sensor.trovis_hk4_desinfektionsdauer')|float < 60 %} 155 | {{ '00:' + states('sensor.trovis_hk4_desinfektionsdauer') }} 156 | {% elif states('sensor.trovis_hk4_desinfektionsdauer')|float < 1000 %} 157 | {{ '0' + states('sensor.trovis_hk4_desinfektionsdauer')[:1] + ':' + states('sensor.trovis_hk4_desinfektionsdauer')[-2:] }} 158 | {% else %} 159 | {{ states('sensor.trovis_hk4_desinfektionsdauer')[:2] + ':' + states('sensor.trovis_hk4_desinfektionsdauer')[-2:] }} 160 | {% endif %} 161 | 162 | # Trovis - top switch position 163 | trovis_regler_schalter_oben_formatiert: 164 | unique_id: trovis_r_schalter_oben_formatiert 165 | friendly_name: "Trovis Schalter oben (formatiert)" 166 | value_template: >- 167 | {% set positions = ['PA', 'Auto', 'Stdby', 'Hand', 'Sonne', 'Mond'] %} 168 | {% set current_position = states('sensor.trovis_regler_schalter_oben') | int %} 169 | {{ positions[current_position] }} 170 | 171 | # Trovis - middle switch position 172 | trovis_regler_schalter_mitte_formatiert: 173 | unique_id: trovis_r_schalter_mitte_formatiert 174 | friendly_name: "Trovis Schalter mitte (formatiert)" 175 | value_template: >- 176 | {% set positions = ['PA', 'Auto', 'Stdby', 'Hand', 'Sonne', 'Mond'] %} 177 | {% set current_position = states('sensor.trovis_regler_schalter_mitte') | int %} 178 | {{ positions[current_position] }} 179 | 180 | # Trovis - bottom switch position 181 | trovis_regler_schalter_unten_formatiert: 182 | unique_id: trovis_r_schalter_unten_formatiert 183 | friendly_name: "Trovis Schalter unten (formatiert)" 184 | value_template: >- 185 | {% set positions = ['PA', 'Auto', 'Stdby', 'Hand', 'Sonne', 'Mond'] %} 186 | {% set current_position = states('sensor.trovis_regler_schalter_unten') | int %} 187 | {{ positions[current_position] }} 188 | 189 | # Trovis - Hk1 operating mode as text 190 | trovis_hk1_betriebsart_formatiert: 191 | unique_id: trovis_hk1_betriebsart_formatiert 192 | friendly_name: "Trovis Hk1 Betriebsart (formatiert)" 193 | value_template: >- 194 | {% set modes = ['PA', 'Auto', 'Stdby', 'Hand', 'Sonne', 'Mond'] %} 195 | {% set current_mode = states('sensor.trovis_hk1_betriebsart') | int %} 196 | {{ modes[current_mode] }} 197 | 198 | # Trovis - Hk2 operating mode as text 199 | trovis_hk2_betriebsart_formatiert: 200 | unique_id: trovis_hk2_betriebsart_formatiert 201 | friendly_name: "Trovis Hk2 Betriebsart (formatiert)" 202 | value_template: >- 203 | {% set modes = ['PA', 'Auto', 'Stdby', 'Hand', 'Sonne', 'Mond'] %} 204 | {% set current_mode = states('sensor.trovis_hk2_betriebsart') | int %} 205 | {{ modes[current_mode] }} 206 | 207 | # Trovis - Hk3 operating mode as text 208 | trovis_hk3_betriebsart_formatiert: 209 | unique_id: trovis_hk3_betriebsart_formatiert 210 | friendly_name: "Trovis Hk3 Betriebsart (formatiert)" 211 | value_template: >- 212 | {% set modes = ['PA', 'Auto', 'Stdby', 'Hand', 'Sonne', 'Mond'] %} 213 | {% set current_mode = states('sensor.trovis_hk3_betriebsart') | int %} 214 | {{ modes[current_mode] }} 215 | 216 | # Trovis - Hk4 WW operating mode as text 217 | trovis_hk4_betriebsart_formatiert: 218 | unique_id: trovis_hk4_betriebsart_formatiert 219 | friendly_name: "Trovis Hk4 Betriebsart (formatiert)" 220 | value_template: >- 221 | {% set modes = ['PA', 'Auto', 'Stdby', 'Hand', 'Sonne', 'Mond'] %} 222 | {% set current_mode = states('sensor.trovis_hk4_betriebsart') | int %} 223 | {{ modes[current_mode] }} 224 | 225 | # Trovis - Hk4 (WW) day time temperatures 226 | trovis_hk4_tagestemperaturen: 227 | unique_id: trovis_hk4_tagestemperaturen 228 | friendly_name: "Trovis Hk4 Tagestemperaturen" 229 | value_template: >- 230 | {% set min = states('sensor.trovis_hk4_soll_tw') | int %} 231 | {% set hysterese = states('sensor.trovis_hk4_schaltdifferenz_tw') | int %} 232 | {% set max = min + hysterese %} 233 | {{ min|string + '-' + max|string + '°' }} 234 | 235 | # Trovis - Hk4 (WW) night time temperatures 236 | trovis_hk4_nachttemperaturen: 237 | unique_id: trovis_hk4_nachttemperaturen 238 | friendly_name: "Trovis Hk4 Nachttemperaturen" 239 | value_template: >- 240 | {% set min = states('sensor.trovis_hk4_haltewert_tw') | int %} 241 | {% set hysterese = states('sensor.trovis_hk4_schaltdifferenz_tw') | int %} 242 | {% set max = min + hysterese %} 243 | {{ min|string + '-' + max|string + '°' }} 244 | 245 | # Trovis - Hk4 (WW) currently set heating temperature 246 | trovis_hk4_ladetemperatur: 247 | unique_id: trovis_hk4_ladetemperatur 248 | friendly_name: "Trovis Hk4 Ladetemperatur" 249 | unit_of_measurement: '°C' 250 | value_template: >- 251 | {% set ww_ist = states('sensor.trovis_fuhler_speicher_1_sf1') | float(1) %} 252 | {% set ueberhoehung = states('sensor.trovis_hk4_ueberhoehung_tw') | float(1) %} 253 | {% set ladesoll = ww_ist + ueberhoehung | float(1) %} 254 | {{ ladesoll }} 255 | -------------------------------------------------------------------------------- /SmartHomeNG/shNG-plugins/trovis557x/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab 3 | ######################################################################### 4 | # (C) 2019 René Jahncke aka Tom-Bom-badil tommy_bombadil@hotmail.com 5 | ######################################################################### 6 | # 7 | # Plugin to read out SAMSON TROVIS 557x heating controllers. 8 | # 9 | # This file is part of SmartHomeNG. 10 | # 11 | # SmartHomeNG is free software: you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation, either version 3 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # SmartHomeNG is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more details. 20 | # 21 | # You should have received a copy of the GNU General Public License 22 | # along with SmartHomeNG. If not, see . 23 | # 24 | ######################################################################### 25 | 26 | 27 | 28 | import serial 29 | import array 30 | from lib.module import Modules 31 | from lib.model.smartplugin import * 32 | from datetime import datetime 33 | from . import _coils 34 | from . import _listen 35 | from . import _register 36 | from pymodbus import version as pymodbusversion 37 | 38 | try: # Modbus rtu/serial, for pymodbus3+ or pymodbus2.x 39 | from pymodbus.client import ModbusSerialClient 40 | except: 41 | from pymodbus.client.sync import ModbusSerialClient 42 | 43 | try: # Modbus tcp, for pymodbus3+ or pymodbus2.x 44 | from pymodbus.client.tcp import ModbusTcpClient 45 | except: 46 | from pymodbus.client.sync import ModbusTcpClient 47 | 48 | 49 | 50 | class trovis557x(SmartPlugin): 51 | 52 | 53 | ALLOW_MULTIINSTANCE = False 54 | PLUGIN_VERSION = '2.0.0' 55 | 56 | 57 | # Starten 58 | def __init__(self, sh, *args, **kwargs): 59 | self._init_complete = False 60 | self.logger = logging.getLogger(__name__) 61 | self.sh = sh 62 | self.logger.debug('__init__ aufgerufen') 63 | self.init_vars() 64 | self._modbus = self.connect_trovis() 65 | if self._connected and self.init_webinterface(): 66 | self._modbus.close() 67 | self._init_complete = True 68 | 69 | # Nach dem Starten 1x für jedes Item durchlaufen 70 | def parse_item(self, item): 71 | 72 | if self.has_iattr(item.conf, 'trovis557x_var'): 73 | kurzname = str(item.conf['trovis557x_var']) 74 | if kurzname in self._register_tabelle.keys() or kurzname in self._coil_tabelle.keys(): 75 | self._trovis_itemlist[kurzname] = item 76 | self.logger.debug('Parse_item: Verbinde Var ' + kurzname + ' ---> Item ' + str(item)) 77 | else: 78 | self.logger.warning('! Parse_item: Unbekannter Wert "' + kurzname + '" von ' + str(item) + ' angefordert') 79 | 80 | 81 | # Setzt regelmäßigen Aufruf von poll_device im Scheduler, siehe cycle 82 | def run(self): 83 | self.logger.debug('run aufgerufen') 84 | self.scheduler_add('poll_device', self.poll_device, cycle=self._cycle) 85 | self.alive = True 86 | 87 | 88 | # Wird regelmäßig vom Scheduler aufgerufen 89 | def poll_device(self): 90 | self.logger.debug('poll_device aufgerufen') 91 | startzeit = datetime.now() 92 | 93 | self._modbus = self.connect_trovis() 94 | 95 | self.logger.debug('Registerbereiche lesen: ' + str(self._register_bereiche)) 96 | for bereich in self._register_bereiche: 97 | ids_mit_werten = self.leseTrovis(bereich, 'register') 98 | if ids_mit_werten: 99 | self.logger.debug(str(ids_mit_werten)) 100 | self.verarbeiteWerte(ids_mit_werten, 'register') 101 | ids_mit_werten = [] 102 | 103 | self.logger.debug('Coilbereiche lesen: ' + str(self._coil_bereiche)) 104 | for bereich in self._coil_bereiche: 105 | ids_mit_werten = self.leseTrovis(bereich, 'coils') 106 | if ids_mit_werten: 107 | self.logger.debug(str(ids_mit_werten)) 108 | self.verarbeiteWerte(ids_mit_werten, 'coils') 109 | 110 | self._modbus.close() 111 | 112 | endzeit = datetime.now() 113 | dauer = (endzeit - startzeit).total_seconds() 114 | self.logger.debug('=========== Durchlauf beendet, Gesamtdauer: %.1f s' % dauer) 115 | 116 | 117 | # Beim Beenden 'saubermachen' 118 | def stop(self): 119 | self.logger.debug("Stop aufgerufen") 120 | if self._connected: 121 | self._modbus.close() 122 | self.alive = False 123 | 124 | 125 | def init_webinterface(self): 126 | """" 127 | Initialize the web interface for this plugin 128 | This method is only needed if the plugin is implementing a web interface 129 | """ 130 | try: 131 | self.mod_http = Modules.get_instance().get_module( 132 | 'http') # try/except to handle running in a core version that does not support modules 133 | except: 134 | self.mod_http = None 135 | if self.mod_http == None: 136 | self.logger.error("Not initializing the web interface") 137 | return False 138 | 139 | import sys 140 | if not "SmartPluginWebIf" in list(sys.modules['lib.model.smartplugin'].__dict__): 141 | self.logger.warning("Web interface needs SmartHomeNG v1.5 and up. Not initializing the web interface") 142 | return False 143 | 144 | # set application configuration for cherrypy 145 | webif_dir = self.path_join(self.get_plugin_dir(), 'webif') 146 | config = { 147 | '/': { 148 | 'tools.staticdir.root': webif_dir, 149 | }, 150 | '/static': { 151 | 'tools.staticdir.on': True, 152 | 'tools.staticdir.dir': 'static' 153 | } 154 | } 155 | 156 | # Register the web interface as a cherrypy app 157 | self.mod_http.register_webif(WebInterface(webif_dir, self), 158 | self.get_shortname(), 159 | config, 160 | self.get_classname(), self.get_instance_name(), 161 | description='') 162 | 163 | return True 164 | 165 | 166 | # ------------------------------------------ 167 | # Ab hier Plugin-eigene Funktionen 168 | # ------------------------------------------ 169 | 170 | 171 | # Aus Master-Tabellen lesen: ID rein, Name raus 172 | def getKeyFromID(self, ID, datentyp): 173 | try: 174 | if datentyp == 'register': 175 | found = next(key for key in self._register_tabelle if self._register_tabelle[key]['ID'] == ID) 176 | else: 177 | found = next(key for key in self._coil_tabelle if self._coil_tabelle[key]['ID'] == ID) 178 | except StopIteration: 179 | found=-1 180 | return found 181 | 182 | 183 | # Variablen etc initialisieren (wird von __init__ gerufen) 184 | def init_vars(self): 185 | 186 | self._model = self.get_parameter_value('model') 187 | self._revision = self.get_parameter_value('revision') 188 | 189 | self._modbus_mode = self.get_parameter_value('modbus_mode') 190 | self._modbus_port = self.get_parameter_value('modbus_port') 191 | if self._modbus_mode == 'tcp': 192 | self._modbus_trovis_ip = self._modbus_port.split(':')[0] 193 | self._modbus_trovis_ip_port = self._modbus_port.split(':')[1] 194 | self._modbus_speed = self.get_parameter_value('modbus_speed') 195 | self._modbus_timeout = self.get_parameter_value('modbus_timeout') 196 | self._modbus_trovis_address = self.get_parameter_value('modbus_trovis_address') 197 | self._modbus_debug = self.get_parameter_value('modbus_debug') 198 | 199 | self._cycle = self.get_parameter_value('cycle') 200 | 201 | self._register_bereiche = _register.register_bereiche 202 | self._register_tabelle = _register.register_tabelle 203 | self._coil_bereiche = _coils.coil_bereiche 204 | self._coil_tabelle = _coils.coil_tabelle 205 | self._listen_tabelle = _listen.listen_tabelle 206 | 207 | self._trovis_itemlist = {} 208 | 209 | self._pymodbus_major = pymodbusversion.version.short()[0] 210 | 211 | 212 | # Schnittstelle initialisieren (wird von __init__ und bei jedem Poll aufgerufen) 213 | def connect_trovis(self): 214 | try: 215 | # self._modbus_debug = False #ToDo 216 | if self._modbus_mode == 'rtu': 217 | connection = ModbusSerialClient(method=self._modbus_mode, port=self._modbus_port, timeout=self._modbus_timeout, baudrate=self._modbus_speed) 218 | else: 219 | connection = ModbusTcpClient(host=self._modbus_trovis_ip, port=self._modbus_trovis_ip_port) 220 | # Aus anderem Plugin: self.client = ModbusTcpClient(ip, port=port) 221 | if connection.connect(): 222 | self._connected = True 223 | self.logger.info('Verbindung zur Trovis hergestellt: ' + str(connection)) 224 | else: 225 | self._connected = False 226 | self.logger.debug('Verbindung zur Trovis fehlgeschlagen: ' + str(connection)) 227 | except Exception as e: 228 | self.logger.debug('Exception beim Trovis Verbindungsaufbau: ' + str(e)) 229 | return connection 230 | 231 | 232 | # Trovis auslesen 233 | def leseTrovis(self, _bereich, _datentyp): 234 | 235 | # self.logger.info('Version: ' + self._pymodbus_major) 236 | 237 | try: 238 | _ids_mit_werten = [] 239 | werte = [] 240 | id_aktuell = _bereich[0] 241 | if _datentyp == 'register': # register lesen 242 | self.logger.debug('Lese Registerbereich ' + str(_bereich[0]) + ' - ' + str(_bereich[1])) 243 | if self._pymodbus_major == '2': 244 | werte = self._modbus.read_holding_registers(_bereich[0], _bereich[1]-_bereich[0]+1, unit = self._modbus_trovis_address) 245 | else: 246 | werte = self._modbus.read_holding_registers(_bereich[0], _bereich[1]-_bereich[0]+1, slave = self._modbus_trovis_address) 247 | for wert in werte.registers: 248 | if self.getKeyFromID(id_aktuell, 'register') != -1: 249 | _ids_mit_werten.append([id_aktuell, wert]) 250 | id_aktuell += 1 251 | else: # coils lesen 252 | self.logger.debug('Lese Coilsbereich ' + str(_bereich[0]) + ' - ' + str(_bereich[1])) 253 | if self._pymodbus_major == '2': 254 | werte = self._modbus.read_coils(_bereich[0], _bereich[1]-_bereich[0]+1, unit = self._modbus_trovis_address) 255 | else: 256 | werte = self._modbus.read_coils(_bereich[0], _bereich[1]-_bereich[0]+1, slave = self._modbus_trovis_address) 257 | for wert in werte.bits: 258 | if self.getKeyFromID(id_aktuell, 'coil') != -1: 259 | _ids_mit_werten.append([id_aktuell, int(wert)]) 260 | id_aktuell += 1 261 | # unsauber, aber Länge von 'werte' ist immer Vielfaches von 262 | # 8 (8 bits = 1 Byte) und wird ggf rechts mit Nullen aufgefüllt, 263 | # daher sind im Ergebnis ggf mehr Elemente als angefragt: 264 | if id_aktuell > _bereich[1]: 265 | break 266 | except Exception as e: 267 | _ids_mit_werten = [] 268 | self.logger.debug('Im Bereich ' + str(_bereich) + ' liefert dieser Regler oder die Reglerkonfiguration keine lesbaren Register/Coils!') 269 | return _ids_mit_werten 270 | 271 | 272 | # Ausgelesene Werte verarbeiten und bei Bedarf auf Items schreiben 273 | def verarbeiteWerte(self, _ids_mit_werten, _datentyp): # für das jeweils erste WMZ-Register stimmt etwas nicht (?) 274 | 275 | # self.logger.debug('Verarbeite ' + _datentyp + ' ' + str(_ids_mit_werten[0][0]) + '-' + str(_ids_mit_werten[len(_ids_mit_werten)-1][0]) + ':') 276 | 277 | for id, buswert in _ids_mit_werten: 278 | 279 | itemwert = '' 280 | kurzname = self.getKeyFromID(id, _datentyp) 281 | 282 | if _datentyp == 'register': 283 | alle_details = self._register_tabelle[kurzname] 284 | faktor = alle_details['Faktor'] 285 | digits = alle_details['Digits'] 286 | else: 287 | alle_details = self._coil_tabelle[kurzname] 288 | art = alle_details['Art'] 289 | typ = alle_details['Typ'] 290 | einheit = alle_details['Einheit'] 291 | 292 | # hier oben ggf. Sonderlocken für einzelne Register 293 | # if kurzname == 'xyz': 294 | # usw. 295 | 296 | # Standardtypen für Register *und* Coils 297 | if typ[:6] == 'Liste_': 298 | wert = int(buswert) 299 | einheit = self._listen_tabelle[typ][wert] 300 | 301 | elif typ == '???': 302 | wert = int(buswert) 303 | kurzname = 'unbekannt-' + str(id) 304 | 305 | # Standardtypen ausschliesslich für Register 306 | elif typ == 'Version': 307 | wert = str('{0:.'+str(digits)+'f}').format((buswert*faktor)/10**digits) 308 | 309 | elif typ == 'Zahl': 310 | busmin = int(alle_details['Busmin']) 311 | # 16bit-Register auf negativen Wert prüfen (z.B. Temperaturen) 312 | if busmin < 0 and buswert > 32767: 313 | signed_int = buswert - 65536 314 | else: 315 | signed_int = buswert 316 | 317 | if kurzname in self._trovis_itemlist.keys() and self.has_iattr(self._trovis_itemlist[kurzname].conf, 'invalid_to_zero'): 318 | if buswert == 32767 and self.get_iattr_value(self._trovis_itemlist[kurzname].conf, 'invalid_to_zero') == True: 319 | self.logger.debug(' ~~> Setze 32767 auf 0: ----> ' + kurzname) 320 | signed_int = 0 321 | 322 | if digits == 0: 323 | wert = int(str('{0:.'+str(digits)+'f}').format((signed_int*faktor))) 324 | else: 325 | wert = float(str('{0:.'+str(digits)+'f}').format((signed_int*faktor))) 326 | 327 | elif typ == 'Datum': 328 | if len(str(buswert)) == 3: 329 | wert = '0' + '{0:.2f}'.format(buswert/100) + '.' 330 | else: 331 | wert = '{0:.2f}'.format(buswert/100) + '.' 332 | 333 | elif typ == 'Uhrzeit': 334 | if int(buswert) == 0: 335 | wert = '00:00' 336 | elif int(buswert) < 60: 337 | wert = '00:' + str(buswert)[-2:] 338 | elif int(buswert) < 960: 339 | wert = str(buswert)[:1] + ':' + str(buswert)[-2:] 340 | else: 341 | wert = str(buswert)[:2] + ':' + str(buswert)[-2:] 342 | 343 | else: 344 | wert = int(buswert) 345 | kurzname = 'UNGUELTIG-' + id 346 | 347 | # itemwert = [str(buswert), str(wert), str(einheit)] 348 | 349 | if kurzname in self._trovis_itemlist.keys(): 350 | # alt - wurde als Liste geschrieben: self._trovis_itemlist[kurzname]([buswert, wert, einheit]) 351 | self._trovis_itemlist[kurzname](wert) 352 | self._trovis_itemlist[kurzname].conf['liste'] = ([buswert, wert, einheit]) 353 | if typ[:6] == 'Liste_': 354 | self.logger.debug(' ~~> ID %s = %s ---> Var %s = %s ---> Item %s' % (id, buswert, kurzname, einheit, self._trovis_itemlist[kurzname])) 355 | else: 356 | self.logger.debug(' ~~> ID %s = %s ---> Var %s = %s ---> Item %s' % (id, buswert, kurzname, str(wert) + ' ' + einheit, self._trovis_itemlist[kurzname])) 357 | 358 | # Vorsicht - große Datenmengen in kurzer Zeit!!! 359 | # Kommentar entfernen, um alle gelesenen Register/Coils einzeln im Debug-Log zu sehen: 360 | # 361 | # self.logger.debug('%4u ---> %s ---> %s' % (id, kurzname, itemwert)) 362 | 363 | 364 | 365 | # ------------------------------------------ 366 | # Webinterface of the plugin 367 | # ------------------------------------------ 368 | 369 | import cherrypy 370 | from jinja2 import Environment, FileSystemLoader 371 | 372 | 373 | class WebInterface(SmartPluginWebIf): 374 | 375 | def __init__(self, webif_dir, plugin): 376 | """ 377 | Initialization of instance of class WebInterface 378 | :param webif_dir: directory where the webinterface of the plugin resides 379 | :param plugin: instance of the plugin 380 | :type webif_dir: str 381 | :type plugin: object 382 | """ 383 | self.logger = logging.getLogger(__name__) 384 | self.webif_dir = webif_dir 385 | self.plugin = plugin 386 | self.tplenv = self.init_template_environment() 387 | 388 | @cherrypy.expose 389 | def index(self, reload=None): 390 | """ 391 | Build index.html for cherrypy 392 | Render the template and return the html file to be delivered to the browser 393 | :return: contents of the template after beeing rendered 394 | """ 395 | tmpl = self.tplenv.get_template('index.html') 396 | # add values to be passed to the Jinja2 template eg: tmpl.render(p=self.plugin, interface=interface, ...) 397 | return tmpl.render(p=self.plugin) 398 | -------------------------------------------------------------------------------- /community/@falkio8/dashboard.yaml: -------------------------------------------------------------------------------- 1 | views: 2 | - title: Home 3 | panel: true 4 | cards: 5 | - type: vertical-stack 6 | cards: 7 | - type: horizontal-stack 8 | square: false 9 | columns: 9 10 | cards: 11 | - name: Außen 12 | type: custom:button-card 13 | show_name: true 14 | show_icon: false 15 | show_state: true 16 | aspect_ratio: 2/1 17 | tap_action: 18 | action: toggle 19 | entity: sensor.trovis_fuhler_aussen_1_af1 20 | styles: 21 | card: 22 | - font-size: 16px 23 | - name: Speicher 24 | type: custom:button-card 25 | show_name: true 26 | show_icon: false 27 | show_state: true 28 | aspect_ratio: 2/1 29 | tap_action: 30 | action: toggle 31 | entity: sensor.trovis_fuhler_speicher_1_sf1 32 | - name: Vorlauf 33 | show_name: true 34 | show_icon: false 35 | show_state: true 36 | type: custom:button-card 37 | aspect_ratio: 2/1 38 | tap_action: 39 | action: toggle 40 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 41 | - name: RüF1 42 | show_name: true 43 | show_icon: false 44 | show_state: true 45 | type: custom:button-card 46 | aspect_ratio: 2/1 47 | tap_action: 48 | action: toggle 49 | entity: sensor.trovis_fuhler_rucklauf_1_ruf1 50 | - name: RüF2 51 | show_name: true 52 | show_icon: false 53 | show_state: true 54 | type: custom:button-card 55 | aspect_ratio: 2/1 56 | tap_action: 57 | action: toggle 58 | entity: sensor.trovis_fuhler_rucklauf_2_ruf2 59 | - name: Steller HK 60 | show_name: true 61 | show_icon: false 62 | show_state: true 63 | type: custom:button-card 64 | aspect_ratio: 2/1 65 | tap_action: 66 | action: toggle 67 | entity: sensor.trovis_hk1_stellsignal 68 | - name: Steller TW 69 | show_name: true 70 | show_icon: false 71 | show_state: true 72 | type: custom:button-card 73 | aspect_ratio: 2/1 74 | tap_action: 75 | action: toggle 76 | entity: sensor.trovis_hk2_stellsignal 77 | - name: Vorlauf soll 78 | show_name: true 79 | show_icon: false 80 | show_state: true 81 | type: custom:button-card 82 | aspect_ratio: 2/1 83 | tap_action: 84 | action: toggle 85 | entity: sensor.trovis_hk1_vorlaufsoll 86 | - name: TW soll 87 | show_name: true 88 | show_icon: false 89 | show_state: true 90 | type: custom:button-card 91 | aspect_ratio: 2/1 92 | tap_action: 93 | action: toggle 94 | entity: sensor.trovis_hk2_speichersoll 95 | - type: horizontal-stack 96 | name: dashboard_komplett 97 | cards: 98 | - name: ~~ links ~~ 99 | type: vertical-stack 100 | card_mod: 101 | style: | 102 | ha-card { 103 | background: transparent; 104 | padding: 5%; 105 | } 106 | cards: 107 | - name: L1 108 | show_state: false 109 | show_name: false 110 | type: picture-elements 111 | image: local/trovis/transparent.png 112 | card_mod: 113 | style: | 114 | ha-card { 115 | --ha-card-border-radius: 0px; 116 | --ha-card-border-color: #990000; 117 | --ha-card-border-width: 0px; 118 | --card-mod-icon-color: white; 119 | background: transparent; 120 | padding-left: 10%; 121 | padding-right: 10%; 122 | padding-top: 3%; 123 | padding-bottom: 0%; 124 | margin-bottom: 0%; 125 | } 126 | elements: 127 | - type: image 128 | entity: sensor.trovis_gesamtstatus 129 | state_image: 130 | '0': /local/trovis/status_0_beide_aus.svg 131 | '1': /local/trovis/status_1_TWWan_HKaus.svg 132 | '2': /local/trovis/status_1_TWWaus_HKan.svg 133 | '3': /local/trovis/status_1_TWWan_HKan.svg 134 | style: 135 | top: 0% 136 | left: 0% 137 | transform: translate(0,0) 138 | pointer-events: none 139 | - type: state-label 140 | title: AT 141 | entity: sensor.trovis_fuhler_aussen_1_af1 142 | style: 143 | color: white 144 | left: 2% 145 | top: 3% 146 | tap_action: 147 | action: more-info 148 | - type: state-label 149 | title: SF1 150 | entity: sensor.trovis_fuhler_speicher_1_sf1 151 | style: 152 | color: white 153 | left: 49% 154 | top: 3% 155 | tap_action: 156 | action: more-info 157 | - type: state-label 158 | title: RueF1 159 | entity: sensor.trovis_fuhler_rucklauf_1_ruf1 160 | style: 161 | color: white 162 | left: 50.5% 163 | top: 72% 164 | tap_action: 165 | action: more-info 166 | - type: state-label 167 | title: RK2_% 168 | entity: sensor.trovis_hk2_stellsignal 169 | style: 170 | color: white 171 | left: 42% 172 | top: 41.5% 173 | tap_action: 174 | action: more-info 175 | - type: state-label 176 | title: RueF2 177 | entity: sensor.trovis_fuhler_rucklauf_2_ruf2 178 | style: 179 | color: white 180 | left: 37.3% 181 | top: 65% 182 | tap_action: 183 | action: more-info 184 | - type: state-label 185 | title: VF1 186 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 187 | style: 188 | color: white 189 | left: 79% 190 | top: 36% 191 | tap_action: 192 | action: more-info 193 | - type: state-label 194 | title: RK1_% 195 | entity: sensor.trovis_hk1_stellsignal 196 | style: 197 | color: white 198 | left: 58% 199 | top: 47% 200 | tap_action: 201 | action: more-info 202 | - name: L2 203 | show_state: false 204 | show_name: false 205 | type: picture-elements 206 | elements: 207 | - type: custom:button-card 208 | title: Vorlage 209 | name: '' 210 | styles: 211 | card: 212 | - background-color: transparent 213 | - top: '-100px' 214 | - left: 53% 215 | grid: 216 | - grid-template-areas: | 217 | "text1" 218 | "text2" 219 | "text3" 220 | "text4" 221 | - grid-template-rows: 0.1fr min-content min-content min-content 1fr 222 | - grid-template-columns: 1fr min-content 0.1fr 223 | - gap: 0px 0px 224 | custom_fields: 225 | text1: 226 | - justify-self: start 227 | - align-self: end 228 | - margin-top: 5px 229 | - font-size: 0.5em 230 | - background-color: tranparent 231 | text2: 232 | - justify-self: start 233 | - align-self: end 234 | - margin-top: 0px 235 | - font-size: 0.5em 236 | - background-color: transparent 237 | text3: 238 | - justify-self: start 239 | - align-self: end 240 | - margin-top: 0px 241 | - font-size: 1.5em 242 | - background-color: transparent 243 | text4: 244 | - justify-self: start 245 | - align-self: end 246 | - margin-top: 0px 247 | - font-size: 1.5em 248 | - background-color: transparent 249 | custom_fields: 250 | text1: 251 | card: 252 | type: custom:button-card 253 | name: | 254 | [[[ 255 | var uhr = states['sensor.trovis_uhrzeit_formatiert_2'].state; 256 | var datum = states['sensor.trovis_datum_formatiert'].state 257 | return 'Uhrzeit: ' + uhr + ' ' +'\t Datum: ' + datum + '' 258 | ]]] 259 | styles: 260 | card: 261 | - color: black 262 | - background: transparent 263 | text2: 264 | card: 265 | type: custom:button-card 266 | name: | 267 | [[[ 268 | var version = states['sensor.trovis_regler_firmwareversion'].state; 269 | var anlage = states['sensor.trovis_regler_hydraulik_anlage'].state 270 | return 'Anlage: ' + anlage + ' Firmware: ' + version + '' 271 | ]]] 272 | styles: 273 | card: 274 | - color: black 275 | - background: transparent 276 | text3: 277 | card: 278 | type: custom:button-card 279 | name: | 280 | [[[ 281 | var steigung = states['sensor.trovis_hk1_steigung'].state; 282 | var niveau = states['sensor.trovis_hk1_niveau'].state 283 | return 'Steigung: ' + steigung + ' Niveau: ' + niveau + '' 284 | ]]] 285 | styles: 286 | card: 287 | - color: black 288 | - background: transparent 289 | text4: 290 | card: 291 | type: custom:button-card 292 | name: | 293 | [[[ 294 | var tagsoll = states['sensor.trovis_hk1_tag_soll'].state; 295 | var nachtsoll = states['sensor.trovis_hk1_nacht_soll'].state 296 | return 'Tag Soll: ' + tagsoll + '' 297 | ]]] 298 | styles: 299 | card: 300 | - color: black 301 | - background: transparent 302 | image: local/trovis/Trovis.svg 303 | - name: ~~ rechts ~~ 304 | type: vertical-stack 305 | cards: 306 | - name: R1 307 | type: custom:plotly-graph 308 | title: Aussentemperatur (48h) 309 | layout: 310 | paper_bgcolor: transparent 311 | plot_bgcolor: transparent 312 | xaxis: 313 | showlegend: true 314 | yaxis: 315 | type: number 316 | hours_to_show: 48 317 | refresh_interval: 60 318 | entities: 319 | - name: AT 320 | entity: sensor.trovis_fuhler_aussen_1_af1 321 | line: 322 | shape: spline 323 | color: lightgrey 324 | fill: tozeroy 325 | opacity: 0.5 326 | card_mod: 327 | style: | 328 | ha-card { 329 | --card-mod-icon-color: white; 330 | padding: 0; 331 | height: 27vh; 332 | background: transparent; 333 | font-size: 10px; 334 | font-weight: 800; 335 | letter-spacing: 0px; 336 | } 337 | - name: R2 338 | type: custom:plotly-graph 339 | title: Vor- und Rücklauf HK (48h) 340 | layout: 341 | paper_bgcolor: transparent 342 | plot_bgcolor: transparent 343 | xaxis: 344 | showlegend: true 345 | yaxis: 346 | type: number 347 | range: 348 | - 20 349 | - 65 350 | yaxis2: 351 | type: number 352 | range: 353 | - 0 354 | - 100 355 | hours_to_show: 48 356 | refresh_interval: 60 357 | entities: 358 | - name: Vorlauf 359 | entity: sensor.trovis_fuhler_vorlauf_1_vf1 360 | show_value: false 361 | line: 362 | shape: spline 363 | color: '#FF0000' 364 | width: 2 365 | - name: Rücklauf 366 | entity: sensor.trovis_fuhler_rucklauf_1_ruf1 367 | line: 368 | shape: spline 369 | color: '#00B0F0' 370 | width: 2 371 | - name: Steller 372 | entity: sensor.trovis_hk1_stellsignal 373 | line: 374 | shape: spline 375 | color: lightgrey 376 | yaxis: y2 377 | fill: tozeroy 378 | opacity: 0.5 379 | card_mod: 380 | style: | 381 | ha-card { 382 | --card-mod-icon-color: white; 383 | padding: 0; 384 | height: 27vh; 385 | background: transparent; 386 | font-size: 10px; 387 | font-weight: 800; 388 | letter-spacing: 0px; 389 | } 390 | - name: R3 391 | type: custom:plotly-graph 392 | title: Trinkwasserkreis (48h) 393 | layout: 394 | paper_bgcolor: transparent 395 | plot_bgcolor: transparent 396 | xaxis: 397 | showlegend: true 398 | yaxis: 399 | type: number 400 | range: 401 | - 20 402 | - 65 403 | yaxis2: 404 | type: number 405 | range: 406 | - 0 407 | - 100 408 | hours_to_show: 48 409 | refresh_interval: 60 410 | entities: 411 | - name: Solltemperatur 412 | entity: sensor.trovis_hk2_speichersoll 413 | line: 414 | dash: dot 415 | color: yellow 416 | width: 2 417 | opacity: 0.6 418 | - name: Speichertemperatur 419 | entity: sensor.trovis_fuhler_speicher_1_sf1 420 | show_value: false 421 | line: 422 | shape: spline 423 | color: '#FF0000' 424 | width: 2 425 | - name: Rücklauf 426 | entity: sensor.trovis_fuhler_rucklauf_2_ruf2 427 | line: 428 | shape: spline 429 | color: '#00B0F0' 430 | width: 2 431 | - name: Steller 432 | entity: sensor.trovis_hk2_stellsignal 433 | line: 434 | shape: spline 435 | color: lightgrey 436 | yaxis: y2 437 | fill: tozeroy 438 | opacity: 0.5 439 | card_mod: 440 | style: | 441 | ha-card { 442 | --card-mod-icon-color: white; 443 | padding: 0; 444 | height: 27vh; 445 | background: transparent; 446 | font-size: 10px; 447 | font-weight: 800; 448 | letter-spacing: 0px; 449 | } 450 | --------------------------------------------------------------------------------