TapHome
Oficiální · TapHome Ověřená Energie a měření

NOUS A1

NOUS A1 WiFi chytrá zásuvka s měřením spotřeby, připojená k TapHome přes MQTT pomocí firmware Tasmota. Ovládá relé a sleduje napětí, proud, výkon a spotřebu energie.

NOUSPacket Parser → MQTT14 zařízeníRevize 1.0 Poslední aktualizace: 30. března 2026
NOUS A1

Import do aplikace TapHomeHardware › Packet Parser › Přidat ze šablony

Stáhnout šablonu
Na této stránce

Adresa v síti

U MQTT brokeru vestavěného v TapHome zadejte v TapHome jako adresu brokeru 127.0.0.1. V zařízení zadejte IP adresu TapHome Core a jednotce Core dejte rezervaci IP v routeru.

Příprava sítě

Návod na integraci

NOUS A1 je WiFi chytrá zásuvka s vestavěným měřením spotřeby (čip BL0937). Po nahrání firmware Tasmota komunikuje s TapHome přes MQTT. Šablona poskytuje ovládání relé a komplexní měření energie — napětí, proud, činný/jalový/zdánlivý výkon, účiník a kumulativní spotřebu energie.

Zásuvka používá čipset ESP8266 a je dimenzována na 16A špičkově / 15A trvale (max. 3680W, 3450W trvale). Vyžaduje externí MQTT broker (např. Mosquitto) dostupný jak ze zásuvky, tak z TapHome Core.

Konfigurace

Nastavení Tasmota MQTT

Před importem TapHome šablony musí být na NOUS A1 nahrán firmware Tasmota a nakonfigurováno připojení k MQTT brokeru:

  1. Otevřete webové rozhraní Tasmota (zadejte IP adresu zařízení do prohlížeče)
  2. Přejděte na Configuration → Configure MQTT
  3. Nastavte Host na IP adresu MQTT brokeru
  4. Nastavte Port (výchozí 1883)
  5. Nastavte User a Password pokud broker vyžaduje autentizaci
  6. Poznamenejte si hodnotu Topic (např. tasmota_496D5A) — ta je potřebná pro TapHome šablonu

Proměnné šablony

Po importu šablony v TapHome nastavte vlastní proměnnou plug1topic podle Tasmota MQTT topicu zásuvky:

ProměnnáPopisJak získat
plug1topicTasmota MQTT topic chytré zásuvkyTasmota web UI → Configuration → MQTT → pole Topic

Výchozí hodnota je tasmota_496D5A — tu je nutné změnit podle skutečného topicu každé zásuvky.

MQTT topic je specifický pro zařízení. Pokud se používá více zásuvek NOUS A1, každá vyžaduje samostatnou instanci šablony s unikátní hodnotou plug1topic.

Kalibrace měření spotřeby

Čip BL0937 pro měření spotřeby vyžaduje kalibraci pro přesné údaje. Postup kalibrace:

  1. Připojte známou odporovou zátěž (např. 60W žárovku) do zásuvky
  2. V konzoli Tasmota nastavte referenční napětí: VoltageSet 230
  3. Nastavte referenční výkon: PowerSet 60
  4. Ověřte, že účiník ukazuje hodnotu blízkou 1,00 pro odporovou zátěž

Kalibrace je jednorázový postup — hodnoty jsou uloženy ve flash paměti a přetrvávají po restartu. Bez ní mohou být údaje z čipu BL0937 nepřesné.

Funkce zařízení

Ovládání relé

Šablona poskytuje jeden reléový výstup pro 230V AC zásuvku. Relé se ovládá publikováním na cmnd/{topic}/Power s payloadem 1 (ZAP) nebo 0 (VYP). Po vypnutí relé šablona také vyžádá aktualizaci stavu spotřeby (Status 8) pro okamžité obnovení hodnot.

Měření spotřeby

Šablona čte údaje o spotřebě z payloadu tele/{topic}/SENSOR, který je publikován periodicky (výchozí interval 300 sekund). K dispozici jsou tato měření:

  • Voltage — síťové napětí (V)
  • Current — proud zátěže (A)
  • Active Power — činný výkon (W)
  • Apparent Power — zdánlivý výkon včetně jalové složky (VA)
  • Reactive Power — jalový výkon (VAR)
  • Power Factor — poměr činného ke zdánlivému výkonu (cos phi, 0–1)
  • Energy Today — kumulativní spotřeba od půlnoci (kWh)
  • Total Energy — kumulativní spotřeba od spuštění počítadla, přetrvávající po restartu (kWh)
  • Period Energy — spotřeba v aktuálním telemetrickém období (Wh)

WiFi diagnostika

Šablona čte stav WiFi z payloadu tele/{topic}/STATE:

  • WiFi Channel — číslo 2,4 GHz kanálu (1–13)
  • WiFi Signal Strength — úroveň signálu v dBm
  • WiFi RSSI — kvalita signálu v procentech (0–100 %)
  • Uptime — doba provozu zařízení v sekundách od posledního restartu

Další funkce

NOUS A1 s firmware Tasmota také podporuje monitoring stavu připojení přes LWT (Last Will and Testament) topic, spotřebu energie za včerejšek, konfigurovatelnou periodu telemetrie (10–3600 sekund) a příkazy pro resetování počítadla energie. Čip BL0937 lze rekalibrovat vzdáleně přes MQTT příkazy. Tyto funkce mohou být přidány v budoucí aktualizaci šablony.

