[PROJECT] Driver for WeatherFlow API

Good to know... and a little gotcha in the coding I will need to remember when dealing with setting/using state variables going forward.

Updated Version(s):

  • WeatherFlow.groovy = 0.4.6

Change(s):

  • Added the "rain + hail" option for the PrecipitationTypeString attribute.
1 Like

Considering getting a Weatherflow device. I can't tell from the driver attributes whether this is capable of alerting me promptly upon any precipitation. Basically like a water sensor. Or does it only register precipitation upon the accumulation of some threshold level of water? And it looks like the quickest notification would be 1 minute, since there's a minimum 1 minute polling interval, right?

I played around a little with this using a watering can when I installed my Tempest a month ago. It takes about 30-40s of drizzle before it gets registered as precipitation.

The 1 minute interval is true for this REST API integration, and also true for their WS API and their local UDP API.

2 Likes

My neighbor and I want to go in together to put one of these between our houses. Cuts the cost in half, without any meaningful downside to the hyper local nature of the data. Question is whether that can work in practice to where both of our separate HE hubs can access the data from a single weather station. Based on what you know about login, authentication, polling rates, etc, is this something that could work in practice?

We also both have Rachio systems and would want this to control each of our systems

I'm not sure about the HE login working for each of you but you certainly can both use the data from the Tempest Weatherflow via WU or PWS for your Rachio.

Not sure if you're aware but Rachio just announced a direct integration with the Tempest. It involves adding the Tempest as another device in the Rachio app.

Yup, thatā€™s what peaked our interest. Probably premature to know whether we could both add a shared Tempest as a device in each of our respective Rachio apps, huh?

As far as getting the data into HE, so it sounds like one of us could publish the data on WU or PWS and the other one just pulls that data into HE, without having both of us poll Tempest?

Not sure about that.

I think that would work but what I was talking about was sharing the WU or PWS data with your Rachio.

1 Like

I've posed the sharing question over on the Rachio forum and will let you know if I hear anything.

1 Like

Oh, one last question: how quickly after it stops raining does the device tell you? The existing rain sensor I have takes a while, I guess for the element to dry out

EDIT: sorry, I forgot this was the driver thread and not the general device discussion thread. Iā€™ll stop hijacking the thread now :slight_smile:

I will answer a bit myself anyways. :slight_smile:

If you are using my driver to check the API you could both use it without issue, if you want to share a WeatherFlow account. The driver does not poll the API so often as to cause it trouble.

2 Likes

Reply from the Rachio guys...

This isnā€™t possible in the current version. My next door neighbor has a Rachio as well using my Tempest and I asked the same question to @drew_thayer via PM and this was his responseā€¦

2 Likes

Hi @snell ,

I just noticed (blame it on @bptworld BryanĀ“s Error Monitor app :wink:) IĀ“m getting lots of errors from my Tempest WS, where I use your WeatherFlow driver.

Is this some problem with the driver? or is it from HE?

Is this avoidable?

Thanks!

It is stating that it cannot create the child devices.

Do you have the child driver (WeatherSensorChild.groovy) also installed?

No, I did not.

:face_with_hand_over_mouth:

I just installed it, and will wait to see what goes on.

Thanks!

Ok, here is what I just did:

I created a new virtual device called Tempest WS Child, and on Type I selected WeatherSensorChild, the one I just added to my drivers in HE.

I tried to configure it, according to your instructions on the WeatherSensorChild driver description, where it states how to add an HTML Tile Template.

I did add the example you have there, (the Mircolino site you have there is not working any more) but still I canĀ“t make the tile to work according to your instructions .

When I select the device Tempest WS Child, and then select Attributes, there is no HTML option.

Am I doing something wrong?

Update:

I just realized two new Child devices appeared under my Tempest WS device, one called Hub and the other one called Station, and those two can be added into a Dashboard and added as Tiles with Attributes, with the html option.

Thanks anyway @snell for a great job with this and other drivers.

1 Like

EDIT:
You made an update to the previous post as I was typing and got it settled (you can delete the virtual child devices you created), so my below response is not really needed but I will leave it just in case.

Original Reply:
You do not need to create the children, only the parent device using the main driver. Once the child driver is installed the parent device will automatically create the child devices needed then it does the next data refresh.

The HTML Tile Template does need a bit of an update... I have changed it on many of my other drivers but not this one (since the WeatherSensorChild child is used by a bunch of weather-related drivers I made). But it is unrelated and is not required for the drivers to work, it is purely optional and can be used for dashboard stuff, but the normal attributes will work just fine in the dashboard without it.
An example for the template value could be:

Temperature: ${ state.temperature }Ā°${ location.getTemperatureScale() }

But temperature is a normal attribute so you really do not need it here. This is more if you want multiple attributes combined, or what to do some math on them, etc...

3 Likes

Interesting, Thanks.

I guess itĀ“s ok if you would like different values on the same tile, then it is very handy

That is the main purpose for it yes. The problem is that it was originally designed for HTML, meaning you could use normal HTML commands between stuff in there and it would show up properly. That made it easy to have multiple lines of values.

But Hubitat changed it so that HTML cannot be included in such fields anymore. It just removes it so it does nothing. It makes sense because it was a possible security hole.

Newer versions of my driver have reworked it to use brackets, so it is not actually HTML anymore, but then it parses those and turns it back into HTML (internal to the driver) so it is displayed properly. I just have not gotten around to updating that child driver to do that yet.

Please note that this same child driver is used for all of my weather sensor related drivers. It has been a while since it was updated but I now made a number of changes to it.

Updated Version(s):

  • WeatherSensorChild.groovy = 0.8.5

Change(s):

  • Changed to a new method to replace the no-longer-functional htmlTemplate. You will have to set it all over again and Save Preferences. The new attribute is called "Tile". It functions the same as the previous one but < > characters should be replaced with [ ]. It should handle all standard HTML commands if you remember to use the [ ] instead.
  • Removed the Clear command. Not much value in removing all the current state data outside of testing purposes.
  • Update to the Logging method, both the Preference structure and how it actually gets implemented. This driver had not been updated yet in 2022 (and not sure when in 2021 it last was) but it was not using my "latest" method of Logging.
  • Update to the driver update check mechanism. :slight_smile: Some cleanup and bringing it in line with my "current" methods of performing this.
2 Likes