Last active
July 3, 2025 05:13
-
-
Save sventiffe/788b25ff50a8b3cc2c3a33cac5576616 to your computer and use it in GitHub Desktop.
lg150.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # for debugging, modpoll -d 8 -a 20 -c 100 -0 -t 3 /dev/ttyUSB0 for holding | |
| # for debugging, modpoll -d 8 -a 20 -c 100 -0 -t 4 /dev/ttyUSB0 for input | |
| # get modpoll for rpi here: https://www.modbusdriver.com/modpoll.html | |
| modbus: | |
| - name: pichler_lg150 | |
| type: serial | |
| port: /dev/ttyUSB0 # Muss entsprechend angepasst werden | |
| baudrate: 19200 | |
| bytesize: 8 | |
| method: rtu | |
| parity: E | |
| stopbits: 1 | |
| delay: 0 | |
| message_wait_milliseconds: 30 | |
| timeout: 5 | |
| switches: | |
| - name: "lg150_betriebsmodus" | |
| slave: 20 | |
| address: 1 | |
| write_type: holding | |
| command_on: 1 # Sommer | |
| command_off: 2 # Winter | |
| verify: | |
| delay: 1 | |
| - name: "lg150_luftfeuchte_regelung" | |
| slave: 20 | |
| address: 44 | |
| write_type: holding | |
| command_on: 1 | |
| command_off: 0 | |
| verify: | |
| delay: 1 | |
| sensors: | |
| # holding | |
| - name: "lg150_luftstufe" | |
| unique_id: "lg150_luftstufe" | |
| slave: 20 | |
| address: 2 | |
| input_type: holding | |
| data_type: int16 | |
| - name: "lg150_lufstrom_stufe1" | |
| unique_id: "lg150_luftstrom_stufe1" | |
| unit_of_measurement: "m3/h" | |
| slave: 20 | |
| address: 9 | |
| input_type: holding | |
| data_type: int16 | |
| - name: "lg150_lufstrom_stufe2" | |
| unique_id: "lg150_luftstrom_stufe2" | |
| unit_of_measurement: "m3/h" | |
| slave: 20 | |
| address: 10 | |
| input_type: holding | |
| data_type: int16 | |
| - name: "lg150_lufstrom_stufe3" | |
| unique_id: "lg150_luftstrom_stufe3" | |
| unit_of_measurement: "m3/h" | |
| slave: 20 | |
| address: 11 | |
| input_type: holding | |
| data_type: int16 | |
| - name: "lg150_lufstrom_g" | |
| unique_id: "lg150_lufstrom_g" | |
| unit_of_measurement: "m3/h" | |
| slave: 20 | |
| address: 12 | |
| input_type: holding | |
| data_type: int16 | |
| - name: "lg150_abluft_disbalance" | |
| unique_id: "lg150_abluft_disbalance" | |
| unit_of_measurement: "%" | |
| slave: 20 | |
| address: 13 | |
| input_type: holding | |
| data_type: int16 | |
| offset: -50 | |
| - name: "lg150_zuluftstrom_temp_sollwert" | |
| unique_id: "lg150_zuluftstrom_temp_sollwert" | |
| unit_of_measurement: "°C" | |
| slave: 20 | |
| address: 22 | |
| input_type: holding | |
| data_type: int16 | |
| offset: -100 | |
| precision: 1 | |
| scale: 0.1 | |
| state_class: measurement | |
| device_class: temperature | |
| - name: "lg150_luftfeuchte_sollwert" | |
| unique_id: "lg150_luftfeuchte_sollwert" | |
| unit_of_measurement: "%" | |
| slave: 20 | |
| address: 45 | |
| input_type: holding | |
| data_type: int16 | |
| state_class: measurement | |
| - name: "lg150_zuluftstrom_abgesenkt_temp_sollwert" | |
| unique_id: "lg150_zuluftstrom_abgesenkt_temp_sollwert" | |
| unit_of_measurement: "°C" | |
| slave: 20 | |
| address: 57 | |
| input_type: holding | |
| data_type: int16 | |
| offset: -100 | |
| precision: 1 | |
| scale: 0.1 | |
| state_class: measurement | |
| device_class: temperature | |
| # innput | |
| - name: "lg150_firmware" | |
| unique_id: "lg150_firmware" | |
| slave: 20 | |
| address: 23 | |
| input_type: input | |
| data_type: int16 | |
| precision: 1 | |
| scale: 0.1 | |
| - name: "lg150_model" | |
| unique_id: "lg150_model" | |
| slave: 20 | |
| address: 25 | |
| input_type: input | |
| data_type: int16 | |
| - name: "lg150_room_temp_touchdisplay" | |
| unique_id: "lg150_room_temp_touchdisplay" | |
| unit_of_measurement: "°C" | |
| slave: 20 | |
| address: 29 | |
| input_type: input | |
| data_type: int16 | |
| offset: -100 | |
| precision: 1 | |
| scale: 0.1 | |
| state_class: measurement | |
| device_class: temperature | |
| - name: "lg150_temp_frischluft" # 0.0 | |
| unique_id: "lg150_temp_aussenluft" | |
| unit_of_measurement: "°C" | |
| slave: 20 | |
| address: 30 | |
| input_type: input | |
| data_type: int16 | |
| offset: -100 | |
| precision: 1 | |
| scale: 0.1 | |
| state_class: measurement | |
| device_class: temperature | |
| - name: "lg150_temp_fortluft" # 3.0 | |
| unique_id: "lg150_temp_fortluft" | |
| unit_of_measurement: "°C" | |
| slave: 20 | |
| address: 31 | |
| input_type: input | |
| data_type: int16 | |
| offset: -100 | |
| precision: 1 | |
| scale: 0.1 | |
| state_class: measurement | |
| device_class: temperature | |
| - name: "lg150_temp_abluft" # 0.2 | |
| unique_id: "lg150_temp_abluft" | |
| unit_of_measurement: "°C" | |
| slave: 20 | |
| address: 32 | |
| input_type: input | |
| data_type: int16 | |
| offset: -100 | |
| precision: 1 | |
| scale: 0.1 | |
| state_class: measurement | |
| device_class: temperature | |
| - name: "lg150_temp_zuluft" | |
| unique_id: "lg150_temp_zuluft" | |
| unit_of_measurement: "°C" | |
| slave: 20 | |
| address: 33 | |
| input_type: input | |
| data_type: int16 | |
| offset: -100 | |
| precision: 1 | |
| scale: 0.1 | |
| state_class: measurement | |
| device_class: temperature | |
| - name: "lg150_zuluftdrehzahl" | |
| unique_id: "lg150_zuluftdrehzahl" | |
| unit_of_measurement: "rpm" | |
| slave: 20 | |
| address: 39 | |
| input_type: input | |
| data_type: int16 | |
| - name: "lg150_abluftdrehzahl" | |
| unique_id: "lg150_abluftdrehzahl" | |
| unit_of_measurement: "rpm" | |
| slave: 20 | |
| address: 40 | |
| input_type: input | |
| data_type: int16 | |
| - name: "lg150_zuluftstrom" | |
| unique_id: "lg150_zuluftstrom" | |
| unit_of_measurement: "m3/h" | |
| slave: 20 | |
| address: 46 | |
| input_type: input | |
| data_type: int16 | |
| state_class: measurement | |
| device_class: volume_flow_rate | |
| - name: "lg150_abluftstrom" | |
| unique_id: "lg150_abluftstrom" | |
| unit_of_measurement: "m3/h" | |
| slave: 20 | |
| address: 47 | |
| input_type: input | |
| data_type: int16 | |
| state_class: measurement | |
| device_class: volume_flow_rate | |
| - name: "lg150_reststandzeit_filter" | |
| unique_id: "lg150_reststandzeit_filter" | |
| unit_of_measurement: "h" | |
| slave: 20 | |
| address: 50 | |
| input_type: input | |
| data_type: uint16 | |
| - name: "lg150_bypassklappe_position" # 1=WRG, 2=Bypass, 3=Vorheiz, 4=Error | |
| unique_id: "lg150_bypassklappe_position" | |
| slave: 20 | |
| address: 51 | |
| input_type: input | |
| state_class: measurement | |
| - name: "lg150_co2_reg_out" | |
| unique_id: "lg150_co2_reg_out" | |
| unit_of_measurement: "%" | |
| slave: 20 | |
| address: 56 | |
| input_type: input | |
| data_type: int16 | |
| state_class: measurement | |
| - name: "lg150_gesamtzeit_h_stufe_1" | |
| unique_id: "lg150_gesamtzeit_h_stufe_1" | |
| unit_of_measurement: "h" | |
| slave: 20 | |
| address: 87 | |
| input_type: input | |
| data_type: uint16 | |
| - name: "lg150_gesamtzeit_h_stufe_2" | |
| unique_id: "lg150_gesamtzeit_h_stufe_2" | |
| unit_of_measurement: "h" | |
| slave: 20 | |
| address: 81 | |
| input_type: input | |
| data_type: uint16 | |
| - name: "lg150_gesamtzeit_h_stufe_3" | |
| unique_id: "lg150_gesamtzeit_h_stufe_3" | |
| unit_of_measurement: "h" | |
| slave: 20 | |
| address: 82 | |
| input_type: input | |
| data_type: uint16 | |
| - name: "lg150_gesamtzeit_h_stufe_g" | |
| unique_id: "lg150_gesamtzeit_h_stufe_g" | |
| unit_of_measurement: "h" | |
| slave: 20 | |
| address: 83 | |
| input_type: input | |
| data_type: uint16 | |
| - name: "lg150_gesamtzeit_h" | |
| unique_id: "lg150_gesamtzeit_h" | |
| unit_of_measurement: "h" | |
| slave: 20 | |
| address: 84 | |
| input_type: input | |
| data_type: uint16 | |
| - name: "lg150_gesamtzeit_h_heizung" | |
| unique_id: "lg150_gesamtzeit_h_heizung" | |
| unit_of_measurement: "h" | |
| slave: 20 | |
| address: 85 | |
| input_type: input | |
| data_type: uint16 | |
| - name: "lg150_gesamtzeit_h_bypass" | |
| unique_id: "lg150_gesamtzeit_h_bypass" | |
| unit_of_measurement: "h" | |
| slave: 20 | |
| address: 86 | |
| input_type: input | |
| data_type: uint16 | |
| sensor: | |
| - platform: template | |
| sensors: | |
| lg150_luftstrom_stufe1_render: | |
| friendly_name: "Luftstrom Stufe 1" | |
| unit_of_measurement: "m3/h" | |
| value_template: "{{ (states('sensor.lg150_lufstrom_stufe1') | float * 10) | round(1) }}" | |
| lg150_luftstrom_stufe2_render: | |
| friendly_name: "Luftstrom Stufe 2" | |
| unit_of_measurement: "m3/h" | |
| value_template: "{{ (states('sensor.lg150_lufstrom_stufe2') | float * 10) | round(1) }}" | |
| lg150_luftstrom_stufe3_render: | |
| friendly_name: "Luftstrom Stufe 3" | |
| unit_of_measurement: "m3/h" | |
| value_template: "{{ (states('sensor.lg150_lufstrom_stufe3') | float * 10) | round(1) }}" | |
| lg150_luftstrom_stufeg_render: | |
| friendly_name: "Luftstrom Grundlüftung" | |
| unit_of_measurement: "m3/h" | |
| value_template: "{{ (states('sensor.lg150_lufstrom_g') | float * 10) | round(1) }}" | |
| lg150_bypassklappe_position_render: | |
| friendly_name: "Bypassklappe" | |
| value_template: >- | |
| {% set lg150_bypassklappe_position_mapper = { | |
| 1: 'WRG', | |
| 2: 'Bypass', | |
| 3: 'Vorheiz', | |
| 4: 'Error'} %} | |
| {% set state = states('sensor.lg150_bypassklappe_position')|int %} | |
| {{ lg150_bypassklappe_position_mapper[state] if state in lg150_bypassklappe_position_mapper else 'Unknown' }} | |
| template: | |
| - sensor: | |
| - name: "lg150 Heizleistung" | |
| unique_id: "lg150_heizleistung" | |
| state_class: "measurement" | |
| unit_of_measurement: "W" | |
| device_class: power | |
| state: > | |
| {% set vorlauf = states('sensor.lg150_temp_zuluft') | float (0) %} | |
| {% set ruecklauf = states('sensor.lg150_temp_abluft') | float %} | |
| {% set durchfluss = states('sensor.lg150_zuluftstrom') | float %} | |
| {{ ((vorlauf - ruecklauf) * durchfluss * 0.33 ) | round(1, default=0) }} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment