[SOLVED] Weatherflow Smart Weather Station binding

Just to be sure, I hope you use this page ? https://weatherflow.github.io/SmartWeather/api/udp/v30/

Hi Bill,

I’ve just updated to your latest binding version and am still seeing DiscoveryServiceCallback errors:

2018-02-09 09:24:42.352 [WARN ] [nternal.SmartWeatherDiscoveryService] - DiscoveryServiceCallback not set. This shouldn’t happen!
2018-02-09 09:24:52.352 [WARN ] [nternal.SmartWeatherDiscoveryService] - DiscoveryServiceCallback not set. This shouldn’t happen!
2018-02-09 09:25:02.352 [WARN ] [nternal.SmartWeatherDiscoveryService] - DiscoveryServiceCallback not set. This shouldn’t happen!
2018-02-09 09:25:12.352 [WARN ] [nternal.SmartWeatherDiscoveryService] - DiscoveryServiceCallback not set. This shouldn’t happen!
2018-02-09 09:25:16.753 [INFO ] [.SmartWeatherStationDiscoveryService] - Already have thing with ID=weatherflowsmartweather:air:HB-00001121:AR-00008797
2018-02-09 09:25:16.802 [INFO ] [ather.handler.SmartWeatherAirHandler] - parsing observation record: [1.518128716E9, 1013.0, 24.38, 85.0, 0.0, 0.0, 2.98, 1.0]
2018-02-09 09:25:22.355 [WARN ] [nternal.SmartWeatherDiscoveryService] - DiscoveryServiceCallback not set. This shouldn’t happen!
2018-02-09 09:25:32.353 [WARN ] [nternal.SmartWeatherDiscoveryService] - DiscoveryServiceCallback not set. This shouldn’t happen!
2018-02-09 09:25:42.351 [WARN ] [nternal.SmartWeatherDiscoveryService] - DiscoveryServiceCallback not set. This shouldn’t happen!

Hi,

What version of OpenHAB are you running? I’ve noticed some strange behavior on the official 2.2.0 release… the feature (the DiscoveryServiceCallback) that’s causing the error is used to make sure we don’t create duplicate inbox entries and when that hasn’t been set by OpenHAB on the bundle’s startup, that “error” message is printed. Restarting the bundle seems to fix the problem until you restart OpenHAB. It seems like maybe a timing problem on startup, but if that’s the case, it isn’t anything that a binding would have control over.

I’m told that 2.3.0 fixes the problem but I haven’t had a chance to test it.

Bill

Yes, that’s what I am using as a reference. The status messages are very different and have some very low-level infomation in them; I’m not sure if it makes sense to display any of it in the UI…

Thanks Bill. Yes, I’m running the 2.2.0 release and have just restarted the bundle which has stopped th warning messages.

Just wanted to mention that I set up a fresh install of the latest 2.3 snapshot today and the problem seems to be resolved.

At weatherflow community someone posted nice GUI https://weather34.com/
This would be spectaculat to have something similat done with e.g. habpanel

1 Like

hub-status was changed to hub_status to maintain consistency in naming keys.

You can follow the link below.

If you haven’t activated your account on the WeatherFlow community, I highly suggest you do and join the developers forum.

Hi @GaryFunk… thanks for the tip. I’ve signed up and will try to catch up on all of the discussion.

Yes, I ran across that shortly after I received my air sensor. I guess in theory it’s possible to duplicate that display. WeatherFlow seemed to indicate tat the time that it worked natively with the SmartWeathe station, but I wasn’t able to confirm that. Does anyone have any info about the status of the Weather32 UI?

The author, Brian, is on the WeatherFlow forum and can answer questions.

Bill, WeatherFlow will be pushing out firmware v35 to the Hub this week.it has LOT of API changes

