TapHome

EMS-ESP plinski kotao (Bosch, Buderus, Junkers, Nefit)

Packet Parser → HTTP
Autor
Posljednje ažuriranje: 10. 2026

Potreban je vanjski pristupnik (gateway)

BBQKees Electronics Gateway E32 V2 (EMS-ESP 3.8.6 firmware) — stranica proizvoda

Ovaj uređaj podržava mDNS

Umjesto IP adrese uređaju možete pristupiti na adresi:

ems-esp.local

Zamijenite {MAC} MAC adresom svog uređaja (velika slova, bez dvotočaka).

TapHome podržava mDNS. Naziv računala (hostname) pouzdaniji je od statične IP adrese.

EMS-ESP plinski kotao (Bosch, Buderus, Junkers, Nefit)

Predložak EMS-ESP Gas Boiler povezuje TapHome s plinskim kotlom Bosch, Buderus, Junkers ili Nefit putem pristupnika EMS-ESP — BBQKees Electronics Gateway E32 V2, koji radi na otvorenom firmveru EMS-ESP i spaja se na sabirnicu EMS kotla. TapHome s pristupnikom komunicira putem njegovog lokalnog HTTP REST API-ja (port 80, JSON); veza s oblakom nije potrebna. U EMS-ESP-u se kotao prikazuje kao vrsta uređaja boiler, a njegov regulator kao vrsta uređaja thermostat.

Predložak očitava grije li kotao ili priprema toplu vodu, temperaturu polaza i njezinu ciljnu vrijednost, snagu plamenika, posljednji kod pogreške koji je kotao spremio, tlak u sustavu, broj pokretanja plamenika, vanjsku temperaturu te temperaturu prostorije i tople vode. S pristupnim tokenom postavlja i način rada kruga grijanja 1 (Isključeno, Ručno, Auto), zadanu sobnu temperaturu i zadanu temperaturu tople vode.

Predložak zajednice — još nije testiran s TapHome. Predložak je izrađen u portalu TapHome i napisan za EMS-ESP 3.8.6; na stvarnoj instalaciji još nije provjeren. Preuzmite ga iz portala TapHome: EMS-ESP Gas Boiler — predložak zajednice (preuzmite XML — prijava nije potrebna — i uvezite ga kao novi modul).

Kompatibilni kotlovi i regulatori

O tome radi li kotao s ovim predloškom odlučuju dvije stvari: EMS-ESP mora podržavati kotao, a kotao i njegov regulator moraju slati vrijednosti koje predložak očitava.

Kotlovi koje predložak pokriva:

  • Buderus GB125, GB135, GB162, GBx72, GB192, GB192i.2, Logamax Plus GB022, U122
  • Bosch / Junkers Cerapur GC2200W, Cerapur Top, Condens 2500, GC9000
  • Nefit Topline, Trendline
  • Worcester Greenstar Si, 30Ri Compact, 8000

Popis kotlova koje EMS-ESP podržava navodi i druge modele, na primjer Logano, Nefit Proline i Smartline, Condens 2300 i 5000i.

Pristupnik radi s varijantama sabirnice EMS, EMS Plus (EMS+), EMS2 i Heatronic 3. Stariji kotlovi sa sabirnicom iRT, poput Nefit Ecomline ili Buderus GB112, mogu koristiti pristupnik tek nakon ugradnje adaptera Bosch EasyControlAdapter. OpenTherm nije među vrstama sabirnice koje pristupnik podržava.

Koje vrijednosti određeni kotao šalje, nije dokumentirano po modelima. Stranica Devices u web sučelju EMS-ESP-a prikazuje samo entitete s vrijednošću; entitet koji u EMS-ESP-u postoji, ali nema vrijednost, podržava firmver, a ne spojeni kotao. Isti popis nalazi se na http://<gateway-ip>/api/boiler/entities i http://<gateway-ip>/api/thermostat/entities.

Način rada kruga grijanja ovisi o regulatoru, jer svaka serija regulatora ima vlastiti popis načina rada:

