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

I am missing the “daily gust” as possible channel here :-/

in my RegEx I had 3 different “winds”

Number LOCALWEATHER_avgwind "Windgeschwindigkeit  [%s km/h]" <temperature> { http="<[WeatherObserverCache:5001:REGEX(.*?avgwind.*?value=\"([0-9]*.[0-9]*)\".*)]" }
Number LOCALWEATHER_gustspeed "Windböe  [%s km/h]" <temperature> { http="<[WeatherObserverCache:5001:REGEX(.*?gustspeed.*?value=\"([0-9]*.[0-9]*)\".*)]" }
Number LOCALWEATHER_dailygust "Stärkste Windböe Heute [%s km/h]" <temperature> { http="<[WeatherObserverCache:5001:REGEX(.*?dailygust.*?value=\"([0-9]*.[0-9]*)\".*)]" }

like on the devices page:

I can confirm that mine does NOT have the max daily gust. What brand is yours and what version is shown at this link? Mine is 2.2.5

http://192.168.xx.xx/livedata.htm

It is very easy to add it if you show a small section of the file returned from that link. Use inspect source or save and open the file in a text editor. I’m too busy to add it but you can compare what I changed to add the Last updated time channel. Need to edit 3 files and compile.

HI @matt1
I currently have 4.4.7
Mine was labeled Renkforce… however you can actually always flash the official firmware to any brand. https://ambientweather.net/help/observerip-firmware-update/

