TapHome

Shelly Plus 1PM

Packet Parser → MQTT
Pridal
Posledná aktualizácia: 04. 2026
Shelly Plus 1PM

Shelly Plus 1PM je kompaktný Gen2+ Wi-Fi reléový spínač so vstavaným meraním spotreby. Zmestí sa za štandardný nástenný vypínač a dokáže ovládať jeden okruh do 16 A (3500 W pri 230 V AC) alebo 10 A (30 V DC). Toto je MQTT variant TapHome šablóny — zariadenie komunikuje cez MQTT broker namiesto priameho HTTP pollingu, čo je užitočné v prostrediach s viacerými kontrolérmi alebo ak je zariadenie v inej VLAN.

Šablóna obsahuje dve zariadenia: Elektromer na monitorovanie príkonu a energie a Spínač na ovládanie relé. Tri atribúty na úrovni modulu zobrazujú vnútornú teplotu, napätie a prúd.

Konfigurácia

MQTT Client ID

Každý Shelly Plus 1PM má unikátne MQTT Client ID vo formáte shellyplus1pm-<DEVICEID>, kde <DEVICEID> je 12-znakový hex MAC adresa (napr. shellyplus1pm-AABBCCDDEE00).

Client ID nájdete:

  • Vo webovom rozhraní Shelly: SettingsMQTTClient ID
  • Cez API: GET http://<device-ip>/rpc/MQTT.GetConfig → pole client_id
  • Na štítku zariadenia (MAC adresa)

Toto zariadenie podporuje mDNS discovery. Namiesto IP adresy môžete pri overovaní konektivity použiť hostname shellyplus1pm-{MAC}.local. Nahraďte {MAC} úplnou MAC adresou zariadenia v hexadecimálnom formáte s malými písmenami (napr. shellyplus1pm-aabbccddee00.local).

Povolenie MQTT
  1. Otvorte webové rozhranie Shelly: http://<device-ip>/
  2. Prejdite na SettingsMQTT
  3. Povoľte MQTT
  4. Nastavte Server: <broker-ip>:<port> (napr. 192.168.1.10:1883)
  5. Client ID je vyplnené automaticky — nechajte ako je, pokiaľ nemáte konkrétny dôvod ho meniť
  6. Kliknite Save a reštartujte zariadenie

Na overenie funkčnosti MQTT použite MQTT klienta (napr. MQTT Explorer) a prihláste sa na odber shellyplus1pm-<DEVICEID>/#. Mali by ste vidieť stavové správy zo zariadenia, vrátane shellyplus1pm-<DEVICEID>/status/switch:0.

Nastavenie šablóny

Po importovaní šablóny do TapHome:

  1. Otvorte Shelly Plus 1PM MQTT Module
  2. Nastavte MQTT Broker IP a Port (predvolene 1883)
  3. Nastavte premennú plug1topic na MQTT Client ID vášho Shelly Plus 1PM (napr. shellyplus1pm-AABBCCDDEE00)

Modul odoberá správy z {plug1topic}/status/switch:0 a ovládacie príkazy publikuje do {plug1topic}/command/switch:0.

Schopnosti zariadenia

Meranie spotreby

Elektromer číta dve hodnoty z MQTT stavovej správy {plug1topic}/status/switch:0:

  • Okamžitý príkonapower hlásený vo wattoch, šablóna ho konvertuje na kW (delenie 1000)
  • Kumulatívna energiaaenergy.total hlásená vo watthodinách, šablóna ju konvertuje na kWh (delenie 1000)

Elektromer je len na čítanie — aktualizuje sa automaticky po každom publikovaní stavovej správy na MQTT broker.

Ovládanie relé

Spínač ovláda relé:

  • Čítanie stavu — odoberá {plug1topic}/status/switch:0 a číta booleovské pole output
  • Zápis stavu — publikuje on alebo off do {plug1topic}/command/switch:0

Relé podporuje záťaž do 3500 W / 16 A pri 230 V AC.

Diagnostika

Tri atribúty na úrovni modulu sú parsované z rovnakého JSON payloadu status/switch:0:

AtribútJednotkaPopis
Vnútorná teplota°CVnútorná teplota zariadenia — monitoruje tepelný stav relé a PCB
NapätieVNapätie striedavého napájania na vstupe relé
PrúdAPrúd záťažou cez výstup relé

Všetky tri atribúty zobrazujú “Unknown” do príchodu prvej MQTT stavovej správy (počiatočná hodnota je NaN).

