TapHome

EMS-ESP hőszivattyú (Bosch, Buderus, IVT)

Packet Parser → HTTP
Beküldő
Utoljára frissítve: 10. 2026

Külső átjáró szükséges

BBQKees Electronics Gateway E32 V2 (EMS-ESP 3.8.6 firmware) — termékoldal

Ez az eszköz támogatja az mDNS-t

IP-cím helyett az eszközt a következő címen érheti el:

ems-esp.local

Cserélje ki a {MAC} részt az eszköz MAC-címére (nagybetűk, kettőspont nélkül).

A TapHome támogatja az mDNS-t — a hostnév használata megbízhatóbb, mint a statikus IP.

EMS-ESP hőszivattyú (Bosch, Buderus, IVT)

Az EMS-ESP Heat Pump sablon a TapHome-ot egy Bosch, Buderus vagy IVT hőszivattyúhoz köti egy EMS-ESP átjárón keresztül — ez egy BBQKees Electronics Gateway E32 V2, amely a nyílt forráskódú EMS-ESP firmware-t futtatja, és a hőszivattyú EMS buszára csatlakozik. A TapHome az átjáróval annak helyi HTTP REST API-ján keresztül kommunikál (80-as port, JSON); felhőkapcsolatra nincs szükség. Az EMS-ESP-ben a hőszivattyú boiler, a szabályozója pedig thermostat eszköztípusként jelenik meg.

A sablon olvassa a külső, az előremenő, a visszatérő, a szoba- és a melegvíz-hőmérsékletet, a kompresszor állapotát, a kompresszor teljesítményét és az energiaszámlálókat. Hozzáférési tokennel beállítja az 1. fűtőkör üzemmódját is (a hűtést is beleértve), a szoba- és hűtési alapjelet, valamint a melegvíz-alapjelet.

Közösségi sablon — a TapHome-mal még nincs tesztelve. A sablon a TapHome portálon készült, és az EMS-ESP 3.8.6 verzióhoz íródott; valós telepítésen még nem ellenőrizték. A TapHome portálról töltheti le: EMS-ESP Heat Pump — közösségi sablon (töltse le az XML-t — bejelentkezés nélkül —, és importálja új modulként).

Kompatibilis hőszivattyúk és szabályozók

Két dolog dönti el, hogy egy hőszivattyú működik-e ezzel a sablonnal: az EMS-ESP-nek támogatnia kell a hőszivattyút, a hőszivattyúnak és a szabályozójának pedig küldenie kell azokat az értékeket, amelyeket a sablon olvas.

A sablon által lefedett hőszivattyúk:

  • Bosch Compress 6000AW, Hybrid 3000-7000iAW
  • Buderus WLW166i, WLW176i, WLW196i, WSW196i
  • CS5800i, CS6800i
  • Enviline, SupraEco, Geo 5xx
  • IVT AirX és Geo Rego 2000 vagy Rego 3000 szabályozóval — EMS-ESP-felhasználók jelentették, nincsenek rajta az EMS-ESP által támogatott hőszivattyúk hivatalos listáján

Az átjáró az EMS, EMS Plus (EMS+), EMS2 és Heatronic 3 buszváltozatokkal működik.

Hogy egy adott egység milyen értékeket küld, modellenként nincs dokumentálva. Az EMS-ESP webes felületének Devices oldala csak az értékkel rendelkező entitásokat mutatja; az az entitás, amely az EMS-ESP-ben létezik, de nincs értéke, a firmware által támogatott, nem a csatlakoztatott egység által. Ugyanez a lista elérhető a http://<gateway-ip>/api/boiler/entities és a http://<gateway-ip>/api/thermostat/entities címen.

A hűtéshez olyan szabályozó kell, amely küldi a hc1.hpoperatingmode entitást. Az EMS-ESP ezt az entitást az RC300 családhoz (RC310, HMC310, Rego 2000 / 3000) és a BC400 családhoz regisztrálja; hogy egy adott szabályozó valóban küldi-e, nincs dokumentálva. Az UI800 a termosztát legfelső szintjén jelenti (/api/thermostat/hpoperatingmode), nem az 1. fűtőkör alatt, ezért az üzemmód eszköz — és vele a hűtés — UI800-zal nem működik.

