I filed an issue for the record-is-None-problem there: #583 <https://github.com/poblabs/weewx-belchertown/issues/583>
Karen K schrieb am Donnerstag, 18. Februar 2021 um 21:42:24 UTC+1: > Hi Tom, you are right. I changed the code that it returns the last value > if record is None, and immediately Belchertown skin shows the value. > > I considered your comments about dangers by comparing the timestamp of the > last value with the actual time time.time(). If the value is too old an > error is raised rather than a value returned. And I let the program > complain to the log, that record is None. > > Skin with included GTS value <https://www.woellsdorf-wetter.de> > Tom Keffer schrieb am Donnerstag, 18. Februar 2021 um 19:25:48 UTC+1: > >> That's one solution, but it has lots of dangers. The record could be >> hours old. >> >> NB: if you want to do that, it's easy enough to code up a custom version >> of get_scalar() that does this. If it detects a record of None, it gets the >> latest record from the database, then calls weewx.xtypes.get_scalar() with >> that. >> >> >> On Thu, Feb 18, 2021 at 10:18 AM Karen K <[email protected]> wrote: >> >>> Thank you for your extensive support! >>> >>> Could it be, that get_scalar() in other classes (especially in the >>> basic ones) simply provide the last available value, if record is None? >>> >>> I could code it that way, but I am not sure, whether it is a good idea >>> or not. >>> >>> Tom Keffer schrieb am Donnerstag, 18. Februar 2021 um 17:51:45 UTC+1: >>> >>>> Hi, Karen. Looks like you are making steady progress. >>>> >>>> This is a bug in the Belchertown skin that I alluded to in another >>>> thread >>>> <https://groups.google.com/g/weewx-user/c/fKVxr07vMuE/m/I-PdDb7vBgAJ>. >>>> >>>> In a convoluted way, the skin is asking for a value from xtypes using >>>> the call >>>> >>>> xtype.get_scalar(obs_type, record, db_manager) >>>> >>>> >>>> (Side note: the actual request is done through a getattr() query of a >>>> weewx.tags.CurrentObj object). >>>> >>>> Unfortunately, the value for record as provided by the Belchertown >>>> skin is None. In theory, the xtypes extension could look up the values it >>>> needs from the database, but that would require knowing the time, but with >>>> record equal to None, that's not possible either. >>>> >>>> The Belchertown skin needs to provide the current record. >>>> >>>> >>>> >>>> >>>> >>>> On Thu, Feb 18, 2021 at 8:39 AM Karen K <[email protected]> wrote: >>>> >>>>> My XType extension is working in principle now. It calculates, and it >>>>> delivers values, if there is $current.GTS, $latest.GTS, $day.GTS or >>>>> $yesterday.GTS included in the skin definition. Also, images are >>>>> generated showing the value over time. All is fine so far. >>>>> >>>>> Then I included the value in the Belchertown skin observation list. >>>>> And I got an error message. It turned out, that it is possible that >>>>> get_scalar() is called with *record is None*. From documentation I >>>>> thought otherwise. That was confusing. >>>>> >>>>> As I included "if record is None: raise >>>>> weewx.CannotCalculate(obs_type)" into get_scalar() no error message >>>>> was logged any more. But no value was displayed in Belchertown skin. >>>>> Again: >>>>> if I include "$current.GTS" into the skin, the value is displayed. If >>>>> I include the value in the observation list in skin.conf, it is not. I >>>>> looked around and found out that Belchertown skin gets the value from >>>>> calling weewx.tags.CurrentObj()within their special extension >>>>> "belchertown.py" That seems to not include GTS value. >>>>> >>>>> So I am not sure what to do next. >>>>> >>>>> -- >>>>> >>>> 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/bf89f27d-abb4-4943-a2a9-e3ffbf1a8606n%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/weewx-development/bf89f27d-abb4-4943-a2a9-e3ffbf1a8606n%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/4caf593c-5f43-4c21-bb44-37867f803e52n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/weewx-development/4caf593c-5f43-4c21-bb44-37867f803e52n%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/534949a8-f4f1-4cb0-b0fa-66288742f1fcn%40googlegroups.com.
