TapHome

Shelly 1PM

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

Ovaj uređaj podržava mDNS

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

shelly1pm-{MAC}.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.

Shelly 1PM

Shelly 1PM kompaktna je jednokanalna Wi-Fi relejna sklopka s ugrađenim mjerenjem potrošnje. Stane iza standardnog zidnog prekidača i može upravljati jednim strujnim krugom do 16 A (3500 W pri 230 V). TapHome s uređajem komunicira preko MQTT. Ovo je MQTT varijanta predloška Shelly 1PM, prikladna kada lokalnu MQTT komunikaciju želite umjesto periodičnog očitavanja preko HTTP-a.

Predložak podržava do 5 uređaja Shelly 1PM po modulu. Svaki se uređaj identificira pomoću korisničke varijable pulgNtopic koja upućuje na MQTT Client ID uređaja. Svaki uređaj daje relejnu sklopku i brojilo električne energije.

Konfiguracija

Device ID

Svaki Shelly 1PM ima jedinstveni MQTT Device ID u obliku shelly1pm-<MAC6>, gdje je <MAC6> zadnjih 6 znakova MAC adrese malim slovima u heksadecimalnom zapisu (npr. shelly1pm-112233).

Device ID možete pronaći:

  • Na naljepnici uređaja (MAC adresa)
  • U web-sučelju Shelly: Settings → Device Info
  • Preko API-ja: GET http://<device-ip>/settings → polje mqtt.id

Ovaj uređaj podržava otkrivanje preko mDNS-a. Pri konfiguraciji sustava TapHome umjesto IP adrese možete koristiti naziv hosta shelly1pm-{MAC}.local. Zamijenite {MAC} sa zadnjih 6 znakova MAC adrese uređaja malim slovima u heksadecimalnom zapisu (npr. shelly1pm-112233.local). Naziv hosta sprječava prekide veze kada se IP adresa uređaja promijeni.

Postavljanje predloška

Nakon uvoza predloška u TapHome:

  1. Otvorite modul Shelly 1PM MQTT
  2. Postavite MQTT Broker IP i Port (zadano 1883)
  3. Za svaki uređaj Shelly 1PM postavite korisničku varijablu pulgNtopic na Device ID odgovarajućeg uređaja Shelly 1PM (npr. shelly1pm-112233)

Modul se pretplaćuje na shellies/#, a skripte za primanje poruka filtriraju poruke prema postavljenom prefiksu teme.

Konfigurirajte samo mjesta za uređaje koja stvarno koristite. Nekonfigurirana mjesta (sa zadanom vrijednošću shelly1pm-deviceidN) neće odgovarati nijednom stvarnom uređaju i mogu se zanemariti.

Mogućnosti uređaja

Upravljanje relejem

Svaki uređaj u sustavu TapHome daje jednu sklopku. Stanje releja čita se iz teme shellies/<id>/relay/0, a relejem se upravlja objavom on ili off na shellies/<id>/relay/0/command.

Mjerenje potrošnje

Svaki uređaj ima brojilo električne energije koje čita dvije vrijednosti:

  • Trenutačna snaga — shellies/<id>/relay/0/power u vatima, predložak je pretvara u kW
  • Ukupna potrošnja — shellies/<id>/relay/0/energy u vat-minutama, predložak je pretvara u kWh

Brojilo je samo za čitanje i automatski se ažurira kad god uređaj objavi nove podatke.

Praćenje temperature i prekoračenja snage

Svaka sklopka ima četiri servisna atributa:

  • Unutarnja temperatura — temperatura uređaja u °C iz teme shellies/<id>/temperature
  • Stanje temperature — toplinska razina: Normal, High ili Very High (shellies/<id>/temperature_status)
  • Pregrijano — oznaka alarma pregrijavanja (shellies/<id>/overtemperature)
  • Prekoračenje snage — snaga trošila (W) u trenutku kada je otkriveno prekoračenje snage (shellies/<id>/overpower_value)
Dodatne mogućnosti

