TapHome

NOUS A1

Packet Parser → MQTT
Autor
Posljednje ažuriranje: 03. 2026
NOUS A1

NOUS A1 pametna je Wi-Fi utičnica s ugrađenim mjerenjem potrošnje (čip BL0937). S učitanim firmverom Tasmota komunicira sa sustavom TapHome preko MQTT. Predložak omogućuje upravljanje relejem i cjelovito mjerenje energije: napon, struju, djelatnu, jalovu i prividnu snagu, faktor snage i zbirnu potrošnju energije.

Utičnica koristi čipset ESP8266 i nazivno podnosi 16 A vršno / 15 A trajno (najviše 3680 W, 3450 W trajno). Potreban je vanjski MQTT broker (npr. Mosquitto) dostupan i utičnici i centralnoj jedinici TapHome Core.

Konfiguracija

Postavljanje Tasmota MQTT

Prije uvoza predloška TapHome na NOUS A1 treba učitati firmver Tasmota i postaviti spajanje na MQTT broker:

  1. Otvorite web-sučelje Tasmota (u pregledniku otvorite IP adresu uređaja)
  2. Otvorite Configuration → Configure MQTT
  3. U Host unesite IP adresu MQTT brokera
  4. Postavite Port (zadano 1883)
  5. Ako broker traži autentifikaciju, unesite User i Password
  6. Zapišite vrijednost Topic (npr. tasmota_496D5A), potrebna je za predložak TapHome
Varijable predloška

Nakon uvoza predloška u TapHome postavite korisničku varijablu plug1topic tako da odgovara Tasmota MQTT temi utičnice:

VarijablaOpisKako je dobiti
plug1topicTasmota MQTT tema pametne utičniceWeb-sučelje Tasmota → Configuration → MQTT → polje Topic

Zadana vrijednost je tasmota_496D5A i treba je promijeniti tako da odgovara stvarnoj temi svake utičnice.

MQTT tema ovisi o uređaju. Ako koristite više utičnica NOUS A1, za svaku je potrebna zasebna instanca predloška s jedinstvenom vrijednošću plug1topic.

Kalibracija mjerenja potrošnje

Za točna očitanja čip za mjerenje potrošnje BL0937 treba kalibrirati. Postupak kalibracije:

  1. Na utičnicu priključite poznato omsko trošilo (npr. žarulju sa žarnom niti od 60 W)
  2. U konzoli Tasmota postavite referentni napon: VoltageSet 230
  3. Postavite referentnu snagu: PowerSet 60
  4. Provjerite je li faktor snage za omsko trošilo blizu 1,00

Kalibracija se radi samo jednom: vrijednosti se spremaju u flash memoriju i ostaju sačuvane i nakon ponovnog pokretanja. Bez kalibracije očitanja energije s čipa BL0937 mogu biti netočna.

Mogućnosti uređaja

Upravljanje relejem

Predložak daje jedan izlaz releja za utičnicu 230 V AC. Relejem se upravlja objavom na cmnd/{topic}/Power sa sadržajem 1 (uključeno) ili 0 (isključeno). Kada se relej isključi, predložak zatraži i ažuriranje podataka o energiji (Status 8) kako bi se očitanja energije odmah osvježila.

Mjerenje potrošnje

Predložak čita podatke o energiji iz poruke tele/{topic}/SENSOR, koja se objavljuje periodički (zadano svakih 300 sekundi). Dostupna su sljedeća mjerenja:

  • Napon — mrežni napon (V)
  • Struja — struja trošila (A)
  • Djelatna snaga — stvarna potrošnja snage (W)
  • Prividna snaga — ukupna snaga uključujući jalovu komponentu (VA)
  • Jalova snaga — jalova snaga (VAR)
  • Faktor snage — omjer djelatne i prividne snage (cos phi, 0–1)
  • Energija danas — zbirna energija od ponoći (kWh)
  • Ukupna energija — zbirna energija od pokretanja brojača, ostaje sačuvana i nakon ponovnog pokretanja (kWh)
  • Energija razdoblja — energija potrošena u trenutačnom razdoblju telemetrije (Wh)
