Integration for Fröling Connect

Fröling is an Austrian manufacturer for heating system (wood, pellets, wood chips…) and they are already offering a web interface with MQTT.

For ioBroker there is already an add-on to see the different statuses, get nofifications and also the possibility for some configurations, details see here:

I would be really happy if such an integration would be possible!

Yes! Need too! PLS!

2 Likes

this would bea great!

2 Likes

i would be happy to get it too

2 Likes

Totally interested. Getting a Fröling PE1 installed actually.

1 Like

me too :+1:

would be great to get my froeling connect integrated :+1:

I would also be very grateful!

yes please :wink:

Ich habe zumindest eine Übergangslösung.
Mein Server ist leistungsstark genug, um nebenbei IO-Broker laufen zu lassen. Dort die Heizung dann integriert. Unter HA einen MQTT Server gestartet und von IO-Broker die Sensoren der Anlage da rein geworfen, und in HA wieder raus geholt. Dann habe ich meine Heizungsanlage mit Fröling Teilgrafiken grob nachgestellt und die Sensoren dort mit xy plaziert.
Etwas umständlich, aber es funktioniert. Hoffentlich gibt es bald eine eigene Integration für HA.

3 Likes

Hi, I would be very happy too !!! Froling S3 Turbo here.

Sim, eu também gostaria!

An diesem Projekt wäre ich auch sehr interessiert

Auch für mich wäre das sehr hilfreich

Hallo Thorsten,

wie genau wirfst du die Sensoren des IO-Brokers denn in den MQTT Server?
Ich habe bislang via Docker iobroker installiert und dort die oben genannte integration hinzu gefügt.
Auf meinen HA läuft MQTT, Mosquitto als MQTT-Broker läuft auch. Wie sage ich denn dem iobroker das die daten gesendet werden sollen?

Vorab danke für deine Hilfe!

Gruß,
Markus

Hi all,

I’ve started to create myself a solution with ESPHome (ESP32 & RS232 adapter) to get data from my fröling system via ModBus (COM2).

Feel free to checkout the current status:

GitHub - GyroGearl00se/ESPHome-Froeling-Lambdatronic_3200: ESHome RS232 to TTL - ESP32 - Read data from Froeling / Lambdatronic 3200

It is not complete yet - And I’m also not sure if it would fit everyone’s need. I have a Fröling SP Dual 20.

Feel free to contribute :slight_smile:

1 Like

Ich habe mich an die Lösung aus folgendem Link gehalten:

So habe ich jeden relevanten Sensor aktiviert. War etwas mühselig, aber es geht.

Hallo Thorsten, deine Grafik sieht super aus. Könntest du bitte deine Sensor Config posten bitte?

#Fröling

sensor:
#Aussentemperatur
  - state_topic: 'froeling/x/xxxxx/componentList/Fussbodenheizung-Heizkreis/outAirTemp/value'
    name: Froeling_Aussentemperatur
    unit_of_measurement: "°C"

#Austragung
  - state_topic: 'froeling/x/xxxxx/componentList/Austragung-Austragung/pelletsFillLevel/value'
    name: Froeling_Austragung_Pelletbehaelter_Fuellstand
    unit_of_measurement: "%"

  - state_topic: 'froeling/x/xxxxx/componentList/Austragung-Austragung/pelletsUsageCounter/value'
    name: Froeling_Austragung_Pellet_Verbrauch_Zaehler
    unit_of_measurement: "t"

  - state_topic: 'froeling/x/xxxxx/componentList/Austragung-Austragung/remainingPelletsAmount/value'
    name: Froeling_Austragung_Bunker_Restbestand
    unit_of_measurement: "t"

  - state_topic: 'froeling/x/xxxxx/componentList/Austragung-Austragung/totalPelletConsumption/value'
    name: Froeling_Austragung_Pelletverbrauch_Gesamt
    unit_of_measurement: "t"

#Kessel

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/boilerSetTemp/value'
    name: Froeling_Kessel_Temperatur_Soll
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/boilerTemp/value'
    name: Froeling_Kessel_Temperatur_Ist
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/fanControl/value'
    name: Froeling_Kessel_Saugzug Ansteuerung
    unit_of_measurement: "%"

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/flueGasTemp/value'
    name: Froeling_Kessel_Abgastemperatur
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/hoursTillAshboxWarn/value'
    name: Froeling_Kessel_verbleibende_H_bis_zur_Ascheentleerung
    unit_of_measurement: "h"

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/resOxygenContent/value'
    name: Froeling_Kessel_Restsauerstoffgehalt
    unit_of_measurement: "%"

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/topView/configParams/boilerOn/value'
    name: Froeling_Kessel_Status
    unit_of_measurement: ""

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/topView/configParams/mode2/value'
    name: Froeling_Kessel_Betriebsart
    unit_of_measurement: ""

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/topView/infoParams/hoursSinceLastMaintenance/value'
    name: Froeling_Kessel_Stunden_seit_letzter_Wartung
    unit_of_measurement: "h"

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/topView/infoParams/operationHours/value'
    name: Froeling_Kessel_Betriebsstunden
    unit_of_measurement: "h"

  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/topView/pictureParams/pelletsFillLevel/value'
    name: Froeling_Kessel_Fuellstand_Pelletbehaelter
    unit_of_measurement: "%"
    
  - state_topic: 'froeling/x/xxxxx/componentList/Kessel-Kessel/topView/infoParams/state/value'
    name: Froeling_Kessel_Zustand
    unit_of_measurement: ""