Shelly 1PM objavljuje i stanje online/offline preko MQTT teme Last Will and Testament (LWT), cjelovitu poruku stanja u formatu JSON (firmver ≥1.8.0), stanje fizičkog ulaza i događaje ulaza (kratki pritisak, dvostruki i trostruki klik, dugi pritisak). Te se mogućnosti mogu dodati u nekom budućem ažuriranju predloška.

Rješavanje problema

Uređaj ne šalje podatke
  1. Provjerite je li Shelly 1PM spojen na Wi-Fi i je li MQTT uključen u postavkama uređaja
  2. Provjerite odgovara li korisnička varijabla pulgNtopic točno Device ID-u (npr. shelly1pm-112233)
  3. Provjerite jesu li IP adresa i port MQTT brokera ispravni u postavkama modula
  4. MQTT klijentom (npr. MQTT Explorer) pretplatite se na shellies/# i provjerite objavljuje li uređaj poruke
Očitanja snage pokazuju nulu
  1. Provjerite je li trošilo spojeno preko releja Shelly (a ne premošteno)
  2. Provjerite je li relej uključen, jer brojilo mjeri samo kada kroz relej teče struja
  3. MQTT klijentom se pretplatite na shellies/<id>/relay/0/power i provjerite šalje li uređaj vrijednost veću od nule
Upozorenje o pregrijavanju

Shelly 1PM ima unutarnju toplinsku zaštitu. Ako temperatura uređaja prijeđe sigurnosne granice, temperature_status se mijenja u „High” ili „Very High”, a overtemperature postaje true. Osigurajte dovoljno prozračivanja oko uređaja, osobito pri sklapanju velikih opterećenja.

Uređaji Shelly Gen1 ne podržavaju MQTT preko TLS-a. Komunikacija između uređaja i MQTT brokera nije šifrirana (obični MQTT, port 1883). Pobrinite se da je MQTT broker u pouzdanoj lokalnoj mreži.

Kako ga instalirati u TapHome

Preduvjeti

  • Uređaj Shelly spojen na Wi-Fi (2,4 GHz), npr. putem aplikacije Shelly ili vlastite pristupne točke uređaja
  • MQTT broker koji radi u vašoj lokalnoj mreži (npr. Mosquitto, Home Assistant ili ugrađeni broker TapHome)
  • TapHome CCU u istoj mreži kao broker

Na uređajima Gen1 uključivanje MQTT-a isključuje Shelly Cloud. MQTT i Shelly Cloud ne mogu raditi istodobno. Na uređajima Gen2/Plus to ograničenje ne vrijedi.

Korak 1 — Uključite MQTT na uređaju Shelly

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

  1. Otvorite web-sučelje Shelly: http://<device-ip>/
  2. Idite na Internet & Security → Advanced — MQTT
  3. Uključite MQTT
  4. Postavite MQTT Server: <broker-ip>:<port> (npr. 192.168.1.10:1883)
  5. Ako vaš broker zahtijeva autentifikaciju, postavite MQTT User i MQTT Password
  6. Kliknite Save — uređaj će se ponovno pokrenuti i spojiti na broker

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

  1. Otvorite web-sučelje Shelly: http://<device-ip>/
  2. Idite na Settings → MQTT
  3. Uključite MQTT
  4. Postavite Server: <broker-ip>:<port> (npr. 192.168.1.10:1883)
  5. Client ID je unaprijed popunjen ID-jem uređaja (npr. shellyplus1pm-AABBCCDDEE) — ostavite ga takvim, osim ako ga iz određenog razloga trebate promijeniti
  6. Kliknite Save i ponovno pokrenite uređaj

Za provjeru rada MQTT-a koristite MQTT klijent (npr. MQTT Explorer) i pretplatite se na shellies/# (Gen1) ili <device-id>/# (Gen2). Trebali biste vidjeti statusne poruke uređaja.

Korak 2 — Pronađite Device ID / MQTT Client ID