HI Bill,
I switched to OH 2.3 (beta) and I frequently get the following error:
2018-02-28 00:06:01.760 [ERROR] [l.SmartWeatherUDPListenerServiceImpl] - Unable to parse message.
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: For input string: "1,0"
at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:245) [22:com.google.gson:2.7.0]
at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:235) [22:com.google.gson:2.7.0]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129) [22:com.google.gson:2.7.0]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:887) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:952) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:925) [22:com.google.gson:2.7.0]
at org.openhab.binding.weatherflowsmartweather.model.SmartWeatherDeserializer.deserialize(SmartWeatherDeserializer.java:45) [197:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.model.SmartWeatherDeserializer.deserialize(SmartWeatherDeserializer.java:1) [197:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:887) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:852) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:801) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:773) [22:com.google.gson:2.7.0]
at org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl.processMessage(SmartWeatherUDPListenerServiceImpl.java:63) [197:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl.access$0(SmartWeatherUDPListenerServiceImpl.java:56) [197:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl$1.packetReceived(SmartWeatherUDPListenerServiceImpl.java:39) [197:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.util.UdpServer.fireUdpServerPacketReceived(UdpServer.java:544) [197:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.util.UdpServer.runServer(UdpServer.java:357) [197:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.util.UdpServer$1.run(UdpServer.java:219) [197:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NumberFormatException: For input string: "1,0"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:?]
at java.lang.Integer.parseInt(Integer.java:580) ~[?:?]
at java.lang.Integer.parseInt(Integer.java:615) ~[?:?]
at com.google.gson.JsonPrimitive.getAsInt(JsonPrimitive.java:260) ~[?:?]
at com.google.gson.internal.bind.JsonTreeReader.nextInt(JsonTreeReader.java:243) ~[?:?]
at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:243) ~[?:?]
… 20 more
2018-02-28 00:06:01.790 [WARN ] [atherflowsmartweather.util.UdpServer] - UdpServer.Listener org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl$1@1541a50 threw an exception: null

Of course this is beta, but maybe it is worth to mention this error.

From some time binding stopped work. Items do not update. I hope this is because of beta firmware rev 35 changes?

2018-03-03 23:55:29.185 [WARN ] [atherflowsmartweather.util.UdpServer] - UdpServer.Listener org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl$1@10b0dec threw an exception: null
2018-03-03 23:55:35.428 [ERROR] [ather.model.SmartWeatherDeserializer] - Received unknown SmartWeather message type: device_status
2018-03-03 23:55:35.431 [WARN ] [atherflowsmartweather.util.UdpServer] - UdpServer.Listener org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl$1@10b0dec threw an exception: null
2018-03-03 23:55:35.545 [WARN ] [ather.handler.SmartWeatherHubHandler] - air observation but not for us.
2018-03-03 23:55:35.549 [WARN ] [ather.handler.SmartWeatherHubHandler] - air observation but not for us.
2018-03-03 23:55:39.145 [ERROR] [l.SmartWeatherUDPListenerServiceImpl] - Unable to parse message.
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: For input string: "1,0"
at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:245) [22:com.google.gson:2.7.0]
at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:235) [22:com.google.gson:2.7.0]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129) [22:com.google.gson:2.7.0]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:887) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:952) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:925) [22:com.google.gson:2.7.0]
at org.openhab.binding.weatherflowsmartweather.model.SmartWeatherDeserializer.deserialize(SmartWeatherDeserializer.java:45) [271:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.model.SmartWeatherDeserializer.deserialize(SmartWeatherDeserializer.java:1) [271:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:887) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:852) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:801) [22:com.google.gson:2.7.0]
at com.google.gson.Gson.fromJson(Gson.java:773) [22:com.google.gson:2.7.0]
at org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl.processMessage(SmartWeatherUDPListenerServiceImpl.java:63) [271:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl.access$0(SmartWeatherUDPListenerServiceImpl.java:56) [271:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl$1.packetReceived(SmartWeatherUDPListenerServiceImpl.java:39) [271:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.util.UdpServer.fireUdpServerPacketReceived(UdpServer.java:544) [271:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.util.UdpServer.runServer(UdpServer.java:357) [271:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at org.openhab.binding.weatherflowsmartweather.util.UdpServer$1.run(UdpServer.java:219) [271:org.openhab.binding.weatherflowsmartweather:2.2.0.201802060049]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NumberFormatException: For input string: "1,0"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:?]
at java.lang.Integer.parseInt(Integer.java:580) ~[?:?]
at java.lang.Integer.parseInt(Integer.java:615) ~[?:?]
at com.google.gson.JsonPrimitive.getAsInt(JsonPrimitive.java:260) ~[?:?]
at com.google.gson.internal.bind.JsonTreeReader.nextInt(JsonTreeReader.java:243) ~[?:?]
at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:243) ~[?:?]
… 20 more
2018-03-03 23:55:39.172 [WARN ] [atherflowsmartweather.util.UdpServer] - UdpServer.Listener org.openhab.binding.weatherflowsmartweather.internal.SmartWeatherUDPListenerServiceImpl$1@10b0dec threw an exception: null

I think this is because the weatherflow people have changed the format of individual fields in the hub_status message, which is still present only in beta versions of the firmware. Hopefully when they release a production version with that message type, they’ll stop changing things and I can fix the error permanently.

I made an attempt to sync the binding with the latest API specification. I uploaded a new binary jar but it is untested, so I recommend keeping the old version in case it blows up. :slight_smile:

2 Likes

Ok, HUB is responding, but cannot add AIR
ALso I get:
2018-03-10 19:43:11.692 [WARN ] [ather.handler.SmartWeatherHubHandler] - device status but not for us.
2018-03-10 19:43:11.696 [WARN ] [ather.handler.SmartWeatherHubHandler] - device status but not for us.
2018-03-10 19:43:11.806 [WARN ] [ather.handler.SmartWeatherHubHandler] - air observation but not for us.
2018-03-10 19:43:11.809 [WARN ] [ather.handler.SmartWeatherHubHandler] - air observation but not for us.

Ah, It seems I didn’t update the device discovery service to look for the new message types. I uploaded a version that should fix that. I will try to upgrade my firmware this weekend so that I can actually verify things are working before I upload any more updates!

Bill

1 Like

I can confirm that auto-discovery is working with v30 (I don’t have the option to install 35).

I think you may have been updated to v37. Check and see your version.