W bloku mojej mamy wymienili stare dobre Apatory z kluczem “0” na takie oto nowinki, jakimi są Apator Naxom OP-04, a konkretnie OP-04-1 czyli NAXOM-1. W necie nie znalazłem żadnego info by ktoś odczytał je w jakikolwiek sposób do chwili pisania tego postu.
Co tu zrobić? Jak żyć?
Niestety producent chwali się, że wszystkie nakładki posiadają unikalny klucz szyfrujący dostępny z panelu sterowania systemem wodomierzy. Zatem: Nie da się ich odczytać bez pozyskania klucza od wspólnoty / spółdzielni.
Osoby w mojej spółdzielni udostępniły mi klucze i mogłem zacząć się bawić. Posiadam WMBUS-reader od Mariusza i działa świetnie. Ale niestety Naxom nie jest wspierany przez wmbusmeters (Planuję udostępnić im ramki i poprosić o zrobienie pełnego wsparcia). Ale sam odczyt zużytej wody da się zrobić wykorzystując sterownik c5isf. Poniżej fragment konfiguracji dla esphome (external component GitHub - SzczepanLeon/esphome-components), który pozwala mi odczytać dane:
Cześć @chkdsk
mam ten same nakładki i czekam wciąż na uzyskanie kluczy, natomiast wyczytałem że czasem technicy ustawiają klucze na te spośród kilkunastu wbudowanych kluczy w urządzenia odbiorcze. Czy mógłbyś sprawdzić czy Twój klucz odczyta te ramki?
Received telegram from: 10891172
manufacturer: (APA) Apator, Poland (0x601)
type: Water meter (0x07) encrypted
ver: 0x1a
device: rtlwmbus[00000001]
rssi: 90 dBm
driver: unknown!
telegram=|_41440106721189101A078CE0287AD63030A5CC77537D9D9E36D35E3DD8BE307A7356B5F41DAEEC6F96CD536A902266F25B7947F7C02986E5093E998D935A6C5ECB40|+46
Received telegram from: 11047085
manufacturer: (APA) Apator, Poland (0x601)
type: Water meter (0x07) encrypted
ver: 0x1a
device: rtlwmbus[00000001]
rssi: 73 dBm
driver: unknown!
telegram=|_41440106857004111A078CE0847AA13030A5294DD73956915AB6F10D1848C461E6C68AA13DA2F9DD7D7608E72F0E61881543866B4F96C8634456CCB110D3642755FF|+216
Dzisiaj u mnie spółdzielnia wymieniła wodomierze na te nakładki NAXOM OP-04-1a. Czy mógłbyś się podzielić kluczem? Możliwe, że będzie działał u innych. Jak najlepiej zdobyć klucz? Uderzać do osoby, która montowała, czy do spółdzielni?
Ja swoje klucze już mam, otrzymałem od administracji - napisz do swojej i powinni Ci udostępnić
W moim przypadku klucze są indywidualne dla każdego licznika, sprawdzałem i nie mogę rozkodować nakładek sąsiadów, moich nakładek ludzie z GitHuba posiadający klucze również nie mogli rozkodować: Support for the water meter Apator op-04-1a · Issue #1499 · wmbusmeters/wmbusmeters · GitHub więc nie obyło się bez uzyskania ich z administracji.
“Nakładki Naxom nadają zgodnie normom standardzie OMS- wysylany jest stan z urządzenia bez danych diagnostycznych. Bez konieczności podawania klucza.”
Moja spółdzielnia napisała do nich w mojej sprawie i taką dostali odpowiedź. I jak mam rozkodowac dane?
Skoro bez klucza, to takie ramki nie są szyfrowane.
skorzystaj z tego https://wmbusmeters.org/
wrzuć tam przechwycone ramki (tych niekodowanych może być stosunkowo mało), zobacz jaki sterownik pasuje
prawidłowo odkodowana ramka nie będzie miała takiego znacznika czasu "timestamp":"1970-01-01T00:00:00Z"
tylko czas zbliżony do realnego
Zapraszam do testów mojego forka repo Szczepana, który wspiera odczyt z nakładki APATOR NAXOM: OP-04-1a, OP-04-1b oraz OP-04-2.
Pragnę od razu dodać, że nakładki NAXOM 1 (modele OP-04-1a, OP-04-1b oraz OP-04-2), mają domyślnie ustawione przez producenta randomowe klucze AES-128. Wpisanie samych zer, jak w przypadku starszych nakładek nie zadziała. Trzeba pozyskać klucze od administracji / zarządu wspólnoty.
Cześć
Meczę się już kilka dni z tym wodomierzem.
Puki co mam : ESP32-S3-WROOM-1 N16R8 , CC1101 i wodomierz z nakładką Apator Naxom OP-04-1b.
Mam przeczucie że nie potrafię właściwie zainicjować esp32 w esphome.
Może podrzucił by ktoś właściwą konfigurację pliku yaml dla w/w esp32 oraz piny GPIO niepowodujące konfliktów w w/w płytce .
Tak .
Próbowałem już wielu różnych kombinacji pinów. Cały czas boot loop . Co ciekawe w Arduino IDE udało się odebrać jakieś ramki danych , niekoniecznie z mojego Apatora więc wnioskuje że esp i cc działa.
Podejrzewam ze problem jest z właściwym zdefiniowaniem esp w pliku yaml.
[22:38:41][ 147][E][esp32-hal-gpio.c:181] __digitalWrite(): IO 7 is not set as GPIO. Execute digitalMode(7, OUTPUT) first.
[22:38:41][ 148][E][esp32-hal-gpio.c:181] __digitalWrite(): IO 5 is not set as GPIO. Execute digitalMode(5, OUTPUT) first.
Moj plik wygląda teraz tak :
esphome:
name: "licznik"
friendly_name: "licznik"
platformio_options:
build_flags: "-DBOARD_HAS_PSRAM"
board_build.arduino.memory_type: qio_opi
board_upload.maximum_ram_size: 524288
esp32:
board: esp32-s3-devkitc-1
# flash_size: 16MB # zakomentowałem, bo moim zdaniem nie działa
framework:
# type: esp-idf # (ta konfiguracja nie działa z idf)
type: arduino
# version: recommended # nie działa (rekomendowana jest wersja poniżej 2.0.0)
version: latest
psram:
mode: octal
speed: 80MHz
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "xxxxx"
ota:
- platform: esphome
password: "xxxxx"
wifi:
ssid: "xxx"
password: "xxx"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Licznik Fallback Hotspot"
password: "SDVBFeeXaqcp"
captive_portal:
time:
- platform: sntp
id: time_sntp
external_components:
- source: github://MaciejR89/esphome-components@version_4
refresh: 0d
components: [ wmbus ]
# to musialem zakomentowac bo wywalalo blad przy kompilacji
#spi:
# clk_pin: GPIO7
# mosi_pin: GPIO5
# miso_pin: GPIO6
wmbus:
mosi_pin: GPIO5
miso_pin: GPIO6
clk_pin: GPIO7
cs_pin: GPIO4
gdo0_pin: GPIO1
gdo2_pin: GPIO2
#led_pin: GPIO2
#led_blink_time: "1s"
frequency: 868.950
all_drivers: False
sync_mode: True
log_all: True
sensor:
- platform: wmbus
meter_id: 0xxxxxxx
# ^^ Replace the * with the ID of your water meter
type: apator_op04
key: "00000000000000000000000000000000"
# ^^ Replace the * with the key assigned to your water meter
sensors:
- name: "woda sygnał"
field: "rssi"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: "signal_strength"
state_class: "measurement"
entity_category: "diagnostic"
- name: "woda"
field: "total"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"
```
Proszę🙏 do wstawiania yaml/logów użyj znaku(`)(akcent grawis) który znajduje się na klawiszu razem z tyldą(~), a dokładnie trzy razy (```) i zamknij tak samo