Just “Ambientweather Cloud Services” do not work as they recognize and block OEM labeled devices. (I asked them.)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>LiveData</title>
        <link href="axcss0.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
                <td colspan="2" align="right" bgcolor="#0088F7">&nbsp;</td>
            </tr>
            <tr>
                <td colspan="2" bgcolor="#FFFFFF"><table border="0" cellpadding="0" cellspacing="0">
                        <tr>
                            <td width="20" height = "80">&nbsp;</td>                                             
                            <td ><img src="img/1.jpg" width="74" height="80" ></td>
							<td width="10">&nbsp;</td>
                           	<td class="txtstyle_1" >AmbientWeather 4.4.7</td>                                   
                        </tr>
                </table></td>
            </tr>
            <tr> 
                <td colspan="2" align="right" bgcolor="#60B7FF">&nbsp;</td>
            </tr>
            <tr>
                <td colspan="2" align="left" bgcolor="#C0C0C0">
                    <table width="20" border="0" cellpadding="0" cellspacing="0">
                        <tr>
                            <td bgcolor="#C0C0C0"><div class="menuitem_1"><a href="bscsetting.htm">Local Network</a></div></td>
                            <td bgcolor="#C0C0C0"><div class="menuitem_1"><a href="weather.htm">Weather Network</a></div></td>
                            <td bgcolor="#C0C0C0"><div class="menuitem_1"><a href="station.htm">Station Settings</a></div></td>
                            <td bgcolor="#EDEFEF"><div class="menuitem_1"><a href="livedata.htm">Live Data</a></div></td>
                            <td bgcolor="#C0C0C0"><div class="menuitem_1"><a href="correction.htm">Calibration</a></div></td>     
                        </tr>
                    </table>
                </td>
            </tr>
            <form name="livedata" method="POST" onsubmit="return chkForm(0);">  
                <tr>
                    <td colspan="2" bgcolor="#EDEFEF">&nbsp;</td>
                </tr> 
                <tr>
                    <td colspan="2" bgcolor="#EDEFEF"><div class="subitem_1">Live Data</div></td>
                </tr>   
                 <tr>
                    <td width="448" bgcolor="#EDEFEF"><div class="item_1">Receiver Time:</div></td>
                    <td width="352" bgcolor="#EDEFEF">                    
                    <input name="CurrTime" disabled="disabled" type="text" class="item_2" style="WIDTH: 120px" value="22:36 8/25/2019" maxlength="16"/></td>
                </tr>

                <tr>
                    <td width="448" bgcolor="#EDEFEF"><div class="item_1">Indoor Sensor ID and  Battery </div></td>
                    <td width="352" bgcolor="#EDEFEF">
                    <input name="IndoorID" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="0x9b" maxlength="5" />
                    <input name="inBattSta" disabled="disabled" type="text" class="item_2" style="WIDTH: 100px" value="LOW STATUS" maxlength="12" />
                    </td>
                </tr>                
                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Outdoor Sensor ID and Battery</div></td>
                    <td bgcolor="#EDEFEF">                    
                        <input name="Outdoor1ID" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="0x52" maxlength="5" />
                        <input name="outBattSta1" disabled="disabled" type="text" class="item_2" style="WIDTH: 100px" value="Normal" maxlength="12" />
                    </td>
                </tr>                
                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Outdoor2 Sensor ID and Battery</div></td>
                    <td bgcolor="#EDEFEF">                    
                        <input name="Outdoor2ID" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="0x--" maxlength="5" />
                        <input name="outBattSta2" disabled="disabled" type="text" class="item_2" style="WIDTH: 100px" value="- -" maxlength="12" />
                    </td>
                </tr>             

                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Indoor Temperature</div></td>
                    <td bgcolor="#EDEFEF"><input name="inTemp" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="25.3" maxlength="5" /></td>
                </tr>

                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Indoor Humidity</div></td>
                    <td bgcolor="#EDEFEF"><input name="inHumi" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="59" maxlength="3" /></td>
                </tr>
                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Absolute Pressure </div></td>
                    <td bgcolor="#EDEFEF"><input name="AbsPress" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="969.60" maxlength="6" /></td>
                </tr>	
                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Relative Pressure </div></td>
                    <td bgcolor="#EDEFEF"><input name="RelPress" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="1018.40" maxlength="6" /></td>
                </tr>	
                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Outdoor Temperature</div></td>
                    <td bgcolor="#EDEFEF"><input name="outTemp" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="20.8" maxlength="5" /></td>
                </tr>

                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Outdoor Humidity </div></td>
                    <td bgcolor="#EDEFEF"><input name="outHumi" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="86" maxlength="3" /></td>
                </tr>

                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Wind Direction </div></td>
                    <td bgcolor="#EDEFEF"><input name="windir" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="134" maxlength="5" /></td>
                </tr>

                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Wind Speed </div></td>
                    <td bgcolor="#EDEFEF"><input name="avgwind" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="0.0" maxlength="5" /></td>
                </tr>

                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Wind Gust </div></td>
                    <td bgcolor="#EDEFEF"><input name="gustspeed" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="0.0" maxlength="5" /></td>
                </tr> 
  				
                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Max Daily Gust </div></td>
                    <td bgcolor="#EDEFEF"><input name="dailygust" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="12.2" maxlength="5" /></td>
                </tr> 
                                        
                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Solar Radiation </div></td>
                    <td bgcolor="#EDEFEF"><input name="solarrad" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="0.00" maxlength="12" /></td>
                </tr>
                
                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">UV </div></td>
                    <td bgcolor="#EDEFEF"><input name="uv" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="1" maxlength="12"></td>
                </tr>
                
                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">UVI </div></td>
                    <td bgcolor="#EDEFEF"><input name="uvi" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="0" maxlength="3"></td>
                </tr>

                <tr>
                    <td bgcolor="#EDEFEF"><div class="item_1">Hourly Rain Rate</div></td>
                    <td bgcolor="#EDEFEF"><input name="rainofhourly" disabled="disabled" type="text" class="item_2" style="WIDTH: 80px" value="0.00" maxlength="8" /></td>
                </tr>
                
				<form name="Rain_1" method="POST" onsubmit="return chkForm(0);">  

	               <tr>
	                    <td bgcolor="#EDEFEF"><div class="item_1">Daily Rain</div></td>
	                    <td bgcolor="#EDEFEF"><input name="rainofdaily"  type="text" class="item_2" style="WIDTH: 80px" value="0.00" maxlength="8" />
                    <span id="rainofdaily_msg" class="errMsg0"></span></td>
	                </tr>

	                <tr>
	                    <td bgcolor="#EDEFEF"><div class="item_1">Weekly Rain</div></td>
	                    <td bgcolor="#EDEFEF"><input name="rainofweekly"  type="text" class="item_2" style="WIDTH: 80px" value="0.00" maxlength="8" />
                        <span id="rainofweekly_msg" class="errMsg0"></span></td>
	                </tr>

	                <tr>
	                    <td bgcolor="#EDEFEF"><div class="item_1">Monthly Rain</div></td>
	                    <td bgcolor="#EDEFEF"><input name="rainofmonthly"  type="text" class="item_2" style="WIDTH: 80px" value="69.90" maxlength="8" />
                        <span id="rainofmonthly_msg" class="errMsg0"></span></td>
	                </tr>

	                <tr>
	                    <td bgcolor="#EDEFEF"><div class="item_1">Yearly Rain</div></td>
	                    <td bgcolor="#EDEFEF"><input name="rainofyearly"  type="text" class="item_2" style="WIDTH: 80px" value="589.80" maxlength="8" />
                        <span id="rainofyearly_msg" class="errMsg0"></span></td>
	                </tr>
              
	                <tr>
	                    <td colspan="2" bgcolor="#EDEFEF">&nbsp;</td>
	                </tr>
	                <tr align="center">
	                    <td colspan="2" bgcolor="#EDEFEF"><input name="Apply" type="submit" class="item_2" style="WIDTH: 60px; HEIGHT: 24px;" onclick="setSubmitType(1)" value="Apply" />
	                        <input name="Cancel" type="reset" class="item_2" style="WIDTH: 60px; HEIGHT: 24px;" value="Cancel" /></td>
	                </tr>
            	</form>                

                <tr>
                    <td colspan="2" bgcolor="#EDEFEF">&nbsp;</td>  
                </tr>

                <tr>
                    <td colspan="2" align="center" bgcolor="#EDEFEF">
                     	<input name="rain_Default" type="button" class="item_2" style="WIDTH: 110px; HEIGHT: 24px;"  onclick="raindef()" value="Rain Reset">
                        <input  id="refresh_st" type="button" class="item_4" style="WIDTH: 110px; HEIGHT: 24px;"  onclick="uiCtrl(this.value);" value="Refresh" />
                        <input  id="refresh_sp" type="button" class="item_2" style="WIDTH: 110px; HEIGHT: 24px;"  onclick="uiCtrl(this.value);" value="Stop Refresh"  />
                    </td>
                </tr>
            </form>
            <tr>
                <td colspan="2" bgcolor="#EDEFEF">&nbsp;</td>
            </tr>
            <tr>
                <td colspan="2" bgcolor="#C0C0C0">&nbsp;</td>
            </tr>
        </table>

		<script src="axjs0.js" type="text/javascript"></script>
        <script language="JavaScript" type="text/javascript">
            <!--
            var rfTaskRuningFlag = 0, rfTimeId;
            uiCtrl('Refresh');

			function uiCtrl(uiCmd)
			{
			    if (uiCmd=='Refresh'){
			        document.getElementById('refresh_st').disabled = true;
			        document.getElementById('refresh_sp').disabled = false;
			        rfTaskRuningFlag = 1;
			        rfTaskState = 0;
			        rfTimeId = setInterval("ss()", 16000);					
			    }else if (uiCmd=='Stop Refresh'){
			        document.getElementById('refresh_st').disabled = false;
			        document.getElementById('refresh_sp').disabled = true;
			        rfTaskRuningFlag = 0;
			        clearInterval(rfTimeId);
			    }
			}

			function ss()
			{
			    if (rfTaskRuningFlag)
			    {			
				   window.location.reload();
			    }
			}
			-->
		</script>
    </body>
