WMBUS SIH Reader 868 doczekał się aktualizacji, w nowej wersji 1.5 nastąpiła zmiana modułu ESP z 8266 na moduł ESP32S3. Dzięki ESP32S3 SIH Reader 1.5 stał się teraz dwa razy wydajniejszy. W nowej wersji SIH Reader’a nastąpiły lekkie zmiany wizualne: brak anteny zewnętrznej WiFi oraz pojawiła się dioda RGB informująca o statusie pracy urządzenia. Obudowa została praktycznie zaprojektowana od nowa (chodź wygląda tak samo), niestety nauka nowego oprogramowania do projektowania 3D zajęła mi trochę czasu, więc premiera SIH Reader’a się lekko przesunęła w czasie. Obudowa wydrukowana oczywiście w technologii 3D, z drukarki 3D więc wygląda jak na mój gust dobrze. PCB się nie zmieniło pozostaje jak na razie w wersji 1.0, aczkolwiek wymaga pewnych zmian. Moduł E07-900M10S odpowiedzialny za odczyt transmisji licznik – SIH Reader pozostał również bez zmian.






Co to jest SIH Reader?
WMBUS SIH Reader 868 to urządzenie do odczytu danych z liczników działających na częstotliwości 868 MHz, czyli tak zwanych nakładek radiowych na licznik. Zebrane dane trafiają oczywiście do naszego smart domu opartego na Home Assistant. Dzięki WMBUS SIH Reader 868 możemy śledzić bieżące zużycie wody, gazu, a nawet zużycie prądu. Zebrane dane można wykorzystać do różnych celów, np. do śledzenia kosztów (planowanie budżetu domowego), wykrywania wycieków-nieszczelności instalacji dla własnych statystyk oraz ciekawości.


Oprogramowanie
Wgrywanie oprogramowania nie różni się praktycznie niczym po za zmianą na ESP32 i w zdefiniowania pin-ów, więc cały kod oraz instrukcję krok po kroku przedstawiam poniżej. Tym razem przedstawię wgrywanie poprzez przewód USB typu C podłączony bezpośrednio do komputera. Dla tych co chcą wgrać poprzez WiFi odsyłam do artykuły z pierwszej wersji SIH Reader 1.0, oczywiście pamiętając o wgraniu poniższego kodu.
AKTUALIZACJA 24.04.2026
Dla wersji SIH Readera 1.5-1.6.1 zmiana oprogramowania jak poniżej. Zmiany dotyczą:
– przejście framework z arduino na esp-idf
– kompatybilność z najnowszym ESPHome 2026.4.4 (na dzień dzisiejszy)
– znacząca poprawa częstotliwości odczytów danych z liczników, w szczególności liczników Gama/Otus3
Poprawka zalecana dla wszystkich posiadaczy wcześniejszych wersji oprogramowania.
Tworzenie oprogramowania zaczynamy w Home Assistant w dodatku ESPHome (1). Utwórz nowe urządzenie(2). Kontynuuj (3) dodanie nowego urządzenia.

Wprowadź nazwę urządzenia (1) i przejdź do następnego kroku (2)

Wybierz moduł ESP32S-3 (1)

Pomiń (1) instalację nowo utworzonego urządzenia

Przejdź do edycji (1) kodu SIH Reader’a

Usuń cały kod wygenerowany kod i wklej poniższy kod (1).