Hardveres csatlakozás

A BBQKees Gateway E32 V2 KIT tartalmazza az átjárót, egy 150 cm-es EMS szervizkábelt, egy 100 cm-es kábelt az EMS csavaros sorkapcsokhoz, egy EMS szervizport-adaptert, egy tápegységet (12 V DC dugós vagy 5 V USB-C, a gyártási tételtől függően) és egy JST ZH kábelt saját DS18B20 hőmérséklet-érzékelőkhöz. Az átjáró háromféleképpen csatlakoztatható a hőszivattyúhoz:

Csatlakozás a hőszivattyúnKábelTápellátás
EMS szervizaljzat (3,5 mm)150 cm-es EMS szervizkábela szervizaljzatból
EMS szervizaljzat (3,5 mm)150 cm-es EMS szervizkábelkülső tápegység
Az EMS busz csavaros sorkapcsai100 cm-es kábel az EMS csavaros sorkapcsokhozkülső tápegység (12 V DC vagy 5 V USB-C)

A szervizaljzat csak akkor jöhet szóba, ha a hőszivattyún van ilyen. A 2025 nyarától árusított átjárók mindkét tápegységtípust elfogadják. A BBQKees EMS Gateway Wiki bemutatja, hogyan csatlakoztatható az átjáró egy adott kazánhoz vagy hőszivattyúhoz.

  • Hálózat: Ethernet (RJ45) vagy Wi-Fi. Az EMS-ESP csak 2,4 GHz-es, WPA2 titkosítású Wi-Fi hálózatokhoz csatlakozik, 5 GHz-eshez nem.
  • Firmware: EMS-ESP. A Gateway E32 V2 (2024 januárjától kapható) rendelkezik PSRAM-mal, és az ESP32-16MB+ firmware-változatot használja. A firmware az EMS-ESP webes felületén, a Settings → Version menüben frissíthető.

Konfiguráció

Az EMS-ESP első beállítása
  1. Első induláskor az EMS-ESP megnyit egy ems-esp nevű Wi-Fi hozzáférési pontot (WPA jelszó: ems-esp-neo). Az Ethernetre csatlakoztatott átjáró azon az IP-címen érhető el, amelyet a router kiosztott neki.
  2. Jelentkezzen be az alapértelmezett admin / admin felhasználóval, és változtassa meg a jelszót.
  3. A Settings → Network menüben csatlakoztassa az átjárót az otthoni hálózathoz (Wi-Fi vagy Ethernet).
  4. A routerben foglaljon le fix IP-címet az átjáró számára (DHCP-foglalás) — a sablon az átjárót az IP-címén keresztül éri el.
Fontos EMS-ESP beállítások
  • Hőmérséklet °C-ban — a Settings → Application menüben hagyja kikapcsolva a „Convert temperature values to Fahrenheit” beállítást. A modul ezt 60 másodpercenként ellenőrzi, és hibát jelez, ha az EMS-ESP °F-ot jelent.
  • A Boolean Format, Enum Format és Language beállítás nem számít. A sablon az EMS-ESP entitásrészletéből az index és bool kulcsot olvassa, amelyek nem függnek ezektől a beállításoktól, és az opciók angol szövegét írja, amelyet az EMS-ESP minden nyelven elfogad.
  • 3.8-as firmware — a modul figyelmeztetést jelenít meg, ha az átjáró a 3.8-as soron kívüli verziót jelent. A sablon által használt entitásnevek a 3.7.0 (ww → beágyazott dhw) és a 3.7.2 (remoteseltemp → cooltemp) verzióban változtak; a 3.8.0 és a 3.8.6 között nem változtak.
Hozzáférési token az íráshoz

Az olvasáshoz nincs szükség hitelesítésre. Az íráshoz — üzemmód, szoba- és hűtési alapjel, melegvíz-alapjel — egy rendszergazdai jogú felhasználó EMS-ESP hozzáférési tokenje kell:

  1. Nyissa meg az EMS-ESP webes felületét → Settings → Security → Manage Users.
  2. Kattintson a rendszergazdai jogú felhasználó melletti kulcs ikonra, és másolja ki a tokent. A tokennek nincs lejárati ideje.
  3. A sablon importálásakor illessze be a tokent az AccessToken importálási paraméterbe.

