Anyone using chester4444's cc1101-based multical21 water meter reading?

Hi, is anyone here using GitHub - chester4444/esp-multical21: ESP8266/ESP32 decrypts wireless MBus frames from a Multical21 water meter to read their kamstrup multical21 water meter? I’m trying to get it to work, and I’m struggling with the build quality of the CC1101 boards I ordered. Unfortunately I’m setting this up while not being close to the actual water meter yet (preparing it at home before I visit my parents who have the water meter), so I cannot with full certainty say if it technically works or not.
My problem: the serial logs show me that the esp8266 successfully connects to the wifi, and that it does recognize the cc1101 (after 2 tries with faulty modules where it couldnt reach the cc1001), but now the only feedback i get afterwards is a kind-of-random hex value every few seconds, without a line break or anything.
Did anyone else get this setup to work and maybe was in the same situation at a point in time? I’d like to avoid only finding out on short notice that I actually still need to order yet another spare part…

Cheers!

did you manage to get the communication working with multical21?

i got to the stage where the esp communicates with the water meter, but the crc total does not agree (the cc1101 is located next to the water meter)

my logs

[22:57:04][C][wmbus:403]: Available drivers: amiplus, apator08, apator162, apatoreitn, bmeters, c5isf, compact5, dme07, elf, evo868, fhkvdataiii, flowiq2200, hydrocalm3, hydrus, iperl, itron, izar, kamheat, mkradio3, mkradio4, mkradio4a, multical21, qheat, qwater, rfmtx1, sharky774, topaseskr, ultrimis, unismart, vario451
[22:57:10][V][rxLoop:167]: Have 40 bytes from CC1101 Rx, RSSI: -38 dBm LQI: 128
[22:57:10][D][mbus:023]: Processing C1 B frame
[22:57:10][V][mbus:027]: Frame: 25442D2C216735241B168D20B502CB333306C5D2591082B6CF0EDFC7B61916357F0CEFD9995E (38) [with CRC]
[22:57:10][V][mbus:165]: Validating CRC for Block1 + Block2
[22:57:10][D][crc:035]: calculated: 0xBECB, read: 0x995E !!!
[22:57:26][V][rxLoop:167]: Have 40 bytes from CC1101 Rx, RSSI: -38 dBm LQI: 128
[22:57:26][D][mbus:023]: Processing C1 B frame
[22:57:26][V][mbus:027]: Frame: 25442D2C216735241B168D202076FF9E280CCDC262D6A691474C49FF4977260177FB2DF0A79A (38) [with CRC]
[22:57:26][V][mbus:165]: Validating CRC for Block1 + Block2
[22:57:26][D][crc:035]: calculated: 0x2072, read: 0xA79A !!!

any advice?

I didnt use the esphome component at all, and also in the end didnt get the AES key from my watercompany :frowning:

I did get espmultical deployed and running, it found the watermeter and extracted data, but without the code the delivered values for liters, temperature etc are nonesense.

I did play around with the infrared interface, using the pykamstrup python script i found on github, but to turn that into a permanent solution i would have to add something that once a day activates the magnet switch and reads the data.

Long story short: i for now kind of gave up on the topic, but I’m planning to write a longer post about all my findings, to at least document everything that i found in various different github repos and online discussions.

I didn’t have a problem with the waterworks, they gave me a key, but I can’t read the data

In which country are you?
I would recommend using espmultical21 and then just push the data in via mqtt

i am from Czech republic,

please how should i do it try? any instructions, link to it
I tried esp32 with cc1101, some communication is going on, but I can’t decode anything, this is repeated in the log

[23:19:21][V][rxLoop:167]: Have 40 bytes from CC1101 Rx, RSSI: -38 dBm LQI: 128
[23:19:21][D][mbus:023]: Processing C1 B frame
[23:19:21][V][mbus:027]: Frame: 25442D2C216735241B168D2020B2EE69D326B63131641B0D58D72A17C50E2EE9DFA379B897F1 (38) [with CRC]
[23:19:21][V][mbus:165]: Validating CRC for Block1 + Block2
[23:19:21][D][crc:035]: calculated: 0x3E60, read: 0x97F1 !!!