Ďalšie schopnosti

Shelly Plus 1PM tiež poskytuje účinník, sieťovú frekvenciu, vrátenú energiu (pre obojsmerné meranie), stav fyzického vstupu, príkaz toggle, časovač automatického vypnutia a akciu vynútenej aktualizácie stavu cez MQTT API. Tieto schopnosti môžu byť pridané v budúcej aktualizácii šablóny.

Riešenie problémov

MQTT správy neprichádzajú
  1. Overte, že MQTT je povolené vo webovom rozhraní Shelly (SettingsMQTT)
  2. Skontrolujte, že adresa brokera a port sú správne v nastaveniach zariadenia Shelly aj modulu TapHome
  3. Skontrolujte, že premenná plug1topic presne zodpovedá MQTT Client ID zariadenia Shelly (napr. shellyplus1pm-AABBCCDDEE00)
  4. Použite MQTT klienta (napr. MQTT Explorer) a prihláste sa na odber shellyplus1pm-# na overenie, že zariadenie publikuje správy
Meranie príkonu ukazuje nulu
  1. Overte, že záťaž je pripojená cez relé Shelly (nie obídená)
  2. Skontrolujte, že relé je zapnuté — merač meria len pri prietoku prúdu cez relé
  3. Prihláste sa na odber {plug1topic}/status/switch:0 cez MQTT klienta a overte, že apower vracia nenulovú hodnotu
Relé nereaguje na príkazy
  1. Overte, že TapHome má prístup k MQTT brokeru (správne IP a port v nastaveniach modulu)
  2. Skontrolujte, že hodnota plug1topic zodpovedá MQTT Client ID zariadenia
  3. Otestujte publikovaním on do {plug1topic}/command/switch:0 cez MQTT klienta — relé by sa malo zapnúť
Diagnostika zobrazuje “Unknown”
  1. Všetky tri atribúty (teplota, napätie, prúd) zobrazujú “Unknown” do príchodu prvej stavovej správy
  2. Ak hodnoty zostávajú “Unknown” po spustení zariadenia, skontrolujte, že MQTT spojenie je aktívne a stavové správy sa publikujú
  3. Reštartujte zariadenie Shelly na vynútenie nového publikovania stavu

Gen2+ zariadenia Shelly podporujú MQTT s voliteľným TLS. Ak TLS nie je nakonfigurované, komunikácia medzi zariadením a MQTT brokerom je nešifrovaná (plain MQTT, port 1883). Pre šifrovanú komunikáciu povoľte TLS v nastaveniach MQTT zariadenia Shelly a použite port 8883.

Ako nainštalovať v TapHome

Predpoklady

  • Zariadenie Shelly pripojené k Wi-Fi (ak ešte nie, pozrite návod na HTTP pripojenie)
  • MQTT broker bežiaci vo vašej lokálnej sieti (napr. Mosquitto, Home Assistant alebo vstavaný broker TapHome)
  • TapHome CCU v rovnakej sieti ako broker

Na zariadeniach Gen1 povolenie MQTT vypne Shelly Cloud. Oboje nemôže bežať súčasne. Na zariadeniach Gen2/Plus toto obmedzenie neplatí.

Krok 1 — Povoľte MQTT na zariadení Shelly

Zariadenia Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Otvorte webové rozhranie Shelly: http://<device-ip>/
  2. Prejdite na Internet & SecurityAdvanced — MQTT
  3. Povoľte MQTT
  4. Nastavte MQTT Server: <broker-ip>:<port> (napr. 192.168.1.10:1883)
  5. Voliteľne nastavte MQTT User a MQTT Password, ak váš broker vyžaduje autentifikáciu
  6. Kliknite na Save — zariadenie sa reštartuje a pripojí k brokeru

Zariadenia Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Otvorte webové rozhranie Shelly: http://<device-ip>/
  2. Prejdite na SettingsMQTT
  3. Povoľte MQTT
  4. Nastavte Server: <broker-ip>:<port> (napr. 192.168.1.10:1883)
  5. Client ID je predvyplnené ID zariadenia (napr. shellyplus1pm-AABBCCDDEE) — ponechajte tak, pokiaľ nemáte konkrétny dôvod na zmenu
  6. Kliknite na Save a reštartujte zariadenie

Na overenie funkčnosti MQTT použite MQTT klienta (napr. MQTT Explorer) a prihláste sa na odber shellies/# (Gen1) alebo <device-id>/# (Gen2). Mali by ste vidieť stavové správy zo zariadenia.