RegulatorNačini rada u EMS-ESP-uNačin rada kruga grijanja
RC300, RC310, RC100, HMC310, Rego 2000 / 3000manual, autoRučno i Auto; odabir Isključeno završava pogreškom upisivanja
BC400, UI800, CR120off, manual, autoIsključeno, Ručno i Auto
RC35, regulatori Junkers i drugi modelidrugi popisi (na primjer RC35: night, day, auto; Junkers: nofrost, eco, heat, auto)nije podržano — uređaj završava pogreškom, izbrišite ga

Kotlovi Junkers i Nefit često su upareni s regulatorima Junkers ili Nefit koji imaju drugi popis načina rada. Uređaji kotla u predlošku ne ovise o regulatoru i rade i dalje.

Neki regulatori ne prihvaćaju naredbe upisivanja EMS i u EMS-ESP-u se prikazuju kao uređaji samo za očitavanje: Buderus Logamatic TC100, Bosch EasyControl CT200, Junkers CT100, Moduline Easy, Junkers FW / FR proizvedeni prije 9/2008 i termostati Tado. S njima se način rada i zadana sobna temperatura ne mogu mijenjati iz TapHome-a.

Hardversko spajanje

Komplet BBQKees Gateway E32 V2 KIT sadrži pristupnik, servisni kabel EMS od 150 cm, kabel za vijčane stezaljke EMS od 100 cm, adapter za servisni priključak EMS, napajanje (12 V DC s utikačem ili 5 V USB-C, ovisno o proizvodnoj seriji) i kabel JST ZH za vlastite temperaturne senzore DS18B20. Pristupnik se na kotao spaja na jedan od tri načina:

Priključak na kotluKabelNapajanje
Servisni priključak EMS (3,5 mm)servisni kabel EMS od 150 cmiz servisnog priključka
Servisni priključak EMS (3,5 mm)servisni kabel EMS od 150 cmvanjsko napajanje
Vijčane stezaljke sabirnice EMSkabel za vijčane stezaljke EMS od 100 cmvanjsko napajanje (12 V DC ili 5 V USB-C)

Servisni priključak može se koristiti samo ako ga kotao ima. Pristupnici koji se prodaju od ljeta 2025. prihvaćaju obje vrste napajanja. BBQKees EMS Gateway Wiki prikazuje kako spojiti pristupnik na određeni kotao.

  • Mreža: Ethernet (RJ45) ili Wi-Fi. EMS-ESP se spaja samo na Wi-Fi mreže od 2,4 GHz s WPA2, ne na 5 GHz.
  • Firmver: EMS-ESP. Gateway E32 V2 (u prodaji od siječnja 2024.) ima PSRAM i koristi varijantu firmvera ESP32-16MB+. Firmver se ažurira u web sučelju EMS-ESP-a pod Settings → Version.

Konfiguracija

Prvo postavljanje EMS-ESP-a
  1. Pri prvom pokretanju EMS-ESP otvara Wi-Fi pristupnu točku ems-esp (WPA lozinka ems-esp-neo). Pristupnik spojen putem Etherneta dostupan je na IP adresi koju mu je dodijelio usmjerivač.
  2. Prijavite se zadanim korisnikom admin / admin i promijenite lozinku.
  3. Pod Settings → Network spojite pristupnik na kućnu mrežu (Wi-Fi ili Ethernet).
  4. U usmjerivaču rezervirajte fiksnu IP adresu za pristupnik (DHCP rezervacija) — predložak pristupniku pristupa putem njegove IP adrese.