I used this one here: GitHub - chester4444/esp-multical21: ESP8266/ESP32 decrypts wireless MBus frames from a Multical21 water meter
Took me a moment to get it deployed onto an esp8266 using visual studio with the platformio plugin, but it worked in the end. Also found the watermeter (after configuring the correct serial number), but as mentioned: without the right code the values for volume etc were crap.

hello, I installed according to chester444, ESP8266, when I look at it in the web.esphome.io log, I see:
[18:29:44]Setup done…
[18:29:44]starting scan
[18:29:46]scanning WIFI, found 4 available access points:
[18:29:46]1. Domestic_2.4G -34
[18:29:46]2. Domestic_2.4G -57
[18:29:46]3. O2-Internet-1234 -90
[18:29:46]4. PePeGuest -88
[18:29:46]credentials found for: Domaci_2.4G
[18:29:46]credentials found for: Domaci_2.4G
[18:29:46]4C:EB:D6:1F:AF:2C
[18:29:46]
[18:29:46]Connecting to WiFi Domaci_2.4G
[18:29:50]…
[18:29:50]Connected to Domaci_2.4G
[18:29:50]IP address: 192.168.1.51
[18:29:50]StateMqttConnect:
[18:29:50]try to connect to MQTT server 192.168.1.22
[18:29:50]with user: vejvik
[18:29:51]StateConnected:
[18:29:51]StateOperating:
[18:31:02]2c44543e6a1e543d25frame serial ID: 24356721 - 37
[18:31:02]Frame payload:
[18:31:02]25442d2c216735241b168d2033630039217fbc89539ea38393363cf00e2720c6ebdb50082ee3
[18:31:02]2D 2C 21 67 35 24 1B 16 20 63 00 39 21 00 00 00
[18:31:02]

if I enter the payload from line 18:31:02 at wmbusmeter.org together with the specified key, I see the correct values:

{
“media”:“cold water”,
“meter”:“multical21”,
“on me”:“”,
“id”:“24356721”,
“external_temperature_c”:14,
“flow_temperature_c”:13,
“target_m3”:98.346,
“total_m3”:99.746,
“current_status”:“”,
“status”:“OK”,
“time_bursting”:“”,
“time_dry”:“”,
“time_leaking”:“”,
“time_reversed”:“”,
“timestamp”:“2024-07-24T16:31:18Z”
}

i don’t know how to get it to HA, i’ve been trying all day together with AI GPT but it didn’t work

I’m confused. esp-multical21 isn’t esphome software, it’s a standalone solution that reads the radio packages, decrypts them, and then pushes the datafields to an mqtt broker. So the chain would look something like this:
watermeter => esp running esp-multical21 => mqtt broker => home assistant mqtt sensor
Do you already have a mqtt broker running on your HA instance? You can install the mosquitto addon directly via HA.

Are you familiar with how mqtt works etc?

mqtt is still unknown to me, I guess I’m misunderstanding it. However, we still tried the procedure according to

and now the water meter is communicating and I can see the correct data in mqtt explorer
watermeter0
online = True
ipaddr = 192.168.1.53
sensor
mydata = 99.892
mydatajson = {“CurrentValue”: 99.892,“MonthStartValue”: 98.346,“WaterTemp”: 13,“RoomTemp”: 14}

but I can’t see it in HA, I’m doing something wrong

Okay, then I’d recomment first getting a grip of what MQTT is and how it works. It’s an overall very helpful concept/tool/tech, not just for this project, so you’ll profit from it :slight_smile:

I’m not sure what the very best source for a start is at the moment, but from a quick googling this here looks okay, depending on how “overall techy” you are: Introduction to MQTT - SparkFun Learn

Once you grasped the overall concept, I think things will start to make sense around this project way easier and faster :slight_smile: