Weather Monitor II and wdisplay

I’m not running on a raspi, I’m using consolewd64desktop.tar.gz, which should be for 64 bit desktops, right? Anyway, I figured it out. The problem is when you do a ‘sudo consolewd’ in the script. That wipes away any changes you made to LD_LIBRARY_PATH. If you just run ‘./consolewd’ it works… kinda;
Now to the next problem. If you get beyond that point, you’ll get an error for libusb. It appears that the program is still 32 bit, so it will fail because libusb-dev installs the 64 bit versions of the library. You can do this to fix that problem on ubuntu:
sudo apt-get install libusb-0.1-4:i386

Now I’m stuck with this error:
owner@owner-ThinkPad-X131e:~/consolewdfiles$ ./consolewd
./consolewd: error while loading shared libraries: libhid.so.0: wrong ELF class: ELFCLASS64

That’s because all I have are 64 bit x86 and ARM versions of this library (the later was from when I installed the wrong Raspi version.):

/usr/lib/libhid.so.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=918916164d292d242056269f94b3551f308d7b4c, not stripped
/usr/lib/libhid.so.0.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=106c85678eaf51586d8bfe8930f6aa2e274cd53f, not stripped

Does anyone have the 32 bit x86 version of this library or can tell me where the repo might be. Doing an ‘apt-get install libhid (libhid0,libhid-dev,libhid0-dev…)’ show that there are no packages for it. The 64 bit version’s on my system, so something had to load it at some point.

I will re check the code for the desktop gui 64 bit version too for Davis WMII

I was able to find the source to lihid.so and tried to build a 32 bit version. Unfortunately all I have is a 64 bit machine and when you do a ‘configure’ to build the makefiles, it assumes the architecture of the machine you’re running on. I’ve tried to force it to compile and load 32 bit, but I’ve had no luck.
If you have a x86_64 architecture available and can recompile your code so that consolewd64desktop.tar.gz has 64 bit rather than 32 bit binaries, that would be the far easier route.

I was able to get the lihid library to compile. I had to ‘hand walk’ the build by typing in the correct i386 library locations into the command that failed. For some reason that I was never able to understand, it kept wanting to add a ‘-L/usr//lib/x64’ into the linking rather than the 32 bit . I had to install the 32 bit version of libusb.a, which removed my 64 bit version. When I got the library built, I switched it back. Anyway, I am getting data, but it;s not right:

Current data : Temperature= 30.2 Windspeed =0.0 Gustspeed =2.0 Direction =0 Humidity=100 Barometer=31.5 Daily Rain=0.0

Some of the data looks more or less right. Temperature is wrong, even if it was Celsius (checked the config, it was not) and bounces between 30 and 80. LIkewise Humidity bounces between 100 and something like 15

its not clear what version you are now running to get data?

consolewd64desktop.tar.gz
Listed on the site as “Weather Display for Linux console 64 bit Linux desktop Version on 27 May 2019 - 22:12:35”

OK, so its working a bit…but getting out of sync by the sounds of it
I will check the code
and check on library files too

re the 32/64 bit of the deploy files
using
objdump -f libcom.so | grep ^architecture

