Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support of Klimalogg Pro Sensor #143

Open
riegelbrau opened this issue Jun 7, 2024 · 7 comments
Open

Support of Klimalogg Pro Sensor #143

riegelbrau opened this issue Jun 7, 2024 · 7 comments
Labels
enhancement New feature or request

Comments

@riegelbrau
Copy link

riegelbrau commented Jun 7, 2024

Current Situation

In the current version the sensor [150]* Klimalogg from merbanan's rtl_433 project is not listed as supported. In the source code I see, that it has OOK_PULSE_NRZS modulation. From my running instance of rtl_433 I get these MQTT messages:
grafik
There I see MOD = ASK. Is this supported by rtl_433_ESP?

Proposed Change

Support the Klimalogg sensor like in rtl_433. The advantage is to get data from the following sensors:

  • TFA Dostmann 30.3080.IT
  • TFA Dostmann 30.3081.IT

In my home brewing environment I could then replace one instance of rtl_443 (for 868 MHz) by a LilyGo Lora 32 board for 868 MHz.

Additional Context

No response

@riegelbrau riegelbrau added the enhancement New feature or request label Jun 7, 2024
@NorthernMan54
Copy link
Owner

ASK is similar to FSK so it is supported

The decoder is included within the source code, but it is listed as disabled here -

The disabled flag was copied from the rtl_433 package - https://github.com/merbanan/rtl_433/blob/f23b80f7975ebb49242e4017aafed870c35e30d0/src/devices/klimalogg.c#L112

You could try flipping disabled to 0, and rebuilding. As it was disabled during the build process, and is the only device leveraging OOK_PULSE_NRZS I'm not 100% confident it will work, as the code would not have been exercised during testing. But give it a try, worst case is that you would need to undo it.

@riegelbrau
Copy link
Author

How can I get a verbose log from rtl_433_ESP in the OMG console like this?

*WM: [1] AutoConnect
*WM: [2] ESP32 event handler enabled
*WM: [1] AutoConnect: ESP Already Connected
*WM: [1] STA static IP:
*WM: [2] setSTAConfig static ip not set
*WM: [1] AutoConnect: SUCCESS
*WM: [1] STA IP Address: 10.0.0.245
Registering protocol [1] "Akhan 100F14 remote keyless entry"
Registering protocol [2] "EMOS E6016 weatherstation with DCF77"
Registering protocol [3] "Nexus, FreeTec NC-7345, NX-3980, Solight TE82S, TFA 30.3209 temperature/humidity sensor"
Registering protocol [4] "Generic Remote SC226x EV1527"
Registering protocol [5] "Wireless Smoke and Heat Detector GS 558"

I tried several compiler directives without success. Help appreciated!

Regards, Christoph

@NorthernMan54
Copy link
Owner

It’s not wired to do that

the omg serial console uses a different logging library to achieve the web console

@riegelbrau
Copy link
Author

I now understand, that the rtl log is going to the serial console, but where can I find a description of the compiler directives to trace the rtl_433_ESP activities inside OMG on my LilyGo 868 MHz board.

Regarding my issue I checked the source code and figured out, that the klimalogg protocol is in the copy sequence for OOK modulation, so it cannot be activated with FSK.
Next point ist, that the klimalogg.c file contains a OOK_PULSE_NRZS. If the statement above, that it might be a FSK modulation, is correct, would the code process it in an appropriate manner.

For debugging with my sensors I need some hints for tracing and debugging.

@riegelbrau
Copy link
Author

Found the compiler directives in the ReadMe!👍

@NorthernMan54
Copy link
Owner

As I’m using the chipset signal demodulator for FSK and OOK, it is not feasible to receive both at the same time.

@riegelbrau
Copy link
Author

I know that and I tried to create a binary with klimalogg being activated while FSK is activated, too.
What I mean is that you wrote

ASK is similar to FSK so it is supported
but from the code in signalDecoder.cpp the klimalogg device is in the memcpy sequence for OOK:

if (rtl_433_ESP::ookModulation) {
  ...
  memcpy(&cfg->devices[79], &kerui, sizeof(r_device));
  memcpy(&cfg->devices[80], &klimalogg, sizeof(r_device));
  memcpy(&cfg->devices[81], &lacrossetx, sizeof(r_device));
  ... }