Postavke EMS-ESP-a koje su važne
  • Temperature u °C — pod Settings → Application ostavite isključeno „Convert temperature values to Fahrenheit“. Modul to provjerava svakih 60 s i prikazuje pogrešku kada EMS-ESP javlja °F.
  • Language: English — pod Settings → Application ostavite jezik English. Uređaj Način rada kruga grijanja prepoznaje način rada po tekstu opcije (off, manual, auto), a EMS-ESP te tekstove prevodi na odabrani jezik; s drugim jezikom uređaj završava pogreškom koja navodi javljeni tekst. Upisivanja koriste engleske tekstove, koje EMS-ESP prihvaća na svakom jeziku, a ostali uređaji ne ovise o jeziku.
  • Boolean Format i Enum Format nisu važni. Predložak očitava ključeve index i bool i brojčanu vrijednost value iz detalja entiteta EMS-ESP-a, koji ne ovise o tim postavkama.
  • Firmver 3.8 — modul prikazuje upozorenje kada pristupnik javlja verziju izvan serije 3.8. U verziji 3.7.0 entiteti tople vode premješteni su iz prefiksa ww u ugniježđeni objekt dhw, a EMS-ESP je dobio zaseban popis načina rada za regulatore vrste BC400; između 3.8.0 i 3.8.6 entiteti koje predložak koristi nisu se mijenjali.
Pristupni token za upisivanje

Očitavanje ne zahtijeva autentifikaciju. Upisivanje — način rada kruga grijanja, zadana sobna temperatura i topla voda — zahtijeva pristupni token EMS-ESP-a korisnika s administratorskim pravima:

  1. Otvorite web sučelje EMS-ESP-a → Settings → Security → Manage Users.
  2. Kliknite ikonu ključa uz korisnika s administratorskim pravima i kopirajte token. Token nema datum isteka.
  3. Pri uvozu predloška zalijepite token u parametar uvoza AccessToken.

Bez tokena integracija je samo za očitavanje i svako upisivanje završava pogreškom 401. Umjesto toga u EMS-ESP-u nemojte uključiti „Bypass Access Token authorization on API calls“ — time API postaje otvoren, a dokumentacija EMS-ESP-a to ne preporučuje.

Parametri uvoza
ParametarOpis
IpAddressIP adresa pristupnika EMS-ESP
AccessTokenPristupni token EMS-ESP-a korisnika s administratorskim pravima — potreban samo za upisivanje; za integraciju samo za očitavanje ostavite ga praznim

Mogućnosti uređaja

Krug grijanja 1
  • Način rada kruga grijanja — Isključeno, Ručno ili Auto za krug grijanja 1. Uređaj očitava položaj u popisu načina rada regulatora, pronalazi njegov tekst opcije i prikazuje Isključeno, Ručno ili Auto; upisuje engleski tekst opcije. Koji načini rada funkcioniraju, ovisi o regulatoru (pogledajte tablicu iznad).
  • Sobni termostat — trenutačna i zadana sobna temperatura kruga grijanja 1 kako je javlja regulator. Raspon zadane vrijednosti uređaja je 0–30 °C. EMS-ESP drži zadanu sobnu temperaturu u koracima od 0,5 °C; predložak šalje vrijednost bez promjena.
Stanje kotla
  • Grijanje aktivno — aktivno dok kotao radi za grijanje prostora.
  • Grijanje tople vode aktivno — aktivno dok kotao zagrijava potrošnu toplu vodu.
Temperature
  • Temperatura polaza — trenutačna temperatura polaza kotla s razlučivošću od 0,1 °C.
  • Ciljna temperatura polaza — temperatura polaza kojoj kotao teži (0–90 °C), zadaje je regulator. Uređaj je namjerno samo za očitavanje: EMS-ESP bi mogao upisati tu vrijednost, ali upisana temperatura polaza nadjačala bi sobni regulator.
  • Vanjska temperatura — vanjska temperatura kako je javlja kotao, s razlučivošću od 0,1 °C.
Plamenik i tlak u sustavu
  • Snaga plamenika — trenutačna snaga plamenika u postocima. Uređaj očitava i posljednji kod pogreške koji je kotao spremio i prikazuje ga kao informativnu poruku „Last error code (stored by the boiler): …“, na primjer 2E(207) 100.75.2000 65:00 (0 min). To je kod koji je kotao posljednji spremio, s datumom i trajanjem — ne nužno aktivni kvar; poruka ostaje i nakon što kvar nestane. Kada se kod pogreške ne može očitati, uređaj prikazuje upozorenje, a snaga plamenika ostaje dostupna.
  • Broj pokretanja plamenika — ukupan broj pokretanja plamenika koje je izbrojio kotao.
  • Tlak u sustavu — tlak vode u sustavu grijanja u barima, s razlučivošću od 0,1 bar.