Krok 2 — Zistite Device ID / MQTT Client ID

Niektoré šablóny vyžadujú parameter Device ID alebo MQTT Client ID. Ide o jedinečný identifikátor používaný v MQTT topicoch.

  • Gen1: nachádza sa na štítku ako MAC adresa (napr. AABBCCDDEE). Device ID = shelly<model>-<mac>, napr. shelly1pm-AABBCCDDEE
  • Gen2/Plus: nachádza sa vo webovom rozhraní Shelly v časti SettingsDevice InfoDevice ID, alebo na štítku zariadenia

Krok 3 — Konfigurácia v TapHome

  1. V TapHome pridajte nový modul Packet Parser (MQTT)
  2. IP Address: zadajte IP adresu MQTT brokera (napr. 192.168.1.10)
  3. Port: 1883 (predvolený; pre TLS použite 8883)
  4. Device ID / MQTT Client ID: zadajte hodnotu z kroku 2 (ak to šablóna vyžaduje)
  5. Importujte šablónu — TapHome sa automaticky prihlási na odber topicov zariadenia

Dostupné zariadenia

Shelly Plus 1PM MQTT Module Modul
Servisné atribúty
Vnútorná teplotaVnútorná teplota zariadenia — monitoruje tepelný stav relé a PCB
NapätieNapätie striedavého napájania na vstupe relé
PrúdPrúd záťažou cez výstup relé
Vlastné premenné
plug1topic (string)MQTT Client ID zariadenia Shelly Plus 1PM — formát je 'shellyplus1pm-<deviceid>'. Nájdete vo webovom rozhraní zariadenia: Settings → MQTT Settings → Client ID

Shelly Plus 1PM MQTT Module

Listener
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    internalTemp := PARSEJSON(RECEIVEDMSG.PAYLOAD, "temperature.tC");
    voltage := PARSEJSON(RECEIVEDMSG.PAYLOAD, "voltage");
    current := PARSEJSON(RECEIVEDMSG.PAYLOAD, "current");
    VAR errors := PARSEJSON(RECEIVEDMSG.PAYLOAD, "errors", TRUE);
    
    IF (!ISNULL(errors))
        VAR errCount := LENGTH(errors);
        VAR i := 0;
        VAR errorText := "";
        
        WHILE i < errCount
            IF LENGTH(errorText)
                errorText += ", ";
            END
            errorText := errorText + GETAT(errors, i);
            i += 1;
        LOOP
        
        IF LENGTH(errorText)
            ADDERROR(errorText);
        END
    END
END
Servisné atribúty
Internal temperature
IF(ISNAN(internalTemp), "Unknown", internalTemp + "°C");
Voltage
IF(ISNAN(voltage), "Unknown", voltage + "V");
Current
IF(ISNAN(current), "Unknown", current + "A");
Shelly Plus 1PM MQTT Power Elektromer Len na čítanie

Okamžitý príkon (kW) a kumulatívna energia (kWh) z MQTT stavového payloadu

numeric Jednotka: kW / kWh

Shelly Plus 1PM MQTT Power

Listener
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    Ed := PARSEJSON(RECEIVEDMSG.PAYLOAD, "apower") / 1000.0;
    To := PARSEJSON(RECEIVEDMSG.PAYLOAD, "aenergy.total") / 1000.0;
END
Shelly Plus 1PM MQTT Switch Prepínač

Ovládanie relé zapnúť/vypnúť cez MQTT príkazový topic

boolean
Hodnoty / Stavy: ON · OFF

Shelly Plus 1PM MQTT Switch

Zápis stavu prepínača
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH(plug1topic + "/command/switch:0", value);
Listener
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    St := PARSEJSON(RECEIVEDMSG.PAYLOAD, "output");
END
Pripojenie: Packet Parser → MQTT
Možné vylepšenia (8)
  • Power Factor — Power factor value, available in switch:0 status JSON for metered devices
  • Network Frequency — AC network frequency in Hz, available in switch:0 status JSON
  • Returned Energy — Returned/exported energy in Wh, for bi-directional metering scenarios
  • Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline device.
  • Toggle Command — Toggle relay state; template only supports on/off
  • Auto-off Timer — Turn ON with auto-off timer in seconds via 'on,N' command
  • Input State — Physical switch/button input state, available via Input.GetStatus RPC method over MQTT
  • Force Status Update — Request device to publish current status on all component topics

Zdroje