# Moduł testowany na repozytorium https://github.com/enr0c/esphome-components
# Poprawka dla licznika apator162 https://github.com/bodek85/esphome-components
# Oprogramowanie bazujące na https://github.com/SzczepanLeon/esphome-components
esphome:
name: sih-readerv16
friendly_name: SIH wMbus Reader
name_add_mac_suffix: false
comment: SIH wMbus Reader 868
platformio_options:
board_build.flash_mode: dio
on_boot:
priority: 600
then:
- light.turn_on:
id: led_onboard
red: 100%
green: 0%
blue: 0%
brightness: 40%
project:
name: smartinhome_pl.SIH wMbus Reader 868MHz
version: "1.6.1"
esp32:
board: lolin_s3_mini
variant: ESP32S3
cpu_frequency: 160MHz
flash_size: 4MB
framework:
type: esp-idf
web_server:
port: 80
version: 3
logger:
level: DEBUG # Debug level to show frame hex dumps
tx_buffer_size: 2048 # Increase buffer to prevent log truncation
baud_rate: 115200
logs:
component: INFO # Reduce noise from other components
esp32: INFO
spi: INFO
app: INFO
wifi: ERROR # Disable WiFi scan logs
wmbus_radio: info # Show frame hex dumps
cc1101: INFO # Show CC1101 details
api:
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "SIH Reader 1.6"
password: "1234567890"
external_components:
- source: github://bodek85/esphome-components@main
components: [wmbus_radio, wmbus_meter, wmbus_common]
refresh: 0s
time:
- platform: homeassistant
spi:
clk_pin: GPIO12
mosi_pin: GPIO11
miso_pin: GPIO13
wmbus_radio:
radio_type: CC1101
gdo2_pin: GPIO14
gdo0_pin: GPIO21
cs_pin: GPIO10
frequency: 868.950
on_frame:
- then:
- logger.log:
format: "RSSI: %ddBm T: %s (%d)"
args: [ frame->rssi(), frame->as_hex().c_str(), frame->data().size() ]
- output.turn_on: status_led_wmbus
- delay: 150ms
- output.turn_off: status_led_wmbus
# Jest to przykład sekcji dekodowania liczników, usuń niepotrzebny licznik, lub skopiuj kod licznika, którego chcesz wykorzystać.
# W sekcji "wmbus_common" dodaj Twój licznik. Przykład poniżej.
wmbus_common:
drivers:
- apator162
- izar
- amiplus
- unismart
# Jest to przykład sekcji dekodowania liczników, usuń niepotrzebny licznik, lub skopiuj kod licznika, którego chcesz wykorzystać.
# W sekcji "wmbus_meter" dodaj Twój licznik. Przykład poniżej.
wmbus_meter:
- id: electricity_meter
meter_id: 0x56989134 #Twój ID licznika
type: amiplus
key: "00000000000000000000000000000000"
mode:
- T1
- C1
- id: water_meter
meter_id: 0x215f1155 #Twój ID licznika
type: izar
- id: apator_meter
meter_id: 0x01151836 #Twój ID licznika
type: apator162
key: "00000000000000000000000000000000"
output:
- platform: gpio
id: status_led_wmbus
pin: GPIO18
inverted: True
binary_sensor:
- platform: status
name: "WiFi Status"
id: wifi_status
on_press:
then:
- light.turn_on:
id: led_onboard
red: 0%
green: 100%
blue: 0%
brightness: 40%
on_release:
then:
- light.turn_on:
id: led_onboard
red: 100%
green: 0%
blue: 0%
brightness: 40%
light:
- platform: esp32_rmt_led_strip
name: LED RGB
id: led_onboard
pin: GPIO47
chipset: WS2812
num_leds: 1
rgb_order: RGB
entity_category: diagnostic
icon: mdi:led-on
default_transition_length: 0s
gamma_correct: 2.8
# Jest to przykład sekcji dekodowania liczników, usuń niepotrzebny licznik, lub skopiuj kod licznika, którego chcesz wykorzystać.
# W sekcji "sensor" dodaj Twój licznik. Przykład poniżej.
sensor:
- platform: wifi_signal
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
## Licznik Gama/Otus3
- platform: wmbus_meter
parent_id: electricity_meter
field: current_power_consumption_kw
name: Moc aktualna
accuracy_decimals: 0
device_class: power
unit_of_measurement: W
state_class: measurement
filters:
- multiply: 1000
- platform: wmbus_meter
parent_id: electricity_meter
field: current_power_production_kw
name: Moc Produkcja
accuracy_decimals: 0
device_class: power
unit_of_measurement: W
state_class: measurement
filters:
- multiply: 1000
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_consumption_kwh
name: Zużycie energii Otus3
accuracy_decimals: 3
device_class: energy
unit_of_measurement: kWh
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_consumption_tariff_1_kwh
name: Zużycie Taryfa 1
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_consumption_tariff_2_kwh
name: Zużycie Taryfa 2
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_consumption_tariff_3_kwh
name: Zużycie Taryfa 3
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_production_kwh
name: Produkcja energii
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_production_tariff_1_kwh
name: Produkcja taryfa 1
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_production_tariff_2_kwh
name: Produkcja taryfa 2
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_production_tariff_3_kwh
name: Produkcja taryfa 3
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: voltage_at_phase_1_v
name: Napięcie Faza 1
accuracy_decimals: 0
unit_of_measurement: "V"
device_class: "voltage"
state_class: "measurement"
icon: "mdi:sine-wave"
- platform: wmbus_meter
parent_id: electricity_meter
field: voltage_at_phase_2_v
name: Napięcie Faza 2
accuracy_decimals: 0
unit_of_measurement: "V"
device_class: "voltage"
state_class: "measurement"
icon: "mdi:sine-wave"
- platform: wmbus_meter
parent_id: electricity_meter
field: voltage_at_phase_3_v
name: Napięcie Faza 3
accuracy_decimals: 0
unit_of_measurement: "V"
device_class: "voltage"
state_class: "measurement"
icon: "mdi:sine-wave"
- platform: wmbus_meter
parent_id: electricity_meter
field: rssi_dbm
name: Electricity Meter RSSI
entity_category: diagnostic
icon: "mdi:signal"
## Koniec Licznik Gama/Otus3
## Licznik IZAR
- platform: wmbus_meter
id: woda
parent_id: water_meter
field: total_m3
name: "IZAR"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: water
state_class: total_increasing
icon: "mdi:water"
- platform: wmbus_meter
parent_id: water_meter
field: rssi_dbm
name: "IZAR RSSI"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: signal_strength
state_class: measurement
entity_category: diagnostic
icon: "mdi:signal"
## Koniec Licznik IZAR
## Licznik Apator
- platform: wmbus_meter
id: apator
parent_id: apator_meter
field: total_m3
name: "Apator"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: water
state_class: total_increasing
icon: "mdi:water"
- platform: wmbus_meter
parent_id: apator_meter
field: rssi_dbm
name: "Apator RSSI"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: signal_strength
state_class: measurement
entity_category: diagnostic
icon: "mdi:signal"
## Koniec Licznik Apator
## Licznik Unismart
- platform: wmbus_meter
id: unimsart
parent_id: unismart_meter
field: total_m3
name: "Unismart"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: water
state_class: total_increasing
icon: "mdi:gas-burner"
- platform: wmbus_meter
parent_id: unismart_meter
field: rssi_dbm
name: "Unismart RSSI"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: signal_strength
state_class: measurement
entity_category: diagnostic
icon: "mdi:signal"
## Koniec Unismart
Zainstaluj utworzone oprogramowanie (1) wybierając Manual download (2).