#Boiler
  - state_topic: 'froeling/x/xxxxx/componentList/Boiler-Boiler/dhwTempTop/value'
    name: Froeling_Boiler_Temp_Oben
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Boiler-Boiler/dhwTempBottom/value'
    name: Froeling_Boiler_Temp_Solarreferenz
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Boiler-Boiler/setDhwTemp/value'
    name: Froeling_Boiler_Temp_Soll
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Boiler-Boiler/topView/pictureParams/dhwPumpControl/value'
    name: Froeling_Boiler_Pumpe_Ansteuerung
    unit_of_measurement: "%"

#Fussbodenheizung
  - state_topic: 'froeling/x/xxxxx/componentList/Fussbodenheizung-Heizkreis/actualFlowTemp/value'
    name: Froeling_Fussbodenheizung_Vorlauf_Ist
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Fussbodenheizung-Heizkreis/flowTempAtMinus10/value'
    name: Froeling_Fussbodenheizung_Temp_minus10
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Fussbodenheizung-Heizkreis/flowTempAtPlus10/value'
    name: Froeling_Fussbodenheizung_Temp_plus10
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Fussbodenheizung-Heizkreis/setFlowTemp/value'
    name: Froeling_Fussbodenheizung_Vorlauf_Soll
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Fussbodenheizung-Heizkreis/topView/configParams/mode/value'
    name: Froeling_Fussbodenheizung_Betriebsart
    unit_of_measurement: ""

#Heizkoerper      
  - state_topic: 'froeling/x/xxxxx/componentList/Heizkörper-Heizkreis/actualFlowTemp/value'
    name: Froeling_Heizkoerper_Vorlauf_Ist_Temperatur
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Heizkörper-Heizkreis/flowTempAtMinus10/value'
    name: Froeling_Heizkoerper_Temp_minus10
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Heizkörper-Heizkreis/flowTempAtPlus10/value'
    name: Froeling_Heizkoerper_Temp_plus10
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Heizkörper-Heizkreis/setFlowTemp/value'
    name: Froeling_Heizkoerper_Vorlauf_Soll
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Heizkörper-Heizkreis/topView/configParams/mode/value'
    name: Froeling_Heizkoerper_Betriebsart
    unit_of_measurement: ""

#Puffer
  - state_topic: 'froeling/x/xxxxx/componentList/Puffer01-Puffer/bufferPumpControl/value'
    name: Froeling_Puffer_Pufferpumpenansteuerung
    unit_of_measurement: "%"

  - state_topic: 'froeling/x/xxxxx/componentList/Puffer01-Puffer/bufferTankCharge/value'
    name: Froeling_Puffer_Pufferladezustand
    unit_of_measurement: "%"

  - state_topic: 'froeling/x/xxxxx/componentList/Puffer01-Puffer/bufferTempBottom/value'
    name: Froeling_Puffer_Temperatur_unten
    unit_of_measurement: "°C"
  
  - state_topic: 'froeling/x/xxxxx/componentList/Puffer01-Puffer/bufferTempMiddle/value'
    name: Froeling_Puffer_Temperatur_mitte
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Puffer01-Puffer/bufferTempTop/value'
    name: Froeling_Puffer_Temperatur_oben
    unit_of_measurement: "°C"

#Solar
  - state_topic: 'froeling/x/xxxxx/componentList/Solar-Solar/boilerSetTempSolarCharging/value'
    name: Froeling_Solar_Boiler_Solltemperatur
    unit_of_measurement: "°C"
    
  - state_topic: 'froeling/x/xxxxx/componentList/Solar-Solar/collectorFlowTemp/value'
    name: Froeling_Solar_Kollektor_Vorlauftemperatur
    unit_of_measurement: "°C"

  - state_topic: 'froeling/x/xxxxx/componentList/Solar-Solar/collectorPumpControl/value'
    name: Froeling_Solar-Pumpe
    unit_of_measurement: "%"
    
  - state_topic: 'froeling/x/xxxxx/componentList/Solar-Solar/collectorTemp/value'
    name: Froeling_Solar_Kollektor_Temperatur
    unit_of_measurement: "°C"
    
  - state_topic: 'froeling/x/xxxxx/componentList/Solar-Solar/operationHoursCollectorPump/value'
    name: Froeling_Solar_Laufzeit_Kollektorpumpe
    unit_of_measurement: "h"