</html>

Hi,

I was using wh2600 weatherstation from Froggit with the ambientweather1400ip binding 2.2.2. It was working allright, but some of the items were not received (like wind direction, precipitation, etc.)

I downloaded ambientweather1400ip-2019-05-25 versionn of the binding, but receive an error: “Unable to reach ‘192.168.xx.xxx’, please check that the ‘hostname/ip’ setting is correct, or if there is a network problem. Detailed error: ‘null’”

Ping from openhab server works, observerIP is running and refreshing on that address, and it all worked with earlier version of binding. What do I miss? Please help,

Regards,

Rimantas

Hi all, i am having an issue with this binding. It works for a while but then the data will go stale and freeze. Disabling the add on in Paper UI and re-enabling it make it work again but only for a couple of hours.

I am running 2.5.0 snapshot on a new raspberry pi and am wondering if this is the issue.

Thanks

Had the same issue with the freeze. I was unable to solve it with the binding. Then changed to get the data via REGEX which runs now very stable.
If you plan this, too, here is my config:
http.cfg

wheatherstationCache.url=http://10.XXX.XXX.XXX/livedata.html
wheatherstationCache.updateInterval=40000

and the item file:

Number WeatherWindSpeed2 	"Wind aktuell [%.0f km/h]"  {http="<[wheatherstationCache:30000:REGEX(.*?windspeed.*?value=\"(.*?)\".*)]"}
Number RelPress 	"Relativer Luftdruck [%.2f hPa]"  {http="<[wheatherstationCache:30000:REGEX(.*?RelPress.*?value=\"(.*?)\".*)]"}
Number AbsPress 	"Absoluter Luftdruck [%.2f hPa]"  {http="<[wheatherstationCache:30000:REGEX(.*?AbsPress.*?value=\"(.*?)\".*)]"}
Number WeatherIndoorTemp2 	"Temp.Dach [%.1f °C]" (gTemperatures) {http="<[wheatherstationCache:30000:REGEX(.*?inTemp.*?value=\"(.*?)\".*)]"}
Number WeatherOutdoorTemp2 	"Außen Temperatur [%.1f °C]"  {http="<[wheatherstationCache:30000:REGEX(.*?outTemp.*?value=\"(.*?)\".*)]"}
Number WeatherIndoorHumidity2 	"FeuchteDach [%.0f]" (gHumidity) {http="<[wheatherstationCache:30000:REGEX(.*?inHumi.*?value=\"(.*?)\".*)]"}
Number WeatherOutdoorHumidity2 	"FeuchtAußen [%.0f]" (gHumidity) {http="<[wheatherstationCache:30000:REGEX(.*?outHumi.*?value=\"(.*?)\".*)]"}
Number WeatherWindDir2 "Wind Richtung [%.0f °]" {http="<[wheatherstationCache:30000:REGEX(.*?windir.*?value=\"(.*?)\".*)]"}
Number WeatherWindGust2 "Wind Böe [%.0f km/h]" {http="<[wheatherstationCache:30000:REGEX(.*?gustspeed.*?value=\"(.*?)\".*)]"}
Number WeatherSolarRad2 "Sonnenstrahlung [%.0f W/m²]" {http="<[wheatherstationCache:30000:REGEX(.*?solarrad.*?value=\"(.*?)\".*)]"}
Number WeatherUV2 "UV Strahlungsintensität [%.0f W/m²µm]" {http="<[wheatherstationCache:30000:REGEX(.*?uv.*?value=\"(.*?)\".*)]"}
Number WeatherUVIndex2 "UV Index" {http="<[wheatherstationCache:30000:REGEX(.*?uvi.*?value=\"(.*?)\".*)]"}
Number WeatherRainHourly2 "Regen letzte Stunde [%.1f mm]" {http="<[wheatherstationCache:30000:REGEX(.*?rainofhourly.*?value=\"(.*?)\".*)]"}
Number WeatherRainDaily2 "Regen letzte 24h [%.1f mm]" {http="<[wheatherstationCache:120000:REGEX(.*?rainofdaily.*?value=\"(.*?)\".*)]"}
Number WeatherRainWeekly2 "Regen diese Woche [%.1f mm]" {http="<[wheatherstationCache:120000:REGEX(.*?rainofweekly.*?value=\"(.*?)\".*)]"}
Number WeatherRainMonthly2 "Regen diesen Monat [%.1f mm]" {http="<[wheatherstationCache:120000:REGEX(.*?rainofmonthly.*?value=\"(.*?)\".*)]"}
Number WeatherRainYearly2 "Regen dieses Jahr [%.1f mm]" {http="<[wheatherstationCache:120000:REGEX(.*?rainofyearly.*?value=\"(.*?)\".*)]"}
2 Likes