Program zacznie się kompilować więc czekamy cierpliwie aż do momentu operacji Sukces (1), następnie wybieramy opcję pobierania Factory format (2). Plik pobierze się na dysk.

Podłącz teraz SIH Reader do portu USB w Twoim komputerze/laptopie. Przejdź pod adres WEB ESPHOME (1), następnie połącz się z SIH Reader (2), wybierz port SIH Reader (3). Oczywiście po zaznaczeniu portu klikamy Połącz (4)

Kliknij na install (1) i wybierz (2) plik który ściągnął Ci się podczas kompilacji programu. Następnie przechodzimy do instalacji (3).

Czekamy cierpliwie aż program wgra się do końca i zamykamy okno informujące o zakończeniu instalacji oprogramowania(1).

Home Assistant powinien wykryć moduł SIH Reader informując Cię o tym w powiadomieniach (1), przejdź do powiadomień a dokładnie do odnośnika Checkt it out (2), następnie Utwórz (3) i Zatwierdź (4). Wskaż obszar (nie musisz) i Zakończ (5) dodawanie urządzenia.

Dodawanie licznika do SIH Reader
Dodawanie licznika nie różni się w tej wersji niczym, co prawda istnieje nowsze oprogramowania SzczepanLeon ale osobiście nie korzystam, więc jeśli ktoś chce korzystać nowej wersji oprogramowania zapraszam do oficjalnej dokumentacji. Poniższy przykład dotyczy dwóch liczników z których korzystam, czyli licznik gazu (UniSmart) oraz licznik wody (izar). Oficjalna dokumentacja autora z której korzystam w wersji 2.3.2 możesz znaleźć tutaj: konfiguracja 2.3.2
Przed znalezieniem Twojego ID licznika warto umieścić moduł WMBUS SIH Reader 868 w jego pobliżu. Aby wyszukać ID Twojego licznika przejdź do ESP Home, znajdź SIH Reader i kliknij na Logi (1), następnie Wirelessly (2).