Neki predlošci zahtijevaju parametar Device ID ili MQTT Client ID. To je jedinstveni identifikator koji se koristi u MQTT temama (topics).

  • Gen1: nalazi se na naljepnici kao MAC adresa (npr. AABBCCDDEE). Device ID = shelly<model>-<mac>, npr. shelly1pm-AABBCCDDEE
  • Gen2/Plus: nalazi se u web-sučelju Shelly pod Settings → Device Info → Device ID ili na naljepnici uređaja

Korak 3 — Konfiguracija u sustavu TapHome

  1. U sustavu TapHome dodajte novi modul Packet Parser (MQTT)
  2. IP adresa: unesite IP adresu MQTT brokera (npr. 192.168.1.10)
  3. Port: 1883 (zadano; za TLS koristite 8883)
  4. Device ID / MQTT Client ID: unesite vrijednost iz koraka 2 (ako je predložak zahtijeva)
  5. Uvezite predložak — TapHome će se automatski pretplatiti na teme uređaja

Dostupni uređaji

Shelly 1PM MQTT Modul
Prilagođene varijable
pulg1topic (string) = shelly1pm-deviceid1MQTT Device ID prvog uređaja Shelly 1PM — oblik je „shelly1pm-DEVICEID” (Device ID pronađite u web-sučelju Shelly → Settings → Device Info)
Open http://shellyIpAddress → Settings → Device info → copy Device ID
pulg2topic (string) = shelly1pm-deviceid2MQTT Device ID drugog uređaja Shelly 1PM
pulg3topic (string) = shelly1pm-deviceid3MQTT Device ID trećeg uređaja Shelly 1PM
pulg4topic (string) = shelly1pm-deviceid4MQTT Device ID četvrtog uređaja Shelly 1PM
pulg5topic (string) = shelly1pm-deviceid5MQTT Device ID petog uređaja Shelly 1PM
Brojilo energije 1 Brojilo električne energije Samo za čitanje

Trenutačna snaga (kW) i ukupna energija (kWh) za uređaj Shelly 1PM 1

numeric Jedinica: kW / kWh

Brojilo energije 1

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

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg1topic + "/relay/0/") != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg1topic + "/relay/0/power")
    VAR valueP := TOSTRING(RECEIVEDMSG.PAYLOAD);

    Ed := IF(ISNULL(valueP), NaN, TODOUBLE(valueP) / 1000.0);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg1topic + "/relay/0/energy")
    VAR valueE := TOSTRING(RECEIVEDMSG.PAYLOAD);

    To := IF(ISNULL(valueE), NaN, TODOUBLE(valueE) / 60000.0);
END
Sklopka 1 Sklopka

Upravljanje relejem za uređaj Shelly 1PM 1 — uključivanje i isključivanje s praćenjem temperature i prekoračenja snage

boolean
Vrijednosti / stanja: ON · OFF

Sklopka 1

Zapis stanja sklopke
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg1topic + "/relay/0/command", value);
Listener
IF(INDEXOF(pulg1topic, "shelly1pm-deviceid") = 0)
    ADDERROR("Set correct 'pulg1topic' value in module variables. Topic format is 'shelly1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg1topic) != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg1topic + "/relay/0")
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);
    
    IF(value = "on")
        St := 1;
    ELSEIF(value = "off")
        St := 0;
    ELSE
        ADDERROR("Unknown switch state");
    END
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg1topic + "/temperature")
    internalTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg1topic + "/overtemperature")
    overTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg1topic + "/temperature_status")
    tempStatus := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg1topic + "/overpower_value")
    overPower := TOSTRING(RECEIVEDMSG.PAYLOAD);
END
Servisni atributi
Internal temperature
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
Overheated
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
Temperature status
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
Overpower
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
Brojilo energije 2 Brojilo električne energije Samo za čitanje

Trenutačna snaga (kW) i ukupna energija (kWh) za uređaj Shelly 1PM 2

numeric Jedinica: kW / kWh

Brojilo energije 2

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

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg2topic + "/relay/0/") != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg2topic + "/relay/0/power")
    VAR valueP := TOSTRING(RECEIVEDMSG.PAYLOAD);

    Ed := IF(ISNULL(valueP), NaN, TODOUBLE(valueP) / 1000.0);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg2topic + "/relay/0/energy")
    VAR valueE := TOSTRING(RECEIVEDMSG.PAYLOAD);

    To := IF(ISNULL(valueE), NaN, TODOUBLE(valueE) / 60000.0);