Thanks @maxico, looks cool and easy. I will give it a try, thanks for config.

This morning I managed to make biding work. It seems the problem was that I did not delete a ambientweather1400ip thing from PaperUI, which worked with the previous version of the binding.

When I properly deleted a thing (I did not succeed in PaperUI, so had to manually delete from jsonDB file) and the added binding and configured .thing file, it started to work. It does not read wind speed though, publishing an error that it does not find a channel for wind speed.

Is there a guide to set this up @maxico? Does the binding still need to be installed?

So far i have installed the HTTP addon, added my details to http.cfg and added the channels to the items file. I have also added the item to the sitemap. all seems to be working so far!
Thanks

Thanks again for the configuration, @maxico. It runs flawlessly!

I just purchased a rebranded version of these wx stations (Purchased in Australia), the Pantech WH2900 as well as some Ecowitt stuff to play with, GW1000 Wifi gateway, WH68, WH40.

In theory I thought the WH2900 would have worked with this binding as its just a rebranded version of the 2902, but I dont get any respose from the /livedata.htm
And the GW1000 I was hoping to similar to the IPObserver, but no luck there either.

Does anyone here have, or have plans to grab a GW1000 Wifi gateway? They seem to be the new must have, and apparently have an api for local usage.

Hi, can you actually access IPobserver on you address x.x.x.x/livedata.htm?

