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 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/6ed65ff9-fede-41c0-b38e-3270a9aef9dbn%40googlegroups.com.
