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.

Reply via email to