Řešení problémů

Žádná data v TapHome

  1. Ověřte, že zásuvka je připojena k WiFi — webové rozhraní Tasmota by mělo být dostupné na IP adrese zařízení
  2. Zkontrolujte, že MQTT je nakonfigurováno a připojeno — hlavní stránka Tasmota web UI zobrazuje stav MQTT připojení
  3. Potvrďte, že proměnná plug1topic v TapHome přesně odpovídá hodnotě Topic v konfiguraci Tasmota MQTT
  4. Použijte MQTT klienta (např. MQTT Explorer) pro přihlášení k tele/# a ověřte, že zásuvka publikuje zprávy STATE a SENSOR

Nepřesné údaje o spotřebě

  1. Čip BL0937 vyžaduje kalibraci se známou odporovou zátěží — viz sekce kalibrace výše
  2. Induktivní zátěže (motory, LED drivery) mají přirozeně účiník pod 1,0 — to je očekávané chování, nikoliv chyba měření
  3. Zkontrolujte periodu telemetrie — výchozí 300sekundový interval znamená aktualizaci hodnot každých 5 minut

Novější výrobní série NOUS A1 mohou používat čipsety jiné než ESP, které nejsou kompatibilní s firmware Tasmota. Před nákupem ověřte čipset, pokud je integrace Tasmota/MQTT nezbytná.

Dostupná zařízení 14

Tato zařízení se po importu zobrazí v TapHome.

NOUS A1 Modul
Vlastní proměnné
plug1topic (string) = tasmota_496D5ATasmota MQTT topic chytré zásuvky — používá se ve filtrech přihlášení a příkazech pro ovládání relé
Open Tasmota web UI → Configuration → MQTT → copy Topic value (e.g., tasmota_496D5A)

ESP-NOUS-ZASUVKA-1

Listener
#var tmp := RECEIVEDMSG.Payload;
WiFi kanál Proměnná Pouze ke čtení
numeric json_path

WiFi kanál

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
Zdánlivý výkon Proměnná Pouze ke čtení
numeric Jednotka: VA json_path

Zdánlivý výkon

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
Účiník Proměnná Pouze ke čtení

Poměr činného ke zdánlivému výkonu (cos phi) — rozsah 0 až 1, kde 1,0 znamená čistě odporovou zátěž

numeric json_path

Účiník

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
Proud Proměnná Pouze ke čtení
numeric Jednotka: A json_path

Proud

Zápis
# 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
Čtení (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
Reléový výstup Přepínač Čtení i zápis

Hlavní 230V AC relé — při vypnutí také vyžádá obnovení stavu spotřeby

boolean
Hodnoty / Stavy: ON-ACCESO · OFF-SPENTO

Reléový výstup

Zápis stavu přepínače
var value1 := IF(St = 1, "1", "0");
MQTTPUBLISH("cmnd/" +  plug1topic + "/Power", value1);

var value2 := IF(St = 0, MQTTPUBLISH("cmnd/" +  plug1topic + "/Status", "8"));
Energie za periodu Proměnná Pouze ke čtení

Spotřeba v aktuálním telemetrickém období

numeric Jednotka: Wh json_path

Energie za periodu

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
Činný výkon Proměnná Pouze ke čtení
numeric Jednotka: W json_path

Činný výkon

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
Energie dnes Proměnná Pouze ke čtení

Kumulativní spotřeba energie od půlnoci

numeric Jednotka: kWh json_path

Energie dnes

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
Jalový výkon Proměnná Pouze ke čtení
numeric Jednotka: VAR json_path

Jalový výkon

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
Celková energie Proměnná Pouze ke čtení

Kumulativní spotřeba od spuštění počítadla — přetrvávající po restartu

numeric Jednotka: kWh json_path

Celková energie

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
Doba provozu Proměnná Pouze ke čtení

Doba provozu zařízení v sekundách od posledního restartu

numeric Jednotka: s json_path

Doba provozu

Listener
if INDEXOF(RECEIVEDMSG.Topic, "STATE") > 0
	var tmp := RECEIVEDMSG.Payload;
    var temp4 := PARSEJSON(RECEIVEDMSG.Payload, "UptimeSec", true);
    if (!ISNULL(temp4), Va := temp4);
end
Napětí Proměnná Pouze ke čtení
numeric Jednotka: V json_path

Napětí

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
Síla WiFi signálu Proměnná Pouze ke čtení

Úroveň WiFi signálu v dBm — v šabloně dělená 100 (může vyžadovat rekalibraci)

numeric Jednotka: dBm json_path

Síla WiFi signálu

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
WiFi RSSI Analogový vstup Pouze ke čtení

Kvalita WiFi signálu v procentech, normalizovaná na rozsah 0–1 pro TapHome AnalogInput

numeric Jednotka: % json_path

WiFi 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
Připojení: Packet Parser → MQTT
Možná vylepšení (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.

Zdroje

Našli jste problém s touto šablonou zařízení?

Napište nám, co nefunguje, co chybí, nebo jak by se měla šablona chovat. Vaše zpětná vazba nám pomáhá udržet katalog přesný.

Šablona · portál TapHome NOUS A1 Otevřete tuto šablonu v zákaznickém portálu a použijte ji ve svém domově, nebo navrhněte úpravu a odešlete ji zpět do katalogu. Packet Parser → MQTT Zobrazit v portálu TapHome