Teraz musisz się uzbroić w cierpliwość, w zależności o typu licznika i jak został zaprogramowany (godzina, dzień) licznik zwróci ramkę jak poniżej. Warto pamiętać o tym gdyż nie wszystkie licznik, szczególnie te które montuje spółdzielnia lub dana placówka raportują cały czas nie przerwanie przez 24h na dobę. W większości przypadków bywa tak, że ramka z danymi jest wysyłana w godzinach od 7-16, i tylko w dni robocze. W moim przypadku na szczęście dane przychodzą w przypadku licznika wody co 8 sekund. Poniżej przykład ID licznika gazu (1) i wody (2)

Teraz zaznaczone ID danego licznika musimy wpisać do Twojego SIH Reader. Dodaj poniższy kod z Twoim ID licznika. Poniższy przykład dotyczy trzech liczników więc jeśli masz jeden licznik, usuń kod zbędnego licznika.
# Jest to przykład sekcji dekodowania liczników, usuń niepotrzebny licznik, lub skopiuj kod licznika którego chcesz wykorzystać..
# W sekcji "wmbus_meter" dodaj Twój licznik. Przykład poniżej.
wmbus_meter:
- id: electricity_meter
meter_id: 0x56989134
type: amiplus
key: "00000000000000000000000000000000"
mode:
- T1
- C1
- id: water_meter
meter_id: 0x215f1155
type: izar
- id: apator_meter
meter_id: 0x01151836
type: apator162
key: "00000000000000000000000000000000"
- id: unismart_meter
meter_id: 0x00053934
type: unismart
key: "00000000000000000000000000000000"
# w sekcji "sensor" wklej poniższy kod twojego licznika. Przykład poniżej.
sensor:
## Licznik IZAR
- platform: wmbus_meter
id: woda
parent_id: water_meter
field: total_m3
name: "IZAR"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: water
state_class: total_increasing
icon: "mdi:water"
- platform: wmbus_meter
parent_id: water_meter
field: rssi_dbm
name: "IZAR RSSI"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: signal_strength
state_class: measurement
entity_category: diagnostic
icon: "mdi:signal"
## Koniec Licznik IZAR
## Licznik Apator
- platform: wmbus_meter
id: apator
parent_id: apator_meter
field: total_m3
name: "Apator"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: water
state_class: total_increasing
icon: "mdi:water"
- platform: wmbus_meter
parent_id: apator_meter
field: rssi_dbm
name: "Apator RSSI"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: signal_strength
state_class: measurement
entity_category: diagnostic
icon: "mdi:signal"
## Koniec Licznik Apator
# Licznik Gazu Unismart AT-WMBUS-G-01
## Licznik Unismart
- platform: wmbus_meter
id: unimsart
parent_id: unismart_meter
field: total_m3
name: "Unismart"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: water
state_class: total_increasing
icon: "mdi:gas-burner"
- platform: wmbus_meter
parent_id: unismart_meter
field: rssi_dbm
name: "Unismart RSSI"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: signal_strength
state_class: measurement
entity_category: diagnostic
icon: "mdi:signal"
## Koniec Unismart
### Licznik Gamma 350 #Dekoder klucza z 16 na 32 https://www.rapidtables.com/convert/number/ascii-to-hex.html
## Licznik Gama/Otus3
- platform: wmbus_meter
parent_id: electricity_meter
field: current_power_consumption_kw
name: Moc aktualna
accuracy_decimals: 0
device_class: power
unit_of_measurement: W
state_class: measurement
filters:
- multiply: 1000
- platform: wmbus_meter
parent_id: electricity_meter
field: current_power_production_kw
name: Moc Produkcja
accuracy_decimals: 0
device_class: power
unit_of_measurement: W
state_class: measurement
filters:
- multiply: 1000
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_consumption_kwh
name: Zużycie energii Otus3
accuracy_decimals: 3
device_class: energy
unit_of_measurement: kWh
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_consumption_tariff_1_kwh
name: Zużycie Taryfa 1
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_consumption_tariff_2_kwh
name: Zużycie Taryfa 2
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_consumption_tariff_3_kwh
name: Zużycie Taryfa 3
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_production_kwh
name: Produkcja energii
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_production_tariff_1_kwh
name: Produkcja taryfa 1
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_production_tariff_2_kwh
name: Produkcja taryfa 2
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: total_energy_production_tariff_3_kwh
name: Produkcja taryfa 3
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
- platform: wmbus_meter
parent_id: electricity_meter
field: voltage_at_phase_1_v
name: Napięcie Faza 1
accuracy_decimals: 0
unit_of_measurement: "V"
device_class: "voltage"
state_class: "measurement"
icon: "mdi:sine-wave"
- platform: wmbus_meter
parent_id: electricity_meter
field: voltage_at_phase_2_v
name: Napięcie Faza 2
accuracy_decimals: 0
unit_of_measurement: "V"
device_class: "voltage"
state_class: "measurement"
icon: "mdi:sine-wave"
- platform: wmbus_meter
parent_id: electricity_meter
field: voltage_at_phase_3_v
name: Napięcie Faza 3
accuracy_decimals: 0
unit_of_measurement: "V"
device_class: "voltage"
state_class: "measurement"
icon: "mdi:sine-wave"
- platform: wmbus_meter
parent_id: electricity_meter
field: rssi_dbm
name: Electricity Meter RSSI
entity_category: diagnostic
icon: "mdi:signal"
## Koniec Licznik Gama/Otus3Zapisz (1) i zainstaluj (2) swój kod z dodanym licznikiem do SIH Readera za pośrednictwem już sieci WiFi (3).

