-
-
Save JavanXD/a3e8911e69f3a27a81eeeb80414bb6ab to your computer and use it in GitHub Desktop.
| # Helpful information: | |
| # https://github.com/Excodibur/ioBroker.schwoerer-ventcube/blob/master/src/lib/schwoerer/parameters.ts | |
| # https://github.com/fgoettel/wgt/blob/main/wgt/lueftungsanlage.py | |
| # https://knx-user-forum.de/forum/öffentlicher-bereich/knx-eib-forum/diy-do-it-yourself/1822296-modbus-schwörer-heizung?p=1906252#post1906252 | |
| ################## | |
| # MODBUS SENSORS # | |
| ################## | |
| modbus: | |
| - name: BIC_VentCube | |
| delay: 2 | |
| timeout: 5 | |
| message_wait_milliseconds: 50 | |
| type: tcp | |
| host: !secret wgt_ip | |
| port: 502 | |
| sensors: | |
| - name: VentCube Betriebsart | |
| slave: 1 | |
| unique_id: ventcube_betriebsart | |
| address: 100 | |
| # Translated with template sensor | |
| # Translated with input_select Automation | |
| - name: VentCube Manuelle Luftstufe | |
| slave: 1 | |
| unique_id: ventcube_manuelle_luftstufe | |
| address: 101 | |
| # Translated with input_select Automation | |
| - name: VentCube Aktuelle Luftstufe | |
| slave: 1 | |
| unique_id: ventcube_aktuelle_luftstufe | |
| address: 102 | |
| - name: VentCube Status Stoßlüftung | |
| slave: 1 | |
| unique_id: ventcube_status_stosslueftung | |
| address: 111 | |
| # Translated with template sensor | |
| - name: VentCube Restlaufzeit Stoßlüftung | |
| slave: 1 | |
| unique_id: ventcube_restlaufzeit_stosslueftung | |
| address: 112 | |
| unit_of_measurement: min | |
| device_class: duration | |
| min_value: 0 | |
| max_value: 60 | |
| - name: VentCube Status Wärmepumpe | |
| slave: 1 | |
| unique_id: ventcube_status_waermepumpe | |
| address: 114 | |
| # Translated with template sensor | |
| - name: VentCube Status Nachheizregister | |
| slave: 1 | |
| unique_id: ventcube_status_nachheizregister | |
| address: 116 | |
| # Translated with template sensor | |
| - name: VentCube Status Gebläse Zuluft | |
| slave: 1 | |
| unique_id: ventcube_status_geblaese_zuluft | |
| address: 117 | |
| # Translated with template sensor | |
| - name: VentCube Status Gebläse Abluft | |
| slave: 1 | |
| unique_id: ventcube_status_geblaese_abluft | |
| address: 118 | |
| # Translated with template sensor | |
| - name: VentCube Zustand Bypass | |
| slave: 1 | |
| unique_id: ventcube_bypass_zustand | |
| address: 123 | |
| # Translated with template sensor | |
| - name: VentCube Zustand Außenklappe | |
| slave: 1 | |
| unique_id: ventcube_zustand_aussenklappe | |
| address: 131 | |
| # Translated with template sensor | |
| - name: VentCube Status Vorheizregister | |
| slave: 1 | |
| unique_id: ventcube_status_vorheizregister | |
| address: 133 | |
| # Translated with template sensor | |
| - name: VentCube aktuelle Luftleistung Zuluft | |
| slave: 1 | |
| unique_id: ventcube_aktuelle_luftleistung_zuluft | |
| address: 142 | |
| state_class: measurement | |
| unit_of_measurement: "%" | |
| min_value: 0 | |
| max_value: 100 | |
| scale: 1 | |
| precision: 0 | |
| - name: VentCube aktuelle Luftleistung Abluft | |
| unique_id: ventcube_aktuelle_luftleistung_abluft | |
| slave: 1 | |
| address: 143 | |
| state_class: measurement | |
| unit_of_measurement: "%" | |
| min_value: 0 | |
| max_value: 100 | |
| scale: 1 | |
| precision: 0 | |
| - name: VentCube aktuelle Drehzahl Zuluft | |
| unique_id: ventcube_aktuelle_drehzahl_zuluft | |
| slave: 1 | |
| address: 144 | |
| state_class: measurement | |
| unit_of_measurement: "rpm" | |
| min_value: 0 | |
| max_value: 10000 | |
| precision: 0 | |
| - name: VentCube aktuelle Drehzahl Abluft | |
| unique_id: ventcube_aktuelle_drehzahl_abluft | |
| slave: 1 | |
| address: 145 | |
| state_class: measurement | |
| unit_of_measurement: "rpm" | |
| min_value: 0 | |
| max_value: 10000 | |
| precision: 0 | |
| - name: VentCube T2 Temperatur nach Vorheizregister | |
| slave: 1 | |
| unique_id: ventcube_t2_temperatur_nach_vorheizregister | |
| unit_of_measurement: °C | |
| device_class: temperature | |
| address: 201 | |
| scale: 0.1 | |
| precision: 1 | |
| - name: VentCube T3 Temperatur vor Nacherwärmung | |
| slave: 1 | |
| unique_id: ventcube_t3_temperatur_vor_nacherwaermung | |
| unit_of_measurement: °C | |
| device_class: temperature | |
| address: 202 | |
| scale: 0.1 | |
| precision: 1 | |
| - name: VentCube T4 Temperatur nach Nacherwärmung | |
| slave: 1 | |
| unique_id: ventcube_t4_temperatur_nach_nacherwaermung | |
| unit_of_measurement: °C | |
| device_class: temperature | |
| address: 203 | |
| scale: 0.1 | |
| precision: 1 | |
| - name: VentCube T5 Temperatur Abluft | |
| slave: 1 | |
| unique_id: ventcube_t5_temperatur_abluft | |
| unit_of_measurement: °C | |
| device_class: temperature | |
| address: 204 | |
| scale: 0.1 | |
| precision: 1 | |
| - name: VentCube T6 Temperatur im Wärmetauscher | |
| slave: 1 | |
| unique_id: ventcube_t6_temperatur_im_waermetauscher | |
| unit_of_measurement: °C | |
| device_class: temperature | |
| address: 205 | |
| scale: 0.1 | |
| precision: 1 | |
| - name: VentCube T10 Temperatur Außen | |
| slave: 1 | |
| unique_id: ventcube_t10_temperatur_aussen | |
| unit_of_measurement: °C | |
| device_class: temperature | |
| address: 209 | |
| scale: 0.1 | |
| precision: 1 | |
| - name: VentCube Heiz- Kühlfunktion | |
| slave: 1 | |
| unique_id: ventcube_heiz_kuehlfunktion | |
| address: 230 | |
| # Translated with template sensor | |
| # Translated with input_select Automation | |
| - name: VentCube Wärmepumpe Heizen | |
| slave: 1 | |
| unique_id: ventcube_wp_heizen | |
| address: 231 | |
| - name: VentCube Wärmepumpe Kühlen | |
| slave: 1 | |
| unique_id: ventcube_wp_kuehlen | |
| address: 232 | |
| - name: VentCube Druckwächter aktiv | |
| slave: 1 | |
| unique_id: ventcube_druckwachter_aktiv | |
| address: 242 | |
| # Translated with template sensor (binary_sensor) | |
| - name: VentCube EVU Sperre aktiv | |
| slave: 1 | |
| unique_id: ventcube_evu_sperre_aktiv | |
| address: 243 | |
| # Translated with template sensor (binary_sensor) | |
| - name: VentCube Wartungstür offen | |
| slave: 1 | |
| unique_id: ventcube_wartungstur_offen | |
| address: 244 | |
| # Translated with template sensor (binary_sensor) | |
| - name: VentCube Gerätefilter verschmutzt | |
| slave: 1 | |
| unique_id: ventcube_geratefilter_verschmutzt | |
| address: 245 | |
| # Translated with template sensor (binary_sensor) | |
| - name: VentCube Vorgelagerter Filter verschmutzt | |
| slave: 1 | |
| unique_id: ventcube_vorgelagerter_filter_verschmutzt | |
| address: 246 | |
| # Translated with template sensor (binary_sensor) | |
| - name: VentCube Zuluft zu kalt | |
| slave: 1 | |
| unique_id: ventcube_zuluft_zu_kalt | |
| address: 254 | |
| # Translated with template sensor (binary_sensor) | |
| - name: VentCube Restlaufzeit Gerätefilter | |
| slave: 1 | |
| unique_id: ventcube_restlaufzeit_geratefilter | |
| address: 265 | |
| unit_of_measurement: d | |
| min_value: 0 | |
| max_value: 255 | |
| device_class: duration | |
| - name: VentCube Temperatur Wohnzimmer IST | |
| slave: 1 | |
| unique_id: ventcube_temperatur_wohnzimmer_ist | |
| unit_of_measurement: °C | |
| device_class: temperature | |
| address: 360 | |
| scale: 0.1 | |
| precision: 1 | |
| min_value: 0 | |
| max_value: 100 | |
| switches: | |
| - name: VentCube Freigabe WP auf Heizen | |
| slave: 1 | |
| address: 231 | |
| command_on: 0x1 # Freigabe | |
| command_off: 0x0 # Gesperrt | |
| write_type: holdings | |
| verify: | |
| input_type: holding | |
| state_on: 0x1 | |
| state_off: 0x0 | |
| delay: 5 | |
| unique_id: ventcube_set_waermepumpe_heizen | |
| - name: VentCube Freigabe WP auf Kühlen | |
| slave: 1 | |
| address: 232 | |
| command_on: 0x1 # Freigabe | |
| command_off: 0x0 # Gesperrt | |
| write_type: holdings | |
| verify: | |
| input_type: holding | |
| state_on: 0x1 | |
| state_off: 0x0 | |
| delay: 5 | |
| unique_id: ventcube_set_waermepumpe_kuehlen | |
| climates: | |
| - name: "VentCube Soll-Temperatur" | |
| unique_id: ventcube_soll_temperatur | |
| slave: 1 | |
| address: 400 | |
| max_temp: 30 | |
| min_temp: 10 | |
| offset: 0 | |
| precision: 0 | |
| scale: 0.1 | |
| target_temp_register: 400 | |
| target_temp_write_registers: true | |
| temp_step: 1 | |
| temperature_unit: °C | |
| - name: "VentCube Basis-Temperatur" | |
| unique_id: ventcube_basis_temperatur | |
| slave: 1 | |
| address: 420 | |
| max_temp: 30 | |
| min_temp: 18 | |
| offset: 0 | |
| precision: 0 | |
| scale: 0.1 | |
| target_temp_register: 420 | |
| target_temp_write_registers: true | |
| temp_step: 1 | |
| temperature_unit: °C | |
| ##################################################### | |
| # Select Options which require separate Automations # | |
| ##################################################### | |
| input_select: | |
| ventcube_manuelle_luftstufe: | |
| name: VentCube Manuelle Luftstufe | |
| options: | |
| - "0 - Aus" | |
| - "1 - Stufe 1" | |
| - "2 - Stufe 2" | |
| - "3 - Stufe 3" | |
| - "4 - Stufe 4" | |
| - "5 - Automatik" | |
| - "6 - Linearbetrieb" | |
| icon: mdi:fan | |
| ventcube_betriebsart: | |
| name: VentCube Betriebsart | |
| options: | |
| - "0 - Aus" | |
| - "1 - Handbetrieb" | |
| - "2 - Winterbetrieb" | |
| - "3 - Sommerbetrieb" | |
| - "4 - Sommer Abluft" | |
| icon: mdi:fan | |
| ventcube_heiz_kuehlfunktion: | |
| name: VentCube Heiz- Kühlfunktion | |
| options: | |
| - "0 - Aus" | |
| - "1 - Heizen" | |
| - "2 - Kühlen" | |
| - "3 - Auto T-Außen" | |
| - "4 - Auto Digitaler Eingang" | |
| icon: mdi:fan | |
| #################### | |
| # TEMPLATE SENSORS # | |
| #################### | |
| template: | |
| - sensor: | |
| - unique_id: ventcube_betriebsart_text | |
| default_entity_id: sensor.ventcube_betriebsart_text | |
| name: "VentCube Betriebsart" | |
| state: >- | |
| {% set mapper = { | |
| '0': 'Aus', | |
| '1': 'Handbetrieb', | |
| '2': 'Winterbetrieb', | |
| '3': 'Sommerbetrieb', | |
| '4': 'Sommer Abluft' | |
| } %} | |
| {% set s = states('sensor.ventcube_betriebsart') %} | |
| {{ mapper[s] if s in mapper else 'Unknown' }} | |
| - sensor: | |
| - unique_id: ventcube_bypass_zustand_text | |
| default_entity_id: sensor.ventcube_bypass_zustand_text | |
| name: "VentCube Zustand Bypass" | |
| state: >- | |
| {% set mapper = { | |
| '0': 'Geschlossen', | |
| '1': 'Offen (Kühlen)', | |
| '2': 'Offen (Heizen)' | |
| } %} | |
| {% set s = states('sensor.ventcube_bypass_zustand') %} | |
| {{ mapper[s] if s in mapper else 'Unknown' }} | |
| - sensor: | |
| - unique_id: ventcube_zustand_aussenklappe_text | |
| default_entity_id: sensor.ventcube_zustand_aussenklappe_text | |
| name: "VentCube Zustand Außenklappe" | |
| state: >- | |
| {% set mapper = { | |
| '0': 'Geschlossen', | |
| '1': 'Offen' | |
| } %} | |
| {% set s = states('sensor.ventcube_zustand_aussenklappe') %} | |
| {{ mapper[s] if s in mapper else 'Unknown' }} | |
| - sensor: | |
| - unique_id: ventcube_status_waermepumpe_text | |
| default_entity_id: sensor.ventcube_status_waermepumpe_text | |
| name: "VentCube Status Wärmepumpe" | |
| state: >- | |
| {% set mapper = { | |
| '0': 'Aus', | |
| '5': 'WP Heizen', | |
| '49': 'WP Kühlen' | |
| } %} | |
| {% set s = states('sensor.ventcube_status_waermepumpe') %} | |
| {{ mapper[s] if s in mapper else 'Unknown' }} | |
| - sensor: | |
| - unique_id: ventcube_heiz_kuehlfunktion_text | |
| default_entity_id: sensor.ventcube_heiz_kuehlfunktion_text | |
| name: "VentCube Status Heiz- Kühlfunktion" | |
| state: >- | |
| {% set mapper = { | |
| '0': 'Aus', | |
| '1': 'Heizen', | |
| '2': 'Kühlen', | |
| '3': 'Auto T-Außen', | |
| '4': 'Auto Digitaler Eingang' | |
| } %} | |
| {% set s = states('sensor.ventcube_heiz_kuehlfunktion') %} | |
| {{ mapper[s] if s in mapper else 'Unknown' }} | |
| - sensor: | |
| - unique_id: ventcube_status_vorheizregister_text | |
| default_entity_id: sensor.ventcube_status_vorheizregister_text | |
| name: "VentCube Status Vorheizregister" | |
| state: >- | |
| {% set mapper = { | |
| '0': 'Aus', | |
| '1': 'VHR1 Aktiv', | |
| '2': 'VHR2 Aktiv', | |
| '3': 'VHR1+2 Aktiv' | |
| } %} | |
| {% set s = states('sensor.ventcube_status_vorheizregister') %} | |
| {{ mapper[s] if s in mapper else 'Unknown' }} | |
| - sensor: | |
| - unique_id: ventcube_status_geblaese_zuluft_text | |
| default_entity_id: sensor.ventcube_status_geblaese_zuluft_text | |
| name: "VentCube Status Gebläse Zuluft" | |
| state: >- | |
| {% set mapper = { | |
| '0': 'Deaktiviert', | |
| '1': 'Anlaufphase', | |
| '2': 'Aktiv', | |
| '5': 'Standby', | |
| '6': 'Fehler' | |
| } %} | |
| {% set s = states('sensor.ventcube_status_geblaese_zuluft') %} | |
| {{ mapper[s] if s in mapper else 'Unknown' }} | |
| - binary_sensor: | |
| - name: "VentCube Meldung Druckwächter Aktiv" | |
| unique_id: ventcube_meldung_druckwachter_aktiv | |
| default_entity_id: binary_sensor.ventcube_meldung_druckwachter_aktiv | |
| device_class: problem | |
| state: > | |
| {% set mapper = { | |
| '0': 'off', | |
| '1': 'on'} %} | |
| {% set state = states.sensor.ventcube_druckwachter_aktiv.state %} | |
| {{ mapper[state] if state in mapper else 'Unknown' }} | |
| - name: "VentCube Meldung EVU Sperre aktiv" | |
| unique_id: ventcube_meldung_evu_sperre_aktiv | |
| default_entity_id: binary_sensor.ventcube_meldung_evu_sperre_aktiv | |
| device_class: problem | |
| state: > | |
| {% set mapper = { | |
| '0': 'off', | |
| '1': 'on'} %} | |
| {% set state = states.sensor.ventcube_evu_sperre_aktiv.state %} | |
| {{ mapper[state] if state in mapper else 'Unknown' }} | |
| - name: "VentCube Meldung Wartungstür offen" | |
| unique_id: ventcube_meldung_wartungstur_offen | |
| default_entity_id: binary_sensor.ventcube_meldung_wartungstur_offen | |
| device_class: problem | |
| state: > | |
| {% set mapper = { | |
| '0': 'off', | |
| '1': 'on'} %} | |
| {% set state = states.sensor.ventcube_wartungstur_offen.state %} | |
| {{ mapper[state] if state in mapper else 'Unknown' }} | |
| - name: "VentCube Meldung Gerätefilter verschmutzt" | |
| unique_id: ventcube_meldung_geratefilter_verschmutzt | |
| default_entity_id: binary_sensor.ventcube_meldung_geratefilter_verschmutzt | |
| device_class: problem | |
| state: > | |
| {% set mapper = { | |
| '0': 'off', | |
| '1': 'on'} %} | |
| {% set state = states.sensor.ventcube_geratefilter_verschmutzt.state %} | |
| {{ mapper[state] if state in mapper else 'Unknown' }} | |
| - name: "VentCube Meldung Vorgelagerter Filter verschmutzt" | |
| unique_id: ventcube_meldung_vorgelagerter_filter_verschmutzt | |
| default_entity_id: binary_sensor.ventcube_meldung_vorgelagerter_filter_verschmutzt | |
| device_class: problem | |
| state: > | |
| {% set mapper = { | |
| '0': 'on', | |
| '1': 'off'} %} | |
| {% set state = states.sensor.ventcube_vorgelagerter_filter_verschmutzt.state %} | |
| {{ mapper[state] if state in mapper else 'Unknown' }} | |
| - name: "VentCube Meldung Zuluft Zu Kalt" | |
| unique_id: ventcube_meldung_zuluft_zu_kalt | |
| default_entity_id: binary_sensor.ventcube_meldung_zuluft_zu_kalt | |
| device_class: problem | |
| state: > | |
| {% set mapper = { | |
| '0': 'off', | |
| '1': 'on'} %} | |
| {% set state = states.sensor.ventcube_zuluft_zu_kalt.state %} | |
| {{ mapper[state] if state in mapper else 'Unknown' }} |
Habe deine .yml und .jinja erstellt und die IP angepasst. Die Sensoren funktionieren als Zahl, aber leider nicht als Text:
Wenn die Zustände ausgelesen werden können wie man sieht, wieso werden die Text Sensoren nicht angezeigt?
Zudem kann ich bei den neuen Auswahlfeldern leider nichts auswählen:
Gruß Tobias
Hi @tobse91,
nur um sicher zu gehen: ich gehe davon aus, dass die Macros unter /custom_templates/ abgelegt wurden und Home Assistant danach neugestartet wurde? So sieht die Struktur bei mir aus:
Du kannst die Funktionstüchtigkeit der Macros testen, indem du bspw. folgenden Schnipsel unter Entwicklerwerkzeuge > Template einfügst:
{% from 'schwoererhaus_ventcube_fresh.jinja' import ventcube_operation_mode as func %}
{{ func('values') }}
Erscheint dort folgende Ausgabe, können die Macros als Fehlerursache ausgeschlossen werden:

