Unfortunately you are mistaken, ordinal_compass is not a WeeWX unit, rather it is a formatting option. The reason you are seeing the error is that WeeWX does not have any unit conversion functions defined for degree_compass units. Impossible to say much more without knowing what code you are using/changes you have made. Suffice to say that anything that attempts to explicitly or implicitly force a unit conversion from degree_compass will fail with a similar error.
Gary On Sunday, 4 June 2023 at 17:42:12 UTC+2 HoracioDos wrote: > Hello. > I connected the wind vane and the anemometer and I get readings but > mqtt uploader cancels if I set: > > [[[[windDir]]]] > name = windDir_ordinal > units= ordinal_compass > [[[[windGustDir]]]] > name = windGustDir_ordinal > units= ordinal_compass > > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** Traceback (most recent call last): > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** File "/usr/share/weewx/weewx/restx.py", line 382, in run_loop > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** self.process_record(_record, dbmanager) > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** File "/usr/share/weewx/user/mqtt.py", line 476, in > process_record > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** data = self.filter_data(record) > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** File "/usr/share/weewx/user/mqtt.py", line 455, in filter_data > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** v = weewx.units.convert(from_t, to_units)[0] > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** File "/usr/share/weewx/weewx/units.py", line 1454, in convert > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** conversion_func = conversionDict[val_t[1]][target_unit] > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] ERROR weewx.restx: > *** KeyError: 'degree_compass' > Jun 04 11:50:13 pi2weewx python3[5961]: weewx[5961] CRITICAL > weewx.restx: MQTT: Thread terminating. Reason: 'degree_compass' > > and it works fine with this config. > > [[[[windDir]]]] > name = windDir_ordinal > units= degree_compass > [[[[windGustDir]]]] > name = windGustDir_ordinal > units= degree_compass > > If I'm not mistaken, ordinal_compass is a valid unit. > Thanks! > > On Mon, May 29, 2023 at 8:53 PM gjr80 <gjrod...@gmail.com> wrote: > > > > My apologies, you said windDir and windGustDir and I read windGust and > windGustDir. Vince is exactly right; the MQTT uploader ignores fields whose > value is None. If you want to change this behaviour you need to modify the > MQTT uploader code. If you convert to ordinal compass points None values > will come back as a string 'N/A'. > > > > Gary > > > > On Monday, 29 May 2023 at 11:34:22 UTC+10 HoracioDos wrote: > >> > >> Hello Vince. > >> I think it should work if I want to convert to ordinal_compass. This a > section from ZBX-Sender plugin where windir and winGustDir values are > converted to ordinal_compass. I get "N/A" = None > >> My knowledge is quite limited to analize this problem in depth. I'm > going to connect things again and report back. > >> > >> def send_data(self, packet): > >> pu = packet.get(self.unit_system) > >> s = "" > >> f = Formatter() > >> for key,value in packet.items(): > >> if key == 'windDir': > >> vt = ValueTuple(value, 'degree_compass', 'group_direction') > >> new_value = f.to_ordinal_compass(vt) > >> elif key == 'windGustDir': > >> vt = ValueTuple(value, 'degree_compass', 'group_direction') > >> new_value = f.to_ordinal_compass(vt) > >> else: > >> new_value = str(value) > >> l=self.host + " " + self.prefix+key + " " + new_value + "\n" > >> s+=l > >> if weewx.debug >= 1: > >> logdbg(l) > >> > >> Thanks!! > >> > >> On Sunday, May 28, 2023 at 10:05:15 PM UTC-3 vince wrote: > >> > >> Kinda impossible to convert 'None' to a number. That's your issue. > >> > >> On Sunday, May 28, 2023 at 6:02:32 PM UTC-7 HoracioDos wrote: > >> > >> Hello gjr80. > >> These are loop and archive packets for a WS3080 (FineoffsetUSB driver). > I replaced batteries for the external unit today and the anemometer and the > vane are not connected right now. But measurements (winGustDir and winDir > are there) Perhaps mqqt uploader dismisses them because of their None > value, but it used to show degree_compass or ordinal_compass values. > >> > >> ........ > > > > -- > > You received this message because you are subscribed to a topic in the > Google Groups "weewx-user" group. > > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/weewx-user/kh2LOJ5b3C4/unsubscribe. > > To unsubscribe from this group and all its topics, send an email to > weewx-user+...@googlegroups.com. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/bbd793aa-1010-4bcf-b1af-81df16f0a76bn%40googlegroups.com > . > -- 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/25ac1b5d-5a5e-4228-b40d-1d6f8d772eben%40googlegroups.com.