Wi-Fi dijagnostika

Predložak čita stanje Wi-Fi veze iz poruke tele/{topic}/STATE:

  • Wi-Fi kanal — broj kanala u pojasu 2,4 GHz (1–13)
  • Jačina Wi-Fi signala — razina signala u dBm
  • Wi-Fi RSSI — kvaliteta signala u postocima (0–100 %)
  • Vrijeme rada — vrijeme rada uređaja u sekundama od posljednjeg pokretanja
Dodatne mogućnosti

NOUS A1 s firmverom Tasmota podržava i praćenje stanja veze preko teme LWT (Last Will and Testament), jučerašnju potrošnju energije, podesivo razdoblje telemetrije (10–3600 sekundi) i naredbe za poništavanje brojača energije. Čip BL0937 može se ponovno kalibrirati i na daljinu MQTT naredbama. Te se mogućnosti mogu dodati u nekom budućem ažuriranju predloška.

Rješavanje problema

Nema podataka u sustavu TapHome
  1. Provjerite je li utičnica spojena na Wi-Fi: web-sučelje Tasmota mora biti dostupno na IP adresi uređaja
  2. Provjerite je li MQTT postavljen i spojen: glavna stranica web-sučelja Tasmota prikazuje stanje MQTT veze
  3. Provjerite odgovara li varijabla plug1topic u sustavu TapHome točno vrijednosti Topic u Tasmota MQTT konfiguraciji
  4. MQTT klijentom (npr. MQTT Explorer) pretplatite se na tele/# i provjerite objavljuje li utičnica poruke STATE i SENSOR
Netočna očitanja energije
  1. Čip BL0937 treba kalibrirati poznatim omskim trošilom, vidi odjeljak o kalibraciji iznad
  2. Reaktivna trošila (motori, LED drajveri) prirodno imaju faktor snage manji od 1,0. To je očekivano ponašanje, a ne greška mjerenja
  3. Provjerite razdoblje telemetrije: zadani interval od 300 sekundi znači da se vrijednosti energije ažuriraju svakih 5 minuta

Novije serije proizvodnje NOUS A1 mogu koristiti čipsete koji nisu ESP i nisu kompatibilni s firmverom Tasmota. Ako vam je potrebna integracija Tasmota/MQTT, prije kupnje provjerite čipset.

Dostupni uređaji

NOUS A1 Modul
Prilagođene varijable
plug1topic (string) = tasmota_496D5ATasmota MQTT tema pametne utičnice — koristi se u filtrima pretplate i u naredbama za upravljanje relejem
Open Tasmota web UI → Configuration → MQTT → copy Topic value (e.g., tasmota_496D5A)

ESP-NOUS-ZASUVKA-1

Listener
#var tmp := RECEIVEDMSG.Payload;
Wi-Fi kanal Varijabla Samo za čitanje
numeric json_path

Wi-Fi kanal

Listener
if INDEXOF(RECEIVEDMSG.Topic, "STATE") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID1 + ".Channel", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Prividna snaga Varijabla Samo za čitanje
numeric Jedinica: VA json_path

Prividna snaga

Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID12 + ".ApparentPower", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Faktor snage Varijabla Samo za čitanje

Omjer djelatne i prividne snage (cos phi) — raspon 0 do 1, pri čemu 1,0 znači čisto omsko trošilo

numeric json_path

Faktor snage

Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID12 + ".Factor", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Struja Varijabla Samo za čitanje
numeric Jedinica: A json_path

Struja

Zapis
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/set/value=" + Va);
# IF response.IsSuccess = false
#  ADDERROR(response.StatusCode);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/setValue", "GET", "value=" + Va, "header1:value1", "header2:value2", ...);\r
# Or VAR request := HTTPREQUEST("/example/setValue");
# request.Method := "PUT";
# VAR response := SENDHTTPREQUEST(request);
#r
#
# Send TCP, UDP data:
# VAR data1 := "{\"name\":\"John\", \"age\":" + Va + "}";
# SENDDATA(data1);
# VAR data2 := TOBYTES("{\"name\":\"John\", \"age\":" + Va + "}", "iso-8859-1");
# SENDDATA(data2);
# You can process received TCP or UDP data in the Listener script
#
#
# Upload data to FTP:
# FTPUPLOAD("filePath", "somedata=" + Va, "write"); # use "append" mode to append data to existing file
Čitanje (modul)
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
#
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID12 + ".Current", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Izlaz releja Sklopka

