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