Potrošna topla voda
  • Potrošna topla voda — trenutačna i zadana temperatura tople vode kotla. Raspon zadane vrijednosti uređaja je 10–70 °C, zadana vrijednost šalje se u cijelim stupnjevima, a kotao primjenjuje vlastita ograničenja.

Predložak upisuje zadanu temperaturu tople vode kotla (dhw.seltemp), a ne postavke tople vode regulatora (dhw.settemp, dhw.mode). Dokumentacija EMS-ESP-a navodi da postavke kotla kojima upravlja regulator on i prepisuje, pa regulator koji upravlja toplom vodom može prepisati zadanu vrijednost postavljenu u TapHome-u. Na stvarnoj instalaciji to još nije provjereno.

Kako predložak komunicira s EMS-ESP-om

Svaki uređaj očitava vlastite vrijednosti jednim zahtjevom HTTP GET po entitetu na /api/<device>/[hc1/|dhw/]<entity> i uzima ključ value, index ili bool iz odgovora. Većina uređaja šalje upit svakih 30 s; Tlak u sustavu i Vanjska temperatura svakih 60 s, a Broj pokretanja plamenika svakih 5 minuta. Modul očitava /api/system/info svakih 60 s. Upisivanja su zahtjevi HTTP POST s JSON tijelom i pristupnim tokenom u zaglavlju Authorization: Bearer.

EMS-ESP 3.8.3 i noviji odgovara 429 Too Many Requests na GET koji stigne manje od 50 ms nakon prethodnog poziva API-ja. Predložak zato prije svakog GET-a čeka 60 ms i pri 429 jednom ponavlja zahtjev nakon 200 ms. Drugi klijent koji u isto vrijeme šalje upite API-ju EMS-ESP-a (na primjer drugi sustav kućne automatizacije) i dalje povremeno može izazvati ponavljanje.

Zašto REST, a ne Modbus. EMS-ESP nudi i Modbus TCP, ali pomaci njegovih registara promijenili su se između stabilnih verzija 3.8.0 i 3.8.6, pa bi Modbus predložak nakon ažuriranja firmvera pristupnika neprimjetno očitavao druge vrijednosti. REST API vrijednostima pristupa po nazivu — preimenovani entitet završava vidljivom pogreškom uređaja.

Rješavanje problema

Pogreška uređaja „no value from the gateway“

Poruka „no value from the gateway — this controller or unit does not report it; delete this device“ znači da spojeni kotao ili regulator ne šalje taj entitet. Provjerite stranicu Devices u EMS-ESP-u ili http://<gateway-ip>/api/boiler/entities i http://<gateway-ip>/api/thermostat/entities, a zatim izbrišite uređaj nakon uvoza — ostali uređaji rade i dalje.

Pogreška uređaja 404

404 s porukom poput no 'xyz' in thermostat znači da EMS-ESP ne poznaje entitet na toj putanji — regulator ili kotao ga nema, ili firmver koristi drugi naziv. unknown device znači da EMS-ESP na sabirnici EMS nije pronašao kotao ni regulator te vrste.

Način rada kruga grijanja javlja drugi tekst

Pogreška „hc1.mode reports ‘…’“ pojavljuje se kada EMS-ESP javlja drugi tekst načina rada od off, manual ili auto. Ili jezik EMS-ESP-a nije English (postavite ga pod Settings → Application), ili regulator koristi drugi popis načina rada (na primjer RC35 ili regulator Junkers) — tada izbrišite uređaj Način rada kruga grijanja.

Odabir Isključeno završava pogreškom upisivanja

Regulatori serije RC300 (RC300, RC310, RC100, HMC310, Rego 2000 / 3000) nemaju način rada isključeno. EMS-ESP odbija vrijednost koja nije na popisu regulatora, pa uređaj prikazuje pogrešku upisivanja (hc1.mode write: HTTP …). S tim regulatorima koristite Ručno ili Auto.

Upisivanje završava pogreškom 401

