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

While the API that the binding uses will be discontinued, there will be a free low-volume API available for PWS users. But I suspect the weatherunderground binding will need considerable rework to adapt to it.

Nice idea.

I wanted to get the data at least at the rate I’m uploading it to ambientweather.net, which is once a minute. Scraping at that rate causes issues every few days. I expect it would be fine for quite a while at a poling rate of every few minutes.

I wish there was another workaround. Whatever web serving software is running inside the Observer IP seems to have some serious issues.

I setup mine today to start some testing to see if mine is stable with this binding and scraping the live data page…

What firmware are you running? The following thread may have some helpful info about known issues with different firmware versions. The forum is a great resource to search and ask questions that are related to the ObserverIP.


I am using Firmware 2.2.5 which is not from Ambient Weather but direct from Fine Offset. I noticed that in my firmware the webpage allows you to specify the website that you send the data to. I can choose custom and then specify a server IP and port to send the PHP/ASP/JSP data to. It may be possible to redirect this data to a new Openhab binding and then it would just need some very simple decoding of the packets into sensor data. This blog has useful info and shows others have done it before…

I am having some issues with the jar downloaded from the link in the first post of this thread:

  • When I setup the channel outdoor_temp it updates fine but it places degrees F after the number. I use Celcius here and the number is in Celcius when looking in paperUI, so the label that gets added after the number is confusing as the number does not match the label.

Suggest you make a change in this file and this section…


    <channel-type id="temp_chan_outdoor">
        <label>Outdoor Temperature</label>
        <description>Current Temperature Outdoor</description>
        <state pattern="%.1f °F" readOnly="true"/>
  • I also can not get the binding to accept a different update rate. Any ideas? when I save any value other than 60 it reverts back to 60.

  • Suggest you change the <category>Thermostat</category> to be more correct as there are Humidity
    Temperature categories that closer match the channels. See this link…

EDIT: In case it helps others to view more details in your logs use this in the Openhab console

log:set TRACE org.openhab.binding.ambientweather1400ip

I’m on the latest. v4.5.1. But, I’ve also tried earlier versions, as well.

The problem also is described here/

I saw that, and considered it. But, in addition to my WS-1401-IP, I also want the data from my WS-8482, which I use to measure conditions in my garden (hoping soil moisture sensor will be available soon).

The easiest way to get timely data from both devices is to use the API to get the real-time event stream from ambientweather.net.

I reported this further up in this thread. The binding currently does not update the thing config when a parameter value is changed. You could manually change it in the jsondb. You need to stop OH before making the change or your edit will be lost.

True. The binding also could implement UoM, which let’s the framework take care of the unit conversion based on the locale.

I found and fixed a bug that stops the channels updating, due to the thing being offline when it updates the channels for the first time and hence you had to wait for a value to change to finally get shown. With rain not occurring every day this was a big issue as channels had zero values after a restart… Bug is now fixed and few other changes have been made, works great.

I have now been scraping for 24 hours scraping at 60 second intervals, and then a further 36 hours scraping at 20 seconds apart. No stability issues seen and it takes 380ms to fetch the livedata even after days I have not seen the value rise. Going to look at adding the ability to restart the hardware via the binding and then I can share the JAR with anyone wanting to help test the new changes.

New JAR file can be downloaded here and should work with any weather station that has an IP Observer.

Weather stations that should work are:
WS-2902A (if you add on the ip Observer)
WH-2950 (if you add on the ip Observer)
Plus any others that come with the IP Observer

You can add an IP Observers onto your setup if your outdoor unit is compatible and still keep your normal screen working at the same time.

To upgrade you need to remove the old Jar and place this one into the addons folder (after unzipping). Then remove any old ‘things’ and re-add the weatherstation ‘thing’ using PaperUI or the textual config at bottom of this post.

Quick list of changes are:

  • UV index channel fix.
  • Now waits until unit is ONLINE before trying to update channels which was causing missing info.
  • Can reboot the unit manually via a switch, or using an openhab rule, or also it is possible to auto reboot.
  • Displays the web delay when fetching the livedata.
  • Refresh time is now easily changed.
  • Should be easier to run ‘mvn clean install’ with less errors and warnings.
  • Removed unit labels as these can be added easily by user by adding labels in sitemap or item definitions.
  • Timestamp of last update scraped from livedata.

Please contact me so I can provide the changes to the code I have made. A big thank you for making this binding.

@mhilbush Thanks for helping with the url for doing a reboot.

Since you have the original binding working it would be great if you could test these changes.

Binding Configuration


Thing ambientweather1400ip:weatherstation:Weather1 [hostname="", autoReboot=5000, scanrate=20]


