Gastherme via EMS-ESP in OpenHab

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Gastherme via EMS-ESP in OpenHab

Beitrag von PeterA »

Hallo Zusammen,

viele Heizungen, hier eine Buderus Gastherme GB172, besitzen eine Diagnoseschnittstelle.
Man spricht hier auch vom sogenannten EMS Bus.
Meistens ist es eine 3,5mm Buchse hinter einer Klappe oder zwei Klemmen auf der Steuerplatine.

Zunächst wurde das Bus Protokoll Analysiert: https://www.mikrocontroller.net/topic/3 ... age=single
Das Opensource Projekt EMS-ESP: https://emsesp.github.io/docs/
Die Hardware: https://bbqkees-electronics.nl/

Installiert ist die kleine Box ruckzuck und wird auch über die Diagnoseschnittstelle mit Spannung versorgt und ins Wlan gebracht.
Die Entitäten werden dann über MQTT bereit gestellt.

Hier meine Konfig:

mqtt-heating.things:

Code: Alles auswählen

Bridge mqtt:broker:3448a27a [ host="localhost", secure=false ]
{
    // EMS-ESP @ Buderus GB172 Gastherme, IP: 192.168.2.114 
    Thing topic heating "EMS-ESP" @ "BuderusGB172" {
    Channels:
        //Channels for Buderus GB172 boiler items
        Type string   : status_reachable     "EMS-ESP Status"                   [ stateTopic="ems-esp/status" ]
        Type string   : status_bus           "EMS-ESP Bus Status"               [ stateTopic="ems-esp/heartbeat", transformationPattern="JSONPATH:$.bus_status" ]
        Type string   : tapwateractive       "Warmwasser aktiv"                 [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.tapwateractive" ]
        Type string   : heatingactive        "Heizung aktiv"                    [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.heatingactive" ]
        Type number   : outdoortemp          "Außentemperatur"                  [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.outdoortemp" ]
        Type number   : selflowtemp          "Sollwert Vorlauftemperatur"       [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.selflowtemp" ]
        Type number   : heatingpumpmod       "Heizungspumpe 1 Modulation"       [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.heatingpumpmod" ]
        Type number   : curflowtemp          "aktuelle Vorlauftemperatur"       [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.curflowtemp" ]
        //Type number   : switchtemp           "Mischer Schalttemperatur"         [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.switchtemp" ]
        Type string   : burngas              "Gas"                              [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.burngas" ]
        Type number   : flamecurr            "Flammenstrom"                     [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.flamecurr" ]
        Type number   : curburnpow           "Brennerleistung"                  [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.curburnpow" ]
        Type number   : burnstarts           "Brenner Starts"                   [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.burnstarts" ]
        Type number   : burnworkmin          "Brenner Laufzeit"                 [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.burnworkmin" ]
        Type number   : heatworkmin          "Heizung Laufzeit"                 [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.heatworkmin" ]
        Type number   : heatstarts           "Brenner Starts Heizung"           [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.heatstarts" ]
        Type number   : ubauptime            "Anlagen-Gesamtlaufzeit"           [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.ubauptime" ]
        Type string   : lastcode             "Letzter Fehler"                   [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.lastcode" ]
        //Type number   : nompower             "Brennerleistung"                  [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.nompower" ]
        Type number   : nrgheat              "Energie Heizen"                   [ stateTopic="ems-esp/boiler_data", transformationPattern="JSONPATH:$.nrgheat" ]
        //Channels for Buderus GB172 tapwater items
        Type string   : wwcomfort            "Warm-Wasser Komfort"              [ stateTopic="ems-esp/boiler_data_ww", transformationPattern="JSONPATH:$.wwcomfort" ]
        Type string   : wwcirc               "WW Zirkulation aktiv"             [ stateTopic="ems-esp/boiler_data_ww", transformationPattern="JSONPATH:$.wwcirc" ]
        Type number   : wwcurtemp            "WW aktuelle interne Temperatur"   [ stateTopic="ems-esp/boiler_data_ww", transformationPattern="JSONPATH:$.wwcurtemp" ]
        Type number   : wwcurtemp2           "WW aktuelle externe Temperatur"   [ stateTopic="ems-esp/boiler_data_ww", transformationPattern="JSONPATH:$.wwcurtemp2" ]
        Type number   : wwstoragetemp2       "WW externer Speichertemperatur"   [ stateTopic="ems-esp/boiler_data_ww", transformationPattern="JSONPATH:$.wwstoragetemp2" ]
        Type number   : wwsetpumppower       "WW Soll Pumpenleistung"           [ stateTopic="ems-esp/boiler_data_ww", transformationPattern="JSONPATH:$.wwsetpumppower" ]
        Type number   : wwstarts             "WW Anzahl Starts"                 [ stateTopic="ems-esp/boiler_data_ww", transformationPattern="JSONPATH:$.wwstarts" ]
        Type number   : wwworkm              "WW aktive Zeit"                   [ stateTopic="ems-esp/boiler_data_ww", transformationPattern="JSONPATH:$.wwworkm" ]
        Type number   : nrgww                "WW Energie Warmwasser"            [ stateTopic="ems-esp/boiler_data_ww", transformationPattern="JSONPATH:$.nrgww" ]
        //Channels for Buderus GB172 mixer topics
        Type number   : flowtemphc           "HK1 Vorlauftemperatur HK (TC1)"   [ stateTopic="ems-esp/mixer_data_hc1", transformationPattern="JSONPATH:$.flowtemphc" ]
        Type number   : valvestatus          "HK1 Mischerventil Position (VC1)" [ stateTopic="ems-esp/mixer_data_hc1", transformationPattern="JSONPATH:$.valvestatus" ]
        Type number   : flowsettemp          "HK1 Sollwert Vorlauftemperatur"   [ stateTopic="ems-esp/mixer_data_hc1", transformationPattern="JSONPATH:$.flowsettemp" ]
        Type string   : pumpstatus           "HK1 Pumpenstatus HK (PC1)"        [ stateTopic="ems-esp/mixer_data_hc1", transformationPattern="JSONPATH:$.pumpstatus" ]
        //Channels for Buderus GB172 thermostat hc1 topics
        Type string   : summermode           "HK1 HK1 Sommerbetrieb"            [ stateTopic="ems-esp/thermostat_data_hc1", transformationPattern="JSONPATH:$.summermode" ]
        Type number   : seltemp              "HK1 Sollwert Raumtemperatur"      [ stateTopic="ems-esp/thermostat_data_hc1", transformationPattern="JSONPATH:$.seltemp" ]
        Type number   : ecotemp              "HK1 eco Temperatur"               [ stateTopic="ems-esp/thermostat_data_hc1", transformationPattern="JSONPATH:$.ecotemp" ]
        Type number   : comforttemp          "HK1 Komforttemperatur"            [ stateTopic="ems-esp/thermostat_data_hc1", transformationPattern="JSONPATH:$.comforttemp" ]
        Type number   : summertemp           "HK1 Sommertemperatur"             [ stateTopic="ems-esp/thermostat_data_hc1", transformationPattern="JSONPATH:$.summertemp" ]
    }
}
Und die entsprechenden Items dazu:

mqtt-heating.items:

Code: Alles auswählen

Group     gheating
Group     gheatingstats
//Buderus GB172 boiler items
String    status_reachable    "EMS-ESP Status"                                 <network>        (gheating)                  {channel="mqtt:topic:3448a27a:heating:status_reachable"}
String    status_bus          "EMS-ESP Bus Status"                             <network>        (gheating)                  {channel="mqtt:topic:3448a27a:heating:status_bus"}
String    tapwateractive      "Warmwasser aktiv"                               <faucet>         (gheating)                  {channel="mqtt:topic:3448a27a:heating:tapwateractive"}
String    heatingactive       "Heizung aktiv"                                  <fire>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:heatingactive"}
Number    outdoortemp         "Außentemperatur [%.1f °C]"                      <temperature>    (gheating,gheatingstats)    {channel="mqtt:topic:3448a27a:heating:outdoortemp"}
Number    selflowtemp         "Sollwert Vorlauftemperatur [%.1f °C]"           <temperature>    (gheating,gheatingstats)    {channel="mqtt:topic:3448a27a:heating:selflowtemp"}
Number    heatingpumpmod      "Heizungspumpe 1 Modulation [%s %%]"             <flow>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:heatingpumpmod"}
Number    curflowtemp         "aktuelle Vorlauftemperatur [%.1f °C]"           <temperature>    (gheating,gheatingstats)    {channel="mqtt:topic:3448a27a:heating:curflowtemp"}
Number    switchtemp          "Mischer Schalttemperatur [%.1f °C]"             <temperature>    (gheating)                  {channel="mqtt:topic:3448a27a:heating:switchtemp"}
String    burngas             "Gas aktiv"                                      <gas>            (gheating)                  {channel="mqtt:topic:3448a27a:heating:burngas"}
Number    flamecurr           "Flammenstrom [%.1f µA]"                         <energy>         (gheating)                  {channel="mqtt:topic:3448a27a:heating:flamecurr"}
Number    curburnpow          "Brennerleistung [%s %%]"                        <fire>           (gheating,gheatingstats)    {channel="mqtt:topic:3448a27a:heating:curburnpow"}
Number    burnstarts          "Brenner Starts [%s]"                            <fire>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:burnstarts"}
Number    burnworkmin         "Brenner Laufzeit [JS(duration.js):%s]"          <time>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:burnworkmin"}
Number    heatworkmin         "Heizung Laufzeit [JS(duration.js):%s]"          <time>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:heatworkmin"}
Number    heatstarts          "Brenner Starts Heizung [%s]"                    <radiator>       (gheating)                  {channel="mqtt:topic:3448a27a:heating:heatstarts"}
Number    ubauptime           "Anlagen-Gesamtlaufzeit [JS(duration.js):%s]"    <time>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:ubauptime"}
String    lastcode            "Letzter Fehler"                                 <error>          (gheating)                  {channel="mqtt:topic:3448a27a:heating:lastcode"}
//Number    nompower            "Brennerleistung [%.0f kW]"                      <fire>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:nompower"}
Number    nrgheat             "Energie Heizen [%.2f kWh]"                      <radiator>       (gheating)                  {channel="mqtt:topic:3448a27a:heating:nrgheat"}
//Buderus GB172 tapwater items
String    wwcomfort           "Warm-Wasser Komfort"                            <faucet>         (gheating)                  {channel="mqtt:topic:3448a27a:heating:wwcomfort"}
String    wwcirc              "WW Zirkulation aktiv"                           <pump>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:wwcirc"}
Number    wwcurtemp           "WW aktuelle interne Temperatur [%.1f °C]"       <temperature>    (gheating,gheatingstats)    {channel="mqtt:topic:3448a27a:heating:wwcurtemp"}
Number    wwcurtemp2          "WW aktuelle externe Temperatur [%.1f °C]"       <temperature>    (gheating)                  {channel="mqtt:topic:3448a27a:heating:wwcurtemp2"}
Number    wwstoragetemp2      "WW externe  Speichertemperatur [%.1f °C]"       <temperature>    (gheating,gheatingstats)    {channel="mqtt:topic:3448a27a:heating:wwstoragetemp2"}
Number    wwsetpumppower      "WW Soll Pumpenleistung [%s %%]"                 <pump>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:wwsetpumppower"}
Number    wwstarts            "WW Anzahl Starts [%s]"                          <pump>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:wwstarts"}
Number    wwworkm             "WW aktive Zeit [JS(duration.js):%s]"            <time>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:wwworkm"}
Number    nrgww               "WW Energie Warmwasser [%.2f kWh]"               <faucet>         (gheating)                  {channel="mqtt:topic:3448a27a:heating:nrgww"}
//Buderus GB172 Mixer items
Number    flowtemphc          "HK1 Vorlauftemperatur HK (TC1) [%.1f °C]"       <temperature>    (gheating,gheatingstats)    {channel="mqtt:topic:3448a27a:heating:flowtemphc"}
Number    valvestatus         "HK1 Mischerventil Position (VC1) [%s %%]"       <pressure>       (gheating)                  {channel="mqtt:topic:3448a27a:heating:valvestatus"}
Number    flowsettemp         "HK1 Sollwert Vorlauftemperatur [%.1f °C]"       <temperature>    (gheating,gheatingstats)    {channel="mqtt:topic:3448a27a:heating:flowsettemp"}
String    pumpstatus          "HK1 Pumpenstatus HK (PC1)"                      <pump>           (gheating)                  {channel="mqtt:topic:3448a27a:heating:pumpstatus"}
//Buderus GB172 Thermostat hc1 items
String    summermode          "HK1 Sommerbetrieb"                              <radiator>       (gheating)                  {channel="mqtt:topic:3448a27a:heating:summermode"}
Number    seltemp             "HK1 Sollwert Raumtemperatur [%.1f °C]"          <temperature>    (gheating)                  {channel="mqtt:topic:3448a27a:heating:seltemp"}
Number    ecotemp             "HK1 eco Temperatur [%.1f °C]"                   <temperature>    (gheating)                  {channel="mqtt:topic:3448a27a:heating:ecotemp"}
Number    comforttemp         "HK1 Komforttemperatur [%.1f °C]"                <temperature>    (gheating)                  {channel="mqtt:topic:3448a27a:heating:comforttemp"}
Number    summertemp          "HK1 Sommertemperatur [%.1f °C]"                 <temperature>    (gheating)                  {channel="mqtt:topic:3448a27a:heating:summertemp"}
Vielleicht ist es ja für den ein oder anderen hier von Nutzen.
Viel Spass damit.

Gruß Peter
- OpenHab 2.4
#PWRUP

Antworten