Pristupni token nedostaje ili je pogrešan. Ponovno ga kopirajte pod Settings → Security → Manage Users → ikona ključa uz korisnika s administratorskim pravima i unesite ga u varijablu AccessToken modula. Token se izvodi iz korisničkog imena i lozinke super korisnika pod Settings → Security → Security Settings.

Pogreška 429

Drugi klijent u istom trenutku šalje upite API-ju EMS-ESP-a. Predložak svoje zahtjeve već raspoređuje u vremenu i jednom ih ponavlja; ako se pogreška ponavlja, smanjite učestalost upita drugog klijenta.

Pogreška ili upozorenje modula
  • „EMS-ESP reports °F“ — isključite Fahrenheit pod Settings → Application.
  • „Template written for EMS-ESP 3.8.6, gateway reports …“ — pristupnik radi na firmveru izvan serije 3.8. Ažurirajte EMS-ESP pod Settings → Version.
Pristupnik nije dostupan
  1. Provjerite LED pristupnika: 1 plavo treptanje tijekom pokretanja = sabirnica EMS još nije spojena (provjerite kabel i postavku EMS Tx Mode), 2 crvena treptanja = mreža se još spaja (provjerite Settings → Network; Wi-Fi mora biti 2,4 GHz WPA2), stalno svjetlo = podaci s EMS-a pristižu.
  2. Otvorite http://<gateway-ip>/api/system/info u pregledniku — ako odgovori, pristupnik je dostupan.
  3. Ako se IP adresa promijenila, pronađite pristupnik putem mDNS naziva http://ems-esp.local, a zatim u usmjerivaču postavite DHCP rezervaciju.
  4. Koristite http:// — API EMS-ESP-a ne podržava HTTPS sa samopotpisanim certifikatima.

Dostupni uređaji

Pristupnik EMS-ESP Modul
Prilagođene varijable
AccessToken (string)Pristupni token EMS-ESP-a korisnika s administratorskim pravima, šalje se kao zaglavlje Bearer pri svakom upisivanju (način rada kruga grijanja, zadana sobna temperatura i topla voda); očitavanje radi i bez njega, pa prazan token znači integraciju samo za očitavanje
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 Gateway

