- split up esphome yaml file into muliple pieces for better overview (packages)

- switched to ESP32 board (esp8266 reached OOM)
- added few new entities
- added Graphical Dashboard "Heizkörper"
This commit is contained in:
GyroGearl00se
2023-11-17 01:39:08 +01:00
parent 5022eac1d8
commit 8ce8162385
14 changed files with 850 additions and 572 deletions

207
ESPHome/froeling.yaml Normal file
View File

@@ -0,0 +1,207 @@
esphome:
name: froeling
esp32:
board: wemos_d1_mini32
# Enable logging
logger:
baud_rate: 0
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: 1
rx_pin: 3
baud_rate: 57600
data_bits: 8
stop_bits: 1
parity: NONE
modbus:
id: modbus1
uart_id: uartfroeling
modbus_controller:
- id: froeling
address: 2
modbus_id: modbus1
setup_priority: -10
update_interval: "60s"
command_throttle: "50ms"
switch:
- platform: restart
name: "Restart ESP"
packages:
austragung: !include froeling/austragung.yaml
boiler_01: !include froeling/boiler_01.yaml
heizkoerper: !include froeling/heizkoerper.yaml
kessel: !include froeling/kessel.yaml
puffer_01: !include froeling/puffer_01.yaml
zirkulationspumpe: !include froeling/zirkulationspumpe.yaml
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;

View File

@@ -0,0 +1,54 @@
sensor:
- 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

View File

@@ -0,0 +1,43 @@
sensor:
- 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
number:
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} Boiler 1 Gewünschte Boilertemperatur"
id: ${name}_Boiler_1_Gewuenschte_Boilertemperatur
address: 1631
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: 10
max_value: 100
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} Boiler 1 Nachladen, wenn Boilertemperatur unter"
id: ${name}_Boiler_1_Nachladen_wenn_Boilertemperatur_unter
address: 1632
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: 1
max_value: 90

View File

@@ -0,0 +1,134 @@
sensor:
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Vorlauf-Isttemperatur"
id: ${name}_HK1_Vorlauf_Isttemperatur
register_type: read
address: 1030 #Wrong ?
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 #Wrong ?
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
binary_sensor:
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Pumpe AN AUS"
id: ${name}_HK1_Pumpe_AN_AUS
register_type: coil
#address: 999 # Heizkreispumpe 0
address: 1029 # Heizkreispumpe 1 - wrong ?
number:
# not correct yet ?
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Gewünschte Vorlauf-temperatur bei -10°C Außentemperatur"
id: ${name}_HK1_Vorlauf_Temperatur_minus_10C_Aussentemperatur
address: 1032
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: 10
max_value: 110
# not correct yet ?
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Gewünschte Vorlauf-temperatur bei +10°C Außentemperatur"
id: ${name}_HK1_Vorlauf_Temperatur_10C_Aussentemperatur
address: 1031
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: 10
max_value: 110
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Heizkreispumpe ausschalten wenn Vorlauf Soll kleiner ist als"
id: ${name}_HK1_Heizkreispumpe_ausschalten_wenn_Vorlauf_Soll_kleiner_ist_als
address: 1039
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: 10
max_value: 30
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Absenkung der Vorlauftemperatur im Absenkbetrieb"
id: ${name}_HK1_Absenkung_der_Vorlauftemperatur_im_Absenkbetrieb
address: 1033
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: 0
max_value: 70
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Außentemperatur, unter der die Heizkreispumpe im Heizbetrieb
einschaltet"
id: ${name}_HK1_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Heizbetrieb_einschaltet
address: 1036
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: -20
max_value: 50
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Außentemperatur, unter der die Heizkreispumpe im Absenkbetrieb
einschaltet"
id: ${name}_HK1_Aussentemperatur_unter_der_die_Heizkreispumpe_im_Absenkbetrieb_einschaltet
address: 1037
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: -20
max_value: 50
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Frostschutztemperatur"
id: ${name}_HK1_Frostschutztemperatur
address: 1038
unit_of_measurement: "°C"
value_type: U_WORD
multiply: 2
min_value: -10
max_value: 20
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} HK1 - Temp. am Puffer oben ab der der Überhitzungsschutz aktiv wird"
id: ${name}_HK1_Temp_am_Puffer_oben_ab_der_der_Ueberhitzungsschutz_aktiv_wird
address: 1047
unit_of_measurement: "°C"
value_type: U_WORD
min_value: 60
max_value: 120

