Jump to content

Polyglot weather station node servers


bpwwer

Recommended Posts

@simplextech, I'm using just a simple weather station, WS-0262A.  It just measures outdoor temperature, indoor temperature, and humidity, but it does push those values to ambientweather.net.  When I installed your node server, it appeared to get my correct device info, but when I looked at the node server logs, it looks like it starts to error our on I believe it was solar radiation (I've removed the node server since it didn't return any data).  I can reinstall your node server if you would like more info.

Link to comment
Share on other sites

3 minutes ago, peterskajr said:

@simplextech, I'm using just a simple weather station, WS-0262A.  It just measures outdoor temperature, indoor temperature, and humidity, but it does push those values to ambientweather.net.  When I installed your node server, it appeared to get my correct device info, but when I looked at the node server logs, it looks like it starts to error our on I believe it was solar radiation (I've removed the node server since it didn't return any data).  I can reinstall your node server if you would like more info.

I know the reason it's not working.  Same issue I'm looking at resolving for the WS-2000 as well.  I've just pushed out a couple of nodeservers I've been working on so I'm going to shift attention to AmbientWeather again.  As @bpwwer mentioned earlier we've talked about unifying the two nodeservers.

Link to comment
Share on other sites

On 11/27/2019 at 5:03 PM, peterskajr said:

Bob, thanks for the update.  When I get a chance, I will reinstall the node server and see how it reacts.  I've tried the node server from @simplextech and I don't get any returned values.  I have a very simple weather station at this time (just outdoor and indoor temperature and humidty).  The one thing that I liked about the one from @simplextech is it did at least include a field for indoor temperature.  What I am essentially trying to do is turn on/off a ceiling fan based on the indoor temperature reading from my weather station.   Been playing around with IFTTT and webhooks but it doesn't seem to be very reliable to get the indoor temperature value to populate a State Variable in my ISY setup.

 

I just made a few more updates, including the ability to use the indoor sensor.   Probably best to re-install again go get the new node files for the indoor sensors.

With this version, you should now see a new custom parameter called 'indoor' by default, it is set to disabled.  Change it to 'enabled' and restart the node server.  It will then add a new node that has the indoor temperature and humidity.

Link to comment
Share on other sites

@bpwwer, thanks for taking the time to try and include the indoor temperature node.  I reinstalled, enabled the Indoor temperature option, stopped and restarted the node, and it did create the indoor temperature node.  However, the indoor temperature did not populate with data.  When I looked at the logs in PGC, I noticed some errors below.  Since my PWS only provides tempf, tempinf, dewpoint, and humidity, I wonder if this is what is causing the errors and preventing the indoor temperature from displaying? 

 

2019-11-30 15:08:46,455 [Controller] [INFO ] {'dateutc': 1575126300000, 'tempf': 47.3, 'humidity': 67, 'tempinf': 62.6, 'dewPoint': 36.91, 'date': '2019-11-30T15:05:00.000Z'}

2019-11-30 15:08:46,456 [Controller] [INFO ] Updating Driver temperature - ST: 47.3 uom: 17

2019-11-30 15:08:46,456 [Controller] [ERROR] Missing data: feelsLike

2019-11-30 15:08:46,456 [Controller] [INFO ] Updating Driver temperature - GV1: 36.91 uom: 17

2019-11-30 15:08:46,457 [Controller] [INFO ] Updating Driver humidity - ST: 67 uom: 22

2019-11-30 15:08:46,457 [Controller] [ERROR] Missing data: baromabsin

2019-11-30 15:08:46,457 [Controller] [ERROR] Missing data: baromrelin

2019-11-30 15:08:46,459 [Controller] [ERROR] Exception in thread Controller:

Traceback (most recent call last):

  File "/usr/local/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.7/site-packages/pgc_interface/pgc_interface.py", line 797, in _parseInput
    self.longPoll()
  File "./ambient-poly.py", line 160, in longPoll
    trend = self.nodes[node].updateTrend(d['baromabsin'])
KeyError: 'baromabsin'

Link to comment
Share on other sites

51 minutes ago, peterskajr said:

@bpwwer, thanks for taking the time to try and include the indoor temperature node.  I reinstalled, enabled the Indoor temperature option, stopped and restarted the node, and it did create the indoor temperature node.  However, the indoor temperature did not populate with data.  When I looked at the logs in PGC, I noticed some errors below.  Since my PWS only provides tempf, tempinf, dewpoint, and humidity, I wonder if this is what is causing the errors and preventing the indoor temperature from displaying? 

 