Čitanje (modul)
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/system/info");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/system/info");
END
IF r.IsSuccess = false
    ADDERROR("system/info: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
ELSE
    VAR fahrenheit := PARSEJSON(r.Content, "settings.fahrenheit", true);
    IF fahrenheit
        ADDERROR("EMS-ESP reports \u00b0F \u2014 switch Fahrenheit off in EMS-ESP Settings \u2192 Application");
    END
    VAR version := PARSEJSON(r.Content, "system.version", true);
    IF !ISNULL(version)
        IF INDEXOF(TOSTRING(version), "3.8.") != 0
            ADDWARNING("Template written for EMS-ESP 3.8.6, gateway reports " + version);
        END
    END
END
Način rada kruga grijanja Prekidač s više vrijednosti

Način rada kruga grijanja 1 — Isključeno, Ručno ili Auto; regulatori serije RC300 nude samo Ručno i Auto, BC400 / UI800 / CR120 i Isključeno; zahtijeva jezik EMS-ESP-a English

enum json_path
Vrijednosti / stanja: Off · Manual · Auto

Način rada kruga grijanja

Čitanje stanja sklopke
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/thermostat/hc1/mode");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/thermostat/hc1/mode");
END
IF r.IsSuccess = false
    ADDERROR("hc1.mode: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR enumList := PARSEJSON(r.Content, "enum", true);
VAR idx := PARSEJSON(r.Content, "index", true);
IF ISNULL(enumList) OR ISNULL(idx)
    ADDERROR("hc1.mode: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
VAR text := PARSEJSON(r.Content, "$.enum[" + TOSTRING(idx) + "]", true);
IF ISNULL(text)
    ADDERROR("hc1.mode: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
IF text = "off"
    RETURN(0);
ELSEIF text = "manual"
    RETURN(1);
ELSEIF text = "auto"
    RETURN(2);
ELSE
    ADDERROR("hc1.mode reports '" + text + "': this template supports controllers with off / manual / auto and needs EMS-ESP Language = English (Settings \u2192 Application)");
    RETURN(NaN);
END
Zapis stanja sklopke
VAR modeName := IF(Mu = 0, "off", IF(Mu = 1, "manual", "auto"));
VAR body := "{\"value\":\"" + modeName + "\"}";
VAR r := SENDHTTPREQUEST("/api/thermostat/hc1/mode", "POST", body, "Content-Type: application/json", "Authorization: Bearer " + AccessToken);
IF r.IsSuccess = false
    IF r.StatusCode = 401
        ADDERROR("hc1.mode write: access token missing or wrong (EMS-ESP Settings \u2192 Security \u2192 Manage Users \u2192 key icon of an admin user)");
    ELSE
        ADDERROR("hc1.mode write: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    END
END
Sobni termostat Termostat

Trenutačna i zadana sobna temperatura kruga grijanja 1 iz regulatora; zadana vrijednost 0–30 °C, EMS-ESP je drži u koracima od 0,5 °C

numeric Jedinica: °C

Sobni termostat

Čitanje temperature
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 = false
    ADDERROR("hc1.currtemp: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("hc1.currtemp: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Čitanje željene temperature
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/thermostat/hc1/seltemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/thermostat/hc1/seltemp");
END
IF r.IsSuccess = false
    ADDERROR("hc1.seltemp: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("hc1.seltemp: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Zapis željene temperature
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("hc1.seltemp write: access token missing or wrong (EMS-ESP Settings \u2192 Security \u2192 Manage Users \u2192 key icon of an admin user)");
    ELSE
        ADDERROR("hc1.seltemp write: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    END
END
Grijanje aktivno Magnetski kontakt Samo za čitanje

Aktivno dok kotao radi za grijanje prostora

boolean

Grijanje aktivno

Čitanje
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/heatingactive");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/heatingactive");
END
IF r.IsSuccess = false
    ADDERROR("heatingactive: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "bool", true);
IF ISNULL(v)
    ADDERROR("heatingactive: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Grijanje tople vode aktivno Magnetski kontakt Samo za čitanje

Aktivno dok kotao zagrijava potrošnu toplu vodu

boolean

Grijanje tople vode aktivno

Čitanje
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/tapwateractive");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/tapwateractive");
END
IF r.IsSuccess = false
    ADDERROR("tapwateractive: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "bool", true);
IF ISNULL(v)
    ADDERROR("tapwateractive: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Temperatura polaza Senzor temperature Samo za čitanje
numeric Jedinica: °C

Temperatura polaza

Čitanje temperature
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/curflowtemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/curflowtemp");
END
IF r.IsSuccess = false
    ADDERROR("curflowtemp: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("curflowtemp: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Ciljna temperatura polaza Varijabla Samo za čitanje

Temperatura polaza kojoj kotao teži (0–90 °C), zadaje je regulator; samo za očitavanje, pa TapHome nikada ne nadjačava regulator

numeric Jedinica: °C

Ciljna temperatura polaza

Čitanje
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/selflowtemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/selflowtemp");
END
IF r.IsSuccess = false
    ADDERROR("selflowtemp: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("selflowtemp: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Snaga plamenika Varijabla Samo za čitanje

Trenutačna snaga plamenika u postocima; prikazuje i posljednji kod pogreške koji je kotao spremio kao informativnu poruku — ne nužno aktivni kvar

numeric Jedinica: %

Snaga plamenika

Čitanje
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/curburnpow");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/curburnpow");
END
IF r.IsSuccess = false
    ADDERROR("curburnpow: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("curburnpow: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Čitanje (modul)
SLEEP(60);
VAR rlc := SENDHTTPREQUEST("/api/boiler/lastcode");
IF rlc.StatusCode = 429
    SLEEP(200);
    rlc := SENDHTTPREQUEST("/api/boiler/lastcode");
END
IF rlc.IsSuccess = false
    ADDWARNING(1, "lastcode: HTTP " + rlc.StatusCode + IF(ISNULL(PARSEJSON(rlc.Content, "message", true)), "", ": " + PARSEJSON(rlc.Content, "message", true)));
ELSE
    VAR lc := PARSEJSON(rlc.Content, "value", true);
    IF !ISNULL(lc)
        ADDINFO(1, "Last error code (stored by the boiler): " + lc);
    END
END
Tlak u sustavu Varijabla Samo za čitanje

Tlak vode u sustavu grijanja u barima

numeric Jedinica: bar

Tlak u sustavu

Čitanje
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/syspress");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/syspress");
END
IF r.IsSuccess = false
    ADDERROR("syspress: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("syspress: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Broj pokretanja plamenika Varijabla Samo za čitanje

Ukupan broj pokretanja plamenika koje je izbrojio kotao

numeric

Broj pokretanja plamenika

Čitanje
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/burnstarts");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/burnstarts");
END
IF r.IsSuccess = false
    ADDERROR("burnstarts: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("burnstarts: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Potrošna topla voda Termostat

Trenutačna i zadana temperatura tople vode kotla; zadana vrijednost šalje se u cijelim stupnjevima, a kotao primjenjuje vlastita ograničenja

numeric Jedinica: °C

Potrošna topla voda

Čitanje temperature
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 = false
    ADDERROR("dhw.curtemp: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("dhw.curtemp: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Čitanje željene temperature
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/dhw/seltemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/dhw/seltemp");
END
IF r.IsSuccess = false
    ADDERROR("dhw.seltemp: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("dhw.seltemp: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Zapis željene temperature
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("dhw.seltemp write: access token missing or wrong (EMS-ESP Settings \u2192 Security \u2192 Manage Users \u2192 key icon of an admin user)");
    ELSE
        ADDERROR("dhw.seltemp write: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    END
END
Vanjska temperatura Senzor temperature Samo za čitanje

Vanjska temperatura kako je javlja kotao

numeric Jedinica: °C

Vanjska temperatura

Čitanje temperature
SLEEP(60);
VAR r := SENDHTTPREQUEST("/api/boiler/outdoortemp");
IF r.StatusCode = 429
    SLEEP(200);
    r := SENDHTTPREQUEST("/api/boiler/outdoortemp");
END
IF r.IsSuccess = false
    ADDERROR("outdoortemp: HTTP " + r.StatusCode + IF(ISNULL(PARSEJSON(r.Content, "message", true)), "", ": " + PARSEJSON(r.Content, "message", true)));
    RETURN(NaN);
END
VAR v := PARSEJSON(r.Content, "value", true);
IF ISNULL(v)
    ADDERROR("outdoortemp: no value from the gateway \u2014 this controller or unit does not report it; delete this device");
    RETURN(NaN);
END
RETURN(v);
Povezivanje: Packet Parser → HTTP • Naziv računala (hostname): ems-esp.local
Moguća poboljšanja (17)
  • Writing the selected flow temperature — Writable in EMS-ESP (0–90 °C), deliberately left out: a written flow temperature overrides the room controller; the template only reads it (Flow Temperature Target)
  • 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
  • Summer / winter switchover — winter / auto / summer, RC100 and RC300
  • Further heating circuit settings — Comfort / eco / manual setpoints, summer and frost thresholds, flow temperature limits, heating curve design temperature, offset, room influence, control mode and time program (RC100 / RC300 and others); 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 boiler DHW entities instead
  • Boiler-side hot water functions — Hot water enable, one-time charge, circulation pump and mode, flow temperature offset and maximum power for hot water; some of them are overwritten by the thermostat (docs Boilers)
  • Boiler comfort mode, heating enable and heating temperature limit — comfort hot / eco / intelligent; heatingactivated and heatingtemp are not changeable on some systems (for example with an MC10 rotary control)
  • Burner and pump parameters — Burner hysteresis, minimum burner period, modulation limits and pump settings — installer parameters, the allowed ranges depend on the boiler type
  • Maintenance message and error reset — Set or reset the maintenance message; reset error should be used only with an active error (docs Boilers) — candidates for service actions
  • 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 because Modbus register offsets move between firmware releases

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Zajednica · nije provjereno

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu