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