2019-11-30 15:08:46,455 [Controller] [INFO ] {'dateutc': 1575126300000, 'tempf': 47.3, 'humidity': 67, 'tempinf': 62.6, 'dewPoint': 36.91, 'date': '2019-11-30T15:05:00.000Z'}

2019-11-30 15:08:46,456 [Controller] [INFO ] Updating Driver temperature - ST: 47.3 uom: 17

2019-11-30 15:08:46,456 [Controller] [ERROR] Missing data: feelsLike

2019-11-30 15:08:46,456 [Controller] [INFO ] Updating Driver temperature - GV1: 36.91 uom: 17

2019-11-30 15:08:46,457 [Controller] [INFO ] Updating Driver humidity - ST: 67 uom: 22

2019-11-30 15:08:46,457 [Controller] [ERROR] Missing data: baromabsin

2019-11-30 15:08:46,457 [Controller] [ERROR] Missing data: baromrelin

2019-11-30 15:08:46,459 [Controller] [ERROR] Exception in thread Controller:

Traceback (most recent call last):

  File "/usr/local/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.7/site-packages/pgc_interface/pgc_interface.py", line 797, in _parseInput
    self.longPoll()
  File "./ambient-poly.py", line 160, in longPoll
    trend = self.nodes[node].updateTrend(d['baromabsin'])
KeyError: 'baromabsin'

The missing data errors aren't really errors since it's not really a problem but more a way to check if something that should be there is missing. I just changed them to warnings, but maybe debug would be a better log level for those.

The actual crash shouldn't be something new.  It should have been doing that before but I guess since you were getting some data, you didn't notice.  I've fixed that in version 0.1.8. 

This version won't require a re-install. On the Polyglot cloud, just restart the node server to get the latest. For local, just update from the store.

Link to comment
Share on other sites

I also see the issue with temperature displaying in F - but you program the variables in C

My question is the conversion handled correctly - i.e. if I check for 0C it compared to 32F and not 0F?

I installed a few days back - should I still try to reinstall?

Thanks 

Link to comment
Share on other sites

11 hours ago, Panda88 said:

I also see the issue with temperature displaying in F - but you program the variables in C

My question is the conversion handled correctly - i.e. if I check for 0C it compared to 32F and not 0F?

I installed a few days back - should I still try to reinstall?

Thanks 

The ISY should handle the conversion, and note, that it's the ISY that needs to do that.  The node server simply sends the data value and the units it's in. 

If you have version 0.1.8 you shouldn't need to re-install but you may need to update the profile (use the button that's available in the admin console display for the main node). 

Depending on if you're using it from the cloud polyglot or a local polyglot, updating and versioning is different.  The cloud version will pull the latest version every time you re-start the node server, but it only displays the version number of what was first installed.  I.E. you can't rely on the version number to know what version you are running.  For a local polyglot you have to manually click an update button to update to the latest version, but the version number displayed will be the version you are running. 

Link to comment
Share on other sites

I just added a new weather service polyglot to the store, udi-weatherbit-poly.  This one pulls data from weatherbit.io

weatherbit.io is similar to darksky and open weather maps.  They have a free plan that works well.

I did a complete re-design for this node server to try and make it more modular and separate out the node server framework code from the actual weather data processing code. I spent a lot time trying to get the custom parameter handling to work correctly as well.   There are a couple of new features in this iteration:

1) added a command to the main node that lets you control the amount of log information the node server generates (thanks @Jimbo for the idea)

2) The number of days of forecast data is configurable. The service provides up to 16 days (including the current day) which is a lot of data to be sending to the ISY with each poll interval. Thus, you can now configure how many days you'd like to track.

As I have time, I plan to work on converting both the darksky and open weather map node servers over to this design.

  • Like 2
Link to comment
Share on other sites

10 hours ago, bpwwer said:

I just added a new weather service polyglot to the store, udi-weatherbit-poly.  This one pulls data from weatherbit.io

weatherbit.io is similar to darksky and open weather maps.  They have a free plan that works well.

I did a complete re-design for this node server to try and make it more modular and separate out the node server framework code from the actual weather data processing code. I spent a lot time trying to get the custom parameter handling to work correctly as well.   There are a couple of new features in this iteration:

1) added a command to the main node that lets you control the amount of log information the node server generates (thanks @Jimbo for the idea)

