---
title: "Shelly H\u0026T Gen3"
description: "Bateryjny czujnik temperatury i wilgotności przez MQTT. Raportuje temperaturę, wilgotność i poziom baterii z wykrywaniem offline. Szablon TapHome."
url: "https://taphome.com/pl/compatibility/shelly-ht-gen3-mqtt/"
language: pl
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["mqtt","sensor","wifi","battery-powered","temperature-humidity"]
  questions: ["Jak zintegrować Shelly H\u0026T Gen3 z TapHome przez MQTT?","Co mierzy szablon Shelly H\u0026T Gen3 w TapHome?","Jak TapHome wykrywa, czy Shelly H\u0026T Gen3 jest offline?","Dlaczego Shelly H\u0026T Gen3 nie raportuje temperatury i wilgotności?","Czy Shelly H\u0026T Gen3 raportuje poziom baterii w TapHome?","Jaka jest częstotliwość raportowania Shelly H\u0026T Gen3 na zasilaniu bateryjnym?"]
---

# Shelly H&T Gen3

Komunikacja: Packet Parser → MQTT

- [Strona produktu Shelly H&T Gen3](https://www.shelly.com/en/products/shop/shelly-h-t-gen-3)

> Adres w sieci
> 
> Przy brokerze MQTT wbudowanym w TapHome wpisz w TapHome jako adres brokera `127.0.0.1`. W urządzeniu wpisz adres IP TapHome Core i nadaj jednostce Core rezerwację IP w routerze.
> 
> [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/)

## Poradnik integracji

Shelly H&T Gen3 to bateryjny (4x AA) czujnik temperatury i wilgotności Wi-Fi z dużym wyświetlaczem e-paper. TapHome komunikuje się z urządzeniem przez MQTT za pomocą powiadomień RPC Gen2+ na topicu `events/rpc`. Jest to zalecany protokół dla bateryjnych urządzeń Shelly Gen3, ponieważ czujnik większość czasu pozostaje w trybie uśpienia i publikuje dane tylko po wybudzeniu.

Szablon tworzy jedno urządzenie Czujnik temperatury i wilgotności oraz atrybut serwisowy Bateria na poziomie modułu. Mechanizm wykrywania offline monitoruje ostatni odebrany znacznik czasu i generuje ostrzeżenia lub błędy, gdy urządzenie nie raportowało przez dłuższy okres.

## Konfiguracja

### MQTT Client ID

Każdy Shelly H&T Gen3 ma unikalny MQTT Client ID w formacie `shellyhtg3-<MAC12>`, gdzie `<MAC12>` to pełny 12-znakowy adres MAC w szesnastkowym zapisie wielkimi literami (np. `shellyhtg3-AABBCCDDEEFF`). Ten identyfikator służy również jako domyślny prefiks topiców MQTT.

Client ID można znaleźć:

- Na etykiecie urządzenia (adres MAC)
- W interfejsie webowym Shelly: **Settings** → **MQTT** → **Client ID**
- Przez API: `GET http://<device-ip>/rpc/Mqtt.GetConfig` → pole `client_id`

### Konfiguracja szablonu

Po zaimportowaniu szablonu w TapHome:

1. Otwórz moduł **Shelly H&T Gen3 MQTT**
2. Ustaw **MQTT Broker IP** na adres brokera MQTT
3. Ustaw **Port** (domyślnie `1883`)
4. Ustaw parametr importu **MQTT ID** na Client ID urządzenia (np. `shellyhtg3-AABBCCDDEEFF`)

Moduł subskrybuje `<device-id>/#`, a skrypty nasłuchujące parsują zdarzenia JSON-RPC `NotifyStatus` z topicu `events/rpc`.

> [!TIP]
> Upewnij się, że MQTT jest włączone na Shelly H&T Gen3 i `rpc_ntf` (powiadomienia RPC) jest ustawione na `true` (domyślnie). Szablon opiera się na powiadomieniach `events/rpc`, a nie na indywidualnych topicach statusu.

### Pomiary i raportowanie

Shelly H&T Gen3 działa różnie w zależności od źródła zasilania:

- **Tryb bateryjny** — wybudzenie co 1 minutę na pomiar. Raportuje przez MQTT, jeśli temperatura zmieni się o więcej niż 0,5 °C lub wilgotność o więcej niż 5%. Bezwarunkowy raport statusu jest wysyłany co 2 godziny, jeśli nie zostały wyzwolone raporty progowe.
- **Zasilanie USB** — wybudzenie co 5 minut na pomiar, aktualizację wyświetlacza i raportowanie w każdym cyklu.

Wyświetlacz e-paper aktualizuje się przy zmianie temperatury o więcej niż 0,2 °C lub wilgotności o więcej niż 3%.

> [!WARNING]
> Urządzenie jest zasilane bateryjnie i nie jest stale podłączone do brokera MQTT. Spodziewaj się przerw między odczytami, szczególnie w trybie bateryjnym. Jeśli lokalizacja czujnika ma słaby sygnał Wi-Fi, częste próby ponownego połączenia mogą skrócić żywotność baterii.

## Możliwości urządzenia

### Temperatura i wilgotność

Urządzenie czujnikowe odczytuje temperaturę i wilgotność ze zdarzeń `NotifyStatus` na topicu `events/rpc`:

- **Temperatura** — temperatura otoczenia w stopniach Celsjusza, odczytana z `params['temperature:0'].tC`
- **Wilgotność** — wilgotność względna w procentach, odczytana z `params['humidity:0'].rh` (skrypt nasłuchujący dzieli wartość przez 100 w celu konwersji na zakres 0–1 oczekiwany przez TapHome)

Obie wartości są tylko do odczytu i aktualizują się przy każdym wybudzeniu czujnika i publikacji danych.

Próg raportowania temperatury jest konfigurowalny na urządzeniu (domyślnie 0,5 °C, zakres 0,5–5,0 °C). Próg wilgotności domyślnie wynosi 5% (zakres 1–20%). Progi te można dostosować przez interfejs webowy Shelly lub API, aby zrównoważyć częstotliwość raportowania z żywotnością baterii.

### Monitorowanie baterii

Moduł udostępnia atrybut serwisowy **Bateria** (%), który odczytuje procentowy poziom naładowania baterii z `params['devicepower:0'].battery.percent` w zdarzeniu `NotifyStatus`. Ostrzeżenie o niskim poziomie baterii jest wyzwalane, gdy poziom spadnie poniżej 30%.

Poziom baterii aktualizuje się z każdym raportem czujnika. Na bateriach 4x AA oczekiwana żywotność wynosi około 1 roku w normalnych warunkach.

### Wykrywanie offline

Szablon monitoruje łączność urządzenia za pomocą mechanizmu opartego na znaczniku czasu. Skrypt nasłuchujący modułu zapisuje znacznik czasu Unix z każdego zdarzenia `NotifyStatus` w zmiennej niestandardowej `timestamp`. Skrypt odczytu porównuje następnie zapisany znacznik czasu z bieżącym czasem:

- **Offline > 12 godzin** — WARNING: "Device is offline > 12H"
- **Offline > 24 godzin** — ERROR: "Device is offline > 24H"

Jest to szczególnie przydatne dla urządzeń bateryjnych, które mogą przestać komunikować się z powodu wyczerpanych baterii lub utraty połączenia Wi-Fi.

### Dodatkowe możliwości

Shelly H&T Gen3 publikuje również status online/offline przez topic MQTT Last Will and Testament (LWT), napięcie baterii w woltach oraz status zasilania zewnętrznego (czy USB Type-C jest podłączony). Indywidualne topice statusu komponentów (`status/temperature:0`, `status/humidity:0`, `status/devicepower:0`) są dostępne gdy `status_ntf` jest włączone, a temperatura jest również dostępna w Fahrenheitach. Urządzenie posiada wyświetlacz e-paper z konfigurowalną jednostką temperatury i formatem zegara. Możliwości te mogą zostać dodane w przyszłej aktualizacji szablonu.

## Rozwiązywanie problemów

### Czujnik nie raportuje danych

1. Sprawdź, czy Shelly H&T Gen3 jest podłączony do Wi-Fi i MQTT jest włączone w ustawieniach urządzenia (**Settings** → **MQTT** → **Enable**)
2. Upewnij się, że `rpc_ntf` jest ustawione na `true` (domyślnie) — szablon wymaga powiadomień RPC na `events/rpc`
3. Potwierdź, że parametr importu **MQTT ID** dokładnie odpowiada Client ID urządzenia (np. `shellyhtg3-AABBCCDDEEFF`)
4. Użyj klienta MQTT (np. MQTT Explorer) do subskrypcji `<device-id>/#` i sprawdź, czy czujnik publikuje wiadomości `NotifyStatus` po wybudzeniu
5. Sprawdź poziom baterii urządzenia — wyczerpane baterie uniemożliwiają czujnikowi połączenie z Wi-Fi

### Odczyt wilgotności wydaje się nieprawidłowy

1. Szablon TapHome dzieli surową wartość wilgotności przez 100 (np. `rh: 55.3` staje się `0.553` w TapHome). To oczekiwane zachowanie — TapHome wewnętrznie używa zakresu 0–1
2. Czujnik ma konfigurowalny offset wilgotności (`Humidity.SetConfig` → `offset`) — sprawdź, czy nie jest ustawiony na nieprawidłową wartość
3. Zakres operacyjny wilgotności czujnika to 30–70% RH. Odczyty poza tym zakresem mogą być mniej dokładne

### Ostrzeżenia offline mimo działającego czujnika

1. Wykrywanie offline porównuje zapisany znacznik czasu z bieżącym czasem. Jeśli zegar TapHome Core jest znacząco przesunięty, mogą pojawiać się fałszywe ostrzeżenia
2. Na zasilaniu bateryjnym czujnik raportuje tylko po przekroczeniu progów lub co 2 godziny bezwarunkowo — przerwy do 2 godzin między raportami są normalne
3. Jeśli czujnik znajduje się w miejscu z niestabilnym Wi-Fi, może pominąć okna raportowania. Sprawdź siłę sygnału Wi-Fi w lokalizacji czujnika

## Jak zainstalować w TapHome

### Wymagania wstępne

- Urządzenie Shelly połączone z Wi-Fi (2,4 GHz), np. przez aplikację Shelly lub własny punkt dostępowy urządzenia
- Broker MQTT działający w sieci lokalnej (np. Mosquitto, Home Assistant lub wbudowany broker TapHome)
- TapHome CCU w tej samej sieci co broker

> [!WARNING]
> Na urządzeniach **Gen1** włączenie MQTT **wyłącza Shelly Cloud**. Oba nie mogą działać jednocześnie. Na urządzeniach Gen2/Plus to ograniczenie nie obowiązuje.

### Krok 1 — Włącz MQTT na urządzeniu Shelly

#### Urządzenia Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

1. Otwórz interfejs webowy Shelly: `http://<device-ip>/`
2. Przejdź do **Internet & Security** → **Advanced — MQTT**
3. Włącz **MQTT**
4. Ustaw **MQTT Server**: `<broker-ip>:<port>` (np. `192.168.1.10:1883`)
5. Opcjonalnie ustaw **MQTT User** i **MQTT Password**, jeśli broker wymaga uwierzytelniania
6. Kliknij **Save** — urządzenie zrestartuje się i połączy z brokerem

#### Urządzenia Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

1. Otwórz interfejs webowy Shelly: `http://<device-ip>/`
2. Przejdź do **Settings** → **MQTT**
3. Włącz **MQTT**
4. Ustaw **Server**: `<broker-ip>:<port>` (np. `192.168.1.10:1883`)
5. **Client ID** jest wstępnie wypełnione identyfikatorem urządzenia (np. `shellyplus1pm-AABBCCDDEE`) — pozostaw bez zmian, chyba że masz konkretny powód do zmiany
6. Kliknij **Save** i zrestartuj urządzenie

Przy wbudowanym brokerze TapHome `<broker-ip>` to adres IP TapHome Core. Nadaj jednostce Core rezerwację IP w routerze, w przeciwnym razie urządzenie straci brokera, gdy router zmieni adres → [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/).

> [!TIP]
> Aby sprawdzić, czy MQTT działa, użyj klienta MQTT (np. MQTT Explorer) i zasubskrybuj `shellies/#` (Gen1) lub `<device-id>/#` (Gen2). Powinieneś zobaczyć komunikaty o stanie z urządzenia.

### Krok 2 — Znajdź Device ID / MQTT Client ID

Niektóre szablony wymagają parametru **Device ID** lub **MQTT Client ID**. Jest to unikalny identyfikator używany w topikach MQTT.

- **Gen1:** znajduje się na etykiecie jako adres MAC (np. `AABBCCDDEE`). Device ID = `shelly<model>-<mac>`, np. `shelly1pm-AABBCCDDEE`
- **Gen2/Plus:** znajduje się w interfejsie webowym Shelly w sekcji **Settings** → **Device Info** → **Device ID** lub na etykiecie urządzenia

### Krok 3 — Konfiguracja w TapHome

1. W TapHome dodaj nowy moduł **Packet Parser (MQTT)**
2. **IP Address:** dla wbudowanego brokera TapHome `127.0.0.1` (jednostka łączy się sama ze sobą, adres nigdy się nie zmienia); dla zewnętrznego brokera jego adres IP (np. `192.168.1.10`)
3. **Port:** `1883` (domyślny; użyj `8883` dla TLS)
4. **Device ID / MQTT Client ID:** wprowadź wartość z kroku 2 (jeśli wymagane przez szablon)
5. Zaimportuj szablon — TapHome automatycznie zasubskrybuje topiki urządzenia

## Dostępne urządzenia 1

Te urządzenia pojawią się w TapHome po imporcie.

Shelly H&T Gen3 MQTT Moduł

Atrybuty serwisowe

|         |                                                                                   |
|---------|-----------------------------------------------------------------------------------|
| Bateria | Procentowy poziom naładowania baterii — ostrzeżenie o niskim poziomie poniżej 30% |

Zmienne niestandardowe

Odczyt (moduł)

```taphome
if !ISNAN(timestamp)
	DATETIME now := NOW();
	var secondsSeen := now.UNIXTIME - timestamp;
	if secondsSeen > 12 * 60 * 60
		if secondsSeen > 24 * 60 * 60
			ADDERROR("Device is offline > 24H");
		else
			ADDWARNING("Device is offline > 12H");        
		end
	end
end
```

Nasłuchiwanie

```taphome
if INDEXOF(RECEIVEDMSG.Topic, "events/rpc") > 0
	var ts := PARSEJSON(RECEIVEDMSG.Payload, "params.ts", true);
	if(!ISNULL(ts), timestamp := ts);
    var bat := PARSEJSON(RECEIVEDMSG.Payload, "params['devicepower:0'].battery.percent", true);
	if(!ISNULL(bat), BatteryPercentage := bat);
end

if BatteryPercentage < 30
	ADDWARNING("Low battery (<30%)");
end
```

Atrybuty serwisowe

Battery \[%]

```taphome
BatteryPercentage
```

Czujnik temperatury i wilgotności Czujnik temperatury Tylko do odczytu

Temperatura otoczenia (°C) i wilgotność względna ze zdarzeń NotifyStatus — wilgotność konwertowana na zakres 0–1 dla TapHome

json Jednostka: °C / %RH json\_path

Nasłuchiwanie

```taphome
if INDEXOF(RECEIVEDMSG.Topic, "events/rpc") > 0
	var temperature := PARSEJSON(RECEIVEDMSG.Payload, "params['temperature:0'].tC", true);
    if(!ISNULL(temperature), Te := temperature);
    var humidity := PARSEJSON(RECEIVEDMSG.Payload, "params['humidity:0'].rh", true);
    if(!ISNULL(humidity), Hu := humidity / 100);
end
```

**Połączenie:** Packet Parser → MQTT • Hostname: `shellyhtg3-{MAC}.local`

Możliwe ulepszenia (8)

- Temperature Status Topic — Individual status topic (when status\_ntf: true). Template uses events/rpc instead — functionally equivalent.
- Humidity Status Topic — Individual status topic (when status\_ntf: true). Template uses events/rpc instead — functionally equivalent.
- DevicePower Status Topic — Individual status topic with battery.V (voltage). Template already reads battery.percent from events/rpc.
- Connection Status (LWT) — Last Will and Testament topic — true on connect, false on disconnect. Template uses timestamp-based offline detection instead.
- Temperature in Fahrenheit — Temperature also available in Fahrenheit (tF field). Template uses tC only.
- E-Paper Display Configuration — Temperature unit (C/F) and clock format (12/24/disabled) — display-only configuration, not sensor data.
- Battery Voltage — Battery voltage in Volts. Template reads only percent, not voltage.
- External Power Status — Whether USB Type-C power is connected. Could distinguish battery vs USB power mode.

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji  | Domyślnie                 |
|----------------------|---------------------------|
| Mqtt Broker Adres IP | `192.168.0.1`             |
| Mqtt Broker port     | `1883`                    |
| MQTT ID              | `shellyhtg3-123456789012` |

## Źródła

- Shelly Gen2+/Gen3 RPC API Reference
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/) 2026-03-27
- Shelly Gen2+ System (Sys) Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Sys/) 2026-03-27
- Shelly Gen2+ WiFi Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/WiFi/) 2026-03-27
- Shelly Gen2+ MQTT Component API
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Mqtt/) 2026-03-29
- Home Assistant Shelly Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/shelly/) 2026-03-27
- Shelly H&T Gen3 Device API (Temperature, Humidity, DevicePower)
  
  [shelly-api-docs.shelly.cloud](https://shelly-api-docs.shelly.cloud/gen2/Devices/Gen3/ShellyHTG3/) 2026-03-30
- Shelly H&T Gen3 Knowledge Base
  
  [kb.shelly.cloud](https://kb.shelly.cloud/knowledge-base/shelly-h-t-gen3) 2026-03-30

## Powiązana dokumentacja

- [MQTT Integration](https://taphome.com/pl/compatibility/mqtt-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/pl/docs/integration/packet-parser/)
- [Funkcje Packet parser](https://taphome.com/pl/docs/script/packet-parser/)
- [Funkcje parsowania](https://taphome.com/pl/docs/script/parsing-functions/)
- [Broker MQTT](https://taphome.com/pl/docs/integration/packet-parser/mqtt-broker/)
- [Skrypty listener](https://taphome.com/pl/docs/script/listener-scripts/)