View File

@@ -0,0 +1,135 @@
sensor:
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} Kesseltemperatur"
id: ${name}_Kesseltemperatur
register_type: read
address: 0
unit_of_measurement: "°C"
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"
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: 12
unit_of_measurement: "%"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} Saugzugdrehzahl"
id: ${name}_Saugzugdrehzahl
register_type: read
address: 6
unit_of_measurement: "rpm"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} Sauerstoffregler"
id: ${name}_Sauerstoffregler
register_type: read
address: 16
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"
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: "%"
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: "%"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} Betriebsstunden"
id: ${name}_Betriebsstunden
register_type: read
address: 20
unit_of_measurement: "h"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} Stunden seit letzter Wartung"
id: ${name}_Stunden_seit_letzter_Wartung
register_type: read
address: 55
unit_of_measurement: "h"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${name} Betriebsstunden in der Feuererhaltung"
id: ${name}_Betriebsstunden_in_der_Feuererhaltung
register_type: read
address: 24
unit_of_measurement: "h"
value_type: U_WORD
binary_sensor:
- platform: template
name: "${name} Kesselzustand Heizen"
id: ${name}_Kesselzustand_Heizen
lambda: |-
if (id(${name}_Kesselzustand).state == "Heizen") {
return true;
} else {
return false;
}

View File

@@ -0,0 +1,62 @@
sensor:
- 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
binary_sensor:
- platform: template
name: "${name} Puffer 1 Pufferpumpen Ansteuerung AN AUS"
id: ${name}_Puffer_1_Pufferpumpen_Ansteuerung_AN_AUS
lambda: |-
if (id(${name}_Puffer_1_Pufferpumpen_Ansteuerung).state > 0) {
return true;
} else {
return false;
}

View File

@@ -0,0 +1,28 @@
sensor:
- 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

View File