END
Sklopka 2 Sklopka

Upravljanje relejem za uređaj Shelly 1PM 2 — uključivanje i isključivanje s praćenjem temperature i prekoračenja snage

boolean
Vrijednosti / stanja: ON · OFF

Sklopka 2

Zapis stanja sklopke
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg2topic + "/relay/0/command", value);
Listener
IF(INDEXOF(pulg2topic, "shelly1pm-deviceid") = 0)
    ADDERROR("Set correct 'pulg2topic' value in module variables. Topic format is 'shelly1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg2topic) != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg2topic + "/relay/0")
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);
    
    IF(value = "on")
        St := 1;
    ELSEIF(value = "off")
        St := 0;
    ELSE
        ADDERROR("Unknown switch state");
    END
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg2topic + "/temperature")
    internalTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg2topic + "/overtemperature")
    overTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg2topic + "/temperature_status")
    tempStatus := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg2topic + "/overpower_value")
    overPower := TOSTRING(RECEIVEDMSG.PAYLOAD);
END
Servisni atributi
Internal temperature
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
Overheated
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
Temperature status
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
Overpower
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
Brojilo energije 3 Brojilo električne energije Samo za čitanje

Trenutačna snaga (kW) i ukupna energija (kWh) za uređaj Shelly 1PM 3

numeric Jedinica: kW / kWh

Brojilo energije 3

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

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg3topic + "/relay/0/") != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg3topic + "/relay/0/power")
    VAR valueP := TOSTRING(RECEIVEDMSG.PAYLOAD);

    Ed := IF(ISNULL(valueP), NaN, TODOUBLE(valueP) / 1000.0);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg3topic + "/relay/0/energy")
    VAR valueE := TOSTRING(RECEIVEDMSG.PAYLOAD);

    To := IF(ISNULL(valueE), NaN, TODOUBLE(valueE) / 60000.0);
END
Sklopka 3 Sklopka

Upravljanje relejem za uređaj Shelly 1PM 3 — uključivanje i isključivanje s praćenjem temperature i prekoračenja snage

boolean
Vrijednosti / stanja: ON · OFF

Sklopka 3

Zapis stanja sklopke
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg3topic + "/relay/0/command", value);
Listener
IF(INDEXOF(pulg3topic, "shelly1pm-deviceid") = 0)
    ADDERROR("Set correct 'pulg3topic' value in module variables. Topic format is 'shelly1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg3topic) != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg3topic + "/relay/0")
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);
    
    IF(value = "on")
        St := 1;
    ELSEIF(value = "off")
        St := 0;
    ELSE
        ADDERROR("Unknown switch state");
    END
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg3topic + "/temperature")
    internalTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg3topic + "/overtemperature")
    overTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg3topic + "/temperature_status")
    tempStatus := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg3topic + "/overpower_value")
    overPower := TOSTRING(RECEIVEDMSG.PAYLOAD);
END
Servisni atributi
Internal temperature
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
Overheated
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
Temperature status
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
Overpower
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
Brojilo energije 4 Brojilo električne energije Samo za čitanje

Trenutačna snaga (kW) i ukupna energija (kWh) za uređaj Shelly 1PM 4

numeric Jedinica: kW / kWh

Brojilo energije 4

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

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg4topic + "/relay/0/") != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg4topic + "/relay/0/power")
    VAR valueP := TOSTRING(RECEIVEDMSG.PAYLOAD);

    Ed := IF(ISNULL(valueP), NaN, TODOUBLE(valueP) / 1000.0);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg4topic + "/relay/0/energy")
    VAR valueE := TOSTRING(RECEIVEDMSG.PAYLOAD);

    To := IF(ISNULL(valueE), NaN, TODOUBLE(valueE) / 60000.0);
END
Sklopka 4 Sklopka