Mitlerweile lasse ich mir auch per Text den aktuellen Status anzeigen.
Habe dazu folgendes Template erstellt:

- sensor:
  - name: "froeling_heizung_status"
    state: >
          {% if is_state('sensor.froeling_kessel_zustand', '0') %}Störung
          {% elif is_state('sensor.froeling_kessel_zustand', '1') %}Kessel Aus
          {% elif is_state('sensor.froeling_kessel_zustand', '2') %}Anheizen
          {% elif is_state('sensor.froeling_kessel_zustand', '3') %}Heizen
          {% elif is_state('sensor.froeling_kessel_zustand', '4') %}Feuererhaltung
          {% elif is_state('sensor.froeling_kessel_zustand', '5') %}Feuer Aus
          {% elif is_state('sensor.froeling_kessel_zustand', '6') %}Tür offen
          {% elif is_state('sensor.froeling_kessel_zustand', '7') %}Vorbereitung
          {% elif is_state('sensor.froeling_kessel_zustand', '8') %}Vorwärmen
          {% elif is_state('sensor.froeling_kessel_zustand', '9') %}Zünden
          {% elif is_state('sensor.froeling_kessel_zustand', '10') %}Abstellen Warten
          {% elif is_state('sensor.froeling_kessel_zustand', '11') %}Abstellen Warten1
          {% elif is_state('sensor.froeling_kessel_zustand', '12') %}Abstellen Einschub1
          {% elif is_state('sensor.froeling_kessel_zustand', '13') %}Abstellen Warten2
          {% elif is_state('sensor.froeling_kessel_zustand', '14') %}Abstellen Einschub2
          {% elif is_state('sensor.froeling_kessel_zustand', '15') %}Abreinigen
          {% elif is_state('sensor.froeling_kessel_zustand', '16') %}2h warten
          {% elif is_state('sensor.froeling_kessel_zustand', '17') %}Saugen / Heizen
          {% elif is_state('sensor.froeling_kessel_zustand', '18') %}Fehlzündung
          {% elif is_state('sensor.froeling_kessel_zustand', '19') %}Betriebsbereit
          {% elif is_state('sensor.froeling_kessel_zustand', '20') %}Rost schließen
          {% elif is_state('sensor.froeling_kessel_zustand', '21') %}Stoker leeren
          {% elif is_state('sensor.froeling_kessel_zustand', '22') %}Vorheizen
          {% elif is_state('sensor.froeling_kessel_zustand', '23') %}Saugen
          {% elif is_state('sensor.froeling_kessel_zustand', '24') %}RSE schließen
          {% elif is_state('sensor.froeling_kessel_zustand', '25') %}RSE öffnen
          {% elif is_state('sensor.froeling_kessel_zustand', '26') %}Rost kippen
          {% elif is_state('sensor.froeling_kessel_zustand', '27') %}Vorwärmen-Zünden
          {% elif is_state('sensor.froeling_kessel_zustand', '28') %}Resteinschub
          {% elif is_state('sensor.froeling_kessel_zustand', '29') %}Stoker auffüllen
          {% elif is_state('sensor.froeling_kessel_zustand', '30') %}Lambdasonde aufheizen
          {% elif is_state('sensor.froeling_kessel_zustand', '31') %}Gebläsenachlauf I
          {% elif is_state('sensor.froeling_kessel_zustand', '32') %}Gebläsenachlauf II
          {% elif is_state('sensor.froeling_kessel_zustand', '33') %}Abgestellt
          {% elif is_state('sensor.froeling_kessel_zustand', '34') %}Nachzünden
          {% elif is_state('sensor.froeling_kessel_zustand', '35') %}Zünden Warten
          {% elif is_state('sensor.froeling_kessel_zustand', '36') %}FB: RSE schließen
          {% elif is_state('sensor.froeling_kessel_zustand', '37') %}FB: Kessel belüften
          {% elif is_state('sensor.froeling_kessel_zustand', '38') %}FB: Zünden
          {% elif is_state('sensor.froeling_kessel_zustand', '39') %}FB: min. Einschub
          {% elif is_state('sensor.froeling_kessel_zustand', '40') %}RSE schließen
          {% elif is_state('sensor.froeling_kessel_zustand', '41') %}STÖRUNG: STB/NA
          {% elif is_state('sensor.froeling_kessel_zustand', '42') %}STÖRUNG: Kipprost
          {% elif is_state('sensor.froeling_kessel_zustand', '43') %}STÖRUNG: FR-Überdr.
          {% elif is_state('sensor.froeling_kessel_zustand', '44') %}STÖRUNG: Türkont.
          {% elif is_state('sensor.froeling_kessel_zustand', '45') %}STÖRUNG: Saugzug
          {% elif is_state('sensor.froeling_kessel_zustand', '46') %}STÖRUNG: Umfeld
          {% elif is_state('sensor.froeling_kessel_zustand', '47') %}FEHLER: STB/NA
          {% elif is_state('sensor.froeling_kessel_zustand', '48') %}FEHLER: Kipprost
          {% elif is_state('sensor.froeling_kessel_zustand', '49') %}FEHLER: FR-Überdr.
          {% elif is_state('sensor.froeling_kessel_zustand', '50') %}FEHLER: Türkont.
          {% elif is_state('sensor.froeling_kessel_zustand', '51') %}FEHLER: Saugzug
          {% elif is_state('sensor.froeling_kessel_zustand', '52') %}FEHLER: Umfeld
          {% elif is_state('sensor.froeling_kessel_zustand', '53') %}FEHLER: Stoker
          {% elif is_state('sensor.froeling_kessel_zustand', '54') %}STÖRUNG: Stoker
          {% elif is_state('sensor.froeling_kessel_zustand', '55') %}FB: Stoker leeren
          {% elif is_state('sensor.froeling_kessel_zustand', '56') %}Vorbelüften
          {% elif is_state('sensor.froeling_kessel_zustand', '57') %}STÖRUNG: Hackgut
          {% elif is_state('sensor.froeling_kessel_zustand', '58') %}FEHLER: Hackgut
          {% elif is_state('sensor.froeling_kessel_zustand', '59') %}NB: Tür offen
          {% elif is_state('sensor.froeling_kessel_zustand', '60') %}NB: Anheizen
          {% elif is_state('sensor.froeling_kessel_zustand', '61') %}NB: Heizen
          {% elif is_state('sensor.froeling_kessel_zustand', '62') %}FEHLER: STB/NA
          {% elif is_state('sensor.froeling_kessel_zustand', '63') %}FEHLER: Allgemein
          {% elif is_state('sensor.froeling_kessel_zustand', '64') %}NB: Feuer Aus
          {% elif is_state('sensor.froeling_kessel_zustand', '65') %}Selbsttest aktiv
          {% elif is_state('sensor.froeling_kessel_zustand', '66') %}Fehlerbeh. 20min
          {% elif is_state('sensor.froeling_kessel_zustand', '67') %}FEHLER: Fallschacht
          {% elif is_state('sensor.froeling_kessel_zustand', '68') %}STÖRUNG: Fallschacht
          {% elif is_state('sensor.froeling_kessel_zustand', '69') %}Reinigen möglich
          {% elif is_state('sensor.froeling_kessel_zustand', '70') %}Heizen - Reinigen
          {% elif is_state('sensor.froeling_kessel_zustand', '71') %}SH Anheizen
          {% elif is_state('sensor.froeling_kessel_zustand', '72') %}SH Heizen
          {% elif is_state('sensor.froeling_kessel_zustand', '73') %}SH Heiz/Abstell
          {% elif is_state('sensor.froeling_kessel_zustand', '74') %}STÖRUNG sicher
          {% elif is_state('sensor.froeling_kessel_zustand', '75') %}AGR Nachlauf
          {% elif is_state('sensor.froeling_kessel_zustand', '76') %}AGR reinigen
          {% elif is_state('sensor.froeling_kessel_zustand', '77') %}Zündung AUS
          {% elif is_state('sensor.froeling_kessel_zustand', '78') %}E-Abscheider reinigen
          {% elif is_state('sensor.froeling_kessel_zustand', '79') %}Anheizassistent
          {% elif is_state('sensor.froeling_kessel_zustand', '80') %}SH Zünden
          {% elif is_state('sensor.froeling_kessel_zustand', '81') %}SH Störung
          {% elif is_state('sensor.froeling_kessel_zustand', '82') %}Sensorcheck
          {% elif is_state('sensor.froeling_kessel_zustand', '83') %}Feuererhaltung
          {% elif is_state('sensor.froeling_kessel_zustand', '84') %}Tür offen
          {% elif is_state('sensor.froeling_kessel_zustand', '85') %}Tür offen
          {% elif is_state('sensor.froeling_kessel_zustand', '86') %}Heizen
          {% endif %}

Keine Ahnung ob das einfacher und eleganter geht. Bin noch anfänger. Das sind meine ersten Gehversuche.

1 Like

I need that as well!