IT'S WORKING! There is another thunderstorm approaching and it's capturing distances AND strike count! [image: image.png]
On Mon, Jun 28, 2021 at 1:45 PM Eric Koester <[email protected]> wrote: > Thanks for that idea, Rich. > > Yesterday, I opened up the AS3935_Event to allow event 4 to pass through, > because event 4 is "storm overhead". > So, now the AS3935_Event message could contain a 1 or a 4. > > *[[[AS3935_Event]]]* > * filter_out_message_when = 0, 2, 3, 5, 6, 7, 8, 9* > * conversion_type = int* > > I am trying this correction to change the event number to be a 1. > > *[StdCalibrate]* > * [[Corrections]]* > > * outTemp = outTemp - 1.5* > * barometer = barometer + 1.23* > * lightning_strike_count = 1 if AS3935_Event > 0 else None* > > I'll report back on the results. > > > > > > On Mon, Jun 28, 2021 at 1:15 PM [email protected] <[email protected]> > wrote: > >> Eric, >> I would think just renaming AS3935_Event to lightning_strike_count (via >> name = lightning_strike_count) should work. This gets the value into the >> WeeWX pipeline and since lightning_strike_count has a default accumulator >> that extracts the sum, you should be all set. Meaning something like this. >> [[[[AS3935_Event]]]] >> # MQTT messages with and event value in the following will be ignored. >> filter_out_message_when = 0, 2, 3, 4, 5, 6, 7, 8, 9 >> conversion_type = int >> name = lightning_strike_count >> rich >> >> On Sunday, 27 June 2021 at 19:15:41 UTC-4 Eric K wrote: >> >>> Reference: https://github.com/weewx/weewx/wiki/Accumulators >>> >>> 1. It says that lightning_strike_count is one of the default accumulator >>> variables, so I believe that means I do NOT need to declare it in an >>> [Accumulators] section of weewx.conf? >>> >>> 2. Where do I put the code that alerts WeeWX that a lightning strike >>> occurred? >>> In the [MQTTSubscribeService] section of the weewx.conf file? >>> >>> 3. How do I tell WeeWX that a lightning strike has occurred? >>> Set lightning_strike_count =1 and let the accumulator function add 1 to >>> the total for me? >>> >>> Like this? >>> >>> [MQTTSubscribeService] >>> >>> [[[tele/AS3935/SENSOR]]] >>> [[[[Time]]]] >>> ignore = true >>> >>> [[[[AS3935_Event]]]] >>> # Use the default variable name from MQTT >>> # MQTT messages with and event value in the following >>> will be ignored. >>> filter_out_message_when = 0, 2, 3, 4, 5, 6, 7, 8, 9 >>> conversion_type = int >>> * lightning_strike_count = 1* >>> >>> [[[[AS3935_Distance]]]] >>> # Use the default variable name from MQTT. >>> >>> [[[[AS3935_Energy]]]] >>> name = lightning_energy >>> >>> [[[[AS3935_Stage]]]] >>> ignore = true >>> On Friday, June 25, 2021 at 8:15:48 PM UTC-5 Eric K wrote: >>> >>>> I've made some progress and I have MQTT messages getting received into >>>> MQTTSubscribe and put into the weewx database file! >>>> >>>> Here's the relevant section from the MQTTSubscribe section of >>>> weewx.conf: >>>> >>>> *[MQTTSubscribeService]* >>>> >>>> * enable = true* >>>> >>>> * host = localhost* >>>> >>>> * port = 1883* >>>> >>>> * keepalive = 60* >>>> >>>> * username = None* >>>> >>>> * password = None* >>>> >>>> * binding = loop* >>>> >>>> * [[message_callback]]* >>>> >>>> * type = json* >>>> >>>> * [[[tele/AS3935/SENSOR]]]* >>>> * [[[[Time]]]]* >>>> * ignore = true* >>>> >>>> * [[[[AS3935_Event]]]]* >>>> * # Use the default variable name from MQTT* >>>> * # MQTT messages with and event value in the following >>>> will be ignored.* >>>> * filter_out_message_when = 0, 2, 3, 4, 5, 6, 7, 8, 9* >>>> * conversion_type = int* >>>> >>>> * [[[[AS3935_Distance]]]]* >>>> * # Use the default variable name from MQTT.* >>>> >>>> * [[[[AS3935_Energy]]]]* >>>> * name = lightning_energy* >>>> >>>> * [[[[AS3935_Stage]]]]* >>>> * ignore = true* >>>> >>>> Here are a few lines from the /var/log/syslog showing the AS3935 >>>> messages coming in and getting conditionally ignored. >>>> So, we know that part is working. >>>> >>>> >>>> *Jun 25 19:50:46 pi3 weewx[31711] DEBUG user.MQTTSubscribe: (Service) >>>> MessageCallbackProvider data-> incoming topic: tele/AS3935/SENSOR, QOS: 0, >>>> retain: 0, payload: >>>> b'{"Time":"2021-06-25T19:50:46","AS3935":{"Event":0,"Distance":0,"Energy":0,"Stage":7}}'* >>>> *Jun 25 19:50:46 pi3 weewx[31711] INFO user.MQTTSubscribe: (Service) >>>> MessageCallbackProvider on_message_json filtered out tele/AS3935/SENSOR : >>>> b'{"Time":"2021-06-25T19:50:46","AS3935":{"Event":0,"Distance":0,"Energy":0,"Stage":7}}' >>>> with AS3935_Event=[0, 2, 3, 4, 5, 6, 7, 8, 9]* >>>> >>>> Then, in the Corrections section of weewx.conf, I am using a >>>> conditional statement to assign the AS3935 distance data to the weewx stock >>>> variable lightning_distance. >>>> I wasn't sure if my syntax was correct, but lightning distance data is >>>> appearing in the weewx database, so it appears to be working. >>>> >>>> *[StdCalibrate]* >>>> >>>> * [[Corrections]]* >>>> >>>> * outTemp = outTemp - 1.5* >>>> * barometer = barometer + 1.23* >>>> * lightning_distance = AS3935_Distance if AS3935_Event == 1 else >>>> None* >>>> >>>> Finally, I looked in the weewx.sdb database file and saw 3 lightning >>>> events listed in the variables lightning_distance and lightning_energy! >>>> See attached. >>>> >>>> I don't have the lightning_strike_count getting accumulated, >>>> yet....have to try and figure out which of the accumulator type to use. >>>> >>>> Progress..... >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> On Wednesday, June 16, 2021 at 1:37:57 PM UTC-5 Eric K wrote: >>>> >>>>> Very cool, Rich! >>>>> I'll put some effort into it. >>>>> >>>>> Based on your earlier coaching, I've been able to successfully accept >>>>> MQTT data from every sensor I've tried, including from a Sonoff Zigbee >>>>> Bridge with a bunch of Sonoff SNZB-02 temperature sensors! >>>>> >>>>> [[[tele/ZBBridge/SENSOR]]] >>>>> # 0x4472 is #10 Living Room >>>>> [[[[ZbReceived_0x4472_Device]]]] >>>>> ignore = true >>>>> >>>>> [[[[ZbReceived_0x4472_Name]]]] >>>>> ignore = true >>>>> >>>>> [[[[ZbReceived_0x4472_Temperature]]]] >>>>> # The WeeWX name. >>>>> # Default is the name from MQTT. >>>>> name = inTemp >>>>> >>>>> [[[[ZbReceived_0x4472_Humidity]]]] >>>>> # The WeeWX name. >>>>> # Default is the name from MQTT. >>>>> name = inHumidity >>>>> >>>>> [[[[ZbReceived_0x4472_BatteryVoltage]]]] >>>>> ignore = true >>>>> >>>>> [[[[ZbReceived_0x4472_BatteryPercentage]]]] >>>>> ignore = true >>>>> >>>>> [[[[ZbReceived_0x4472_Endpoint]]]] >>>>> ignore = true >>>>> >>>>> [[[[ZbRecieved_0x4472_LinkQuality]]]] >>>>> ignore = true >>>>> >>>>> >>>>> On Wednesday, June 16, 2021 at 1:00:18 PM UTC-5 [email protected] >>>>> wrote: >>>>> >>>>>> Eric, >>>>>> For (2), MQTTSubscribe has a 'filter_out_message_when' option. So, >>>>>> you would to do something like this in the MQTTSubscribe section >>>>>> [[topics]] >>>>>> [[[tele/AS3935/SENSOR]]] >>>>>> [[[[AS3935_Event]]]] >>>>>> ignore = True >>>>>> # MQTT messages with and event value in the following will be >>>>>> ignored. >>>>>> filter_out_message_when = 0, 2, 3, 4, 5, 6, 7, 8, 9 >>>>>> conversion_type = int >>>>>> . >>>>>> . >>>>>> . >>>>>> >>>>>> A bit more detail on this option can be found here, >>>>>> https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki/Configuring-additional-options#filter_out_message_when >>>>>> There is some background information here, >>>>>> https://github.com/bellrichm/WeeWX-MQTTSubscribe/discussions/112 >>>>>> >>>>>> For (3), read up on WeeWX accumulators here, >>>>>> https://github.com/weewx/weewx/wiki/Accumulators >>>>>> >>>>>> If you get this working, this is exactly the type of MQTTSubscribe >>>>>> configuration that I would like to capture as an example to help others >>>>>> in >>>>>> the future. >>>>>> - Rich >>>>>> >>>>>> >>>>>> On Tuesday, 15 June 2021 at 19:35:19 UTC-4 Eric K wrote: >>>>>> >>>>>>> I just assembled this exact setup - AS3935 board with a Wemos D1 >>>>>>> mini clone and Tasmota 9.4.0 sensor firmware. >>>>>>> I didn't snap a picture before I deployed it, but it looks very much >>>>>>> like the attached photo. >>>>>>> I followed this page: https://tasmota.github.io/docs/AS3935/ >>>>>>> >>>>>>> Its working and I'm getting live data in the Tasmota web interface. >>>>>>> I named it AS3935 in the Tasmota MQTT setup and it's sending >>>>>>> telemetry to my mosquitto MQTT broker. >>>>>>> The MQTT transmissions (seen from the Tasmota console) look like the >>>>>>> example on the tasmota.github AS3935 page: >>>>>>> 18:07:21.164 MQT: tele/AS3935/SENSOR = >>>>>>> {"Time":"2021-06-15T18:07:21","AS3935":{"Event":0,"Distance":0,"Energy":0,"Stage":7}} >>>>>>> >>>>>>> I think I need to: >>>>>>> 1. set the Tasmota setting AS3935lightevent to 1 so it only sends >>>>>>> MQTT messages when there is a lightning strike registered. >>>>>>> 2. set up weewx to read the MQTT Event variable so I only react to a >>>>>>> valid lightning strike with distance (event 1) >>>>>>> 3. Set up the lightning_count variable as an accumulator? >>>>>>> >>>>>>> I'm not quite sure: >>>>>>> 1. how often I should set Tasmota's MQTT report period so I don't >>>>>>> miss counting a lightning strike? Once per second? >>>>>>> 2. how to set up a conditional statement in the MQTTSubscribe >>>>>>> section of weewx.conf to increment the lightning_count only when valid >>>>>>> lightning events occur. >>>>>>> >>>>>>> I'll be looking for example weewx.conf file settings that deal with >>>>>>> the AS3935. >>>>>>> On Sunday, December 6, 2020 at 12:51:45 PM UTC-6 [email protected] >>>>>>> wrote: >>>>>>> >>>>>>>> Hello guys, >>>>>>>> did anyone tried to use *Lightning sensor AS3935* tinkered on >>>>>>>> cheap *ESP8266* with WeeWX? >>>>>>>> >>>>>>>> A time ago, I was user of Tasmota ESP8266 firmware and I know, it >>>>>>>> can publish MQTT + JSON data. Here is the manual how to tinker and >>>>>>>> flash >>>>>>>> those two together: >>>>>>>> https://tasmota.github.io/docs/AS3935/ >>>>>>>> I assume, that with JSON / MQTT it would be prety easy to fill >>>>>>>> WeeWX database... >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Miso, >>>>>>>> Slovakia >>>>>>>> >>>>>>> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "weewx-user" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/weewx-user/TaLWUitdDmE/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/weewx-user/6ed65ff9-fede-41c0-b38e-3270a9aef9dbn%40googlegroups.com >> <https://groups.google.com/d/msgid/weewx-user/6ed65ff9-fede-41c0-b38e-3270a9aef9dbn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/CADh_orijQe%3D-DMvGtA11QaRjDWjPLofqxCVQqcWA8viSCrT3qw%40mail.gmail.com.