Number WeatherOutdoorTemp "Outdoor Temp (°C)" {channel="ambientweather1400ip:weatherstation:Weather1:outdoor_temp"}
Number WeatherOutdoorHumidity "Outdoor Humidity" {channel="ambientweather1400ip:weatherstation:Weather1:outdoor_humidity"}
Number WeatherWindDir "Wind Direction" {channel="ambientweather1400ip:weatherstation:Weather1:wind_direction"}
Number WeatherWindSpeed "Wind Speed" {channel="ambientweather1400ip:weatherstation:Weather1:wind_speed"}
Number WeatherWindGust "Wind Gust" {channel="ambientweather1400ip:weatherstation:Weather1:wind_gust"}
Number WeatherSolarRad "Solar Radiation" {channel="ambientweather1400ip:weatherstation:Weather1:solar_radiation"}
Number WeatherUV "UV" {channel="ambientweather1400ip:weatherstation:Weather1:uv"}
Number WeatherUVIndex "UV Index" {channel="ambientweather1400ip:weatherstation:Weather1:uvi"}
Number WeatherRainHourly "Rain Hourly (mm)" {channel="ambientweather1400ip:weatherstation:Weather1:hourly_rain"}
Number WeatherRainDaily "Rain Last 24 hours (mm)" {channel="ambientweather1400ip:weatherstation:Weather1:daily_rain"}
Number WeatherRainWeekly "Rain this week (mm)" {channel="ambientweather1400ip:weatherstation:Weather1:weekly_rain"}
Number WeatherRainMonthly "Rain this month (mm)" {channel="ambientweather1400ip:weatherstation:Weather1:monthly_rain"}
Number WeatherRainYearly "Rain this year (mm)" {channel="ambientweather1400ip:weatherstation:Weather1:yearly_rain"}
String WeatherBatteryOut "Battery Status" {channel="ambientweather1400ip:weatherstation:Weather1:battery_out"}
Number WeatherResponse "Response (ms)" {channel="ambientweather1400ip:weatherstation:Weather1:web_response"}
Switch WeatherReboot "Reboot Station" {channel="ambientweather1400ip:weatherstation:Weather1:reboot"}
String WeatherTime "Time of last update" {channel="ambientweather1400ip:weatherstation:Weather1:receiver_time"}


	Text label="WeatherStation" icon="rain"{
		Default item=WeatherOutdoorTemp icon=temperature
		Default item=WeatherOutdoorHumidity icon=humidity
		Default item=WeatherWindDir icon=wind
		Default item=WeatherWindSpeed icon=wind
		Default item=WeatherWindGust icon=wind
		Default item=WeatherSolarRad icon=sun
		Default item=WeatherUV icon=sun
		Default item=WeatherUVIndex icon=sun
		Default item=WeatherRainHourly icon=rain
		Default item=WeatherRainDaily icon=rain
		Default item=WeatherRainWeekly icon=rain
		Default item=WeatherRainMonthly icon=rain
		Default item=WeatherRainYearly icon=rain
		Default item=WeatherBatteryOut icon=battery
		Default item=WeatherResponse icon=time
		Default item=WeatherReboot
		Default item=WeatherTime icon=time


Just a note in case you are interested. I did see the response of my ip observer go very high say 6000ms once but it has not done it in over a week. For now I suspect it was caused by two openhab instances running, one set to update every second whilst I was doing testing and developing. Since only doing an update every 20 seconds it has been great.

Thanks. It sounds like the firmware you’re using is much more stable than the version I’m using. Are there any features missing in the version you’re running compared with the version you were running from Ambient Weather? I might switch.

I have not changed firmware. Ambient weather do not make the weather stations, nor do they sell or ship outside the USA. People in other countries need to buy under different brands. I purchased an IP observer separately as a spare part with the brand Misol on it for $50 shipped to my door. So I have this weather station which sends the data to a colour screen at the same time as to the Ip Observer unit. Be sure to check the freq matches before buying as they are made in 433, 868, 915 mhz models.

Ambient weather are 915mhz
Aercus (sold in the UK), Pantech and Misol are all 433mhz


The outdoor units only send RF blindly so you can have unlimited indoor units listening to the 1 outdoor unit. If you suspect your hardware has bad flash or ram possibly causing unstability then buying another Ip Observer as a spare part is pretty cheap and would allow you to keep the firmware stock on one whilst playing with a second.

My firmware version has a custom upload feature which does not appear to work. I cannot enter in the URL to the ambient weather website as it appears to have a character limit and I cannot enter the full url. It cuts the URL short. So I tried to enter in a local IP address which fits, but my router logs show that the weather station does not attempt to send packets to the IP I gave it. This would mean you would need to capture and re-direct the packets headed to WU to resend them to your desired URL.

I do not know who writes the firmware and which version Ambient possibly split off from the version I have. It is possible that Ambients is split from an older version and since they made so many customisations they are vastly different to what other brands use. The weewx forum is the best place to ask what version is best.

1 Like

Hello @matt1,
can you please create another channel to include the receiver time so we know when the readings were observed ?


Done, uploaded to here

Cheers @matt1 for the quick reply and action !

Hi Guys. I have this weather station. Will this work with openhab.
And can you please summarize the topic above. What exactly I have to do with this JAR file? I am not an expert just use Paper UI and some text config file.

Yes it will if you purchase as a spare part the ip observer unit which goes for $50 as a spare part. Be aware that they make them in three frequencies so get the same brand so it works. I run a screen like yours with the same outdoor unit and use an up observer at the same time. Works great and have had no issues since I moved to the ip observer as my screen would stop uploading to the cloud all the time.

Just changed from the version 2.2.2 to the SNAPSHOT 2.5 and everything works perfectly! Thank you for the work.

I am using it with an AmibentWeather WS-1550-IP.

One question though, is it possible to change the format of the “Time of last update”? I would like to display h:m D/M/Y (not M/D/Y)

What is the reason of this module? I can reach the inside screen through the local network with a desktop app so I think it has some web server capability. but I am not an network expert

New Firmware of the observer ip Gateway Support 8 indoor Sensors… Anybody tried that?

Actually I think my inside unit works same as the ip observer, because collects display thedata and sends to wundergroud servers

The screens usually do not work for this address which the binding uses to scrape the data locally before it leaves your network.

The advantage is this will work if your internet connection goes down which is highly likely during a storm, if you want reliable weather data in a storm then I would purchase the extra box and do this method. As mentioned the screen will still fully work at the same time as the IP box, they can work in parallel.

Sold separately here but be aware different countries have different RF freq so stick to the same brand unless you check on this.

Hello @matt1
Yesterday I’ve installed your binding for my WS-1400IP and some informations doesn’t work by me. Do you know why ?

best regards