Token nélkül az integráció csak olvasható, és minden írás 401-es hibával végződik. Helyette ne kapcsolja be az EMS-ESP-ben a „Bypass Access Token authorization on API calls” beállítást — ezzel az API nyílttá válik, és az EMS-ESP dokumentációja nem ajánlja.

Importálási paraméterek
ParaméterLeírás
IpAddressAz EMS-ESP átjáró IP-címe
AccessTokenEgy rendszergazdai jogú felhasználó EMS-ESP hozzáférési tokenje — csak az íráshoz szükséges; csak olvasható integrációnál hagyja üresen

Eszközfunkciók

1. fűtőkör
  • Hőszivattyú üzemmódja — Ki, Auto, Fűtés vagy Hűtés az 1. fűtőkörhöz. Ebben a sablonban csak így kapcsolható a hőszivattyú hűtésre (lásd a szabályozók korlátait fent).
  • Szobatermosztát — az 1. fűtőkör aktuális és kiválasztott szobahőmérséklete, ahogy a szabályozó jelenti. Az alapjel tartománya 0–30 °C, 0,5 °C-os lépésekben.
  • Hűtési hőmérséklet — az 1. fűtőkör hűtési hőmérséklet-beállítása, olvasható és írható −1 és 30 °C között, 0,5 °C-os lépésekben.

A szobatermosztát eszköz 0–30 °C-ra van korlátozva. A hűtési hőmérséklet változtatás nélkül megy az EMS-ESP-hez, ezért tartsa −1 és 30 °C között.

A hőszivattyú állapota
  • Kompresszor működése — mit csinál éppen a kompresszor: Ki, Fűtés, Hűtés, Melegvíz, Medence, Medencefűtés, Leolvasztás vagy Kompresszorhiba. Ez csak olvasható állapot; egy érték kiválasztása a TapHome-ban nem hat semmire.
  • Kompresszor jár — be/ki jelző, bekapcsolt, amíg a kompresszor jár.
Hőmérsékletek
  • Külső hőmérséklet, Előremenő hőmérséklet és Visszatérő hőmérséklet, ahogy a hőszivattyú jelenti, 0,1 °C-os felbontással.
Energia
  • Villanyóra — a pillanatnyi teljesítmény a kompresszor aktuális elektromos teljesítménye (az EMS-ESP W-ban jelenti, a TapHome kW-ban mutatja); az összfogyasztás a hőszivattyú teljes elektromosenergia-fogyasztása kWh-ban. A források nem közlik, hogy ez az összeg tartalmazza-e az elektromos kiegészítő fűtést, ezért az idő szerint integrált teljesítmény nem feltétlenül egyezik vele.
  • Leadott hő [kWh] (a villanyóra szervizattribútuma) — a hőszivattyú által leadott teljes hőenergia. Ez hőenergia, nem villamosenergia-fogyasztás.
Használati melegvíz
  • Használati melegvíz — a hőszivattyú aktuális és kiválasztott melegvíz-hőmérséklete. Az eszköz alapjel-tartománya 35–70 °C, az alapjel egész fokokban megy, és a hőszivattyú a saját korlátait alkalmazza. A sablon a hőszivattyú melegvíz-értékeit használja, nem a szabályozó melegvíz-beállításait (dhw.settemp, dhw.mode).
Hogyan kommunikál a sablon az EMS-ESP-vel

Minden eszköz entitásonként egy HTTP GET kéréssel olvassa saját értékeit a /api/<device>/[hc1/|dhw/]<entity> címen, és a válaszból a value, index vagy bool kulcsot veszi. Az eszközök 30 másodpercenként kérdeznek le (a külső hőmérséklet és a villanyóra 60 másodpercenként); a modul 60 másodpercenként olvassa a /api/system/info címet. Az írások HTTP POST kérések JSON törzzsel és a hozzáférési tokennel az Authorization: Bearer fejlécben.

