---
title: "Shelly 1PM"
description: "Shelly 1PM Wi-Fi relé s meraním spotreby cez MQTT v TapHome. Ovládanie relé, okamžitý príkon a kumulatívna spotreba energie."
url: "https://taphome.com/sk/compatibility/shelly-1pm-mqtt/"
language: sk
lastmod: 2026-03-31
generator: hugo
ai:
  topics: ["mqtt","smart-plug","wifi","relay","power-metering"]
  questions: ["Ako integrovať Shelly 1PM s TapHome cez MQTT?","Čo meria šablóna Shelly 1PM MQTT v TapHome?","Ako nakonfigurovať viacero Shelly 1PM jednotiek v jednej TapHome šablóne?","Prečo Shelly 1PM MQTT nehlási údaje o spotrebe?","Ako nájsť MQTT Device ID zariadenia Shelly 1PM?","Hlási Shelly 1PM MQTT prehriatie a preťaženie v TapHome?"]
---

# Shelly 1PM

Komunikácia: Packet Parser → MQTT

- [Produktová stránka Shelly 1PM](https://www.shelly.com/en/products/shop/shelly-1pm)
- [Referencia MQTT API Shelly Gen1](https://shelly-api-docs.shelly.cloud/gen1/)

> Adresa v sieti
> 
> Pri MQTT brokeri vstavanom v TapHome zadajte v TapHome ako adresu brokera `127.0.0.1`. V zariadení zadajte IP adresu TapHome Core a jednotke Core dajte rezerváciu IP v routeri.
> 
> [Príprava siete](https://taphome.com/sk/docs/setup/network-preparation/)

## Návod na integráciu

Shelly 1PM je kompaktný jednokanálový 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). TapHome komunikuje so zariadením cez MQTT — toto je MQTT variant šablóny Shelly 1PM, vhodný ak preferujete lokálnu MQTT komunikáciu pred HTTP pollingom.

Šablóna podporuje až 5 jednotiek Shelly 1PM na jeden modul. Každá jednotka sa rozlišuje vlastnou premennou `pulgNtopic` smerujúcou na MQTT Client ID zariadenia. Každá jednotka poskytuje reléový spínač a elektromer.

## Konfigurácia

### Device ID

Každý Shelly 1PM má unikátne MQTT Device ID vo formáte `shelly1pm-<MAC6>`, kde `<MAC6>` je posledných 6 znakov MAC adresy v hexadecimálnom formáte s malými písmenami (napr. `shelly1pm-112233`).

Device ID nájdete:

- Na štítku zariadenia (MAC adresa)
- Vo webovom rozhraní Shelly: **Settings** → **Device Info**
- Cez API: `GET http://<device-ip>/settings` → pole `mqtt.id`

> [!TIP]
> Toto zariadenie podporuje **mDNS discovery**. Namiesto IP adresy môžete pri konfigurácii TapHome použiť hostname `shelly1pm-{MAC}.local`. Nahraďte `{MAC}` poslednými 6 znakmi MAC adresy zariadenia v hexadecimálnom formáte s malými písmenami (napr. `shelly1pm-112233.local`). Použitie hostname predchádza problémom s pripojením pri zmene IP adresy zariadenia.

### Nastavenie šablóny

Po importe šablóny v TapHome:

1. Otvorte modul **Shelly 1PM MQTT**
2. Nastavte **IP adresu MQTT brokera** a **Port** (predvolene `1883`)
3. Pre každú jednotku Shelly 1PM nastavte premennú `pulgNtopic` na Device ID príslušného Shelly 1PM (napr. `shelly1pm-112233`)

Modul sa prihlási na odber `shellies/#` a listener skripty filtrujú správy podľa nakonfigurovaného prefixu topicu.

> [!TIP]
> Nakonfigurujte len tie sloty, ktoré skutočne používate. Nenakonfigurované sloty (s predvolenou hodnotou `shelly1pm-deviceidN`) nebudú zodpovedať žiadnemu reálnemu zariadeniu a môžete ich ignorovať.

## Funkcie zariadenia

### Ovládanie relé

Každá jednotka poskytuje v TapHome spínacie zariadenie. Stav relé sa číta z topicu `shellies/<id>/relay/0` a ovláda sa publikovaním `on` alebo `off` na `shellies/<id>/relay/0/command`.

### Meranie spotreby

Každá jednotka obsahuje elektromer, ktorý číta dve hodnoty:

- **Okamžitý príkon** — `shellies/<id>/relay/0/power` hlásený vo wattoch, šablóna ho konvertuje na kW
- **Celková spotreba** — `shellies/<id>/relay/0/energy` hlásená vo watt-minútach, šablóna ju konvertuje na kWh

Elektromer je len na čítanie — aktualizuje sa automaticky pri každom publikovaní nových dát zariadením.

### Tepelný a výkonový monitoring

Každé spínacie zariadenie poskytuje štyri servisné atribúty:

- **Vnútorná teplota** — teplota zariadenia v °C z topicu `shellies/<id>/temperature`
- **Stav teploty** — teplotná úroveň: Normal, High alebo Very High (`shellies/<id>/temperature_status`)
- **Prehriatie** — príznak alarmu prehriatia (`shellies/<id>/overtemperature`)
- **Preťaženie** — hlási výkon záťaže (W) pri detekcii preťaženia (`shellies/<id>/overpower_value`)

### Ďalšie funkcie

Shelly 1PM tiež publikuje stav online/offline cez MQTT Last Will and Testament (LWT) topic, kompletný JSON status (firmware ≥1.8.0), stav fyzického vstupu a vstupné udalosti (krátke/dvojité/trojité/dlhé stlačenie). Tieto funkcie je možné pridať v budúcej aktualizácii šablóny.

## Riešenie problémov

### Zariadenie nehlási dáta

1. Overte, že Shelly 1PM je pripojený k Wi-Fi a MQTT je povolené v nastaveniach zariadenia
2. Skontrolujte, že premenná `pulgNtopic` presne zodpovedá Device ID (napr. `shelly1pm-112233`)
3. Potvrďte správnosť IP adresy a portu MQTT brokera v nastaveniach modulu
4. Použite MQTT klienta (napr. MQTT Explorer) na prihlásenie na odber `shellies/#` a overte, že zariadenie publikuje správy

### Meranie spotreby ukazuje nulu

1. Potvrďte, že záťaž je pripojená cez relé Shelly (nie obídená)
2. Skontrolujte, že relé je zapnuté — elektromer meria len keď cez relé preteká prúd
3. Prihláste sa na odber `shellies/<id>/relay/0/power` cez MQTT klienta a overte, že zariadenie hlási nenulovú hodnotu

### Varovanie pred prehriatím

Shelly 1PM má vstavanú tepelnú ochranu. Ak teplota zariadenia prekročí bezpečné limity, `temperature_status` sa zmení na "High" alebo "Very High" a `overtemperature` sa nastaví na `true`. Zabezpečte dostatočné vetranie okolo zariadenia, najmä pri spínaní veľkých záťaží.

> [!WARNING]
> Zariadenia Shelly Gen1 **nepodporujú** MQTT cez TLS. Komunikácia medzi zariadením a MQTT brokerom je nešifrovaná (plain MQTT, port 1883). Uistite sa, že MQTT broker je v dôveryhodnej lokálnej sieti.

## Ako nainštalovať v TapHome

### Predpoklady

- Zariadenie Shelly pripojené k Wi-Fi (2,4 GHz), napr. cez aplikáciu Shelly alebo vlastný prístupový bod zariadenia
- 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

> [!WARNING]
> 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 & Security** → **Advanced — 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 **Settings** → **MQTT**
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

Pri vstavanom brokeri TapHome je `<broker-ip>` IP adresa TapHome Core. Dajte jednotke Core rezerváciu IP v routeri, inak zariadenie stratí broker, keď router adresu zmení → [Príprava siete](https://taphome.com/sk/docs/setup/network-preparation/).

> [!TIP]
> 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 **Settings** → **Device Info** → **Device ID**, alebo na štítku zariadenia

### Krok 3 — Konfigurácia v TapHome

1. V TapHome pridajte nový modul **Packet Parser (MQTT)**
2. **IP Address:** pre vstavaný broker TapHome `127.0.0.1` (jednotka sa pripája sama k sebe, adresa sa nikdy nezmení); pre externý broker jeho IP adresa (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 10

Tieto zariadenia sa po importe zobrazia v TapHome.

Shelly 1PM MQTT Modul

Vlastné premenné

`pulg1topic` (string) = shelly1pm-deviceid1 MQTT device ID prvej jednotky Shelly 1PM — formát je 'shelly1pm-DEVICEID' (Device ID nájdete vo webovom rozhraní Shelly → Settings → Device Info)

Open http://shellyIpAddress → Settings → Device info → copy Device ID

`pulg2topic` (string) = shelly1pm-deviceid2 MQTT device ID druhej jednotky Shelly 1PM 

`pulg3topic` (string) = shelly1pm-deviceid3 MQTT device ID tretej jednotky Shelly 1PM 

`pulg4topic` (string) = shelly1pm-deviceid4 MQTT device ID štvrtej jednotky Shelly 1PM 

`pulg5topic` (string) = shelly1pm-deviceid5 MQTT device ID piatej jednotky Shelly 1PM

Elektromer 1 Elektromer Len na čítanie

Okamžitý príkon (kW) a kumulatívna energia (kWh) pre jednotku Shelly 1PM 1

numeric Jednotka: kW / kWh

Listener

```taphome
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
```

Spínač 1 Prepínač Čítanie aj zápis

Ovládanie relé pre jednotku Shelly 1PM 1 — spínanie on/off s tepelným a výkonovým monitoringom

boolean

Hodnoty / Stavy: ON · OFF

Zápis stavu prepínača

```taphome
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg1topic + "/relay/0/command", value);
```

Listener

```taphome
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
```

Servisné atribúty

Internal temperature

```taphome
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
```

Overheated

```taphome
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
```

Temperature status

```taphome
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
```

Overpower

```taphome
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
```

Elektromer 2 Elektromer Len na čítanie

Okamžitý príkon (kW) a kumulatívna energia (kWh) pre jednotku Shelly 1PM 2

numeric Jednotka: kW / kWh

Listener

```taphome
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
```

Spínač 2 Prepínač Čítanie aj zápis

Ovládanie relé pre jednotku Shelly 1PM 2 — spínanie on/off s tepelným a výkonovým monitoringom

boolean

Hodnoty / Stavy: ON · OFF

Zápis stavu prepínača

```taphome
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg2topic + "/relay/0/command", value);
```

Listener

```taphome
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
```

Servisné atribúty

Internal temperature

```taphome
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
```

Overheated

```taphome
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
```

Temperature status

```taphome
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
```

Overpower

```taphome
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
```

Elektromer 3 Elektromer Len na čítanie

Okamžitý príkon (kW) a kumulatívna energia (kWh) pre jednotku Shelly 1PM 3

numeric Jednotka: kW / kWh

Listener

```taphome
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
```

Spínač 3 Prepínač Čítanie aj zápis

Ovládanie relé pre jednotku Shelly 1PM 3 — spínanie on/off s tepelným a výkonovým monitoringom

boolean

Hodnoty / Stavy: ON · OFF

Zápis stavu prepínača

```taphome
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg3topic + "/relay/0/command", value);
```

Listener

```taphome
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
```

Servisné atribúty

Internal temperature

```taphome
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
```

Overheated

```taphome
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
```

Temperature status

```taphome
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
```

Overpower

```taphome
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
```

Elektromer 4 Elektromer Len na čítanie

Okamžitý príkon (kW) a kumulatívna energia (kWh) pre jednotku Shelly 1PM 4

numeric Jednotka: kW / kWh

Listener

```taphome
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
```

Spínač 4 Prepínač Čítanie aj zápis

Ovládanie relé pre jednotku Shelly 1PM 4 — spínanie on/off s tepelným a výkonovým monitoringom

boolean

Hodnoty / Stavy: ON · OFF

Zápis stavu prepínača

```taphome
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg4topic + "/relay/0/command", value);
```

Listener

```taphome
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
```

Servisné atribúty

Internal temperature

```taphome
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
```

Overheated

```taphome
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
```

Temperature status

```taphome
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
```

Overpower

```taphome
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
```

Elektromer 5 Elektromer Len na čítanie

Okamžitý príkon (kW) a kumulatívna energia (kWh) pre jednotku Shelly 1PM 5

numeric Jednotka: kW / kWh

Listener

```taphome
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
```

Spínač 5 Prepínač Čítanie aj zápis

Ovládanie relé pre jednotku Shelly 1PM 5 — spínanie on/off s tepelným a výkonovým monitoringom

boolean

Hodnoty / Stavy: ON · OFF

Zápis stavu prepínača

```taphome
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH("shellies/" + pulg5topic + "/relay/0/command", value);
```

Listener

```taphome
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
```

Servisné atribúty

Internal temperature

```taphome
IF(LENGTH(internalTemp) = 0, "Unknown", internalTemp + "°C");
```

Overheated

```taphome
IF(LENGTH(overTemp) = 0, "Unknown", IF(overtemp = 0, "No", "Yes"));
```

Temperature status

```taphome
IF(LENGTH(tempStatus) = 0, "Unknown", tempStatus);
```

Overpower

```taphome
IF(LENGTH(overPower) = 0, "0W", overPower + "W");
```

**Pripojenie:** Packet Parser → MQTT • Hostname: `shelly1pm-{MAC}.local`

Možné vylepšenia (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.

## Parametre importu

Tieto hodnoty zadáte pri importe XML.

| Pýta sa v aplikácii   | Predvolené    |
|-----------------------|---------------|
| Mqtt Broker IP adresa | `192.168.0.1` |
| Mqtt Broker port      | `1883`        |

## Zdroje

- Shelly Gen1 API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen1/) 2026-03-12
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-12

## Súvisiaca dokumentácia

- [MQTT Integration](https://taphome.com/sk/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/sk/docs/integration/packet-parser/)
- [Funkcie Packet parsera](https://taphome.com/sk/docs/script/packet-parser/)
- [Parsovacie funkcie](https://taphome.com/sk/docs/script/parsing-functions/)
- [MQTT broker](https://taphome.com/sk/docs/integration/packet-parser/mqtt-broker/)
- [Listener skripty](https://taphome.com/sk/docs/script/listener-scripts/)

