TapHome

NOUS A1

Packet Parser → MQTT
Beküldő
Utoljára frissítve: 04. 2026
NOUS A1

A NOUS A1 egy WiFi okos konnektor beépített energiamonitorozással (BL0937 chip). Tasmota firmware-rel MQTT-n keresztül kommunikál a TapHome-mal. A sablon relé vezérlést és átfogó energiamérést biztosít — feszültség, áram, hatásos/meddő/látszólagos teljesítmény, teljesítménytényező és kumulatív energiafogyasztás.

A konnektor ESP8266 chipkészletet használ, és 16A csúcsteljesítményre / 15A folyamatos terhelésre van méretezve (max. 3680W, 3450W folyamatosan). Külső MQTT brokert igényel (pl. Mosquitto), amely elérhető mind a konnektorból, mind a TapHome Core-ból.

Konfiguráció

Tasmota MQTT beállítás

A TapHome sablon importálása előtt a NOUS A1-re Tasmota firmware-t kell telepíteni és konfigurálni az MQTT broker kapcsolatot:

  1. Nyissa meg a Tasmota webes felületet (böngészőben adja meg az eszköz IP címét)
  2. Navigáljon a ConfigurationConfigure MQTT menüpontra
  3. Állítsa be a Host értéket az MQTT broker IP címére
  4. Állítsa be a Port értéket (alapértelmezett 1883)
  5. Állítsa be a User és Password mezőket, ha a broker hitelesítést igényel
  6. Jegyezze fel a Topic értéket (pl. tasmota_496D5A) — ez szükséges a TapHome sablonhoz
Sablon változók

A sablon importálása után a TapHome-ban állítsa be a plug1topic egyéni változót a konnektor Tasmota MQTT topicjának megfelelően:

VáltozóLeírásMegszerzés
plug1topicAz okos konnektor Tasmota MQTT topicjaTasmota web UI → Configuration → MQTT → Topic mező

Az alapértelmezett érték tasmota_496D5A — ezt minden konnektor tényleges topicjára kell módosítani.

Az MQTT topic eszközspecifikus. Több NOUS A1 konnektor használata esetén mindegyikhez külön sablonpéldány szükséges egyedi plug1topic értékkel.

Energiamonitorozás kalibrálása

A BL0937 energiamonitorozó chip kalibrálást igényel a pontos mérésekhez. A kalibrálás menete:

  1. Csatlakoztasson ismert ohmos terhelést (pl. 60W-os izzót) a konnektorhoz
  2. A Tasmota konzolban állítsa be a referenciafeszültséget: VoltageSet 230
  3. Állítsa be a referenciateljesítményt: PowerSet 60
  4. Ellenőrizze, hogy a teljesítménytényező közel 1,00-t mutat az ohmos terhelésnél

A kalibrálás egyszeri eljárás — az értékek a flash memóriában tárolódnak és újraindítás után is megmaradnak. Nélküle a BL0937 chip mérései pontatlanok lehetnek.

Eszközfunkciók

Relé vezérlés

A sablon egyetlen reléés kimenetet biztosít a 230V AC konnektorhoz. A relé a cmnd/{topic}/Power topicra történő publikálással vezérelhető 1 (BE) vagy 0 (KI) payloaddal. A relé kikapcsolásakor a sablon energiaállapot-frissítést is kér (Status 8) az energiaértékek azonnali frissítéséhez.

Energiamérés

A sablon energiaadatokat olvas a tele/{topic}/SENSOR payloadból, amely periodikusan publikálódik (alapértelmezetten 300 másodpercenként). A következő mérések érhetők el:

  • Voltage — hálózati feszültség (V)
  • Current — terhelési áram (A)
  • Active Power — hatásos teljesítmény (W)
  • Apparent Power — látszólagos teljesítmény meddő összetevővel (VA)
  • Reactive Power — meddő teljesítmény (VAR)
  • Power Factor — hatásos és látszólagos teljesítmény aránya (cos phi, 0–1)
  • Energy Today — kumulatív fogyasztás éjfél óta (kWh)
  • Total Energy — kumulatív fogyasztás a számláló indítása óta, újraindítás után is megmarad (kWh)
  • Period Energy — fogyasztás az aktuális telemetriai időszakban (Wh)
WiFi diagnosztika

A sablon WiFi állapotot olvas a tele/{topic}/STATE payloadból:

  • WiFi Channel — a 2,4 GHz csatorna száma (1–13)
  • WiFi Signal Strength — jelszint dBm-ben
  • WiFi RSSI — jelminőség százalékban (0–100%)
  • Uptime — eszköz üzemidő másodpercben az utolsó újraindítás óta
További funkciók

A NOUS A1 Tasmota firmware-rel támogatja továbbá a kapcsolat állapotának monitorozását LWT (Last Will and Testament) topicon keresztül, a tegnapi energiafogyasztást, konfigurálható telemetriai periódust (10–3600 másodperc), és az energiaszámláló nullázási parancsait. A BL0937 chip távolról is újrakalibrálható MQTT parancsokon keresztül. Ezek a funkciók egy jövőbeli sablonfrissítésben adhatók hozzá.