says its 64 bit (and same with all the other library files in the deploy folder

That’s at least not what I’m seeing:
wner@owner-ThinkPad-X131e:~/consolewdfiles/deploy$ file libcom.so
libcom.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
owner@owner-ThinkPad-X131e:~/consolewdfiles/deploy$ objdump -f libcom.so | grep ^architecture
architecture: i386, flags 0x00000150:

Okay, redownloaded again and I concur that it’s 64 bit and the libs are 64 bit. it’s running, but there still seems to be a couple of issues:

ser_read : Entering
ser_read error Resource temporarily unavailable
Read size -1 :
ser_read : Exiting
Write size 7 : 4c 4f 4f 50 ff ff 0d
ser_read : Entering
Read size 19 : 06 01 fe 02 25 03 00 5f 00 bb 4e 30 7b 4f 04 00 00 48 bc
ser_read : Exiting
*****Received count = -----------------------------> 19
WMII Data OK
Current data 10:20:41: Temperature= 78.7 Windspeed =0.0 Gustspeed =0.0 Direction =95 Humidity=100 Barometer=29.9 Daily Rain=0.0 Rain Rate 0.0mm/min
ser_read : Entering
ser_read error Resource temporarily unavailable

The temperature is close at least, the monitor console shows 80. The humidity is way off (45% on the consoe). I’m not sure if the “error Resource temporarily Unavailable” is a feature of debug or not. I’m getting a lot of them, but the code is writing and getting data back

re the humidity
check what you have set as the humidity offset maybe in the config.txt?

I could add some debug code around that

Nope. No offset at all. There’s one for Barometric pressure (set to 0), but none for Humidity

I will add some debug code…

done that
try a new update download

I don’t really see any change:
er_read : Exiting
Write size 7 : 4c 4f 4f 50 ff ff 0d
ser_read : Entering
Read size 19 : 06 01 f5 02 1b 03 00 07 01 a8 4d 35 65 60 04 00 00 32 c5
ser_read : Exiting
*****Received count = -----------------------------> 19
WMII Data OK
Current data 09:12:27: Temperature= 77.7 Windspeed =0.0 Gustspeed =0.0 Direction =263 Humidity=100 Barometer=29.9 Daily Rain=0.0 Rain Rate 0.0mm/min
ser_read : Entering
ser_read error Resource temporarily unavailable
Read size -1 :
ser_read : Exiting

it should say in the debug window about the raw humidity
are you sure you have downloaded the latest consolewd64desktop version?
i.e check the modified date/time on the consolewd program to see if its like recent

I downloaded the consolewd64desktop.tar.gz that was changed yesterday and verified that the checksum is the same as what I’m running:
owner@owner-ThinkPad-X131e:~/Downloads$ sum consolewdfiles/consolewd
52491 2010
owner@owner-ThinkPad-X131e:~/Downloads$ cd ~/consolewdfiles
owner@owner-ThinkPad-X131e:~/consolewdfiles$ sum consolewd
52491 2010
owner@owner-ThinkPad-X131e:~/consolewdfiles$ ./consolewd | grep -i hum
Current data 16:07:06: Temperature= 87.4 Windspeed =0.0 Gustspeed =2.0 Direction =261 Humidity=66 Barometer=29.9 Daily Rain
Current data 16:08:18: Temperature= 87.4 Windspeed =2.0 Gustspeed =1.0 Direction =167 Humidity=65 Barometer=29.9 Daily Rain

Although now the humidity looks more or less right. It was still reading 100 earlier.

Let me let it run for a while and see if it’s working now

lol, posted too soon. Now I’m getting weird results again. If you called it something like “raw humidity”, I should be seeing the line though

Current data 16:11:44: Temperature= 87.3 Windspeed =1.8 Gustspeed =1.0 Direction =0 Humidity=1 Barometer=29.9 Daily Rain=0.0 Rain Rate 0.0mm/min
Current data 16:12:05: Temperature= 87.3 Windspeed =1.3 Gustspeed =0.0 Direction =0 Humidity=100 Barometer=29.9 Daily Rain=0.0 Rain Rate 0.0mm/min
Read size 1 : 06 6:12:12: Temperature= 87.3 Windspeed =0.9 Gustspeed =80.0 Direction =0 Humidity=0 Barometer=29.9 Daily Rain=0.0 Rain Rate 0.0mm/min
Current data 16:12:46: Temperature= 87.4 Windspeed =80.0 Gustspeed =0.0 Direction =238 Humidity=67 Barometer=29.9 Daily Rain=0.0 Rain Rate 0.0mm/min
Current data 16:13:50: Temperature= 87.4 Windspeed =0.0 Gustspeed =1.0 Direction =0 Humidity=0 Barometer=29.9 Daily Rain=0.0 Rain Rate 0.0mm/min
Current data 16:14:03: Temperature= 87.4 Windspeed =0.4 Gustspeed =1.0 Direction =259 Humidity=67 Barometer=29.9 Da

no need to look for it
it should be coming out in the console data
*debug outdoor hum

have you checked the actual modified date/time on the consolewd file