Az EMS-ESP 3.8.3 és újabb 429 Too Many Requests választ ad arra a GET kérésre, amely kevesebb mint 50 ms-mal az előző API-hívás után érkezik. A sablon ezért minden GET előtt 60 ms-ot vár, és 429 esetén 200 ms után egyszer megismétli a kérést. Egy másik kliens, amely ugyanabban az időben kérdezi le az EMS-ESP API-t (például egy második otthonautomatizálási rendszer), így is okozhat alkalmanként ismétlést.

Miért REST és nem Modbus. Az EMS-ESP Modbus TCP-t (a 3.7.0 verzió óta, csak PSRAM-mal rendelkező lapokon) és MQTT-t is kínál. Az EMS-ESP Modbus regisztereltolásai a stabil 3.8.0 és 3.8.6 verzió között megváltoztak, így egy Modbus sablon az átjáró firmware-frissítése után észrevétlenül más értékeket olvasna. A REST API név szerint címzi az értékeket — egy átnevezett entitás látható eszközhibával végződik.

Hibaelhárítás

„no value from the gateway” eszközhiba

A „no value from the gateway — this controller or unit does not report it; delete this device” üzenet azt jelenti, hogy a csatlakoztatott hőszivattyú vagy szabályozó nem küldi ezt az entitást. Nézze meg az EMS-ESP Devices oldalát vagy a http://<gateway-ip>/api/boiler/entities és http://<gateway-ip>/api/thermostat/entities címet, majd importálás után törölje az eszközt — a többi eszköz tovább működik.

404-es eszközhiba

Egy 404 olyan üzenettel, mint no 'xyz' in thermostat, azt jelenti, hogy az EMS-ESP nem ismeri az entitást ezen az útvonalon — a szabályozónak nincs ilyen (például hc1.hpoperatingmode UI800 esetén), vagy a firmware más nevet használ. Az unknown device azt jelenti, hogy az EMS-ESP nem talált ilyen típusú hőszivattyút vagy szabályozót az EMS buszon.

Az írás 401-es hibával végződik

A hozzáférési token hiányzik vagy hibás. Másolja ki újra a Settings → Security → Manage Users → rendszergazdai jogú felhasználó melletti kulcs ikon menüből, és írja be a modul AccessToken változójába. A token a felhasználónévből és a szuperfelhasználói jelszóból származik (Settings → Security → Security Settings).

429-es hiba

Egy másik kliens ugyanabban a pillanatban kérdezi le az EMS-ESP API-t. A sablon a saját kéréseit már időben elosztja, és egyszer megismétli őket; ha a hiba ismétlődik, csökkentse a másik kliens lekérdezési gyakoriságát.

A modul hibája vagy figyelmeztetése
  • „EMS-ESP reports °F” — kapcsolja ki a Fahrenheitet a Settings → Application menüben.
  • „Template written for EMS-ESP 3.8.6, gateway reports …” — az átjáró a 3.8-as soron kívüli firmware-rel fut. Frissítse az EMS-ESP-t a Settings → Version menüben.
A villanyóra nrgtotal hibája

A hőmennyiség-mérés nélküli egység nem küldi a nrgtotal értéket. A villanyóra ekkor hibát mutat, a Leadott hő attribútum üres marad; a teljesítmény és az összfogyasztás tovább működik.

Az átjáró nem érhető el
  1. Ellenőrizze az átjáró LED-jét: 1 kék villanás induláskor = az EMS busz még nincs csatlakoztatva (ellenőrizze a kábelt és az EMS Tx Mode beállítást), 2 piros villanás = a hálózat még kapcsolódik (ellenőrizze a Settings → Network menüt; a Wi-Fi-nek 2,4 GHz-es WPA2-nek kell lennie), folyamatos fény = az EMS adatok folyamatosan érkeznek.
  2. Nyissa meg a http://<gateway-ip>/api/system/info címet egy böngészőben — ha válaszol, az átjáró elérhető.
  3. Ha az IP-cím megváltozott, keresse meg az átjárót a http://ems-esp.local mDNS néven, majd állítson be DHCP-foglalást a routerben.
  4. Használjon http:// címet — az EMS-ESP API nem támogatja a HTTPS-t önaláírt tanúsítványokkal.

Elérhető eszközök