@@ -2,20 +2,20 @@
![wiring diagram](docs/ha_dashboard_01.png)
### ESHome RS232 to TTL - ESP8266 - Read data from Froeling / Lambdatronic 3200
### ESHome RS232 to TTL - ESP32 - Read data from Froeling / Lambdatronic 3200
I'm testing this with my Fröling SP Dual. But I assume it should also work for other models that have the Lambdatronic 3200 control unit. Feedback appreciated.
#### Parts:
Wemos D1 Mini ESP8266:
https://www.amazon.de/dp/product/B0CB85Q78G
Wemos D1 Mini ESP32:
https://www.amazon.de/dp/product/B08BTRQNB3
MAX3232 DB9 RS232 TTL converter:
https://www.amazon.de/gp/product/B0BNQ41QKQ
![wiring diagram](docs/wemos-rs3232-ttl.png)
| Wemos | D7 | D8 | 5V | G |
| Wemos | TX | RX | 5V | G |
|---|---|---|---|---|
| MAX3232 | RX | TX | VCC | GND |
@@ -34,4 +34,9 @@ Connect a RS232 (DB9) cable between "MAX3232 DB9 RS232 TTL converter" and you bo
- https://experiencelovelace.github.io/ha-floorplan/
- copy all files from /ha_dashboard/* to your Home assistant instance /config/www/froeling/*
- create a card in your dashboard and add the content of "ha_dashboard.yaml"
<span style="color:red">!! Currently, only one Panel is provided!!</span> I'm working on the rest. An update will follow.
<span style="color:red">!! Currently, only two panels are provided!!</span> I'm working on the rest. An update will follow.
#### ESPHome
For an better overview I've splittet up the yaml file into multiple pieces and included them in the main file as a package.
Copy all files from ESPHome/* into you ESPHome config directory and just flash the froeling.yaml. - All other files will be included.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 798 KiB

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -1,503 +0,0 @@
esphome:
name: froeling
friendly_name: 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
modbus:
id: modbus1
uart_id: uartfroeling
modbus_controller:
- id: froeling
address: 2
modbus_id: modbus1
setup_priority: -10
update_interval: "15s"
command_throttle: "50ms"
switch:
- platform: restart
name: "Restart $friendly_name"
sensor:
##### Kessel #####
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "Kesseltemperatur"
id: 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: "Abgastemperatur"
id: 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: "Verbleibende Heizstunden bis zur Asche entleeren Warnung"
id: 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: "Saugzug - Ansteuerung"
id: Saugzug_Ansteuerung
register_type: read
address: 12
unit_of_measurement: "%"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "Restsauerstoffgehalt"
id: 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: "Rücklauffühler"
id: 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: "Primärluft"
id: 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: "Sekundärluft"
id: 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: "HK1 - Vorlauf-Isttemperatur"
id: 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: "HK1 - Vorlauf-Solltemperatur"
# id: 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: "Aussentemperatur"
id: 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: "Boiler 1 Temperatur oben"
id: 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: "Boiler 1 Pumpe Ansteuerung"
id: 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: "Puffer 1 Temperatur oben"
id: 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: "Puffer 1 Temperatur mitte"
id: 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: "Puffer 1 Temperatur unten"
id: 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: "Puffer 1 Ladezustand"
id: 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: "Puffer 1 Pufferpumpen Ansteuerung"
id: 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: "Fuellstand im Pelletsbehaelter"
id: 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: "Resetierbarer kg-Zaehler"
id: 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: "Resetierbarer t-Zaehler"
id: 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: "Pelletverbrauch Gesamt"
id: 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: "Pelletlager Restbestand"
id: 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: "Ruecklauftemperatur an der Zirkulations Leitung"
id: 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: "Strömungsschalter an der Brauchwasser Leitung"
id: Stoemungsschalter_an_der_Brauchwasser_Leitung
register_type: read
address: 600
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "Drehzahl der Zirkulations Pumpe"
id: Drehzahl_der_Zirkulations_Pumpe
register_type: read
address: 710
unit_of_measurement: "%"
value_type: U_WORD
binary_sensor:
- platform: template
name: "Puffer 1 Pufferpumpen Ansteuerung AN AUS"
id: "Puffer_1_Pufferpumpen_Ansteuerung_AN_AUS"
lambda: |-
if (id(Puffer_1_Pufferpumpen_Ansteuerung).state > 0) {
return true;
} else {
return false;
}
- platform: template
name: "Kesselzustand Heizen"
id: "Kesselzustand_Heizen"
lambda: |-
if (id(Kesselzustand).state == "Heizen") {
return true;
} else {
return false;
}
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "HK1 - Pumpe AN AUS"
id: HK1_Pumpe_AN_AUS
register_type: coil
address: 999
number:
- platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "Bei welcher RL Temperatur an der Zirkulationsleitung soll die Pumpe ausschalten"
id: 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: "Kessel-Solltemperatur"
id: 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: "Anlagenzustand"
id: 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: "Kesselzustand"
id: 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;

View File

@@ -1,46 +1,157 @@
type: custom:floorplan-card
full_height: false
config:
image: /local/froeling/froeling_kessel.svg
cache: false
stylesheet: /local/froeling/home.css
console_log_level: debug
defaults:
hover_action: hover-info
tap_action: more-info
rules:
- entities:
- sensor.froeling_abgastemperatur
- sensor.froeling_kesseltemperatur
- sensor.froeling_restsauerstoffgehalt
- sensor.froeling_puffer_1_pufferpumpen_ansteuerung
- sensor.froeling_saugzug_ansteuerung
- sensor.froeling_fuellstand_im_pelletsbehaelter
- >-
sensor.froeling_verbleibende_heizstunden_bis_zur_asche_entleeren_warnung
tap_action: false
state_action:
action: call-service
service: floorplan.text_set
service_data: ${entity.state}
- entities:
- binary_sensor.froeling_kesselzustand_heizen
tap_action: false
state_action:
action: call-service
service: floorplan.class_set
service_data:
class: >-
${(entity.state == "on") ? "binary-sensor-kesselzustand-heizen-an" :
"binary-sensor-kesselzustand-heizen-aus"}
- entities:
- binary_sensor.froeling_puffer_1_pufferpumpen_ansteuerung_an_aus
tap_action: false
state_action:
action: call-service
service: floorplan.class_set
service_data:
class: >-
${(entity.state == "on") ?
"binary-sensor-puffer-1-pufferpumpen-ansteuerung-an" :
"binary-sensor-puffer-1-pufferpumpen-ansteuerung-aus"}
views:
- title: Kessel
badges: []
cards:
- type: horizontal-stack
cards:
- type: custom:floorplan-card
full_height: false
config:
image: /local/froeling/froeling_kessel.svg
cache: false
stylesheet: /local/froeling/home.css
defaults:
hover_action: hover-info
tap_action: more-info
rules:
- entities:
- sensor.froeling_abgastemperatur
- sensor.froeling_kesseltemperatur
tap_action: false
state_action:
action: call-service
service: floorplan.text_set
service_data: ${entity.state + "°C"}
- entities:
- sensor.froeling_restsauerstoffgehalt
- sensor.froeling_puffer_1_pufferpumpen_ansteuerung
- sensor.froeling_saugzug_ansteuerung
- sensor.froeling_fuellstand_im_pelletsbehaelter
tap_action: false
state_action:
action: call-service
service: floorplan.text_set
service_data: ${entity.state + "%"}
- entities:
- >-
sensor.froeling_verbleibende_heizstunden_bis_zur_asche_entleeren_warnung
tap_action: false
state_action:
action: call-service
service: floorplan.text_set
service_data: ${entity.state + "h"}
- entities:
- sensor.froeling_kesselzustand
tap_action: false
state_action:
action: call-service
service: floorplan.class_set
service_data:
class: '${(entity.state == "Heizen") ? "fill-red" : "fill-grey"}'
- entities:
- >-
binary_sensor.froeling_puffer_1_pufferpumpen_ansteuerung_an_aus
tap_action: false
state_action:
action: call-service
service: floorplan.class_set
service_data:
class: '${(entity.state == "on") ? "fill-green" : "fill-grey"}'
- type: entities
entities:
- entity: sensor.froeling_kesseltemperatur
name: Kesseltemperatur
- entity: sensor.froeling_abgastemperatur
name: Abgastemperatur
- entity: >-
sensor.froeling_verbleibende_heizstunden_bis_zur_asche_entleeren_warnung
name: Verbleibende Heizstunden bis zur Asche entleeren Warnung
- entity: sensor.froeling_saugzug_ansteuerung
name: Saugzug - Ansteuerung
- entity: sensor.froeling_restsauerstoffgehalt
name: Restsauerstoffgehalt
- entity: sensor.froeling_primarluft
name: Primärluft
- entity: sensor.froeling_sekundarluft
name: Sekundärluft
- entity: sensor.froeling_rucklauffuhler
name: Rücklauffühler
title: Zustand
- type: entities
entities:
- entity: number.froeling_kessel_solltemperatur
name: Kessel-Solltemperatur
title: Einstellungen
- title: Heizkörper
path: heizkorper
badges: []
cards:
- type: horizontal-stack
cards:
- type: custom:floorplan-card
full_height: false
config:
image: /local/froeling/froeling_heizkoerper.svg
cache: false
stylesheet: /local/froeling/home.css
log_level: info
console_log_level: debug
defaults:
hover_action: hover-info
tap_action: more-info
rules:
- entities:
- sensor.froeling_aussentemperatur
- sensor.froeling_hk1_vorlauf_isttemperatur
tap_action: false
state_action:
action: call-service
service: floorplan.text_set
service_data: ${entity.state + "°C"}
- entities:
- binary_sensor.froeling_hk1_pumpe_an_aus
tap_action: false
state_action:
action: call-service
service: floorplan.class_set
service_data:
class: '${(entity.state == "on") ? "fill-green" : "fill-grey"}'
- type: entities
entities:
- entity: sensor.froeling_hk1_vorlauf_isttemperatur
name: Vorlauf-Isttempratur
- entity: sensor.froeling_hk1_vorlauf_solltemperatur
name: Vorlauf-Solltemperatur
- entity: sensor.froeling_aussentemperatur
name: Außentemperatur
title: Zustand
- type: entities
entities:
- entity: >-
number.froeling_hk1_gewunschte_vorlauf_temperatur_bei_10degc_aussentemperatur
name: Gewünschte Vorlauf-temperatur bei -10°C Außentemperatur
- entity: >-
number.froeling_hk1_gewunschte_vorlauf_temperatur_bei_10degc_aussentemperatur_2
name: Gewünschte Vorlauf-temperatur bei +10°C Außentemperatur
- entity: >-
number.froeling_hk1_heizkreispumpe_ausschalten_wenn_vorlauf_soll_kleiner_ist_als
name: Heizkreispumpe ausschalten wenn Vorlauf Soll kleiner ist als
- entity: >-
number.froeling_hk1_absenkung_der_vorlauftemperatur_im_absenkbetrieb
name: Absenkung der Vorlauftemperatur im Absenkbetrieb
- entity: >-
number.froeling_hk1_aussentemperatur_unter_der_die_heizkreispumpe_im_heizbetrieb_einschaltet
name: >-
Außentemperatur, unter der die Heizkreispumpe im Heizbetrieb
einschaltet
- entity: >-
number.froeling_hk1_aussentemperatur_unter_der_die_heizkreispumpe_im_absenkbetrieb_einschaltet
name: >-
Außentemperatur, unter der die Heizkreispumpe im Absenkbetrieb
einschaltet
- entity: number.froeling_hk1_frostschutztemperatur
name: Frostschutztemperatur
- entity: >-
number.froeling_hk1_temp_am_puffer_oben_ab_der_der_uberhitzungsschutz_aktiv_wird
name: Temp. am Puffer oben ab der der Überhitzungsschutz aktiv wird
title: Einstellungen

View File

@@ -23,10 +23,10 @@
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.1351589"
inkscape:cx="218.91208"
inkscape:cy="222.87628"
inkscape:cy="222.87629"
inkscape:window-width="958"
inkscape:window-height="1128"
inkscape:window-x="953"
inkscape:window-x="946"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="Ebene_1" />&#10; <defs
@@ -63,8 +63,9 @@
id="path5" />&#10; <path
d="M252.9,209.1l-3.4,35.2c-0.5,5.3-8.8,4.6-8.3-0.7l3.4-35.2C245.1,203,253.4,203.8,252.9,209.1z"
id="path6" />&#10;</g>&#10;<g
id="sensor.froeling_hk1_pumpe_an_aus"
class="stPumpActive"><title
id="binary_sensor.froeling_hk1_pumpe_an_aus"
class="stPumpActive"
inkscape:label="binary_sensor.froeling_hk1_pumpe_an_aus"><title
id="title6">Heizkreispumpe</title>&#10; <path
d="M71.1,212.4c0-1.9,1.5-3.4,3.4-3.4c1.9,0,3.4,1.5,3.4,3.4c0,1.9-1.5,3.4-3.4,3.4 C72.7,215.8,71.1,214.3,71.1,212.4z"
id="path7" />&#10; <path

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -27,7 +27,7 @@
inkscape:cy="169.13932"
inkscape:window-width="958"
inkscape:window-height="1128"
inkscape:window-x="953"
inkscape:window-x="946"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="Ebene_1" />&#10; <defs
@@ -2589,7 +2589,8 @@
r="0.8"
id="circle508" />&#10; </g>&#10; </g>&#10;</g>&#10;<g
id="binary_sensor.froeling_puffer_1_pufferpumpen_ansteuerung_an_aus"
class="stPumpInActive"><title
class="stPumpInActive"
inkscape:label="binary_sensor.froeling_puffer_1_pufferpumpen_ansteuerung_an_aus"><title
id="title508">Aktueller Status der Pufferpumpe</title>&#10; <path
d="M293.6,184.5c0-1.8-1.5-3.3-3.3-3.3c-1.8,0-3.3,1.5-3.3,3.3c0,1.8,1.5,3.3,3.3,3.3 C292.1,187.8,293.6,186.3,293.6,184.5z"
id="path508" />&#10; <path
@@ -2605,8 +2606,9 @@
id="path513" />&#10; <path
d="M299.9,184.5c0-5.4-4.3-9.7-9.6-9.7c-5.3,0-9.6,4.3-9.6,9.7c0,5.4,4.3,9.7,9.6,9.7 C295.6,194.2,299.9,189.9,299.9,184.5z M283.1,184.5c0-4,3.2-7.2,7.2-7.2c4,0,7.2,3.2,7.2,7.2c0,4-3.2,7.2-7.2,7.2 C286.3,191.7,283.1,188.5,283.1,184.5z"
id="path514" />&#10;</g>&#10;<g
id="binary_sensor.froeling_kesselzustand_heizen"
class="stHeatingOff"><title
id="sensor.froeling_kesselzustand"
class="stHeatingOff"
inkscape:label="sensor.froeling_kesselzustand"><title
id="title514">Betriebszustand</title>&#10; <path
d="M143.6,171.7c0.4,4.9,3.7,11.8,12.3,10c-3.6-1-6.5-4.3-7.7-10.4c0.8,0.2,1.9,0.9,2.3,1.1 c-0.2-0.9,0.1-3.4,1.4-6.4c1.5,7.7,2.6,9,4.1,9.3c-1.4-3.7-1.3-6.9-0.1-9.4c0.6,2.4,1.8,4.2,2.9,5.4c1.8-2.2,2.6-5.1,1.8-11.4 c4,5.3,3.7,8.6,2.4,10.6c1.1-0.3,2.7-1.8,3.8-4.4c1,1.2,0.8,3.4-0.1,5.9c0.6-0.2,1.6-0.6,2.2-1.1c-1,7.3-5.2,8.2-9.2,10.4 c5.7,2.3,15.1-1.1,16.2-8.8c0.3-1.3-0.1-3.2-0.4-4.7c-0.6,1-0.9,2.3-1.8,2.8c-0.2-1.4,0.2-2.6,0.8-3.8c1.1-4.3,0.4-7.9-1.9-10.7 c-0.4,2.1-0.9,3.9-1.9,4.4c-1.1-6.5-3.1-11-5.5-12.2c0.2,1.9,0.1,3.5-0.6,4.9c-2-7.2-5.5-6.7-6.5-13.2c-1,0.7-1.2,2.3-1.4,3.7 c0,2.9,0.2,5.7-1,7.1c-1.1-2.1-2.1-3.8-3.9-4c1.3,2.7,0.8,7.4-1.1,12.5c-0.7-1.3-1.9-3.9-3.6-4.3c0.4,3.4-0.1,7.3-0.9,10.9 c-0.5-0.8-1.5-1.7-2.6-2.3C144.8,166.8,143.1,168.2,143.6,171.7z M159.2,149.8c0.2,2.7,0,5.5-0.8,6.9 C158.3,154.1,158,152.6,159.2,149.8z"
id="path515" />&#10;</g>&#10;<g
@@ -2635,7 +2637,8 @@
id="polyline519" />&#10; </g>&#10; </g>&#10;</g>&#10;<text
id="sensor.froeling_verbleibende_heizstunden_bis_zur_asche_entleeren_warnung"
transform="matrix(1 0 0 1 80 231.4438)"
class="st9 st10 st11">17h</text>&#10;<g
class="st9 st10 st11"
inkscape:label="sensor.froeling_verbleibende_heizstunden_bis_zur_asche_entleeren_warnung">17h</text>&#10;<g
id="label_fuel-level"><title
id="title519">Restbestand im Brennstofflagerraum</title>&#10; <path
id="frame_1_"
@@ -2660,7 +2663,8 @@
id="path522" />&#10; </g>&#10; </g>&#10;</g>&#10;<text
id="sensor.froeling_fuellstand_im_pelletsbehaelter"
transform="matrix(1 0 0 1 80 47.6704)"
class="st9 st10 st11">32%</text>&#10;<g
class="st9 st10 st11"
inkscape:label="sensor.froeling_fuellstand_im_pelletsbehaelter">32%</text>&#10;<g
id="Saugzug_Ansteuerung"><title
id="title522">Drehzahl des Saugzuggebläses</title>&#10; <path
id="frame_2_"
@@ -2745,7 +2749,8 @@
id="rect530" />&#10; </g>&#10; </g>&#10;</g>&#10;<text
id="sensor.froeling_abgastemperatur"
transform="matrix(1 0 0 1 207.5 47.2747)"
class="st9 st10 st11">57°C</text>&#10;<g
class="st9 st10 st11"
inkscape:label="sensor.froeling_abgastemperatur">57°C</text>&#10;<g
id="label_lambda"><title
id="title530">Restsauerstoffgehalt</title>&#10; <path
id="frame_3_"

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

@@ -59,25 +59,21 @@ g.floorplan-long-click > :not(text):hover,
transition: fill 5s ease;
}
.binary-sensor-kesselzustand-heizen-an {
.fill-red {
fill: #ff0000 !important;
fill-opacity: 1 !important;
}
.binary-sensor-kesselzustand-heizen-aus {
.fill-grey {
fill: #9e9e9e !important;
transition: fill 5s ease;
}
.binary-sensor-puffer-1-pufferpumpen-ansteuerung-an {
.fill-green {
fill: #00c800 !important;
fill-opacity: 1 !important;
}
.binary-sensor-puffer-1-pufferpumpen-ansteuerung-aus {
fill: #9e9e9e !important;
transition: fill 5s ease;
}
/* Buttons */