2) The number of days of forecast data is configurable. The service provides up to 16 days (including the current day) which is a lot of data to be sending to the ISY with each poll interval. Thus, you can now configure how many days you'd like to track.

As I have time, I plan to work on converting both the darksky and open weather map node servers over to this design.

The redesign sounds great. Is it possible to add the log control function to WeatherPoly? That nodeserver generates more the 75% of the log entries on my Polisy today

Link to comment
Share on other sites

12 hours ago, bpwwer said:

I just added a new weather service polyglot to the store, udi-weatherbit-poly.  This one pulls data from weatherbit.io

weatherbit.io is similar to darksky and open weather maps.  They have a free plan that works well.

I did a complete re-design for this node server to try and make it more modular and separate out the node server framework code from the actual weather data processing code. I spent a lot time trying to get the custom parameter handling to work correctly as well.   There are a couple of new features in this iteration:

1) added a command to the main node that lets you control the amount of log information the node server generates (thanks @Jimbo for the idea)

2) The number of days of forecast data is configurable. The service provides up to 16 days (including the current day) which is a lot of data to be sending to the ISY with each poll interval. Thus, you can now configure how many days you'd like to track.

As I have time, I plan to work on converting both the darksky and open weather map node servers over to this design.

Hi Bob,

I just added this nodeserver and it added fine. I like the way the information is displayed and I also like the added fields of the amount of rain today, and snow depth. One odd thing I will mention, the forecast names under the main node of WeatherBit Weather are not in numerical order.

Currently, they are listed as (I included 5 days of forecast):

Forecast 3 - (Wednesday)

Forecast 4 - (Thursday)

Forecast 2 - (Tuesday)

Forecast 1 - (Monday)

Forecast 5 - (Friday)

Good job and thanks for adding this nodeserver.

Regards,

Dennis

Edited by DennisC
Correction
Link to comment
Share on other sites

3 hours ago, DennisC said:

Hi Bob,

I just added this nodeserver and it added fine. I like the way the information is displayed and I also like the added fields of the amount of rain today, and snow depth. One odd thing I will mention, the forecast names under the main node of WeatherBit Weather are not in numerical order.

Good job and thanks for adding this nodeserver.

Regards,

Dennis

I don't have any control over the order they get added.  The node server is requesting them in loop, first to last day.  Maybe if I added a delay between the requests it would be more likely to get them in order.

4 hours ago, DaveStLou said:

The redesign sounds great. Is it possible to add the log control function to WeatherPoly? That nodeserver generates more the 75% of the log entries on my Polisy today

Yes, my goal is to work on all the weather related node servers. I'm trying to make them a bit more maintainable by using more common code.  The weatherbit node server was the prototype to separate out the weather service code from the node server framework code.  Things like the log control & custom parameter support will simplify all the node servers some.

It's just a matter of time.

Link to comment
Share on other sites

5 hours ago, bpwwer said:

Yes, my goal is to work on all the weather related node servers. I'm trying to make them a bit more maintainable by using more common code.  The weatherbit node server was the prototype to separate out the weather service code from the node server framework code.  Things like the log control & custom parameter support will simplify all the node servers some.

It's just a matter of time.

Great! You had only mentioned two of your many weather-related nodeservers. Glad hear you'll be converting others too. Thanks!

Link to comment
Share on other sites

On 12/8/2019 at 9:31 PM, bpwwer said:

I just added a new weather service polyglot to the store, udi-weatherbit-poly.  This one pulls data from weatherbit.io

weatherbit.io is similar to darksky and open weather maps.  They have a free plan that works well.

I did a complete re-design for this node server to try and make it more modular and separate out the node server framework code from the actual weather data processing code. I spent a lot time trying to get the custom parameter handling to work correctly as well.   There are a couple of new features in this iteration:

1) added a command to the main node that lets you control the amount of log information the node server generates (thanks @Jimbo for the idea)

2) The number of days of forecast data is configurable. The service provides up to 16 days (including the current day) which is a lot of data to be sending to the ISY with each poll interval. Thus, you can now configure how many days you'd like to track.

As I have time, I plan to work on converting both the darksky and open weather map node servers over to this design.

Bob,

I'm starting to see this error in log for Weatherbit:

[Controller] [ERROR] No response object in query response.

I also noticed, after almost an 1" of rain yesterday and today, that the current rain today field is not updating.

Regards,