Upravljanje relejem za uređaj Shelly 1PM 4 — uključivanje i isključivanje s praćenjem temperature i prekoračenja snage

boolean
Vrijednosti / stanja: ON · OFF

Sklopka 4

Zapis stanja sklopke
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg4topic + "/relay/0/command", value);
Listener
IF(INDEXOF(pulg4topic, "shelly1pm-deviceid") = 0)
    ADDERROR("Set correct 'pulg4topic' value in module variables. Topic format is 'shelly1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg4topic) != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg4topic + "/relay/0")
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);
    
    IF(value = "on")
        St := 1;
    ELSEIF(value = "off")
        St := 0;
    ELSE
        ADDERROR("Unknown switch state");
    END
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg4topic + "/temperature")
    internalTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg4topic + "/overtemperature")
    overTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg4topic + "/temperature_status")
    tempStatus := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg4topic + "/overpower_value")
    overPower := TOSTRING(RECEIVEDMSG.PAYLOAD);
END
Servisni atributi
Internal temperature
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
Overheated
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
Temperature status
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
Overpower
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
Brojilo energije 5 Brojilo električne energije Samo za čitanje

Trenutačna snaga (kW) i ukupna energija (kWh) za uređaj Shelly 1PM 5

numeric Jedinica: kW / kWh

Brojilo energije 5

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

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg5topic + "/relay/0/") != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg5topic + "/relay/0/power")
    VAR valueP := TOSTRING(RECEIVEDMSG.PAYLOAD);

    Ed := IF(ISNULL(valueP), NaN, TODOUBLE(valueP) / 1000.0);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg5topic + "/relay/0/energy")
    VAR valueE := TOSTRING(RECEIVEDMSG.PAYLOAD);

    To := IF(ISNULL(valueE), NaN, TODOUBLE(valueE) / 60000.0);
END
Sklopka 5 Sklopka

Upravljanje relejem za uređaj Shelly 1PM 5 — uključivanje i isključivanje s praćenjem temperature i prekoračenja snage

boolean
Vrijednosti / stanja: ON · OFF

Sklopka 5

Zapis stanja sklopke
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg5topic + "/relay/0/command", value);
Listener
IF(INDEXOF(pulg5topic, "shelly1pm-deviceid") = 0)
    ADDERROR("Set correct 'pulg5topic' value in module variables. Topic format is 'shelly1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> Device info.");
    RETURN(-1);
END

IF(INDEXOF(RECEIVEDMSG.TOPIC, "shellies/" + pulg5topic) != 0)
    RETURN(0);
END

IF(RECEIVEDMSG.TOPIC = "shellies/" + pulg5topic + "/relay/0")
    VAR value := TOSTRING(RECEIVEDMSG.PAYLOAD);
    
    IF(value = "on")
        St := 1;
    ELSEIF(value = "off")
        St := 0;
    ELSE
        ADDERROR("Unknown switch state");
    END
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg5topic + "/temperature")
    internalTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg5topic + "/overtemperature")
    overTemp := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg5topic + "/temperature_status")
    tempStatus := TOSTRING(RECEIVEDMSG.PAYLOAD);
ELSEIF(RECEIVEDMSG.TOPIC = "shellies/" + pulg5topic + "/overpower_value")
    overPower := TOSTRING(RECEIVEDMSG.PAYLOAD);
END
Servisni atributi
Internal temperature
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
Overheated
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
Temperature status
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
Overpower
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
Povezivanje: Packet Parser → MQTT • Naziv računala (hostname): shelly1pm-{MAC}.local
Moguća poboljšanja (5)
  • Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline units.
  • Full Status JSON — Complete /status as JSON (fw ≥1.8.0). Could parse wifi_sta.rssi, uptime, has_update.
  • Input State — Physical input state (0/1). Shelly 1PM has one input — could be used for detached switch scenarios.
  • Input Event — JSON with event type (S=short, SS=double, SSS=triple, L=long) and event_cnt. Useful for button automation.
  • Internal Temperature (Fahrenheit) — Same as temperature topic but in Fahrenheit. Redundant — Celsius already implemented via service attribute.

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