Thanks, that did give me something to go on.  In the weewx.conf file, you 
set the 'must_have', to add the value to the packet and here's what I had:

[Bme280wx]
    temperature_must_have = ""
    humidityKeys = inHumidity
    pressureKeys = pressure
    pressure_must_have = outTemp
    i2c_port = 1
    humidity_must_have = ""
    i2c_address = 0x77
    usUnits = US
    temperatureKeys = inTemp

The only thing that is a must have is outTemp, which I have in some other 
log entries:

May 23 21:25:21 weatherstation weewxd: bme280: BME280 data 
compensated_reading(id=9d035f02-3164-4c84-9667-8c4e5e6f6034, 
timestamp=2020-05-23 21:25:21.684878, temp=26.483 °C, pressure=973.67 hPa, 
humidity=42.11 % rH)
May 23 21:25:21 weatherstation weewxd: bme280: {u'lastStrikeTime': 
1590287118, u'outHumidity': 75.0, 'dateTime': 1590287118, u'outTemp': 79.9, 
u'windSpeed': 5.7650962506369074, u'pressure': 28.752361215071698, 
'usUnits': 1}


The pressure key was indeed appearing when the outTemp key was there, so 
that's how it was working.  I then changed the entries for 
temperature_must_have and humidity_must_have to be outTemp as well, and 
when I restarted weewx, it put those entries into the packet.  

May 23 21:32:46 weatherstation weewxd: bme280: BME280 data 
compensated_reading(id=77b48509-c677-4e4e-80e4-22bb7d69aa2d, 
timestamp=2020-05-23 21:32:46.365347, temp=26.697 °C, pressure=973.76 hPa, 
humidity=42.78 % rH)
May 23 21:32:46 weatherstation weewxd: bme280: {u'lastStrikeTime': 
1590287562, u'outHumidity': 76.0, 'dateTime': 1590287562, u'outTemp': 79.7, 
u'windSpeed': 3.193234493643357, u'inHumidity': 42.77779308621109, 
u'inTemp': 80.05406480135397, u'pressure': 28.755112653832978, 'usUnits': 1}

Thanks again for the suggestion on where to look. 

tldr, you have to now specify something in *_must_have to get the value 
added to the packet loop.  I guess the "" is now being evaluated in weewx 4 
as a value to match.

Greg

On Saturday, May 23, 2020 at 8:25:48 PM UTC-5, gjr80 wrote:
>
> Hi,
>
> I don't think the BME280 extension is trying to do anything with the 
> lightning data per se. If you look at the BME280 extension code you will 
> see that it attempts to add temperature, pressure and humidity data to the 
> loop packet. The last thing it does is log the packet. What I suspect is 
> happening is the lightning data is already in the loop packet when the 
> BME280 extension is executed (this is almost certainly the case if you are 
> using the SDR driver). The BME280 is unable to obtain any temperature, 
> pressure and humidity data but it still logs the packet before it exits 
> hence you see a bme280: prefixed log entry with lightning data but no 
> BME280 data.
>
> I would be looking at these lines:
>
> if all(must_have in packet for must_have in self.pressure_must_have): 
>     pressurePA = (bme280data.pressure, 'mbar', 'group_pressure') 
>     converted = converter.convert(pressurePA) 
>     for key in self.pressureKeys: 
>         packet[key] = converted[0] 
> if all(must_have in packet for must_have in self.temperature_must_have): 
>     temperatureC = (bme280data.temperature, 'degree_C', 'group_temperature') 
>     converted = converter.convert(temperatureC) 
>     for key in self.temperatureKeys: 
>         packet[key] = converted[0] 
> if all(must_have in packet for must_have in self.humidity_must_have): 
>     humidityPCT = (bme280data.humidity, 'percent', 'group_percent') 
>     converted = converter.convert(humidityPCT) 
>     for key in self.humidityKeys: 
>         packet[key] = converted[0]
>
> The first log entry indicates the BME280 data is being successfully read but 
> I suspect those three conditionals are failing somewhere and hence no BME280 
> data makes it into the packet.
>
> Gary
>
>
> On Sunday, 24 May 2020 10:15:05 UTC+10, Greg Gowins wrote:
>>
>>
>> I posted this in another thread, but figured it might be better seen if I 
>> started a new topic.
>>
>> For a while I have been running an Acurite 5-n-1 and Acurite Lightning 
>> sensor via SDR, and have a BME280 connected to the Pi, with the weewx 
>> extension from here to run it:  https://gitlab.com/wjcarpenter/bme280wx
>> .  
>>
>> I upgraded to Weewx 4  from 3.9.1 last night, and everything seems to be 
>> running ok except for weewx processing the data from the BME280.   When I 
>> see it process, it appears to be trying to put the BME280 data into fields 
>> for the lightning meter:
>>
>> May 23 10:02:13 weatherstation weewxd: bme280: BME280 data 
>> compensated_reading(id=6e6ccd6e-39bd-42bb-8648-d9e1e855719c, 
>> timestamp=2020-05-23 10:02:13.100774, temp=27.089 °C, pressure=977.55 hPa, 
>> humidity=42.11 % rH)
>> May 23 10:02:13 weatherstation weewxd: bme280: {u'distance': 0, 
>> u'lastStrikeTime': 1590246128, u'strikes_total': 15, u'strikes': 0, 
>> 'dateTime': 1590246128, 'usUnits': 1}
>> May 23 10:02:13 weatherstation weewxd: sdr: MainThread: 
>> packet={u'distance': 0, u'lastStrikeTime': 1590246128, 'dateTime': 
>> 1590246128, 'usUnits': 1, u'strikes_total': 15}
>> May 23 10:02:13 weatherstation weewx[593] INFO weewx.restx: MQTT: 
>> Published record 2020-05-23 10:02:08 CDT (1590246128)
>>
>> It appears that somehow the barometric pressure info is making it into 
>> the processing engine, as I'm getting barometric pressure successfully 
>> calculated and displayed via Belchertown.  But the inTemp in the DB isn't 
>> being populated from the BME280 so obviously no data displayed.  Any clue 
>> on where to look for troubleshooting this one?  When I upgraded weewx to 4, 
>> I used the existing weewx.conf.  I looked through the weewx.conf-4.0.0 to 
>> to see if anything jumped out, but nothing did.  Any info is appreciated.  
>> Thanks!
>>
>> Greg
>>
>>
>>
>>
>>
>>
>>

-- 
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 weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/a70a98f6-4834-496d-b59a-10c24eb48520%40googlegroups.com.

Reply via email to