Dennis

Link to comment
Share on other sites

2 hours ago, DennisC said:

Bob,

I'm starting to see this error in log for Weatherbit:

[Controller] [ERROR] No response object in query response.

I also noticed, after almost an 1" of rain yesterday and today, that the current rain today field is not updating.

Regards,

Dennis

That message indicates that the service didn't send any data.  Did you exceed the usage limits for the day?  Looking it up, it looks like you can only query every 3 to 4 minutes and any more often and you'll exceed the 500 call limit.  The node server is making 2 calls, one for current condition at the short poll interval and one for forecast data (unless it's set to 0 days) at long poll interval. 

I didn't check what the limits where so the default probably does exceed it.  They should probably be set to 5 minutes and 10 minutes

Link to comment
Share on other sites

3 hours ago, DennisC said:

@bpwwer - while you are updating the Weatherflow nodeserver, is there any way to capture the updated rain amount after rain correction runs the next morning?

I'm sure there is, but I haven't looked into it yet.  I was trying to make the node server mostly independent of the cloud services. It queries once at startup to get information like your units preference, but from that point on, it's just looking at the data generate by the hub on your local network.  

In this case, it's probably not a problem as the results can be considered optional, if the query failed to get the corrected rain data, you'd be no worse off.

I'll add something to the TODO list for this. Thanks for the suggestion.

Link to comment
Share on other sites

18 hours ago, bpwwer said:

That message indicates that the service didn't send any data.  Did you exceed the usage limits for the day?  Looking it up, it looks like you can only query every 3 to 4 minutes and any more often and you'll exceed the 500 call limit.  The node server is making 2 calls, one for current condition at the short poll interval and one for forecast data (unless it's set to 0 days) at long poll interval. 

I didn't check what the limits where so the default probably does exceed it.  They should probably be set to 5 minutes and 10 minutes

Thank you. I made the changes and will see what happens the next time it rains. It rained from the previous day and I would have expected to see some number other then 0 in the rain today. 

I will keep an eye on it.

Link to comment
Share on other sites

18 hours ago, bpwwer said:

I'm sure there is, but I haven't looked into it yet.  I was trying to make the node server mostly independent of the cloud services. It queries once at startup to get information like your units preference, but from that point on, it's just looking at the data generate by the hub on your local network.  

In this case, it's probably not a problem as the results can be considered optional, if the query failed to get the corrected rain data, you'd be no worse off.

I'll add something to the TODO list for this. Thanks for the suggestion.

Thank you. 

Let me know if you need something tested when you get around to it.

Link to comment
Share on other sites

Bob, I'm using your Meteobridge nodeserver with a Davis VP2+.  I wonder if it's possible to add the et0 calculation that is provided from Meteobridge when using the Davis.  i realize that this is Davis specific, but it would be useful since it would parallel the value used in my Rainmachine.

 

Thanks!

Link to comment
Share on other sites

On 12/15/2019 at 7:05 AM, DennisC said:

Thank you. I made the changes and will see what happens the next time it rains. It rained from the previous day and I would have expected to see some number other then 0 in the rain today. 

I will keep an eye on it.

Hi Bob,

We are having a rain day today and the field Rain Today is now populating in Weatherbit. Thanks for the tip.

Regards,

Dennis

Link to comment
Share on other sites

16 hours ago, glarsen said:

Bob, I'm using your Meteobridge nodeserver with a Davis VP2+.  I wonder if it's possible to add the et0 calculation that is provided from Meteobridge when using the Davis.  i realize that this is Davis specific, but it would be useful since it would parallel the value used in my Rainmachine.

 

Thanks!

The node server is getting the data from the livedata output from Meteobridge.  From the documentation of that, I don't see any et0 values being output, but then the documentation is not complete either.

Does accessing http://<your meteobridge ip>/cgi-bin/livedata.cgi so the et0 value?  If so, can you send me that output so I can see what it looks like?

Link to comment
Share on other sites

2 hours ago, bpwwer said:

The node server is getting the data from the livedata output from Meteobridge.  From the documentation of that, I don't see any et0 values being output, but then the documentation is not complete either.

Does accessing http://<your meteobridge ip>/cgi-bin/livedata.cgi so the et0 value?  If so, can you send me that output so I can see what it looks like?

No, it doesn't.  When I wrote the meteobridge parser for the rainmachine I used individual template rules which do include et0, so I just assumed.....

Thanks anyway.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...