Files
Lambdatronic_S3200/wemos-d1-froeling.yaml
2023-11-08 01:54:20 +01:00

483 lines
15 KiB
YAML

esphome:
name: wemos-d1-froeling
friendly_name: wemos-d1-froeling
esp8266:
board: d1_mini
# Enable logging
logger:
level: INFO
# Enable Home Assistant API
api:
encryption:
key: ""
ota:
password: ""
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
web_server:
port: 80
substitutions:
name: froeling
modbus_controller_id: froeling
uart:
- id: uartfroeling
tx_pin: 15
rx_pin: 13
baud_rate: 57600
data_bits: 8
stop_bits: 1
parity: NONE
#debug:
modbus:
id: modbus1
uart_id: uartfroeling
modbus_controller:
- id: froeling
address: 2
modbus_id: modbus1
setup_priority: -10
update_interval: "8s"
command_throttle: "50ms"
globals:
- id: debug_address
type: int
restore_value: yes
initial_value: '0'
switch:
- platform: restart
name: "Restart wemos-d1-froeling"
sensor:
##### Kessel #####
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Kesseltemperatur"
id: ${name}_Kesseltemperatur
register_type: read
address: 0
unit_of_measurement: "°C"
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.5
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Abgastemperatur"
id: ${name}_Abgastemperatur
register_type: read
address: 1
unit_of_measurement: "°C"
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Verbleibende Heizstunden bis zur Asche entleeren Warnung"
id: ${name}_Verbleibende_Heizstunden_bis_zur_Asche_entleeren_Warnung
register_type: read
address: 86
unit_of_measurement: "h"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Saugzug - Ansteuerung"
id: ${name}_Saugzug_Ansteuerung
register_type: read
address: 75
unit_of_measurement: "%"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Restsauerstoffgehalt"
id: ${name}_Restsauerstoffgehalt
register_type: read
address: 3
unit_of_measurement: "%"
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Rücklauffühler"
id: ${name}_Ruecklauffuehler
register_type: read
address: 9
unit_of_measurement: "°C"
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.5
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Primärluft"
id: ${name}_Primaerluft
register_type: read
address: 11
unit_of_measurement: "%"
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Sekundärluft"
id: ${name}_Sekundaerluft
register_type: read
address: 13
unit_of_measurement: "%"
accuracy_decimals: 1
value_type: U_WORD
##### Heizkörper HK1 #####
# - platform: modbus_controller
# modbus_controller_id: ${modbus_controller_id}
# name: "${name}-HK1 - Vorlauf-Isttemperatur"
# id: ${name}_HK1_Vorlauf_Isttemperatur
# register_type: read
# address: 1030
# unit_of_measurement: "°C"
# value_type: U_WORD
# filters:
# - multiply: 0.5
# - platform: modbus_controller
# modbus_controller_id: ${modbus_controller_id}
# name: "${name}-HK1 - Vorlauf-Solltemperatur"
# id: ${name}_HK1_Vorlauf_Solltemperatur
# register_type: read
# address: 1031
# unit_of_measurement: "°C"
# value_type: U_WORD
# filters:
# - multiply: 0.5
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Aussentemperatur"
id: ${name}_Aussentemperatur
register_type: read
address: 1000
unit_of_measurement: "°C"
value_type: U_WORD
filters:
- multiply: 0.5
##### Boiler 1 #####
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Boiler 1 Temperatur oben"
id: ${name}_Boiler_1_Temperatur_oben
register_type: read
address: 1630
unit_of_measurement: "°C"
value_type: U_WORD
filters:
- multiply: 0.5
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Boiler 1 Pumpe Ansteuerung"
id: ${name}_Boiler_1_Pumpe_Ansteuerung
register_type: read
address: 1632
unit_of_measurement: "%"
value_type: U_WORD
##### Puffer 1 #####
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Puffer 1 Temperatur oben"
id: ${name}_Puffer_1_Temperatur_oben
register_type: read
address: 2000
unit_of_measurement: "°C"
value_type: U_WORD
filters:
- multiply: 0.5
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Puffer 1 Temperatur mitte"
id: ${name}_Puffer_1_Temperatur_mitte
register_type: read
address: 2001
unit_of_measurement: "°C"
value_type: U_WORD
filters:
- multiply: 0.5
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Puffer 1 Temperatur unten"
id: ${name}_Puffer_1_Temperatur_unten
register_type: read
address: 2002
unit_of_measurement: "°C"
value_type: U_WORD
filters:
- multiply: 0.5
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Puffer 1 Ladezustand"
id: ${name}_Puffer_1_Ladezustand
register_type: read
address: 2006
unit_of_measurement: "%"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Puffer 1 Pufferpumpen Ansteuerung"
id: ${name}_Puffer_1_Pufferpumpen_Ansteuerung
register_type: read
address: 2003
unit_of_measurement: "%"
value_type: U_WORD
##### Austragung #####
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Fuellstand im Pelletsbehaelter"
id: ${name}_Fuellstand_im_Pelletsbehaelter
register_type: read
address: 21
unit_of_measurement: "%"
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.0048309178743961
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Resetierbarer kg-Zaehler"
id: ${name}_Resetierbarer_kg_Zaehler
register_type: read
address: 81
unit_of_measurement: "kg"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Resetierbarer t-Zaehler"
id: ${name}_Resetierbarer_t_Zaehler
register_type: read
address: 82
unit_of_measurement: "t"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Pelletverbrauch Gesamt"
id: ${name}_Pelletverbrauch_Gesamt
register_type: read
address: 83
unit_of_measurement: "t"
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Pelletlager Restbestand"
id: ${name}_Pelletlager_Restbestand
register_type: holding
address: 319
unit_of_measurement: "t"
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
# #### Zirkulations Pumpe #####
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Ruecklauftemperatur an der Zirkulations Leitung"
id: ${name}_Ruecklauftemperatur_an_der_Zirkulations_Leitung
register_type: read
address: 711
unit_of_measurement: "°C"
value_type: U_WORD
filters:
- multiply: 0.5
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Strömungsschalter an der Brauchwasser Leitung"
id: ${name}_Stoemungsschalter_an_der_Brauchwasser_Leitung
register_type: read
address: 600
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Drehzahl der Zirkulations Pumpe"
id: ${name}_Drehzahl_der_Zirkulations_Pumpe
register_type: read
address: 710
unit_of_measurement: "%"
value_type: U_WORD
number:
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Bei welcher RL Temperatur an der Zirkulationsleitung soll die Pumpe ausschalten"
id: ${name}_Bei_welcher_RL_Temperatur_an_der_Zirkulationsleitung_soll_die_Pumpe_ausschalten
address: 600
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: 20
max_value: 120
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Kessel-Solltemperatur"
id: ${name}_Kessel_Solltemperatur
address: 0
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: 70
max_value: 90
text_sensor:
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Anlagenzustand"
id: ${name}_Anlagenzustand
register_type: read
address: 4000
raw_encode: HEXBYTES
lambda: |-
uint16_t value = modbus_controller::word_from_hex_str(x, 0);
switch (value) {
case 0: return std::string("Dauerlast");
case 1: return std::string("Brauchwasser");
case 2: return std::string("Automatik");
case 3: return std::string("Scheitholzbetrieb");
case 4: return std::string("Reinigen");
case 5: return std::string("Ausgeschaltet");
case 6: return std::string("Extraheizen");
case 7: return std::string("Kaminkehrer");
case 8: return std::string("Reinigen");
default: return std::string("----");
}
return x;
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name}-Kesselzustand"
id: ${name}_Kesselzustand
register_type: read
address: 4001
raw_encode: HEXBYTES
lambda: |-
uint16_t value = modbus_controller::word_from_hex_str(x, 0);
switch (value) {
case 0: return std::string("STÖRUNG");
case 1: return std::string("Kessel Aus");
case 2: return std::string("Anheizen");
case 3: return std::string("Heizen");
case 4: return std::string("Feuererhaltung");
case 5: return std::string("Feuer Aus");
case 6: return std::string("Tür offen");
case 7: return std::string("Vorbereitung");
case 8: return std::string("Vorwärmen");
case 9: return std::string("Zünden");
case 10: return std::string("Abstellen Warten");
case 11: return std::string("Abstellen Warten1");
case 12: return std::string("Abstellen Einschub1");
case 13: return std::string("Abstellen Warten2");
case 14: return std::string("Abstellen Einschub2");
case 15: return std::string("Abreinigen");
case 16: return std::string("2h warten");
case 17: return std::string("Saugen / Heizen");
case 18: return std::string("Fehlzündung");
case 19: return std::string("Betriebsbereit");
case 20: return std::string("Rost schließen");
case 21: return std::string("Stoker leeren");
case 22: return std::string("Vorheizen");
case 23: return std::string("Saugen");
case 24: return std::string("RSE schließen");
case 25: return std::string("RSE öffnen");
case 26: return std::string("Rost kippen");
case 27: return std::string("Vorwärmen-Zünden");
case 28: return std::string("Resteinschub");
case 29: return std::string("Stoker auffüllen");
case 30: return std::string("Lambdasonde aufheizen");
case 31: return std::string("Gebläsenachlauf I");
case 32: return std::string("Gebläsenachlauf II");
case 33: return std::string("Abgestellt");
case 34: return std::string("Nachzünden");
case 35: return std::string("Zünden Warten");
case 36: return std::string("FB: RSE schließen");
case 37: return std::string("FB: Kessel belüften");
case 38: return std::string("FB: Zünden");
case 39: return std::string("FB: min. Einschub");
case 40: return std::string("RSE schließen");
case 41: return std::string("STÖRUNG: STB/NA");
case 42: return std::string("STÖRUNG: Kipprost");
case 43: return std::string("STÖRUNG: FR-Überdr.");
case 44: return std::string("STÖRUNG: Türkont.");
case 45: return std::string("STÖRUNG: Saugzug");
case 46: return std::string("STÖRUNG: Umfeld");
case 47: return std::string("FEHLER: STB/NA");
case 48: return std::string("FEHLER: Kipprost");
case 49: return std::string("FEHLER: FR-Überdr.");
case 50: return std::string("FEHLER: Türkont.");
case 51: return std::string("FEHLER: Saugzug");
case 52: return std::string("FEHLER: Umfeld");
case 53: return std::string("FEHLER: Stoker");
case 54: return std::string("STÖRUNG: Stoker");
case 55: return std::string("FB: Stoker leeren");
case 56: return std::string("Vorbelüften");
case 57: return std::string("STÖRUNG: Hackgut");
case 58: return std::string("FEHLER: Hackgut");
case 59: return std::string("NB: Tür offen");
case 60: return std::string("NB: Anheizen");
case 61: return std::string("NB: Heizen");
case 62: return std::string("FEHLER: STB/NA");
case 63: return std::string("FEHLER: Allgemein");
case 64: return std::string("NB: Feuer Aus");
case 65: return std::string("Selbsttest aktiv");
case 66: return std::string("Fehlerbeh. 20min");
case 67: return std::string("FEHLER: Fallschacht");
case 68: return std::string("STÖRUNG: Fallschacht");
case 69: return std::string("Reinigen möglich");
case 70: return std::string("Heizen - Reinigen");
case 71: return std::string("SH Anheizen");
case 72: return std::string("SH Heizen");
case 73: return std::string("SH Heiz/Abstell");
case 74: return std::string("STÖRUNG sicher");
case 75: return std::string("AGR Nachlauf");
case 76: return std::string("AGR reinigen");
case 77: return std::string("Zündung AUS");
case 78: return std::string("Filter reinigen");
case 79: return std::string("Anheizassistent");
case 80: return std::string("SH Zünden");
case 81: return std::string("SH Störung");
case 82: return std::string("Sensorcheck");
default: return std::string("----");
}
return x;