Hibaelhárítás

Nincs adat a TapHome-ban
  1. Ellenőrizze, hogy a konnektor csatlakozik a WiFi-hez — a Tasmota webes felületnek elérhetőnek kell lennie az eszköz IP címén
  2. Ellenőrizze, hogy az MQTT konfigurálva van és csatlakozik — a Tasmota főoldal mutatja az MQTT kapcsolat állapotát
  3. Győződjön meg arról, hogy a plug1topic változó a TapHome-ban pontosan megegyezik a Topic értékkel a Tasmota MQTT konfigurációban
  4. Használjon MQTT klienst (pl. MQTT Explorer), iratkozzon fel a tele/# topicra és ellenőrizze, hogy a konnektor STATE és SENSOR üzeneteket publikál
Pontatlan energiamérések
  1. A BL0937 chip kalibrálást igényel ismert ohmos terheléssel — lásd a kalibrálási szekciót fent
  2. Az induktív terhelések (motorok, LED driverek) természetesen 1,0 alatti teljesítménytényezővel rendelkeznek — ez elvárt viselkedés, nem mérési hiba
  3. Ellenőrizze a telemetriai periódust — az alapértelmezett 300 másodperces intervallum azt jelenti, hogy az energiaértékek 5 percenként frissülnek

A NOUS A1 újabb gyártási sorozatai nem-ESP chipkészleteket használhatnak, amelyek nem kompatibilisek a Tasmota firmware-rel. Vásárlás előtt ellenőrizze a chipkészletet, ha Tasmota/MQTT integráció szükséges.

Elérhető eszközök

NOUS A1 Modul
Egyéni változók
plug1topic (string) = tasmota_496D5AAz okos konnektor Tasmota MQTT topicja — feliratkozási szűrőkben és relé vezérlési parancsokban használva
Open Tasmota web UI → Configuration → MQTT → copy Topic value (e.g., tasmota_496D5A)

ESP-NOUS-ZASUVKA-1

Figyelő
#var tmp := RECEIVEDMSG.Payload;
WiFi csatorna Változó Csak olvasható
numeric json_path

WiFi csatorna

Figyelő
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
Látszólagos teljesítmény Változó Csak olvasható
numeric Egység: VA json_path

Látszólagos teljesítmény

Figyelő
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
Teljesítménytényező Változó Csak olvasható

Hatásos és látszólagos teljesítmény aránya (cos phi) — tartomány 0-tól 1-ig, ahol 1,0 tisztán ohmos terhelést jelöl

numeric json_path

Teljesítménytényező

Figyelő
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
Áram Változó Csak olvasható
numeric Egység: A json_path

Áram

Írás
# 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
Olvasás (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");
Figyelő
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
Relé kimenet Kapcsoló

Fő 230V AC relé — kikapcsoláskor energiaállapot-frissítést is kér

boolean
Értékek / Állapotok: ON-ACCESO · OFF-SPENTO

Relé kimenet

Kapcsoló állapot írása
var value1 := IF(St = 1, "1", "0");
MQTTPUBLISH("cmnd/" +  plug1topic + "/Power", value1);

var value2 := IF(St = 0, MQTTPUBLISH("cmnd/" +  plug1topic + "/Status", "8"));
Periódus energia Változó Csak olvasható

Fogyasztás az aktuális telemetriai időszakban

numeric Egység: Wh json_path

Periódus energia

Figyelő
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
Hatásos teljesítmény Változó Csak olvasható
numeric Egység: W json_path

Hatásos teljesítmény

Figyelő
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
Mai energia Változó Csak olvasható

Kumulatív energiafogyasztás éjfél óta

numeric Egység: kWh json_path

Mai energia

Figyelő
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
Meddő teljesítmény Változó Csak olvasható
numeric Egység: VAR json_path

Meddő teljesítmény

Figyelő
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
Összes energia Változó Csak olvasható

Kumulatív fogyasztás a számláló indítása óta — újraindítás után is megmarad

numeric Egység: kWh json_path

Összes energia

Figyelő
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
Üzemidő Változó Csak olvasható

Eszköz üzemidő másodpercben az utolsó újraindítás óta

numeric Egység: s json_path

Üzemidő

Figyelő
if INDEXOF(RECEIVEDMSG.Topic, "STATE") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, "UptimeSec", true);
    if (!ISNULL(temp4), Va := temp4);
end
Feszültség Változó Csak olvasható
numeric Egység: V json_path

Feszültség

Figyelő
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
WiFi jelszint Változó Csak olvasható

WiFi jelszint dBm-ben — a sablonban 100-zal osztva (újrakalibrálás szükséges lehet)

numeric Egység: dBm json_path

WiFi jelszint

Figyelő
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
WiFi RSSI Analóg bemenet Csak olvasható

WiFi jelminőség százalékban, normalizálva 0–1 tartományra TapHome AnalogInput-hoz

numeric Egység: % json_path

WiFi RSSI

Figyelő
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
Kapcsolat: Packet Parser → MQTT
Lehetséges fejlesztések (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.

Források