EMS-ESP hőszivattyú Modul
Egyéni változók
AccessToken (string)Rendszergazdai jogú felhasználó EMS-ESP hozzáférési tokenje, minden írásnál (üzemmód, alapjelek) Bearer fejlécként megy; az olvasás nélküle is működik, így üres tokennel csak olvasható az integráció
EMS-ESP web interface → Settings → Security → Manage Users → key icon of a user with admin rights; paste the token into the AccessToken import parameter. The token has no expiry date.

EMS-ESP Heat Pump

Olvasás (modul)
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/system/info");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/system/info");
END
IF r.IsSuccess
    SystemInfo := r.Content;
    IF PARSEJSON(SystemInfo, "$.settings.fahrenheit", true) = true
        ADDERROR(1, "EMS-ESP reports °F — switch Fahrenheit off in EMS-ESP Settings → Application");
    END
    IF !ISNULL(PARSEJSON(SystemInfo, "$.system.version", true))
        VAR ver := TOSTRING(PARSEJSON(SystemInfo, "$.system.version", true));
        IF INDEXOF(ver, "3.8.") != 0
            ADDWARNING(0, "Template written for EMS-ESP 3.8.6, gateway reports " + ver);
        END
    END
ELSE
    SystemInfo := "";
    ADDERROR(0, "system/info: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
END
Hőszivattyú üzemmódja Többértékű kapcsoló

Az 1. fűtőkör üzemmódja — Ki, Auto, Fűtés vagy Hűtés; az egyetlen mód a hőszivattyú hűtésre kapcsolására, csak az ezt küldő szabályozókkal érhető el (UI800-zal nem)

enum numeric
Értékek / Állapotok: Off · Auto · Heating · Cooling

Hőszivattyú üzemmódja

Kapcsoló állapot olvasása
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/thermostat/hc1/hpoperatingmode");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/thermostat/hc1/hpoperatingmode");
END
IF r.IsSuccess
    VAR idx := PARSEJSON(r.Content, "$.index", true);
    IF ISNULL(idx)
        ADDERROR(0, "hpoperatingmode: no value from the gateway — this controller or unit does not report it; delete this device");
        RETURN(NaN);
    END
    RETURN(TODOUBLE(idx));
