¿ªÔÆÌåÓý

Re: Weewx to Direwolf


 

¿ªÔÆÌåÓý

Greg,

Awesome! ?Thanks, that is something I can Siri with. That makes great sense, no humidity - not a good packet! ?I¡¯ll chew on this and get to work.

Thanks again!

11 Max Pro

On Sep 28, 2021, at 4:39 PM, Greg D <ko6th.greg@...> wrote:

? Found the cwxn.py code that I hacked...? It's an older version (# $Id: cwxn.py 1280 2015-03-01 17:01:56Z mwall $), but perhaps still relevant.? Both changes - null records and format change - were all in the write_data routine, at the bottom of the source file.? Warning:? this was done before I knew anything about writing in Python, so there will be better / cleaner ways to do this.

Basically, I noticed that all of the bad records had a zero value for humidity in common.? Since a truly zero humidity is effectively impossible, I used that as the key for skipping writing the data.? The formatting issue was that humidity wasn't being handled right as a 2-digit number, so my D74 wasn't decoding it properly.?

I just noticed that a true 100% humidity would get rejected too, as it is represented as zero in the output, so my two fixes are kind of broken when taken together.? {sigh}? We hardly ever get 100% humidity here, so it hasn't exactly been a problem.? Wish it were (we need the rain!).? With those excuses, here's the snippet of code:
?def write_data(self, data):
??????? fields = []
??????? fields.append("%03d" % int(data['windDir']))
??????? fields.append("/%03d" % int(data['windSpeed']))
??????? fields.append("g%03d" % int(data['windGust']))
??????? fields.append("t%03d" % int(data['outTemp']))
??????? fields.append("r%03d" % int(data['hourRain'] * 100))
??????? fields.append("p%03d" % int(data['rain24'] * 100))
??????? fields.append("P%03d" % int(data['dayRain'] * 100))
??????? if data['outHumidity'] < 0 or 100 <= data['outHumidity']:
??????????? data['outHumidity'] = 0
??????? # 2-15-2019 changed humidity format to 2 digits, per spec and for Kenwood D74 compatibility
??????? fields.append("h%02d" % int(data['outHumidity']))
??????? fields.append("b%05d" % int(data['barometer'] * 10))
??????? if data['outHumidity'] > 0:
??? ??? with open(self.filename, 'w') as f:
??????????????? f.write(time.strftime("%b %d %Y %H:%M\n",
??? ??? ??? time.localtime(data['dateTime'])))
??????????????? f.write(''.join(fields))
??????????????? f.write("\n")
Hope this helps, and apologies for the kludge,

Greg? KO6TH


J K via groups.io wrote:
Hello,

Yes, all the logs look clean. ? I looked at all the syslogs, messages, kernel messages, etc, and nothing stands out. Sure, I wouldn¡¯t mind liking at your .py if you have it to see how you blocked the ones that didn¡¯t decode properly. Roughly half of the writes to wxnow aren¡¯t decoding properly, leaving 0¡¯s as values, which is causing a ¡°zigsaw¡± chart pattern. ?I¡¯m using Weewx 4.4, cwxn 0.6, and an Acurite 02064. ?Everything decodes properly for my weewx page, WU, CWOPS, etc, just doesn¡¯t get written correctly as wxnow.txt half the time by cwxn. ?I double and triple checked to make sure it wasn¡¯t from sharing a directory, trying both samba and nfs, but the share is fine, it¡¯s just not writing correctly half the time which I can monitor locally to the actual directory wxnow.txt gets saved to my cwxn. ?Thought for a second maybe it was just the RPi1B that weewx/cwxn is on just isn¡¯t fast enough, but it should be (?). ?The DireWolf and the radio itself is running on a RPi4(8GB), so that obviously fine. ?It¡¯s not being used really for anything else (yet), but one the APRS stuff is fully working, probably will use it as a SDR server too with a RTL-SDR V3, Ham-It-Up upconverter, etc. ?Have another RPi4 (4GB) with 10¡± touchscreen that I mainly use as a portable device to run CubicSDR, Xastir, etc. ?If weewx/cwxn really needs more resources, have a few extra RPi3B+¡¯s nor doing much that could be used. ?I just thought since I had a RPi1B still sitting around (first RPi I got), it¡¯s be an ok fit. ?Have more RPi¡¯s total now than I can remember and count, lll. ?Using them for all sorts of things: Kodi/Retropie for each TV, WX, ADS-B, a few AllStar nodes, SDR, PiHole, Printer server, DNS/email servers, bunch of mmdvm¡¯s, etc, etc. ?

Just at a loft why cwxn isn¡¯t decoding half the time, so sure, if your .py is conveniently by, wouldn¡¯t mind taking a look. ?Maybe cwxn just doesn¡¯t like certain Acurites (?). ?No idea, but weewx is running great. ?I have two receivers/displays for the sensor, one sends to MyAcurite and other is fir weewx.

Thanks!


11 Max Pro

On Sep 27, 2021, at 8:06 PM, Greg D <ko6th.greg@...> wrote:

?With my Acurite station, I had to filter out (not write to wxnow.txt) the bad records. I tested for humidity=0 as the indicator. I also fixed a small formatting bug with something else, where the telemetry wouldn't decode properly on my Kenwood TH-D74. I forget what it was, though. Possibly humidity of 100% or something like that. The field didn't fit.

I can probably find the source file, if needed. Let me know.

Greg KO6TH

On September 27, 2021 12:34:06 PM PDT, Travis Bully <tbully@...> wrote:
How do your Weewx logs (in debug) look?? It's been awhile since I've looked at the code but I think all the plugin does is query the database for the last readings from your weather station.? I'm wondering if you're not getting consistent data from your sensors.



On Mon, Sep 27, 2021 at 3:31 PM J K via <kuhnje=[email protected]> wrote:
I¡¯ve tried everything I could think of and still getting charts that look like a zigsaw.? I¡¯m wondering now if it just isn¡¯t creating the wxnow file fast enough.? Using just my original RPi1B for weewx since I thought it would be an ok fit as didn¡¯t anticipate it really needing a lot of resources.? I have a few RPi3B+¡¯s I guess could switch it to one of them and have a ton of RPi0W¡¯s, but it doesn¡¯t seem like it would need to much resource to just run weewx and cwnx (?).? That¡¯s the only thing I can thing of trying now.





-- This space for rent...

Join [email protected] to automatically receive all group messages.