-
-
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' }} |
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?
Würdest du deine Yaml hier zur Verfügung stellen?
Für mich ist es eine neue Welt und das würde mir beim Anfang super helfen ;)
Danke soweit
Guten Morgen, hat einer von euch vielleicht schon herausgefunden wie man die 30 Minuten Boost Funktionen der Vitramos einbinden kann?
Moin,
danke erstmal für die ganzen Informationen, die ihr hier zuzsammen getragen habt. Wir haben bei uns eine Schwörer Frischluft-WärmeGewinnTechnik (WGT) mit Frischluftheizsystem (Typ: WRG 134 HK mit Sommerbypass und Luft-Luft Kleinwärmepumpe),Auslassventile mit elektrischen Heizelementen (PTC-Element) sowie einigen Vitramo Infrarot Wärmestrahlern in den Bädern.
Bei mir funktioniert leider das Einschalten des Boosts (Zusatzheizung_ PTC-Element, Vitramo) auch nicht. Die Freigabe für die Verwendung des Boosts allerdings funktioniert. Hier die beiden Konfigurationen:
#
# Wohnzimmer
#
# Bus-ID: 2
#
- name: WGT Zusatzheizung Freigabe Wohnzimmer
slave: 1
address: 442
command_on: 0x1 # aktiv
command_off: 0x0 # inaktiv
write_type: holdings
verify:
input_type: holding
state_on: 0x1
state_off: 0x0
delay: 5
unique_id: wgt_set_zusatzheizung_freigabe_wohnzimmer
- name: WGT Zusatzheizung Wohnzimmer
slave: 1
address: 462
command_on: 0x1
command_off: 0x0
write_type: holding
verify:
input_type: holding
state_on: 0x1
state_off: 0x0
delay: 30
unique_id: wgt_set_zusatzheizung_wohnzimmer
Hat jemand noch eine Idee, wie der Boost aktiviert werden könnte? Laut der Modbus Übersicht für die SchwörerHaus WGT gibt es ja keinen Unterschied zwischen der Freigabe der Zusatzheizung und dem Einschalten der Zusatzheizung (boost)
Nachdem ich nun die das Anlage selbst drin habe - wie kann ich denn die Bedienteile der einzelnen Räume abfragen? Bzw wie kann ich in Modbus die Adressen rausfinden?
Du findest im Bedienteil die Bus-Adresse, daraus kannst Du dann die Adressen ermitteln:
z.B. wäre die Adresse für die Feigabe der Zusatzheizung für die Bus ID 2, die 442:
- name: WGT Zusatzheizung Freigabe Wohnzimmer
slave: 1
address: 442
Nachdem ich nun die das Anlage selbst drin habe - wie kann ich denn die Bedienteile der einzelnen Räume abfragen? Bzw wie kann ich in Modbus die Adressen rausfinden?