So if I compile with OOK_MODULATION=false to get the OMG image compiled with FSK, because "ASK is similar to FSK", then the klimalogg device is not copied at all and cannot work.

May be I don't understand you right. Should I compile with OOK and the modulation code for ASK will nevertheless be activated?

I did so and I've got these results:

rtl_433_ESP(7): Average RSSI Signal -93 dbm, adjusted RSSI Threshold -84, samples 50000
rtl_433_ESP(7): Average RSSI Signal -93 dbm, adjusted RSSI Threshold -84, samples 50000
pulse_slicer_nrzs: Klimalogg codes [{740}edb6dbfbfb6f6def6f6db6db7b7b7f7b6dbfb7f7b6f7f6dbedb6dedb6f6defb7f6dbdb7b6ffbfb6f7b6db6f7b7ffb7fedb6dbdb7f6db6fedbdfdb7ffb6dbfb7bfbdfdb6dfdb6db7f7bdfdb6db6dedbdb7b6fffdff6dfdbedbdbdb6db6]
pulse_slicer_nrzs: Klimalogg codes [{1083}edb6dbfbfb6f6def6f6db6db7b7b7f7b6dbfb7f7b6f7f6dbedb6dedb6f6defb7f6dbdb7b6ffbfb6f7b6db6f7b7ffb7fedb6dbdb7f6db6fedbdfdb7ffb6dbfb7bfbdfdb6dfdb6db7f7bdfdb6db6dedbdb7b6fffdff6dfdbedbdbdb6db6db6db6dbedbdb6f6ffb7f6fbdeffb7bfedffffffffffffffffbfffedeffbfff7f7f6fffdfffffffeffbffc]
pulse_slicer_nrzs: Klimalogg codes [{1086}edb6dbfbfb6f6def6f6db6db7b7b7f7b6dbfb7f7b6f7f6dbedb6dedb6f6defb7f6dbdb7b6ffbfb6f7b6db6f7b7ffb7fedb6dbdb7f6db6fedbdfdb7ffb6dbfb7bfbdfdb6dfdb6db7f7bdfdb6db6dedbdb7b6fffdff6dfdbedbdbdb6db6db6db6dbedbdb6f6ffb7f6fbdeffb7bfedffffffffffffffffbfffedeffbfff7f7f6fffdfffffffeffbffd8]
pulse_slicer_nrzs: Klimalogg codes [{1092}edb6dbfbfb6f6def6f6db6db7b7b7f7b6dbfb7f7b6f7f6dbedb6dedb6f6defb7f6dbdb7b6ffbfb6f7b6db6f7b7ffb7fedb6dbdb7f6db6fedbdfdb7ffb6dbfb7bfbdfdb6dfdb6db7f7bdfdb6db6dedbdb7b6fffdff6dfdbedbdbdb6db6db6db6dbedbdb6f6ffb7f6fbdeffb7bfedffffffffffffffffbfffedeffbfff7f7f6fffdfffffffeffbffdb6]
pulse_slicer_nrzs: Klimalogg codes [{1110}edb6dbfbfb6f6def6f6db6db7b7b7f7b6dbfb7f7b6f7f6dbedb6dedb6f6defb7f6dbdb7b6ffbfb6f7b6db6f7b7ffb7fedb6dbdb7f6db6fedbdfdb7ffb6dbfb7bfbdfdb6dfdb6db7f7bdfdb6db6dedbdb7b6fffdff6dfdbedbdbdb6db6db6db6dbedbdb6f6ffb7f6fbdeffb7bfedffffffffffffffffbfffedeffbfff7f7f6fffdfffffffeffbffdb6db6d8]
pulse_slicer_nrzs: Klimalogg codes [{1175}edb6dbfbfb6f6def6f6db6db7b7b7f7b6dbfb7f7b6f7f6dbedb6dedb6f6defb7f6dbdb7b6ffbfb6f7b6db6f7b7ffb7fedb6dbdb7f6db6fedbdfdb7ffb6dbfb7bfbdfdb6dfdb6db7f7bdfdb6db6dedbdb7b6fffdff6dfdbedbdbdb6db6db6db6dbedbdb6f6ffb7f6fbdeffb7bfedffffffffffffffffbfffedeffbfff7f7f6fffdfffffffeffbffdb6db6dbdb7b6db7b6fb7f6c]
pulse_slicer_nrzs: Klimalogg codes [{1522}edb6dbfbfb6f6def6f6db6db7b7b7f7b6dbfb7f7b6f7f6dbedb6dedb6f6defb7f6dbdb7b6ffbfb6f7b6db6f7b7ffb7fedb6dbdb7f6db6fedbdfdb7ffb6dbfb7bfbdfdb6dfdb6db7f7bdfdb6db6dedbdb7b6fffdff6dfdbedbdbdb6db6db6db6dbedbdb6f6ffb7f6fbdeffb7bfedffffffffffffffffbfffedeffbfff7f7f6fffdfffffffeffbffdb6db6dbdb7b6db7b6fb7f6dbdfdedfffbfbdfdff6ffffb7b6dedfffb6db6f7bfb6db6df6db6dedbdbdb6db6dedb6fff6db6f7db7b6dff0]
Analyzing pulses...
Total count:  324,  width: 107.92 ms		(107925 S)
Pulse width distribution:
 [ 0] count:  215,  width:   63 us [57;84]	(  63 S)
 [ 1] count:   26,  width:  192 us [186;196]	( 192 S)
 [ 2] count:   59,  width:  127 us [120;133]	( 127 S)
 [ 3] count:   13,  width:  271 us [252;321]	( 271 S)
 [ 4] count:    8,  width:  392 us [320;451]	( 392 S)
 [ 5] count:    1,  width: 1724 us [1724;1724]	(1724 S)
 [ 6] count:    1,  width:  832 us [832;832]	( 832 S)
 [ 7] count:    1,  width:    0 us [0;0]	(   0 S)