ELSE
    ADDERROR(0, "hpoperatingmode: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    RETURN(NaN);
END
Kapcsoló állapot írása
VAR opttext := IF(Mu = 0, "off", IF(Mu = 1, "auto", IF(Mu = 2, "heating", "cooling")));
VAR body := "{\"value\":\"" + opttext + "\"}";
VAR r := SENDHTTPREQUEST("/api/thermostat/hc1/hpoperatingmode", "POST", body, "Content-Type: application/json", "Authorization: Bearer " + AccessToken);
IF r.IsSuccess = false
    IF r.StatusCode = 401
        ADDERROR(0, "hpoperatingmode: access token missing or wrong (EMS-ESP Settings → Security → Manage Users → key icon of an admin user)");
    ELSE
        ADDERROR(0, "hpoperatingmode write: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    END
END
Szobatermosztát Termosztát

Az 1. fűtőkör aktuális és kiválasztott szobahőmérséklete a hőszivattyú szabályozójától; alapjel 0–30 °C, 0,5 °C-os lépésekben

numeric Egység: °C

Szobatermosztát

Hőmérséklet olvasása
IF CurrTempHc1 = ""
    RETURN(NaN);
END
VAR v := PARSEJSON(CurrTempHc1, "$.value", true);
IF ISNULL(v)
    ADDERROR(0, "currtemp: no value from the gateway — this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(TODOUBLE(v));
Olvasás (modul)
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/thermostat/hc1/currtemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/thermostat/hc1/currtemp");
END
IF r.IsSuccess
    CurrTempHc1 := r.Content;
ELSE
    CurrTempHc1 := "";
    ADDERROR(0, "currtemp: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
END
SLEEP(60);
r := SENDHTTPREQUEST("/api/thermostat/hc1/seltemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/thermostat/hc1/seltemp");
END
IF r.IsSuccess
    SelTempHc1 := r.Content;
ELSE
    SelTempHc1 := "";
    ADDERROR(1, "seltemp: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
END
Kívánt hőmérséklet olvasása
IF SelTempHc1 = ""
    RETURN(NaN);
END
VAR v := PARSEJSON(SelTempHc1, "$.value", true);
IF ISNULL(v)
    ADDERROR(1, "seltemp: no value from the gateway — this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(TODOUBLE(v));
Kívánt hőmérséklet írása
VAR body := "{\"value\":" + Se + "}";
VAR r := SENDHTTPREQUEST("/api/thermostat/hc1/seltemp", "POST", body, "Content-Type: application/json", "Authorization: Bearer " + AccessToken);
IF r.IsSuccess = false
    IF r.StatusCode = 401
        ADDERROR(0, "seltemp: access token missing or wrong (EMS-ESP Settings → Security → Manage Users → key icon of an admin user)");
    ELSE
        ADDERROR(0, "seltemp write: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    END
END
Hűtési hőmérséklet Változó

Az 1. fűtőkör hűtési hőmérséklet-beállítása, −1 és 30 °C között állítható, 0,5 °C-os lépésekben; csak az ezt küldő szabályozókkal érhető el

numeric Egység: °C

Hűtési hőmérséklet

Olvasás
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/thermostat/hc1/cooltemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/thermostat/hc1/cooltemp");
END
IF r.IsSuccess
    VAR v := PARSEJSON(r.Content, "$.value", true);
    IF ISNULL(v)
        ADDERROR(0, "cooltemp: no value from the gateway — this controller or unit does not report it; delete this device");
        RETURN(NaN);
    END
    RETURN(TODOUBLE(v));
ELSE
    ADDERROR(0, "cooltemp: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    RETURN(NaN);
END
Írás
VAR body := "{\"value\":" + Va + "}";
VAR r := SENDHTTPREQUEST("/api/thermostat/hc1/cooltemp", "POST", body, "Content-Type: application/json", "Authorization: Bearer " + AccessToken);
IF r.IsSuccess = false
    IF r.StatusCode = 401
        ADDERROR(0, "cooltemp: access token missing or wrong (EMS-ESP Settings → Security → Manage Users → key icon of an admin user)");
    ELSE
        ADDERROR(0, "cooltemp write: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    END
END
Kompresszor működése Többértékű kapcsoló Csak olvasható

Csak olvasható állapot arról, mit csinál a kompresszor — Ki, Fűtés, Hűtés, Melegvíz, Medence, Medencefűtés, Leolvasztás vagy Kompresszorhiba

enum numeric
Értékek / Állapotok: Off · Heating · Cooling · Hot Water · Pool · Pool Heating · Defrost · Compressor Alarm

Kompresszor működése

Kapcsoló állapot olvasása
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/hpactivity");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/hpactivity");
END
IF r.IsSuccess
    VAR idx := PARSEJSON(r.Content, "$.index", true);
    IF ISNULL(idx)
        ADDERROR(0, "hpactivity: no value from the gateway — this controller or unit does not report it; delete this device");
        RETURN(NaN);
    END
    RETURN(TODOUBLE(idx));
ELSE
    ADDERROR(0, "hpactivity: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    RETURN(NaN);
END
Kompresszor jár Reed kontaktus Csak olvasható
boolean

Kompresszor jár

Olvasás
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/hpcompon");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/hpcompon");
END
IF r.IsSuccess
    VAR b := PARSEJSON(r.Content, "$.bool", true);
    IF ISNULL(b)
        ADDERROR(0, "hpcompon: no value from the gateway — this controller or unit does not report it; delete this device");
        RETURN(NaN);
    END
    RETURN(b);
ELSE
    ADDERROR(0, "hpcompon: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    RETURN(NaN);
END
Külső hőmérséklet Hőmérséklet-érzékelő Csak olvasható
numeric Egység: °C

Külső hőmérséklet

Hőmérséklet olvasása
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/outdoortemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/outdoortemp");
END
IF r.IsSuccess
    VAR v := PARSEJSON(r.Content, "$.value", true);
    IF ISNULL(v)
        ADDERROR(0, "outdoortemp: no value from the gateway — this controller or unit does not report it; delete this device");
        RETURN(NaN);
    END
    RETURN(TODOUBLE(v));
ELSE
    ADDERROR(0, "outdoortemp: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    RETURN(NaN);
END
Előremenő hőmérséklet Hőmérséklet-érzékelő Csak olvasható
numeric Egység: °C

Előremenő hőmérséklet

Hőmérséklet olvasása
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/curflowtemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/curflowtemp");
END
IF r.IsSuccess
    VAR v := PARSEJSON(r.Content, "$.value", true);
    IF ISNULL(v)
        ADDERROR(0, "curflowtemp: no value from the gateway — this controller or unit does not report it; delete this device");
        RETURN(NaN);
    END
    RETURN(TODOUBLE(v));
ELSE
    ADDERROR(0, "curflowtemp: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    RETURN(NaN);
END
Visszatérő hőmérséklet Hőmérséklet-érzékelő Csak olvasható
numeric Egység: °C

Visszatérő hőmérséklet

Hőmérséklet olvasása
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/rettemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/rettemp");
END
IF r.IsSuccess
    VAR v := PARSEJSON(r.Content, "$.value", true);
    IF ISNULL(v)
        ADDERROR(0, "rettemp: no value from the gateway — this controller or unit does not report it; delete this device");
        RETURN(NaN);
    END
    RETURN(TODOUBLE(v));
ELSE
    ADDERROR(0, "rettemp: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    RETURN(NaN);
END
Villanyóra Villanyóra Csak olvasható

A kompresszor aktuális elektromos teljesítménye (kW) és a hőszivattyú teljes elektromosenergia-fogyasztása (kWh)

numeric Egység: W / kWh
Szerviz attribútumok
Leadott hő [kWh]A hőszivattyú által leadott teljes hőenergia — hőteljesítmény, nem villamosenergia-fogyasztás

Villanyóra

Összes fogyasztás olvasása
IF NrgConsTotal = ""
    RETURN(NaN);
END
VAR v := PARSEJSON(NrgConsTotal, "$.value", true);
IF ISNULL(v)
    ADDERROR(1, "nrgconstotal: no value from the gateway — this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(TODOUBLE(v));
Igény olvasása
IF HpCurrPower = ""
    RETURN(NaN);
END
VAR v := PARSEJSON(HpCurrPower, "$.value", true);
IF ISNULL(v)
    ADDERROR(0, "hpcurrpower: no value from the gateway — this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(TODOUBLE(v) / 1000);
Olvasás (modul)
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/hpcurrpower");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/hpcurrpower");
END
IF r.IsSuccess
    HpCurrPower := r.Content;
ELSE
    HpCurrPower := "";
    ADDERROR(0, "hpcurrpower: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
END
SLEEP(60);
r := SENDHTTPREQUEST("/api/boiler/nrgconstotal");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/nrgconstotal");
END
IF r.IsSuccess
    NrgConsTotal := r.Content;
ELSE
    NrgConsTotal := "";
    ADDERROR(1, "nrgconstotal: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
END
SLEEP(60);
r := SENDHTTPREQUEST("/api/boiler/nrgtotal");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/nrgtotal");
END
IF r.IsSuccess
    NrgTotal := r.Content;
    IF ISNULL(PARSEJSON(NrgTotal, "$.value", true))
        ADDERROR(3, "nrgtotal: no value from the gateway — this unit does not report heat delivered; the attribute stays empty");
    END
ELSE
    NrgTotal := "";
    ADDERROR(2, "nrgtotal: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
END
Szerviz attribútumok
Heat delivered [kWh]
IF NrgTotal = "" RETURN(NaN); END VAR v := PARSEJSON(NrgTotal, "$.value", true); IF ISNULL(v) RETURN(NaN); END RETURN(TODOUBLE(v));
Használati melegvíz Termosztát

A hőszivattyú aktuális és kiválasztott melegvíz-hőmérséklete; az alapjel egész fokokban megy, és a hőszivattyú a saját korlátait alkalmazza

numeric Egység: °C

Használati melegvíz

Hőmérséklet olvasása
IF DhwCurTemp = ""
    RETURN(NaN);
END
VAR v := PARSEJSON(DhwCurTemp, "$.value", true);
IF ISNULL(v)
    ADDERROR(0, "dhw/curtemp: no value from the gateway — this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(TODOUBLE(v));
Olvasás (modul)
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/dhw/curtemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/dhw/curtemp");
END
IF r.IsSuccess
    DhwCurTemp := r.Content;
ELSE
    DhwCurTemp := "";
    ADDERROR(0, "dhw/curtemp: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
END
SLEEP(60);
r := SENDHTTPREQUEST("/api/boiler/dhw/seltemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/dhw/seltemp");
END
IF r.IsSuccess
    DhwSelTemp := r.Content;
ELSE
    DhwSelTemp := "";
    ADDERROR(1, "dhw/seltemp: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
END
Kívánt hőmérséklet olvasása
IF DhwSelTemp = ""
    RETURN(NaN);
END
VAR v := PARSEJSON(DhwSelTemp, "$.value", true);
IF ISNULL(v)
    ADDERROR(1, "dhw/seltemp: no value from the gateway — this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(TODOUBLE(v));
Kívánt hőmérséklet írása
VAR body := "{\"value\":" + ROUND(Se) + "}";
VAR r := SENDHTTPREQUEST("/api/boiler/dhw/seltemp", "POST", body, "Content-Type: application/json", "Authorization: Bearer " + AccessToken);
IF r.IsSuccess = false
    IF r.StatusCode = 401
        ADDERROR(0, "dhw/seltemp: access token missing or wrong (EMS-ESP Settings → Security → Manage Users → key icon of an admin user)");
    ELSE
        ADDERROR(0, "dhw/seltemp write: " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "$.message", true)), "", " — " + PARSEJSON(r.Content, "$.message", true)));
    END
END
Kapcsolat: Packet Parser → HTTP • Hostname: ems-esp.local
Lehetséges fejlesztések (15)
  • Heat pump operating mode on UI800 (thermostat top level) — UI800 reports hpoperatingmode at the thermostat top level instead of under hc1, so the template's operating mode device (and with it cooling) does not work with UI800
  • Heating circuits 2–8 — Same entities as hc1 under the hc2…hc8 path prefix; the template covers heating circuit 1 only — devices for further circuits would be copies with a different path
  • Heating circuit mode — Enum, writable: manual / auto on RC300, RC100, Rego 3000 and HMC310; off / manual / auto on BC400, UI800 and CR120
  • Heat pump cooling enabled — Boolean, writable — enables cooling on the heating circuit
  • Summer / winter switchover — winter / auto / summer, RC100 and RC300
  • Further heating circuit settings — Comfort / eco / manual setpoints, summer threshold, flow temperature limits, heating curve design temperature, offset, room influence and control mode (RC100 / RC300); the docs mark the command table as incomplete and model-dependent
  • Controller-side domestic hot water settings — DHW mode (off / on / auto), DHW set temperatures, one-time charge and circulation mode on RC100 / RC300 — the template reads and writes the heat pump (boiler) DHW entities instead
  • EMS-ESP firmware version — Already fetched by the module for the version warning; could be exposed as a module service attribute
  • Restart EMS-ESP — GET with access token; candidate for a module service action
  • Refresh all device values — Forces EMS-ESP to re-read all values from the EMS bus; no authentication
  • Temperature sensors on the gateway (DS18B20) — The kit includes a JST ZH cable for own DS18B20 sensors; their readings are available over the same REST API
  • Analog sensors and outputs of the gateway — Readings and setvalue for gateway analog inputs, counters and output pins
  • Custom entities — User-defined entities for EMS telegrams EMS-ESP does not decode yet
  • Entity discovery lists — Not a device — the live list of entities a given installation reports; the way to check which template devices will work before importing
  • Other EMS-ESP interfaces — EMS-ESP also offers Modbus TCP (since 3.7.0) and MQTT / MQTT Discovery; the template uses the REST API by entity name instead of Modbus register offsets

Források

Talált problémát ezzel az eszközsablonnal?

Írja meg, mi nem működik, mi hiányzik, vagy hogyan kellene a sablonnak viselkednie. Visszajelzése segít, hogy a katalógus pontos maradjon.

Közösség — felülvizsgálatlan

Használni szeretnéd ezt a TapHome Core-odban?

Nyisd meg ezt a sablont az ügyfélportálon, hogy alkalmazd az otthonaid egyikére, vagy készíts egy módosítást és küldd vissza a katalógusba.

Megnyitás a portálon