Czy mógłbyś podesłać cały konfig?
A i jeszcze z tego co kojarze to czasem trzeba zrobić swapping (odwrócenie bajtami), ale przy sterowniku amiplus chyba się normalnie wpisuje.
@alb3rt czy też mógłbyś przedstawić swoją konfiguracje może coś masz źle.
## ------------------ ##
## Main ##
## ------------------ ##
esphome:
name: wmbus
friendly_name: wmbus
project:
name: btm.Licznik ENERGII
version: "1.0"
platformio_options:
upload_speed: 921600
on_boot:
priority: -100
then:
- output.turn_on: vext_output
- delay: 2s
- display.page.show: page_main
###
esp32:
board: esp32dev
framework:
type: esp-idf
###
external_components:
- source: github://SzczepanLeon/esphome-components@main
components: [wmbus_common, wmbus_radio, wmbus_meter]
refresh: 0d
###
logger:
level: DEBUG
###
api:
encryption:
key: "VJqtYynsnrTMXYeDFVPgrR9RpRfNY/pOcSZwXXXXXXX"
###
ota:
- platform: esphome
password: "76097aae53563d37XXXXXXX"
###
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "wmb"
password: "123456789"
## ------------------ ##
## Display ##
## ------------------ ##
light:
- platform: binary
output: led_output
id: led_light
restore_mode: ALWAYS_OFF
###
output:
- platform: gpio
id: vext_output
pin: GPIO21
###
- platform: gpio
id: led_output
pin: GPIO25
###
globals:
- id: current_page
type: int
restore_value: false
initial_value: '0'
###
- id: page_count
type: int
restore_value: false
initial_value: '4'
###
- id: auto_page_change
type: bool
restore_value: true
initial_value: 'true'
###
- id: wmbus_frames_received
type: int
restore_value: false
initial_value: '0'
###
- id: last_frame_time
type: uint32_t
restore_value: false
initial_value: '0'
###
interval:
- interval: 10s
then:
- if:
condition:
and:
- lambda: 'return id(auto_page_change);'
- switch.is_on: oled_switch
then:
- lambda: |
id(current_page) = (id(current_page) + 1) % id(page_count);
- display.page.show: !lambda |
switch (id(current_page)) {
case 0: return id(page_main);
case 1: return id(page_system);
default: return id(page_main);
}
###
switch:
- platform: template
name: "Display"
id: oled_switch
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
turn_on_action:
- output.turn_on: vext_output
turn_off_action:
- output.turn_off: vext_output
###
- platform: template
name: "Auto Change"
id: auto_page_switch
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
turn_on_action:
- globals.set:
id: auto_page_change
value: 'true'
turn_off_action:
- globals.set:
id: auto_page_change
value: 'false'
###
time:
- platform: homeassistant
id: esptime
timezone: Europe/Warsaw
###
debug:
update_interval: 5s
###
i2c:
sda: 4
scl: 15
scan: True
###
spi:
clk_pin:
number: GPIO5
ignore_strapping_warning: true
mosi_pin: GPIO27
miso_pin: GPIO19
###
font:
- file: "fonts/arial.ttf"
id: font_main1
size: 12
glyphs: "0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:°%.-³ĄĆĘŁŃÓŚŹŻąćęłńóśźż"
- file: "fonts/arial.ttf"
id: font_main
size: 16
glyphs: "0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:°%.-³ĄĆĘŁŃÓŚŹŻąćęłńóśźż"
- file: "fonts/arial.ttf"
id: font_main2
size: 18
glyphs: "0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:°%.-³ĄĆĘŁŃÓŚŹŻąćęłńóśźż"
- file: "fonts/arial.ttf"
id: font_data
size: 20
glyphs: "0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:°%.-³ĄĆĘŁŃÓŚŹŻąćęłńóśźż"
#
captive_portal:
## ------------------ ##
## WmBus ##
## ------------------ ##
wmbus_radio:
radio_type: SX1276
cs_pin: GPIO18
reset_pin: GPIO14
irq_pin: GPIO35
###
wmbus_meter:
- id: gama350
meter_id: 0x30375779
type: amiplus
key: "21610568013764554039961156XXXXXX"
mode:
- T1
###
sensor:
## ------------------ ##
## amiplus ##
## ------------------ ##
# --- Napięcie (V) ---
- platform: wmbus_meter
parent_id: gama350
field: "voltage_at_phase_1_v"
name: "Napięcie L1"
unit_of_measurement: "V"
accuracy_decimals: 0
device_class: voltage
state_class: measurement
###
- platform: wmbus_meter
parent_id: gama350
field: "voltage_at_phase_2_v"
name: "Napięcie L2"
unit_of_measurement: "V"
accuracy_decimals: 0
device_class: voltage
state_class: measurement
###
- platform: wmbus_meter
parent_id: gama350
field: "voltage_at_phase_3_v"
name: "Napięcie L3"
unit_of_measurement: "V"
accuracy_decimals: 0
device_class: voltage
state_class: measurement
###
# --- Moc Chwilowa (kW) --- #
- platform: wmbus_meter
parent_id: gama350
field: "current_power_consumption_kw"
name: "Pobór mocy chwilowej"
unit_of_measurement: "kW"
accuracy_decimals: 3
device_class: power
state_class: measurement
###
- platform: wmbus_meter
parent_id: gama350
field: "current_power_production_kw"
name: "Produkcja mocy chwilowej"
unit_of_measurement: "kW"
accuracy_decimals: 3
device_class: power
state_class: measurement
###
# --- Energia Całkowita POBRANA (kWh) --- #
- platform: wmbus_meter
parent_id: gama350
field: "total_energy_consumption_tariff_1_kwh"
name: "Energia pobrana T1"
unit_of_measurement: "kWh"
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
###
- platform: wmbus_meter
parent_id: gama350
field: "total_energy_consumption_tariff_2_kwh"
name: "Energia pobrana T2"
unit_of_measurement: "kWh"
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
###
- platform: wmbus_meter
parent_id: gama350
field: "total_energy_consumption_tariff_3_kwh"
name: "Energia pobrana T3"
unit_of_measurement: "kWh"
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
###
# --- Energia Całkowita ODDANA (kWh) --- #
- platform: wmbus_meter
parent_id: gama350
field: "total_energy_production_tariff_1_kwh"
name: "Energia wysłana T1"
unit_of_measurement: "kWh"
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
###
- platform: wmbus_meter
parent_id: gama350
field: "total_energy_production_tariff_2_kwh"
name: "Energia wysłana T2"
unit_of_measurement: "kWh"
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
###
- platform: wmbus_meter
parent_id: gama350
field: "total_energy_production_tariff_3_kwh"
name: "Energia wysłana T3"
unit_of_measurement: "kWh"
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
###
- platform: wmbus_meter
parent_id: gama350
field: rssi_dbm
name: Electricity Meter RSSI
## ------------------ ##
## end amiplus ##
## ------------------ ##
###
- platform: wifi_signal
name: "Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
###
- platform: copy
source_id: wifi_signal_db
name: "Signal"
id: wifi_signal_percent
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
icon: "mdi:wifi"
unit_of_measurement: "%"
entity_category: "diagnostic"
device_class: ""
###
- platform: internal_temperature
name: "CPU Temperature"
id: cpu_temp
###
- platform: template
name: "Free Heap"
id: free_heap
lambda: 'return heap_caps_get_free_size(MALLOC_CAP_INTERNAL);'
unit_of_measurement: "B"
entity_category: "diagnostic"
update_interval: 30s
filters:
- lambda: return x / 1024.0;
accuracy_decimals: 1
display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
reset_pin: 16
address: 0x3C
pages:
- id: page_main
lambda: |-
if (!id(oled_switch).state) return;
it.strftime(11, 5, id(font_data), "%d-%m-%Y", id(esptime).now());
it.strftime(28, 35, id(font_main2), "%H:%M:%S", id(esptime).now());
- id: page_system
lambda: |-
if (!id(oled_switch).state) return;
it.print(0, 0, id(font_main1), "SYSTEM");
it.printf(0, 12, id(font_main1), "WiFi: %.0f%%", id(wifi_signal_percent).state);
it.printf(0, 24, id(font_main1), "CPU: %.1f°", id(cpu_temp).state);
it.printf(0, 36, id(font_main1), "RAM: %.1fKB", id(free_heap).state);
###
text_sensor:
### electricity_meter ###
- platform: wmbus_meter
parent_id: gama350
field: timestamp
name: Electricity Meter timestamp
###
- platform: wmbus_meter
parent_id: gama350
field: timestamp_zulu
name: Electricity Meter timestamp zulu
###
- platform: wmbus_meter
parent_id: gama350
field: current_alarms
name: Electricity Meter alarms
###
- platform: wifi_info
ip_address:
name: IP
icon: "mdi:ip-network"
id: ip_addr
ssid:
name: SSID
icon: "mdi:access-point-network"
###
- platform: version
name: Version
hide_timestamp: true
disabled_by_default: false
icon: mdi:new-box
entity_category: "diagnostic"
###
- platform: uptime
name: Uptime
id: uptime_sensor
format:
separator: " "
days: "d"
hours: "h"
minutes: "m"
expand: true
###
- platform: template
name: "Current Time"
id: current_time
update_interval: 10s
lambda: return id(esptime).now().strftime("%H:%M");
entity_category: "diagnostic"
icon: "mdi:clock"
###
- platform: debug
reset_reason:
name: "Reset Reason"
###
button:
- platform: restart
name: Restart
entity_category: "config"
###
web_server:
port: 80
version: 3
A to spróbuj wpisać klucz w konfiguracji od tyłu ale parami (bajtami). Jeśli Twój klucz to 21 61 05 68..., wpisz go jako: key: "XX...56 11 96 39 40 55 64 37 01 68 05 61 21" (oczywiście bez spacji).
Ja używam starej wersji
- source: github://SzczepanLeon/esphome-components@version_4
i na ESPHome 25.6.3 - na nowszych wersjach się nie kompiluje.
A zobacz czy 32 zera nie zadziałąją. Miałem tak kiedyś przy zmianie. PGE uruchomiło komunikację ale nie wygenerowali klucza i działało na 32 zerach.
Ręce opadają.
Niestety, ale nadal wszystko wskazuje na to że otrzymałem zły klucz.
Instalowałem wersję 4, robiłem różne kombinacje z kluczem i nic.
Mam taką płytkę jeśli to pomoże.
Próbowałeś dekodować ramkę pod tym adresem:
https://wmbusmeters.org/analyze/
Przynajmniej sprawdzisz poprawność ID licznika i klucza. A potem możesz dalej szukać czy to problem po stronie konfiga.
Auto driver : not found!
Similar driver : unknown 00/00
Using driver : unknown 00/00
000 : be length (190 bytes)
001 : 44 dll-c (from meter SND_NR)
002 : ed14 dll-mfct (EGM)
004 : 79573730 dll-id (30375779)
008 : 01 dll-version
009 : 02 dll-type (Electricity meter)
010 : 7a tpl-ci-field (EN 13757-3 Application Layer (short tplh))
011 : 7c tpl-acc-field
012 : 00 tpl-sts-field (OK)
013 : b005 tpl-cfg 05b0 (AES_CBC_IV nb=11 cntn=0 ra=0 hc=0 )
015 : 5525 decrypt check bytes (ERROR should be 2f2f)
017 CE: 0230DADAD10C481D8E9D039FB30AFEAA3F2CE054920C50B2F2EA97419ED402C550BDFBFCCE7065EA5BB30562A15136D9DF60624F1EA4533717279737A50B4C67289419025A676D84EAEFA2B8B5BB0C6FB0A74168C0D5A321377A3CC9F64FF76482C22B4724351EE248E68EEFF523BDDDCAA9E56E7AB56926319C77E20C2E135DDEA557EF462CA1588B41EFF133960FBEC86C9A952174B3D0EBD9C8D28C7C4AC2095A6BF7FE5B0099825D90C72F15 failed decryption. Wrong key?
{
"_":"telegram",
"media":"electricity",
"meter":"unknown",
"name":"",
"id":"30375779",
"timestamp":"1970-01-01T00:00:00Z"
Spróbuj w tym wypadku konwertera Twojego klucza z ASCII na HEX i ponownie przetestuj ramkę.
Czytałeś poprzednie posty?
ACSII dla jednego znaku ma 1 bajt czyli przy tym liczniku to 16 znaków(16bajtów) bo tyle ma ramka klucz ma 32 znaki czy możesz mi powiedzieć jak ma to się zgadzać?
OK wszystko jasne. Sorry ![]()
Musieli chyba coś jednak pomylić z kluczem. U mnie PGE przy okazji uruchamiania wmbusa (nie włączyli przy instalacji licznika) wystawiło papierowe potwierdzenie wraz z Hex-em (choć wcześniej niektórzy pisali, że dostawali ascii).
Odpowiedz z PGE.
Odpowiadając
-
co jaki czas licznik wysyła telegramy – cały czas na żądanie
-
w jakich godzinach to wykonuje – całą dobę na żądanie
-
dla pewności -czy wysyła to na częstotliwości 868 MHz - tak
-
czy na liczniku powinna być zapalona jakaś dioda LED czy też symbol na wyświetlaczu świadcząca o włączeniu M-Bus - poniżej wskaźnik na wyświetlaczu

Do urządzenia niezbędne jest wprowadzenie podanego hasła bez tego nie rozkoduje się danych. Proszę zwrócić uwagę na format hasła, podane jest w wielkości heksadecymalnej nie szesnastkowej.
Taką odpowiedź otrzymałem z PGE po odblokowaniu protokołu Wm-bus.
Odsłuchuję częstotliwość CC1101 widzę i dekoduje telegramy z nakładki Izar, le z licznika Gamma 350 zupełna cisza. Cy ten licznik może wysyłać telegramy tylko na żądanie jak pisze PGE.
Możliwe, że jest np. w trybie T2, być może powinieneś poprosić dostawcę o wysyłanie w trybie T1.
cześć wszystkim, w związku z tym że mimo wielu prób i rekonfiguracji, testów z chatami AI, nie udało mi się uruchomić tego na esp32-s3 (44 piny) z modułem SX1276. Może ktoś kto uruchomił taki zestaw podzieli się jego konfiguracją z działającą “pinologią”. Chaty wysiadają i za każdym razem podpowiadają inną konfigurację w której zaprzeczają twierdzeniom z tej poprzedniej. Za wszelkie merytoryczne odpowiedzi z góry dziękuję.
Musisz wskazać jaką masz wersje płytki , link do aukcji. One się różnią minimalnie.
tam masz przykład (projekt jest wprawdzie trochę inny, ale generalne zasady te same)
Płytki mam różne, wszystkie esp32-s3 44 pin, N16R8, P2N8
Z linku powyżej:
esphome:
platformio_options:
upload_speed: 921600
esp32:
board: heltec_wifi_lora_32_V2
flash_size: 8MB
cpu_frequency: 240MHz
framework:
type: esp-idf
logger:
level: debug
baud_rate: 115200
spi:
clk_pin:
number: GPIO5
ignore_strapping_warning: true
mosi_pin: GPIO27
miso_pin: GPIO19
i2c:
frequency: 800kHz
scan: False
sda: GPIO4
scl:
number: GPIO15
ignore_strapping_warning: true
display:
- platform: ssd1306_i2c
model: SSD1306 128x64
address: 0x3C
auto_clear_enabled: True
contrast: 50%
reset_pin:
number: GPIO16
update_interval: never
output:
- platform: gpio
id: vext_output
pin: GPIO21
inverted: True
light:
- platform: status_led
id: wmbus_gateway_status_led
pin: GPIO25
binary_sensor:
- platform: gpio
id: ext_button
pin:
number: GPIO0
ignore_strapping_warning: true
mode: input
inverted: True
dla pozostałych szablon które wymieniłeś :
substitutions:
spi_sck: GPIO12
spi_mosi: GPIO11
spi_miso: GPIO13
sx_cs: GPIO10
sx_rst: GPIO9
sx_irq: GPIO8 # DIO0 / IRQ z SX1272
spi:
id: spi_bus
clk_pin: ${spi_sck}
mosi_pin: ${spi_mosi}
miso_pin: ${spi_miso}
wmbus_radio:
- id: lora
radio_type: SX1276
spi_id: spi_bus
cs_pin: ${lora_cs}
reset_pin: ${lora_rst}
irq_pin:
number: ${lora_dio0}
mode: INPUT_PULLUP

