Hi All, I am running weewx-sdr/MQTT loop packets with Belchertown skin. I have an Acurite 0645M lightning detector, and I've been having major trouble getting it to display the "deltas" for the reporting period in Weewx.

236 views
Skip to first unread message

Kingsclear Studios

unread,
Mar 6, 2022, 7:40:30 AM3/6/22
to weewx-user
Weewx Conf:

[SDR]
    # This section is for the software-defined radio driver.

    # The driver to use
    driver = user.sdr
    path = /usr/local/bin
    log_unknown_sensors = True
    log_unmapped_sensors = True
    [[sensor_map]]
        extraTemp1 = temperature.1720.AcuriteTowerPacketV2    # basement
        extraHumid1 = humidity.1720.AcuriteTowerPacketV2
        outTemp = temperature.041D.Acurite5n1PacketV2
        outHumidity = humidity.041D.Acurite5n1PacketV2
        rain_total = rain_total.041D.Acurite5n1PacketV2
        windDir = wind_dir.041D.Acurite5n1PacketV2
        windSpeed = wind_speed.041D.Acurite5n1PacketV2
        inHumidity = humidity.009B.AcuriteLightningPacket    #upstairs Humidity
        inTemp = temperature.009B.AcuriteLightningPacket    #upstairs Temperature
        strikes_total = strikes_total.009B.AcuriteLightningPacket    #Total Lightning Strike Count
        lightning_distance = distance.009B.AcuriteLightningPacket    #Storm Distance KM
    [[sensor_type]]
        strikes_total = counter
    [[data_type]]
        strikes_total = delta
    [[Deltas]]
        lightning_strike_count = strikes_total


Belchertown Display Settings:

station_observations = outTemp, outHumidity, heatindex, dewpoint, rainRate, windSpeed, windDir, windGust, lightning_strike_count, lightning_distance, inTemp, inHumidity, extraTemp1

Which results in display of "N/A" for lightning strikes.

I can trigger an artificial strike to get a count, and I do see "strikes_total" climbing during this time, so it's recording the event itself in the DB/MQTT and sending it, but I cannot seem to get it to display in the skin as a "daily" count = or a count based on the established reporting period. The 06045M is a counter, it wraps at 255 now, so I do understand how it works more or less, just not how to get it to display properly in the skin and for charting in the near future.

I've read dozens of threads, and I can't seem to find a conclusive solution - help!!

Most recently added to [StdCalibrate]: lightning_distance = lightning_distance if lightning_strike_count > 0 else None


Capture.PNG

tarob...@gmail.com

unread,
Mar 7, 2022, 8:02:11 AM3/7/22
to weewx-user
The only thing I see missing from your weewx.conf would be the Accumulator section:

[Accumulator]
    [[lightning_strike_count]]
        extractor = sum
    [[lightning_distance]]
        extractor = min

See if adding the Accumulator section in your weewx.conf fixes your issue.

-Troy

Kingsclear Studios

unread,
Mar 7, 2022, 8:42:46 AM3/7/22
to weewx-user
Thanks Troy, can confirm it's in place, makes no difference:


[Accumulator]
    [[lightning_strike_count]]
        extractor = sum
    [[lightning_distance]]
        extractor = min
        merger = minmax

Lightning Distance is working perfectly, after each artificial strike test (power drill + brushless motor = fake lightning) I get the distance updated properly, with units, my total_strikes count goes up, and I see odd entries like: strike_count: 0.0 - but no delta value(s), I've been trying for ages, it seems to elude me :)

Sample MQTT data flowing to the station as of now:

{ "inHumidity": "31.0", "inTemp_C": "23.777777777777775", "strikes_total": "244.0", "lightning_distance_km": "6.437376", "dateTime": "1646660541.0", "inDewpoint_C": "5.625713349750434", "maxSolarRad_Wpm2": "362.7045034071919", "rainRate_cm_per_hour": "0.0", "strikes_count": "0.0", "rain_total": "1.59", "windSpeed_kph": "4.310998666280064", "outTemp_C": "5.888888888888889", "outHumidity": "86.0", "appTemp_C": "3.6810358576208713", "cloudbase_meter": "326.41695917564834", "dewpoint_C": "3.7282050766260766", "heatindex_C": "4.778888888888891", "humidex_C": "5.888888888888889", "windchill_C": "5.888888888888889", "extraTemp1_C": "5.3999999999999995", "extraHumid1": "53.0", "windDir": "225.0", "hourRain_cm": "0.025400000000000023", "rain24_cm": "1.9812000000000007", "dayRain_cm": "0.7112", "usUnits": "16.0" }

Doug Jenkins

unread,
Mar 7, 2022, 10:59:36 AM3/7/22
to weewx-user
I have tried my hand in this device last year with SDR and MQTT. What I found is that the device's counter counts up to 127 (or 255 depending on the SDR release) then essentially resets back to zero. I did not see any code that would compare the incoming value (eg strike count is now 100) to the loop value (eg 99) and update the strike count by 1. 

My best guess is that Acurite's base station is doing this math difference and showing you the total strikes for the day with the distance of the last strike.

What needs to be done here is have a driver/service that will take the raw SDR value for lightning strike count and distance, compare it to the last reported value, then create a record recording the strike count and distance as a separate row in a table (eg lighting_raw_data). Once the archive generation starts, you take the sum of the strikes between archive periods and average the strike distance. I believe that is what the accumulator will do for you.

This is where I gave up on the device. I have it in my "nice to have" notes to write this component one day.

An alternative is to look at the AS3925 lightning sensor. You can attach that to a Raspberry PI and use Matthew Wall's driver (matthewwall/weewx-as3935: weewx service that collects data from as3935 lightning detector (github.com)) in a separate weewx instance reporting to a separate db. From there you can bind both databases in your main weewx install and report the lightning data in your skin. Look up multiple database bindings in the docs side of the the weewx documentation.

Hope that helps!

Doug Jenkins

Kingsclear Studios

unread,
Mar 7, 2022, 11:22:11 AM3/7/22
to weewx-user
Thank you Doug, this is more or less the roadblock(s) I've come against too, I've tried this fruitlessly since 2019 with no luck so I figured I would finally post about it to see if anyone has had any concrete luck. Thanks for the recommendation of the AS3925, I believe that is the same core-sensor on the 06045M with a different wrapper on the SDR, so that is probably challenging. I just liked it due to the audio/visual warnings it produces in use at home, as well as the added value of extra temperature/humidity readings, which albeit work fine.

Thanks again,
Mike.
Message has been deleted

tarob...@gmail.com

unread,
Mar 8, 2022, 8:58:15 AM3/8/22
to weewx-user
Does lightning data show up correctly if you graph it? I have the following in the graph.conf for the Belchertown Skin:

[homepage]
...
    [[daylightning]]
        title = Lightning (hourly total)
        time_length = today
        aggregate_type = sum
        aggregate_interval = 3600
        type = column
        [[[lightning_strike_count]]]
            name = Lightning
        [[[lightning_distance]]]
            name = Min Distance
            aggregate_type = min
            yAxis = 1

Reply all
Reply to author
Forward
0 new messages