Teraz pozostaje tylko poczekać aż dane z licznika spłyną do Home Assistant za pośrednictwem SIH Reader.


Ważne
Powtórzę się z poprzedniej wersji SIH Reader, musisz wiedzieć że korzystasz z oprogramowania autorstwa SzczepanLeon, urządzenie do odczytu Twojego licznika (SIH Reader) działa tak na prawdę dzięki niemu. Więc warto postawić mu kawę i zmotywować autora do dalszych prac.
Podsumowując zachęcam do wspierania finansowo SzczepanLeon.
Cena
Cena lekko poszybowała w górę z uwagi na to że komponenty takie jak moduł E07-900M10S oraz S3 Mini v1.0. 0-Lolin pochodzą bezpośrednio od producenta. Starałem się nie oszczędzać 10 zł na module na tak zwanych dobrych zamiennikach. Więc ostatecznie cena za SIH Reader w wersji 1.6.1 to koszt 165zł z wliczoną wysyłką. Tak jak w wersji 1.0 dostajesz pełne wsparcie podczas instalacji jak i niezbędnych informacji przed zakupowych. Jeśli jesteś zainteresowany zapraszam do kontaktu.
Pytania i odpowiedzi
Posiadam wersję SIH Reader 1.0 czy muszę go wymienić na nowszy?
W żadnym wypadku, jeśli używasz wersji oprogramowania Szczepana 3.2.3 i liczniki działają nie ma takiej potrzeby.
Posiadam wersje SIH Reader 1.0 czy można go zmodyfikować do wersji 1.5?
Tak. Jeśli masz taką potrzebę taka opcja zawsze istnieje. Wiąże się z wymianą modułu na ESP32 oraz wydruk nowej obudowy.
Czy wersja SIH Reader 1.0 jest jeszcze dostępna? zależy mi na zewnętrznej antenie WiFi.
Tak wersja 1.0 jest i będzie dostępna, ale jej czas realizacji może być dłuższy niż w przypadku 1.5.










Witam,
czy ten moduł będzie działał z ESPHOME 2025.2.2?
Witam, tak ten moduł działa z ESPHome 2025.2
Czy SIH Reader będzie współpracował z UniSmart AT-WMBUS-G-01?
Tak
Czy ten moduł będzie działał z TUYA?