hass-weatherflow2mqtt icon indicating copy to clipboard operation
hass-weatherflow2mqtt copied to clipboard

Set some variables from GPS from MQTT

Open zorrobyte opened this issue 1 year ago • 10 comments

New Feature

I have a Tempest device installed on my RV, thus, some reported data is incorrect.

I have GPS available via MQTT of the current location, and elevation of the RV.

It would be nice to be able to set these variables from MQTT with live updating:

  • TZ
  • ELEVATION
  • LATITUDE
  • LONGITUDE

Additional context

No response

zorrobyte avatar Jul 13 '22 22:07 zorrobyte

I accept the change request. I will have to do a lot of thinking on how to implement this without having to restart the UDP listener, so it will most likely take some time before we get there - if we do.

briis avatar Jul 14 '22 06:07 briis

WeatherFlow announced awhile back that they were developing a unit specifically for Sailboats and RVs for this intended purpose. So, eventually this will probably need to be done.

We already publish to MQTT, we could read LAT, Long, and elevation from MQTT (with a variable requesting that be done) and evaluate it just like a UDP broadcast. This would leave it up to the end user to get the data to MQTT, which could easily be done inside HA; we could even describe the process in the ReadMe.

GlennGoddard avatar Jul 14 '22 18:07 GlennGoddard

Good suggestions @GlennGoddard, that should be doable.

@zorrobyte I was wondering one thing: When the Tempest device is located on an RV, how do you ensure that it is pointing in the right direction all the time? I mean to measure wind direction, the device needs to know where north is.

briis avatar Jul 15 '22 06:07 briis

I have a compass available via ESP32/MQTT. I figured it was out of the scope of this repo, but a data transform could happen on the data so it is correct.

This could look like implementing a function in Node-Red or some other method.

My primary use case is to fold my roof mounted Solar panel array in high wind or if lightning is too close. It's also going to be nice to compare data between lux/solar energy and my PV array output to more intelligently switch on dump loads such as electric water heater.

This is how I automated my GPS location, my HA location gets updated programmatically https://boathackers.com/dynamically-set-location-in-home-assistant-for-boats/

Could be as easy as polling the HA location/grid to make things easy on a timer, but I agree that MQTT would be more flexible.

I'm early on in my project, but it's been fun so far!

image

zorrobyte avatar Jul 15 '22 08:07 zorrobyte

Woow, this looks cool. If I get some time during my summervacation I will look in to this.

briis avatar Jul 15 '22 09:07 briis

@zorrobyte What MQTT topics are you currently using? (so I can just mimic exactly what you have for input) Might as well figure out some standard topic names. I can use Node-Red to publish MQTT topics to simulate the inputs for testing. @briis I think the easiest for the user would be to have single JSON per MQTT topic for the intake of this data instead of everything on one string. I think if we try to have users do an array of MQTT JSON that it will be painful.

I was thinking that the Docker environmental variable should be something like '-e portable=true' (default false) or '-e stationary=false' (default true) and this would change where Lat/Long/Elevation/Time Zone get their data from.

How do you handle Time Zone right now? Do you have an automated way to determine Time Zone? (I'm just curious)

I assume you only really want this update when you are parked, or do you want to update while driving? I'm thinking we may throw a variable in to return a 'None' in Zambretti and local forecast if there was a 'significant' change in Lat/Long/Elevation/TZ since the last reading (assuming this is retrieved every 30 mins). May have to disable WF cloud forecast since that is set for a stationary location (at least with Tempest for now).

GlennGoddard avatar Jul 15 '22 16:07 GlennGoddard

Howdy @GlennGoddard !

I don't yet have topics set up for this. Something like oweather/$topic would work! I agree that a param would make it easy to switch off and on.

I do not yet have automated time zone figured out. Not sure if that is accessible via API/command https://www.home-assistant.io/blog/2015/05/09/utc-time-zone-awareness/

I assume you only really want this update when you are parked, or do you want to update while driving?

Either would work! Wind speeds aren't going to be valid when on the move and it would be nice to not record those values when gps speed is above 1MPH. I'm thinking for more general use, storm chasers and the like; It could be nice to work while "moving", when GPS speed isn't more than 0MPH. Lightning sensor should be fine. Temp and humidity, maybe; but not "critical". Rain sensor? Could read higher due to rain slamming into the casement.

zorrobyte avatar Jul 18 '22 15:07 zorrobyte

If you don't plan on changing the time zone in HA and keep the time for your "Home" location then there is not much of an issue. It just might throw off Solar Elevation which effects a few other things but the vast majority of sensors will be perfect.

Do you have the ability to get your vehicle speed into HA? If so, you could have a template sensor to only allow wind speed displayed if speed is <1mph or some other small amount.

One option is to operate the Seafarers way and just set your clocks to GMT when you are 'underway'.

GlennGoddard avatar Jul 18 '22 17:07 GlennGoddard

I'll be moving into my RV full time come December 3rd! I'll have much time to tinker with HA and enhancements such as this

zorrobyte avatar Oct 08 '22 13:10 zorrobyte

@zorrobyte Listen to the SelfHosted podcast, he lives in an RV. https://selfhosted.show/

GlennGoddard avatar Oct 08 '22 16:10 GlennGoddard