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

Missing one every 4 data pulses - WH65B #164

Open
tguozden opened this issue Dec 24, 2024 · 3 comments
Open

Missing one every 4 data pulses - WH65B #164

tguozden opened this issue Dec 24, 2024 · 3 comments
Labels
question Further information is requested

Comments

@tguozden
Copy link

tguozden commented Dec 24, 2024

Current Situation

Receiving a finoffset WH65B type weather station with CC1101 (433MHz) and an ESP32 device. Approximately one every 3 -4 packets get lost, don't know why

Any help will be welcomed!

Logs

when fails:

ambientweather_whx_decode: WH31E/WH31B/WH40 detected, buffer is 137 bits length
ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68)
fineoffset_WH51_callback: Msg family unknown: 24
fineoffset_wh1080_callback: Fine Offset WH1080 data  codes {80}ff24ab6e02382c000000
fineoffset_wh31l_decode: WH31L detected, buffer is 122 bits length
fineoffset_wn34_decode:  codes {72}24ab6e02382c000000
honeywell_cm921_decode:  ................






when receives:

ambientweather_whx_decode: WH31E/WH31B/WH40 detected, buffer is 132 bits length
ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68)
fineoffset_WH24_callback: Raw @ bit_offset [54] codes {136}24ab6e02382c00000001000000000a36e4
N: Received message : {"model":"Fineoffset-WH65B","id":171,"battery_ok":1,"temperature_C":16.8,"humidity":44,"wind_dir_deg":110,"wind_avg_m_s":0,"wind_max_m_s":0,"rain_mm":0.254,"uv":0,"uvi":0,"light_lux":1,"mic":"CRC","protocol":"Fine Offset Electronics, WH25, WH32, WH32B, WN32B, WH24, WH65B, HP1000, Misol WS2320 Temperature/Humidity/Pressure Sensor","rssi":-40,"duration":11000}

Configuration

[env:esp32_cc1101]
board = esp32dev
build_flags = 
  '-DLOG_LEVEL=LOG_LEVEL_TRACE'
  '-DONBOARD_LED=2'          ; My ESP32 board had this wiring
; *** rtl_433_ESP Options ***
;  '-DRF_MODULE_FREQUENCY=915.00'
  '-DOOK_MODULATION=false'       ; False is FSK, True is OOK
  '-DRTL_DEBUG=1'           ; rtl_433 verbose mode
;  '-DRTL_VERBOSE=58'          ; LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor
;  '-DRAW_SIGNAL_DEBUG=true'   ; display raw received messages
;  '-DMEMORY_DEBUG=true'   ; display memory usage information
;  '-DDEMOD_DEBUG=true'  ; display signal debug info
;	'-DMY_DEVICES=true'		; subset of devices
;  '-DPUBLISH_UNPARSED=true'   ; publish unparsed signal details
  '-DMINRSSI=-82'
;  '-DRSSI_THRESHOLD=12'         ; Apply a delta of 12 to average RSSI level
;  '-DAVERAGE_RSSI=5000'     ; Display RSSI floor ( Average of 5000 samples )
;  '-DSIGNAL_RSSI=true'             ; Display during signal receive

; *** RF Module Options ***
  '-DRF_CC1101="CC1101"'  ; CC1101 Transceiver Module
;  '-DRF_MODULE_CS=5'      ; pin to be used as chip select
  '-DRF_MODULE_GDO0=22'   ; CC1101 pin GDO0 - Breadboard is 22 versus 13 on soldered
  '-DRF_MODULE_GDO2=21'    ; CC1101 pin GDO2
;'-DRF_MODULE_INIT_STATUS=false'    ; Display transceiver config during startup
; *** RadioLib Options ***
;  '-DRADIOLIB_DEBUG=true'
;  '-DRADIOLIB_VERBOSE=true'
  ; *** FSK Setting Testing ***
  ;'-DsetBitrate'
  ;'-DsetFreqDev'
  ;'-DsetRxBW'

Environment

  • OS:
  • Software:
  • Node:
  • npm:

Process Supervisor

hb-service

Additional Context

No response

@tguozden tguozden added the question Further information is requested label Dec 24, 2024
@NorthernMan54
Copy link
Owner

Is it possibly data from a different device or just RF noise? The code does try every possible decoder with each signal, so it will show failures for data not meant for that decoder.

@tguozden
Copy link
Author

found the problem through a warning!

The problem is from
src/rtl_433/pulse_data.c
A string is not given place inside function pulse_data_print_vcd_header where

    char *timescale;
    if (sample_rate <= 500000)
        timescale = "1 us";
    else
        timescale = "100 ns";

should be something like

    char timescale[8];
    if (sample_rate <= 500000)
        sprintf(timescale, "1 us");
    else
        sprintf(timescale, "100 ns");

This changed from loosing one every 3-5 packets to one in 20, where checksum errors persist. Also lots of warnings from fineoffset.c should be paid attention.

@tguozden tguozden reopened this Dec 28, 2024
@tguozden
Copy link
Author

solved fineoffset.c warnings by copying

"decoder_util copy.c" to decoder_util.c

Still miss some packets, more or less one every ten, mostly from checksum errors. Station transmitter is aside the CC1101 and RSSI lectures are -25 or higher.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants