Fine Offset Weather Station Binding: Discussion

Thanks Andreas, Teaching an old dog new tricks is hard. I rebuilt my test Pi again just to be sure it was not me. Compiled the new java. It connected as expected and provided a second Device on my iPhone device list -proxy. I can’t select it to get to the next screen.
The direct one works but I ca’t get the Proxy to show data. This is the proxy output:
bill@Discovery:~ $ java Proxy
Try to discover on /192.168.0.255:46000
Found device ‘GW2000C-WIFIB04B V2.1.7’ at 192.168.0.80:45000 via /192.168.0.232
Broadcast received FFFF12000416
Broadcast received FFFF12000416

The Proxy is Pi 4 at .232 and is connected via eth
The GW2000C is .80 and connected via eth also.

Thanks Bill

To test it, you can setup a second instance (e.g. on your PC). I have also 2 versions of OpenHAB running in parallel.

The WSView Plus app is sensitive to the SSID of the gateway. It is parsing the name to dis-/enable different features.
As soon the name contains GW2000 it tries to connect to port 80 on your device. Since the Proxy has no open port 80 it fails to connect.

So there are 2 possibilities:

  1. change the name of the SSID, so no port 80 is queried.
  2. proxy port 80 as well (you need to have root privilege on linux for this)

Let’s try the fist approach first, by replacing:

with

new Broadcast("WH2650A-WIFID25E Proxy V1.7.5", discoveryData.host, discoveryData.port).start();`

@Andy2003 Brought up a new openhab instance on the snapshot release and it looks good, the only thing I did notice is that on my WH34 Temp probe, openhab has the voltage of 1.6V but on ecowitt.net (as the app only shows a graphic not values) it reads 1.58V

Trace below

2022-08-27 01:32:53.316 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_READ_SENSOR_ID_NEW): send request: FFFF3C033F
2022-08-27 01:32:53.328 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_READ_SENSOR_ID_NEW): received: FFFF3C015400000000CD000401FFFFFFFFFF0002FFFFFFFFFF0003FFFFFFFF1F0005FFFFFFFF000006FFFFFFFF000007FFFFFFFF000008FFFFFFFF000009FFFFFFFF00000AFFFFFFFF00000BFFFFFFFF00000CFFFFFFFF00000DFFFFFFFF00000E000111C50D040F000112080F0410000111D61F0011000110A30F0412000111170F0413FFFFFFFF1F0014FFFFFFFF1F0015FFFFFFFF1F00160000C4E7060417FFFFFFFE0F0018FFFFFFFE0F0019FFFFFFFE0F001AFFFFFFFF0F001BFFFFFFFF0F001CFFFFFFFF0F001DFFFFFFFF0F001EFFFFFFFF0F001F000030494F0420FFFFFFFFFF0021FFFFFFFFFF0022FFFFFFFFFF0023FFFFFFFFFF0024FFFFFFFFFF0025FFFFFFFFFF0026FFFFFFFFFF0027FFFFFFFF0F0028FFFFFFFFFF0029FFFFFFFFFF002AFFFFFFFFFF002BFFFFFFFFFF002CFFFFFFFFFF002DFFFFFFFFFF002EFFFFFFFFFF002FFFFFFFFFFF0030FFFFFFFFFF00E5
2022-08-27 01:32:53.328 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_READ_SSSS): send request: FFFF300333
2022-08-27 01:32:53.341 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_READ_SSSS): received: FFFF300B0001630982542F02AF

Hi Andreas, You are a legend that worked and I was able to capture the Following.
Let me know if you need more I didn’t want to flood here with data.
Regards
Bill

bill@Discovery:~ $ java Proxy
Try to discover on /192.168.0.255:46000
Found device 'GW2000C-WIFIB04B V2.1.7' at 192.168.0.80:45000 via /192.168.0.232
Broadcast received FFFF12000416
Broadcast received FFFF12000416
Req  5  FFFF500353
Resp 20 FFFF50120E475732303030435F56322E312E37BE
Req  5  FFFF27032A
Resp 56 FFFF2700360100B1064808280E09280E0200A207610A00B50B00050C000815000209E01600001700620000000061FFFFFFFF60FF19001F4C
Req  5  FFFF3C033F
Resp 349        FFFF3C015B00FFFFFFFFFF0001FFFFFFFFFF0002FFFFFFFFFF0003FFFFFFFF1F0004FFFFFFFF000005FFFFFFFF000006FFFFFFFF000007FFFFFFFF000008FFFFFFFF000009FFFFFFFF00000AFFFFFFFF00000BFFFFFFFF00000CFFFFFFFF00000DFFFFFFFF00000EFFFFFFFF1F000FFFFFFFFF1F0010FFFFFFFF1F0011FFFFFFFF1F0012FFFFFFFF1F0013FFFFFFFF1F0014FFFFFFFF1F0015FFFFFFFF1F0016FFFFFFFF0F0017FFFFFFFF0F0018FFFFFFFF0F0019FFFFFFFF0F001A0000EAC705041BFFFFFFFF0F001CFFFFFFFF0F001DFFFFFFFF0F001EFFFFFFFF0F001FFFFFFFFFFF0020FFFFFFFFFF0021FFFFFFFFFF0022FFFFFFFFFF0023FFFFFFFFFF0024FFFFFFFFFF0025FFFFFFFFFF0026FFFFFFFFFF0027FFFFFFFF0F0028FFFFFFFFFF0029FFFFFFFFFF002AFFFFFFFFFF002BFFFFFFFFFF002CFFFFFFFFFF002DFFFFFFFFFF002EFFFFFFFFFF002FFFFFFFFFFF00300000282EA404B7
Req  5  FFFF57035A
Resp 59 FFFF5700398000008300000009840000000985000000C786000000C7810000870064006400640064006400640064006400640064880900007A02BF
Req  5  FFFF27032A
Resp 56 FFFF2700360100B1064808280E09280E0200A207610A00A00B00090C00091500020E901600001700620000000061FFFFFFFF60FF19001FF1
Req  5  FFFF3C033F
Resp 349        FFFF3C015B00FFFFFFFFFF0001FFFFFFFFFF0002FFFFFFFFFF0003FFFFFFFF1F0004FFFFFFFF000005FFFFFFFF000006FFFFFFFF000007FFFFFFFF000008FFFFFFFF000009FFFFFFFF00000AFFFFFFFF00000BFFFFFFFF00000CFFFFFFFF00000DFFFFFFFF00000EFFFFFFFF1F000FFFFFFFFF1F0010FFFFFFFF1F0011FFFFFFFF1F0012FFFFFFFF1F0013FFFFFFFF1F0014FFFFFFFF1F0015FFFFFFFF1F0016FFFFFFFF0F0017FFFFFFFF0F0018FFFFFFFF0F0019FFFFFFFF0F001A0000EAC705041BFFFFFFFF0F001CFFFFFFFF0F001DFFFFFFFF0F001EFFFFFFFF0F001FFFFFFFFFFF0020FFFFFFFFFF0021FFFFFFFFFF0022FFFFFFFFFF0023FFFFFFFFFF0024FFFFFFFFFF0025FFFFFFFFFF0026FFFFFFFFFF0027FFFFFFFF0F0028FFFFFFFFFF0029FFFFFFFFFF002AFFFFFFFFFF002BFFFFFFFFFF002CFFFFFFFFFF002DFFFFFFFFFF002EFFFFFFFFFF002FFFFFFFFFFF00300000282EA404B7
Req  5  FFFF57035A
Resp 59 FFFF5700398000008300000009840000000985000000C786000000C7810000870064006400640064006400640064006400640064880900007A02BF
Req  5  FFFF27032A
Resp 56 FFFF2700360100B1064808280E09280E0200A207610A00AE0B00060C000A150002146C1600631701620000000061FFFFFFFF60FF19001F43
Req  5  FFFF3C033F
Resp 349  

The data parsed by the binding meet your expectations:

My guess is that the item in OpenHAB is configured in such a way that only one fractional digit is displayed.

Perfect! I have found a conversion issue. The current build should work with your device now! Please test it and give me feedback?

@Andy2003 I reflashed my test unit and just loaded the updated Binding to the Addons. It found the gateway but still does not provide any rain channels.
Here is the trace:

2022-08-31 11:12:41.879 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_GW1000_LIVEDATA): send request: FFFF27032A
2022-08-31 11:12:41.889 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_GW1000_LIVEDATA): received: FFFF2700360100D906470827D00927D00200F1073E0A00AC0B000E0C0014150005EB3C16021C1702620000000061FFFFFFFF60FF190034A3
2022-08-31 11:12:41.896 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_READ_RAIN): send request: FFFF57035A
2022-08-31 11:12:41.905 [DEBUG] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_READ_RAIN), invalid response: FFFF5700398000008300000000840000003585000000F386000000F3810029870064006400640064006400640064006400640064880900007A0263
2022-08-31 11:12:57.911 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_GW1000_LIVEDATA): send request: FFFF27032A
2022-08-31 11:12:57.922 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_GW1000_LIVEDATA): received: FFFF2700360100D906470827D00927D00200F1073F0A00960B000C0C0018150005385416021C1702620000000061FFFFFFFF60FF190034F5
2022-08-31 11:12:57.929 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_READ_RAIN): send request: FFFF57035A
2022-08-31 11:12:57.939 [DEBUG] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_READ_RAIN), invalid response: FFFF5700398000008300000000840000003585000000F386000000F3810029870064006400640064006400640064006400640064880900007A0263

Regards
Bill

OK, there was a bug in validating the response of CMD_READ_RAIN. I fixed it. Please, can you retry the latest build?

Hi Andreas, Woo Hoo it all works. Thank you so much. I don’t know how you can do this long distance but I really appreciate your skills.
Regards
Bill

Hi
Since the update to 3.4.0.M2 I get the following warning in openhab.log:

2022-09-12 09:41:07.773 [WARN ] [nternal.service.FineOffsetDataParser] - failed to get measurand 0x7a

I guess it’s from the channel rain-hour.
The iOS app “WSVew Plus” does not have such a sensor value.
I have a WH-2650 weatherstation.

Hi Remo,

I also own a WH-2650 and can see this warning as well.

So for my setup the log is:

executeCommand(CMD_READ_RAIN): send request: FFFF57035A
executeCommand(CMD_READ_RAIN): received: FFFF5700290E0000100000000A110000000F120000008113000008A20D000A0F0064880000007A017B0020

Aligning the data with the measurands (items) defined in the protocol, I get:

FFFF         -> header
57           -> command (READ_RAIN)
0029         -> payload size
0E 0000      -> RAINRATE
10 0000000A  -> RAINDAY
11 0000000F  -> RAINWEEK
12 00000081  -> RAINMONTH
13 000008A2  -> RAINYEAR
0D 000A      -> RAINEVENT
0F 0064      -> RAINHOUR
88 000000    -> RST_RainTime
----------------------------
7A 01        -> not defined in protocol
7B 00        -> not defined in protocol
----------------------------
20           -> checksum

So there is additional data not defined in the the protocol definition available to us. This is why the warning appears.

It seems like, these values corresponds to the “Rainfall data priority” setting in the WS-View Plus app.

7A xx        -> RAIN_PRIO -> xx = 01 Traditional rain gauge, xx = 02 Piezoelectric rain gauge
7B 00       -> RCSATION -> 0 = RFM433M, 1 = RFM868M, default = RFM915M (extracted from the JS of the WS-View APP)

I will include in the binding that these values get ignored.

If someone can get the latest version of the protocol definition, it would be very helpful!

1 Like

Hello,
I am to get the binding to work. With the snapshot jar installed on 3.3 the weather station thing is discovered. When I add the Weatherstation thing it goes offline now and then. In the logging I see the executeCommands without any reply.See log file below.

When I run the proxy on my windows PC (so not the openhab debian PC), i get the results below.

Any suggestions?

Regards Herman

C:\Users\Hermanita\Documents>java Proxy
Try to discover on /192.168.178.255:46000
Found device 'EasyWeather-WIFI3242 V1.6.4' at 192.168.178.199:45000 via /192.168.178.24
Broadcast received FFFF12000416
Broadcast received FFFF12000416
Broadcast received FFFF12000416
Broadcast received FFFF12000416
Broadcast received FFFF12000416
Broadcast received FFFF12000416
2022-09-21 15:38:37.642 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_READ_RAIN): send request: FFFF57035A

==> /var/log/openhab/events.log <==

2022-09-21 15:38:42.648 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'fineoffsetweatherstation:gateway:0' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Read timed out

2022-09-21 15:38:58.651 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'fineoffsetweatherstation:gateway:0' changed from OFFLINE (COMMUNICATION_ERROR): Read timed out to ONLINE

==> /var/log/openhab/openhab.log <==

2022-09-21 15:38:58.651 [TRACE] [ervice.FineOffsetGatewayQueryService] - executeCommand(CMD_GW1000_LIVEDATA): send request: FFFF27032A


What is the name of your weather station? The gateway also seems to have problems when multiple applications (openHab, Proxy, WS-View, …) connect to it at the same time.

The weather station has been sold to me as: Ventus W-830 Wunderground in 2018
The proxy reports ‘EasyWeather-WIFI3242 V1.6.4’

Is the WS-View app showing your weather data?

Yes, it works fine. The data is also nicely uploaded to weather underground.

Does the APP also showing your data, if you don’t use any portal. My guess is, that the TFT does not support requesting live-data. Instead it only pushes data to e.g. weather underground and the WS-View-APP reads out the data from this portal.

In this case please use the IpObserver Binding or buy a gateway which supports reading out live-data (e.g. WH2600).

There is also a compatibility table showing that your device (my guess is it’s the WS2910) is not able to bind additional sensors, which is an indicator for missing live-data-support.