Gap width distribution:
 [ 0] count:   26,  width:  256 us [256;261]	( 256 S)
 [ 1] count:    9,  width:  763 us [640;837]	( 763 S)
 [ 2] count:  115,  width:   63 us [59;73]	(  63 S)
 [ 3] count:   67,  width:  128 us [124;133]	( 128 S)
 [ 4] count:   38,  width:  192 us [190;196]	( 192 S)
 [ 5] count:   37,  width:  350 us [320;388]	( 350 S)
 [ 6] count:   25,  width:  497 us [444;579]	( 497 S)
 [ 7] count:    3,  width: 1154 us [1028;1284]	(1154 S)
 [ 8] count:    2,  width: 2468 us [2308;2628]	(2468 S)
 [ 9] count:    1,  width: 1924 us [1924;1924]	(1924 S)
Pulse period distribution:
 [ 0] count:   62,  width:  350 us [316;388]	( 350 S)
 [ 1] count:   10,  width:  839 us [708;899]	( 839 S)
 [ 2] count:   74,  width:  127 us [121;132]	( 127 S)
 [ 3] count:   66,  width:  192 us [187;200]	( 192 S)
 [ 4] count:   44,  width:  255 us [248;260]	( 255 S)
 [ 5] count:   48,  width:  498 us [444;580]	( 498 S)
 [ 6] count:   12,  width:  639 us [636;643]	( 639 S)
 [ 7] count:    3,  width: 1216 us [1090;1348]	(1216 S)
 [ 8] count:    2,  width: 1920 us [1853;1988]	(1920 S)
 [ 9] count:    2,  width: 2656 us [2624;2688]	(2656 S)
Pulse timing distribution:
 [ 0] count:  330,  width:   63 us [57;84]	(  63 S)
 [ 1] count:   64,  width:  192 us [186;196]	( 192 S)
 [ 2] count:  126,  width:  128 us [120;133]	( 128 S)
 [ 3] count:   59,  width:  281 us [252;327]	( 281 S)
 [ 4] count:   35,  width:  404 us [320;452]	( 404 S)
 [ 5] count:    2,  width: 1824 us [1724;1924]	(1824 S)
 [ 6] count:   17,  width:  543 us [451;644]	( 543 S)
 [ 7] count:    8,  width:  802 us [707;837]	( 802 S)
 [ 8] count:    1,  width:    0 us [0;0]	(   0 S)
 [ 9] count:    3,  width: 1154 us [1028;1284]	(1154 S)
 [10] count:    2,  width: 2468 us [2308;2628]	(2468 S)
 [11] count:    1,  width:    0 us [0;0]	(   0 S)
Guessing modulation: Non Return to Zero coding (Pulse Code)
Attempting demodulation... short_width: 63, long_width: 63, reset_limit: 64512, sync_width: 0
Unsupported

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants