I believe "rain" is specific in this case. I was checking raw packets
previously on my device and normally is rain "none" if it´s not raining ;)
So it depends what your device is sending to weewx.
raw packet: {'dateTime': 1642794129, 'usUnits': 1, 'rain_total': 0.0,
'barometer': 30.22, 'temperature_out': 28.7, 'dewpoint': 20.1,
'humidity_out': 69.0, 'wind_speed': 2.6, 'wind_gust': 2.6, 'wind_dir':
268.0, 'solar_radiation': 0.0, 'uv': 0.0, 'temperature_in': 70.1,
'humidity_in': 51.0, 'rain': None}
pá 3. 5. 2024 v 15:37 odesílatel Michael Frotscher <[email protected]>
napsal:
> Hmm,
> ok, so it works for "pressure", which contains data in every archive
> period and is not None.
> I've tried to substitute that with "rain", which is what I really want.
> That is usually "Null/None" in the database, but gets the amount of a
> bucket tip added to it every time that happens.
> It is fed by MQTT, which publishes the bucket amount on every tip, and
> that works. It even sums them up correctly if several bucket tips occur in
> an archive period.
>
> However, trying to retrieve that with "if event.record['rain'] != None:"
> I get a Key Error. Meaning the variable doesn't exist. Isn't every weewx
> measurement in the dictionary?
> That happens with any measurement that's in the database but normally
> "Null".
>
> I've tried to define it as Null/None in the init-part of the service
> rain = None
>
> But still get the key error.
>
> Thanks!
> On Friday, May 3, 2024 at 7:30:12 AM UTC-5 Michael Frotscher wrote:
>
>> Thanks, guys!
>> I see my mistake now. It's not about strings/floats at all, but I wrongly
>> assumed that all measurements that have values assigned to them (via LOOP
>> or whatever) would already be defined as global variables.
>> That's obviously not the case, but assigning the last value to the
>> variable via "event.record['pressure']" (as Frantisek pointed out) is
>> necessary. I'm still not sure why that needs to be in single quotes,
>> indicating a string and not a number.
>> I would have expected something like "event.record(pressure)".
>>
>> I have to admit that I have not found this in any examples out there, and
>> not in the documentation for sure.
>>
>> But it's now doing what I want.
>>
>> On Friday, May 3, 2024 at 12:16:50 AM UTC-5 František Slimařík wrote:
>>
>>> I guess you want something like this:
>>>
>>> if event.record['pressure'] != None:
>>> newpressure = (event.record['pressure'] * 10)
>>> event.record['pb'] = newpressure
>>>
>>> Dne pátek 3. května 2024 v 3:38:01 UTC+2 uživatel Tom Keffer napsal:
>>>
>>>> On Thu, May 2, 2024 at 6:32 PM Michael Frotscher <[email protected]>
>>>> wrote:
>>>>
>>>>> Here's the full code of my service:
>>>>>
>>>>>
>>>> def new_archive_packet(self, event):
>>>>>
>>>>> if 'pressure' != None:
>>>>> newpressure = ('pressure' * 10)
>>>>> event.record['pb'] = newpressure
>>>>>
>>>>
>>>>
>>>> Strictly interpreted, you first ask whether the string "'pressure'" is
>>>> equal to None. It's not, so we proceed to the next statement. Now you're
>>>> trying to multiply a string ('pressure') by 10. Surprisingly, this will
>>>> succeed, but likely does not give you the results you expect. The variable
>>>> "newpressure" will actually be set to the string
>>>> 'pressurepressurepressurepressurepressurepressurepressurepressurepressurepressure'.
>>>> That is, the string 'pressure' concatenated 10 times.
>>>>
>>>> You want a *variable* pressure, not the literal string 'pressure'.
>>>> Where will it come from?
>>>>
>>>> I would suggest taking an online Python course if this is unfamiliar to
>>>> you.
>>>>
>>>> -tk
>>>>
>>>>
>>>> --
> You received this message because you are subscribed to the Google Groups
> "weewx-development" 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-development/8a2868e8-7f39-4038-acd5-c783572e2226n%40googlegroups.com
> <https://groups.google.com/d/msgid/weewx-development/8a2868e8-7f39-4038-acd5-c783572e2226n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
--
You received this message because you are subscribed to the Google Groups
"weewx-development" 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-development/CAPXATBUNs8YCFnbHTxOdhUrvv9OqJXGwQvNMhQhKgLF6EzmnNw%40mail.gmail.com.