[New Binding] Ambient Weather WS-1400IP weather station

Try the new build just uploaded and please report back if it works.

Tanks!

It works like a charm!

Now you can add my Renkforce WH2600 weather station to the compatibility list.

Best regards Ola

Perhaps I was to quick before… Everything works fine, but I get an error in my log about some “null conversion”…

Do you know what it is? Or how I can find out?

I have attached the error…

BR Ola

error.txt (32.7 KB)

I believe it is to do with units of measure trying to convert the temperature values to your local units. Null means no value yet, and if you ignore the error it will go away at least in my system it does. I have not seen it in a while and thought I had fixed it.
You may be able to narrow it down by not linking channels that you don’t use or come back with no value.
It may be related to the value sometime being a dash - when it is meant to be a number.

If you work it out please post as I just ignore and have not had that once in months now.

@matt1
I still have the nul conversion problem… And while digging into the problem I have noticed somthing intresting…
My WH2600 somtimes report “”. I have once got an “live data page” without values in the browser, but just after a second it did filled out.

My guess is that this may happen if the “live data page” is requested while it’s created. I have seen if I do a little script that fetch the page often I get this empty pages “rather regulary”

My guess is that the binding get empty values, which in turn is translated to NULL. When this then goes to the %f format it fails.

What do you think?
Is there any possability that if you get an empty/NULL value that you skip the conversion?

You see it quite clear when combinding the event and error logs…
Here is one example, but it happens on all channels…

==> /var/log/openhab2/events.log <==
2020-04-14 16:55:22.016 [vent.ItemStateChangedEvent] - WeatherIndoorHumidity changed from 33 to NULL

==> /var/log/openhab2/openhab.log <==
2020-04-14 16:55:22.017 [ERROR] [nternal.items.ItemStateConverterImpl] - A conversion of null was requested:
java.lang.IllegalArgumentException: State must not be null.
	at org.eclipse.smarthome.core.internal.items.ItemStateConverterImpl.convertToAcceptedState(ItemStateConverterImpl.java:58) [bundleFile:?]
	at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.sendUpdate(ProfileCallbackImpl.java:134) [bundleFile:?]
	at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onStateUpdateFromHandler(SystemDefaultProfile.java:53) [bundleFile:?]
	at org.eclipse.smarthome.core.thing.internal.CommunicationManager.lambda$9(CommunicationManager.java:467) [bundleFile:?]
	at org.eclipse.smarthome.core.thing.internal.CommunicationManager.lambda$11(CommunicationManager.java:487) [bundleFile:?]
	at java.lang.Iterable.forEach(Iterable.java:75) [?:?]
	at org.eclipse.smarthome.core.thing.internal.CommunicationManager.handleCallFromHandler(CommunicationManager.java:483) [bundleFile:?]
	at org.eclipse.smarthome.core.thing.internal.CommunicationManager.stateUpdated(CommunicationManager.java:465) [bundleFile:?]
	at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl$1.stateUpdated(ThingManagerImpl.java:168) [bundleFile:?]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateState(BaseThingHandler.java:245) [bundleFile:?]
	at org.openhab.binding.ambientweather1400ip.handler.AmbientWeather1400IPHandler.access$0(AmbientWeather1400IPHandler.java:1) [bundleFile:?]
	at org.openhab.binding.ambientweather1400ip.handler.AmbientWeather1400IPHandler$UpdateHandler.processMessage(AmbientWeather1400IPHandler.java:82) [bundleFile:?]
	at org.openhab.binding.ambientweather1400ip.handler.AmbientWeather1400IPHandler.parseAndUpdate(AmbientWeather1400IPHandler.java:249) [bundleFile:?]
	at org.openhab.binding.ambientweather1400ip.handler.AmbientWeather1400IPHandler.access$5(AmbientWeather1400IPHandler.java:235) [bundleFile:?]
	at org.openhab.binding.ambientweather1400ip.handler.AmbientWeather1400IPHandler$1.run(AmbientWeather1400IPHandler.java:107) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:834) [?:?]

I have been working on that the past few months and a change i made a few days ago looks promising just doing some tests on it as I did not write the original code I need to test longer to look for negative effects. I believe it is multiple things including a dash - that can cause issues when a number is expected.

Great!
If you need someone to help you testing, just give me a buzz!

BR

Ola

New build is uploaded and has less debug logging to make it more streamlined and fingers crossed wont give the null conversion messages.

@OlaE
EDIT:
After four days of use this has not appeared once, so I’m calling it fixed. I am seeing a single line error showing connection issues are occurring around the same frequency I was getting the messages, so I suspect that was the cause on my setup.

I think this explains the null conversions and also the connection timeout and refused messages. Depending on when the page is requested it may still trigger an error and thankfully it is a single line and not very often. Just ignore these unless you wish to change firmwares as an experiment.

If someone finds that they occur too often then please post HOW OFTEN they occur ON AVERAGE and only after you have first tried a different poll time.

First day I got 16 errors and weirdly they were very evenly 20 minutes apart.
Next day I only got 3.
Next two days I got no errors at all.

It is probably a timing issue so a different poll time may cause it to not line up when the page is updating.

When I install this addon (to OpenHAB 2.5.4) it appears in the PaperUI “Bindings” list, but no “Supported Things” are listed, so I’n not able to add a Thing using the binding.

I did have a previous version installed early this year; it’s possible there are remnants of it left behind somewhere in the system, could that cause the issue?

Clear the openhab cache (search forum for how) and then do three reboots ignoring any errors till the reboots are done. That has never been a know bug so the above is worth doing and may be the cause.

That worked, thank you!

Is this Weather Stations giving alert of immediate rain?

No, at least mine. What it gives you is the amount of rain over several time periods. Last hour, last 24h… The sensor is a paddle.
A rain sensor to react immediately is something different. Those work usually by measuring the electrolytic impedance and cannot tell you the amount of rain…

Hello, some days ago I got a Waldbeck Halley weather station, which includes an Ip observer and just looks exactly like an Ambient Weather WS-1550-IP. I’ve connected it to my local WiFi using WS View Android APP and set an static IP in my router with no problems.

I can see the live data in WS View and it seems just fine, but I cannot connect to it using the binding in Openhab. It keeps showing the device as “offline”. I’ve been reading this whole thread, and I’ve discovered I can’t access the URL where the live data should be found (http://my.local.ip/livedata.htm). It seems like there wasn’t a web server at that IP at all.

Does anybody have any clue?

I have realized my weather station and the Ambient one look alike, but my “ip observer” seems to be WiFi while Ambient’s is a different wired version. And apparently my WH2650 can’t be accesed via web, so if you’re planning on using this binding, avoid that station…

Good to know but you should be able to buy a wired version forn$50 and use that. There are three rf models so be sure to check u buy the right one.

I keep researching and I found out with my unit I can set a customized URL where the device sends the live data, so I’m going to try to replicate the livedata.html in my web server and feed this binding from there. Could anybody show me an ip observer “livedata” file sample so I can compose my own? Thanks in advance.

Attached a file retreived via “show page source code” as htm and renamed to txt
livedata_srccode.txt (12.4 KB)

Thank you very much, I’ll give it a try and tell you the outcome in case it can be useful to anybody else.

So I have written a PHP script where my station sends updates in ecowitt format, and it updates a livedata.htm in the root of my apache home server replicating the same html structure maxico posted up there. I’ve pointed the binding to the server ip and it works like a charm, thanks for your help!