I have the Pantech branded unit and if you add on a IPObserver you can use both that and your screen at the same time from the outdoor unit you already have. Aliexpress has a seller of the units that will sell you an IP Observer for around $50… see my pervious posts about this for more info as I have posted it at least 5 times in the forum.

Hey all - does this work in OH 2.4 or do I have to wait for 2.5 (or install snapshot/unstable)?

Same here
Binding needs to be restarted
Anybody still developing on this binding? @matt1

I just used what @maxico suggested in post 76

I had that before.
This actually stalled the oberserverip after some days. Probably killed by too often requests and a memory leak.

The binding solved this by rebooting the oberserverip when the latency increases.

The binding worked fine for a while but seems to have issues with a later oh release I upgraded to.

Does anyone know if the existing aw binding will work with the ws2000?
I have tried several devices in the binding with no success.
RPI 3b+
OH2 M6

It should work IF you purchase the extra unit that can talk to your outside unit called ip observer. Read this thread as it has been mentioned a number of times and you will get extra info by doing so.
This binding allows you to get the weather station data if your internet connection goes down as it fully local.

Only the bare minimum to keep my setup working, see previous posts on reasons why. So far it is working on Openhab 2.5 stable. If you want it looked at then you would need to gather the debug log output from the binding to show what it was doing when it stopped working.

thanks @matt1 for the feedback.
maybe then I don’t have the current jar?
before taking logs would you have a link to the latest version/jar?
if the problem persists I will post logs

edit: I currently have the version from the link way above May 25th.
If the missing “max gust” from [New Binding] Ambient Weather WS-1400IP weather station - #72 by matt1
was ever added there should be a later version?

cheers

Look at when the file was created, that will tell you the version.
The latest is always found here and is the one that I am using on a clean install of Openhab 2.5 Stable.
http://www.pcmus.com/openhab/WeatherStationBinding/

If there are any issues I have not seen them yet, but I am doing hourly reboots at the moment due to developing a few bindings and restarting Openhab a lot.

I think the best way forward is for you for power cycle the IP observer off and back on, if that solves it then it is unlikely to be a binding issue. There are a number of firmware versions for the hardware unit and I have given a link in this thread to where known bugs VS firmware versions are listed.
EDIT:

http://www.wxforum.net/index.php?topic=31805.msg324204#msg324204