Glavni relej 230 V AC — pri isključivanju traži i osvježavanje podataka o energiji

boolean
Vrijednosti / stanja: ON-ACCESO · OFF-SPENTO

Izlaz releja

Zapis stanja sklopke
var value1 := IF(St = 1, "1", "0");
MQTTPUBLISH("cmnd/" +  plug1topic + "/Power", value1);

var value2 := IF(St = 0, MQTTPUBLISH("cmnd/" +  plug1topic + "/Status", "8"));
Energija razdoblja Varijabla Samo za čitanje

Energija potrošena u trenutačnom razdoblju telemetrije

numeric Jedinica: Wh json_path

Energija razdoblja

Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID12 + ".Period", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Djelatna snaga Varijabla Samo za čitanje
numeric Jedinica: W json_path

Djelatna snaga

Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID12 + ".Power", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Energija danas Varijabla Samo za čitanje

Zbirna potrošnja energije od ponoći

numeric Jedinica: kWh json_path

Energija danas

Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID12 + ".Today", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Jalova snaga Varijabla Samo za čitanje
numeric Jedinica: VAR json_path

Jalova snaga

Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID12 + ".ReactivePower", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Ukupna energija Varijabla Samo za čitanje

Zbirna potrošnja energije od pokretanja brojača — ostaje sačuvana i nakon ponovnog pokretanja

numeric Jedinica: kWh json_path

Ukupna energija

Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID12 + ".Total", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Vrijeme rada Varijabla Samo za čitanje

Vrijeme rada uređaja u sekundama od posljednjeg pokretanja

numeric Jedinica: s json_path

Vrijeme rada

Listener
if INDEXOF(RECEIVEDMSG.Topic, "STATE") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, "UptimeSec", true);
    if (!ISNULL(temp4), Va := temp4);
end
Napon Varijabla Samo za čitanje
numeric Jedinica: V json_path

Napon

Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID12 + ".Voltage", true);
    if (!ISNULL(temp4), Va := temp4/1);
end
Jačina Wi-Fi signala Varijabla Samo za čitanje

Razina Wi-Fi signala u dBm — u predlošku se dijeli sa 100 (možda je potrebna ponovna kalibracija)

numeric Jedinica: dBm json_path

Jačina Wi-Fi signala

Listener
if INDEXOF(RECEIVEDMSG.Topic, "STATE") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, ID1 + ".Signal", true);
    if (!ISNULL(temp4), Va := temp4/100);
end
Wi-Fi RSSI Analogni ulaz Samo za čitanje

Kvaliteta Wi-Fi signala u postocima, normalizirana na raspon 0–1 za TapHome AnalogInput

numeric Jedinica: % json_path

Wi-Fi RSSI

Listener
if INDEXOF(RECEIVEDMSG.Topic, "STATE") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp2 := PARSEJSON(RECEIVEDMSG.Payload, ID1 + ".RSSI", true);
    if (!ISNULL(temp2), An := temp2/100);
end
Povezivanje: Packet Parser → MQTT
Moguća poboljšanja (5)
  • Connection Status (LWT) — Last Will and Testament — Online/Offline payload. Could detect device connectivity.
  • Energy Yesterday — Yesterday's energy consumption in kWh. Available in SENSOR payload but not parsed by template.
  • Telemetry Period — Set telemetry interval (10–3600s, default 300). Could be exposed as service action.
  • Energy Counter Reset — Reset energy counters (Today, Yesterday, Total). Could be exposed as service action.
  • Energy Calibration Commands — BL0937 energy monitoring chip calibration — important for accurate readings but requires physical known load.

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.

Provjerio TapHome

Ž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