There we go!  
Now, I have proof its counting higher than 1!  :)

[image: AS3935 Lightning sensor working.PNG]

Here's my graph config from the Belchertown graphs.conf file:

*    [[chart3]]*
*        title = Lightning*
*        [[[lightning_strike_count]]]*
*            yAxis = 0*
*            yAxis_label = "Number of Strikes"*
*            stacking = normal*
*            color = "orange"*
*            lineWidth = 0*
*            [[[[marker]]]]*
*                enabled = true*
*                radius = 4*
*            [[[[states]]]]*
*                [[[[[hover]]]]]*
*                        lineWidthPlus = 0*
*        [[[lightning_distance]]]*
*            yAxis = 1*
*            yAxis_label = "Distance (miles)"*

*            stacking = normal*
*            color = "blue"*
*            lineWidth = 0*
*            [[[[marker]]]]*
*                enabled = true*
*                radius = 3*
*            [[[[states]]]]*
*                [[[[[hover]]]]]*
*                        lineWidthPlus = 0*

These are my settings in the Tasmota firmware for the AS3935:
17:48:03.739 CMD: AS3935settings
*17:48:03.753 MQT: tele/AS3935/RESULT = 
{"AS3935_Settings":{"Gain":"Indoors","NFfloor":7,"uVrms":146,"Tunecaps":2,"MinNumLight":1,"Rejection":2,"Wdthreshold":2,"MinNFstage":0,"NFAutoTime":4,"DisturberAutoTime":1,"Disturber":"On","NFauto":"Off","Disturberauto":"Off","NFautomax":"On","Mqttlightevent":"On","Mqttnoirqevent":"On"}}*
The last 2 surpress MQTT messages when there's no lightning events.
Reference:  https://tasmota.github.io/docs/AS3935/

There have been a LOT of close strikes detected in the last 15 mintues!
This is from the Tasmota console of the ESP-12F module (with AS3935 sensor 
connected):
17:58:07.173 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T17:58:07","AS3935":{"Event":4,"Distance":1,"Energy":372650,"Stage":7}}
17:58:34.168 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T17:58:34","AS3935":{"Event":4,"Distance":1,"Energy":155946,"Stage":7}}
17:59:36.153 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T17:59:36","AS3935":{"Event":4,"Distance":1,"Energy":0,"Stage":7}}
18:00:02.150 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:00:02","AS3935":{"Event":4,"Distance":1,"Energy":77455,"Stage":7}}
18:00:14.167 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:00:14","AS3935":{"Event":4,"Distance":1,"Energy":14477,"Stage":7}}
18:01:34.195 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:01:34","AS3935":{"Event":4,"Distance":1,"Energy":16,"Stage":7}}
18:01:54.162 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:01:54","AS3935":{"Event":4,"Distance":1,"Energy":42975,"Stage":7}}
18:02:33.154 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:02:33","AS3935":{"Event":4,"Distance":1,"Energy":55903,"Stage":7}}
18:04:02.170 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:04:02","AS3935":{"Event":4,"Distance":1,"Energy":59064,"Stage":7}}
18:04:26.163 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:04:26","AS3935":{"Event":4,"Distance":1,"Energy":0,"Stage":7}}
18:04:45.170 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:04:45","AS3935":{"Event":4,"Distance":1,"Energy":25788,"Stage":7}}
18:05:12.146 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:05:12","AS3935":{"Event":4,"Distance":1,"Energy":22788,"Stage":7}}
18:05:50.188 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:05:50","AS3935":{"Event":4,"Distance":1,"Energy":17632,"Stage":7}}
18:07:22.161 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:07:22","AS3935":{"Event":4,"Distance":1,"Energy":51215,"Stage":7}}
18:08:29.185 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:08:29","AS3935":{"Event":4,"Distance":1,"Energy":62226,"Stage":7}}
18:08:34.168 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:08:34","AS3935":{"Event":4,"Distance":1,"Energy":148630,"Stage":7}}
18:08:40.172 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:08:40","AS3935":{"Event":4,"Distance":1,"Energy":25560,"Stage":7}}
18:11:16.176 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:11:16","AS3935":{"Event":4,"Distance":1,"Energy":208620,"Stage":7}}
18:12:17.187 MQT: tele/AS3935/SENSOR = 
{"Time":"2021-06-28T18:12:17","AS3935":{"Event":4,"Distance":1,"Energy":67149,"Stage":7}}

On Monday, June 28, 2021 at 5:51:11 PM UTC-5 Eric K wrote:

> 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/cc5b8c8b-ee48-46b6-ba6f-3bc1b5a8017fn%40googlegroups.com.

Reply via email to