Da dein Dropdown leer ist, das genannte Macro aber die Listeneinträge für das betroffene Feld erzeugen soll, vermute ich die Fehlerursache an dieser Stelle.
Der Modbus-Sensor für die Betriebsart hat tatsächlich die ID "sensor.ventcube_operation_mode", wie vom Template-Select so erwartet?
Viele Grüße
Benjamin
Hi zusammen, 20 Jahre in IT und Netzwerktechnik.
Und trotzdem habe ich nicht gemerkt, dass das Netzwerkkabel am Gerät selber nicht gesteckt war 😃 bzw es war ein Verständnisproblem. Ich ging davon aus, dass die ganzen Parameter etc direkt an der Hauptbedieneinheit abgefragt werden.
Hab jetzt das Kabel gesteckt und siehe da - jetzt kommen einige Werte!! ;)
Toll, dass hier weiter Aktivität ist. 👍
Ich agiere eigentlich gerne nach dem Prinzip "never change a running system". Daher werde ich jetzt nicht alles nochmal umstellen.
Aber seit dem letzte Core Update warnt mich HA, dass die Legacy Templates ab 06/2026 nicht mehr unterstützt werden. Hat sich das schon jemand angeguckt und eine Lösung geprüft, die mit möglichst wenig Eingriff, Entitätsverlusten und so weiter einhergeht?
Toll, dass hier weiter Aktivität ist. 👍 Ich agiere eigentlich gerne nach dem Prinzip "never change a running system". Daher werde ich jetzt nicht alles nochmal umstellen. Aber seit dem letzte Core Update warnt mich HA, dass die Legacy Templates ab 06/2026 nicht mehr unterstützt werden. Hat sich das schon jemand angeguckt und eine Lösung geprüft, die mit möglichst wenig Eingriff, Entitätsverlusten und so weiter einhergeht?
@Till85apr - die neue Revision ist auf die neuen Templates umgestellt, damit diese Warnungen nicht mehr kommen. Einfach Datei ersetzen.
Toll, dass hier weiter Aktivität ist. 👍 Ich agiere eigentlich gerne nach dem Prinzip "never change a running system". Daher werde ich jetzt nicht alles nochmal umstellen. Aber seit dem letzte Core Update warnt mich HA, dass die Legacy Templates ab 06/2026 nicht mehr unterstützt werden. Hat sich das schon jemand angeguckt und eine Lösung geprüft, die mit möglichst wenig Eingriff, Entitätsverlusten und so weiter einhergeht?
@Till85apr - die neue Revision ist auf die neuen Templates umgestellt, damit diese Warnungen nicht mehr kommen. Einfach Datei ersetzen.
Hi Javan, danke! Ich hab aber viele Änderungen an deiner Datei vorgenommen. U.a. die meisten Namen von VentCube auf WGT geändert, manche Sensoren deaktiviert und so weiter. Daher war die Frage eher nach dem How-To.
Hab jetzt gesehen, dass HA eine Art Anleitung zur Korrektur in der Fehlerbeschreibung gibt. Hat das jemand ausprobiert und lief das ohne Probleme mit Copy & Paste?
Ja, die Ausgaben erscheinen in den Entwickleroptionen. Die .jinja und .yaml liegen auch im richtigen Ordner.
Den Sensor sensor.ventcube_operation_mode gibt es allerdings nicht. Da liegt wohl der Fehler.
Wie du auf meinem Screenshot sehen kannst, funktionieren die Sensoren mit den Dezimal Zuständen, aber die Texte, wie z.b. sensor.ventcube_bypass_state_text sind alle unknown.
Bei Javans yaml funktionieren leider auch nicht alle Texte:
Andere wiederrum funktionieren:
Weiß leider nicht was bei mir schief gelaufen ist, habe deine/seine .yaml einfach nur eingefügt und die IP geändert. Seltsam.
Hi @Markus1010RT, super, dass das Problem so einfach zu lösen war :-)
Hi @tobse91, danke für die Infos. Dann dreht es sich um fehlende Verknüpfungen zwischen den Modbus-Entitäten und den Template Selects bzw. Sensoren bei mir, bzw. den Template-Sensoren von Javan.
Dein Screenshot mit der Entitätsliste zeigt einige Dopplungen. Ich kann dir empfehlen, in Home Assistant immer mal wieder nach Entitäten zu suchen, die von Integrationen (bzw. auch manuell definierte) nicht mehr bereitgestellt werden. Das hilft, HA etwas übersichtlicher zu halten.
Über "Einstellungen > Geräte & Dienste > Entitäten" kannst du im Filter auf der linken Seite nach "Status > Nicht bereitgestellt" filtern. Dort müssten (anhand deines Screenshots) mindestens mal die erste und die vierte Entität gelistet sein. Die kannst du (nach manueller Sichtung) markieren und löschen, sofern du sie nicht mehr benötigst.
Ich vermute, dass beim Einfügen meiner YAML gewisse Entitäts-IDs schon vergeben waren, oder man die YAML zwischenzeitlich entfernt und wieder eingefügt hat, weshalb Home Assistant neue Modbus-Entitäten angelegt hat und die alten nicht mehr versorgt werden. Sowohl Javans Template-Sensoren wie auch meine Template Selects setzen voraus, dass die Modbus-Entitäten unter den in der YAML angegebenen IDs vorliegen (und diese auch tatsächlich noch gültig sind, d.h. über Modbus aktuell gehalten werden).
Von Außen betrachtet kann ich dir entweder raten, die funktionierenden Modbus-Entitäten zu identifizieren und die jeweilige ID in der HA-Oberfläche zu korrigieren, damit sie der YAML entspricht. Oder es einmal neu aufzusetzen, d.h. die YAML zu entfernen, alle HA-Konfigurationen neu zu laden, danach die "nicht bereitgestellten Entitäten" zu entfernen und die YAML wieder hinzuzufügen, damit sämtliche Entitäten rund um VentCube/WGT neu angelegt werden. Je nachdem, was sinnvoller für dich ist.
Hi @Markus1010RT, danke dir.
Nur um sicher zu gehen: Ich gehe davon aus, du hast deine VentCube nach Aktivieren von Modbus via TCP/IP neugestartet? Hier im Thread steht was von Sicherung raus/rein, aber es geht auch per Schwörer-Bedienteil: Solange man sich noch im Service-Modus befindet -> Einstellungen -> Grundeinstellungen -> 11. Datensatz verwalten -> 6. Geräte Neustart Leistungsteil; ich habe sicherheitshalber auch "7. Geräte Neustart BT-S2" ausgeführt.
Ich konnte mich direkt nach Aktivieren von Modbus TCP/IP auf einem Unix-Betriebssystem via netcat davon überzeugen, dass der Port nun offen ist (via
nc -vz <ip> 502, also bspw.nc -vz 192.168.1.123 502). Eben nochmal getestet, erhalte ich mittlerweile nur noch einen Connection Timeout, obwohl sich HA weiterhin erfolgreich verbinden kann. Wenn du per netcat eine erfolgreiche Verbindung aufbauen kannst, prima! Beim Ergebnis "Connection Timeout" stehen die Chancen jedoch 50:50.Du kannst aber auch mit Modbus-Tools prüfen, ob du einzelne Adressen abrufen kannst (oder, für Fortgeschrittene, wahlweise direkt per netcat mit Modbus kommunizieren). Dann hättest du wenigstens Gewissheit, ob es an HA oder der Lüftungsanlage liegt. Ich hatte mal Tools recherchiert, aber noch keines ausgetestet.
Ansonsten, was sagt Home Assistant zur Verbindung? Gibt es entsprechende Einträge im Log?
Andernfalls ggf. das Loglevel temporär hochdrehen, siehe https://www.home-assistant.io/integrations/modbus/ Kapitel "Opening an issue", und danach wahlweise HA neustarten oder die Modbus-YAML-Konfiguration neu laden.