Jump to content

Davis WeatherLink Live


garybixler

Recommended Posts

Hi Jim

Everything works perfectly. I was wondering if maybe we could replace 'Rain Size' with a more useful reading like 'Rainfall year' . I finally found that Rain Size just means what the spoons are calibrated to tip at (factory set). Either 0.01 inches or 5 mm . Even though the spoon calibration can mechanically be adjusted I don't think this reading will change. It also can't be changed through WeatherLink software.

Thanks Gary

Link to comment

Ah, that makes more sense now. For some reason I was thinking that rain size had something to do with the size of the raindrops.    Since the rain data is reported as bucket tips, I should be using this to do the calculations instead of a fixed 0.01 inches. I'll make that change and switch out the rain size on the display as well. 

Thanks!

Link to comment
  • 4 months later...

Hi bpwwer

Weather Link has been working great. Thanks. I have run across one issue. The Yearly rain doesn't appear to be conveyed from the NS to the ISY. I don't see that filled in on the admin console. I do see it in the Weatherlink NS log however.  I think it has always been filled in until I upgraded to v.5.0.16b.  Not sure that would have anything to do with it or not.

No rush at all but maybe take a look later.

Thanks Gary

Update: Yearly rain showed up after I started receiving some rain today. So it seems to be working. I had thought that a query would have brought it up.

Thanks

Link to comment
On 12/29/2019 at 8:08 AM, garybixler said:

Hi bpwwer

Weather Link has been working great. Thanks. I have run across one issue. The Yearly rain doesn't appear to be conveyed from the NS to the ISY. I don't see that filled in on the admin console. I do see it in the Weatherlink NS log however.  I think it has always been filled in until I upgraded to v.5.0.16b.  Not sure that would have anything to do with it or not.

No rush at all but maybe take a look later.

Thanks Gary

It looks like it should be reporting it.

However, it only reports the reading to the ISY when it changes.  If you look at the nodes in the polyglot dashboard. It's GV5 in the main controller node.  Does that have a value that matches the data in the log?   I think, because I tell the polyglot to only update the ISY when it changes, it's possible that upgrading the ISY, cleared the values in the ISY, but polyglot hasn't seen a change in the value so it hasn't sent an update.

It works this way to reduce the load on the ISY.

For a lot of my node servers I started forcing polyglot to send the values when the node server starts to as a way to work around this, but this one doesn't do that.  I'll have to update it otherwise, you'll probably not see that update until you get more rain.

Link to comment

It did resister when I starting getting rain. After rebooting the ISY after an update  "yearly rain" didn't get filled in. I thought a  query on the NS would bring it in but didn't.

It is fine now but after the next re-boot of the ISY it will probably not show up again until rain is detected.

Thanks Gary

Link to comment
  • 3 months later...

@bpwwerHi, I had an error occur  early this morning so I thought I would pass it along.  I would see an error similar to this if I had requested the data from the PC while polisy was still polling. I assume the weatherlink live can't support more that one connection at a time. This was early in the morning and nothing else accesses the weatherlink live so I am not sure why the error popped up. It is Ethernet connected powered by POE on a UPS backed up switch.  This has never happened just out of the blue. Restarted and runs fine again. 

Thanks Gary

2020-04-02 03:46:40,661 [Controller] [ERROR] Exception in thread Controller: Traceback (most recent call last): File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner self.run() File "/usr/local/lib/python3.7/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/var/polyglot/.local/lib/python3.7/site-packages/polyinterface/polyinterface.py", line 856, in _parseInput self.shortPoll() File "./wll.py", line 83, in shortPoll self.query_conditions() File "./wll.py", line 200, in query_conditions self.setDriver('BARPRES', float(record['bar_sea_level']), True, False) TypeError: float() argument must be a string or a number, not 'NoneType'

Link to comment

@Tominnh Hi, I have the Davis Weather console connected using the IP dongle.  This works well to update to the WeatherLink cloud and have local access using a PC running  the proprietary WeatherLink software. However as far as I know there has never been an API available for 3rd party access until the WeatherLink Live came along.

Gary

Just did a little search and there may now be an API available for WeathLink.com

Link to comment
4 hours ago, garybixler said:

@bpwwerHi, I had an error occur  early this morning so I thought I would pass it along.  I would see an error similar to this if I had requested the data from the PC while polisy was still polling. I assume the weatherlink live can't support more that one connection at a time. This was early in the morning and nothing else accesses the weatherlink live so I am not sure why the error popped up. It is Ethernet connected powered by POE on a UPS backed up switch.  This has never happened just out of the blue. Restarted and runs fine again. 

Thanks Gary

2020-04-02 03:46:40,661 [Controller] [ERROR] Exception in thread Controller: Traceback (most recent call last): File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner self.run() File "/usr/local/lib/python3.7/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/var/polyglot/.local/lib/python3.7/site-packages/polyinterface/polyinterface.py", line 856, in _parseInput self.shortPoll() File "./wll.py", line 83, in shortPoll self.query_conditions() File "./wll.py", line 200, in query_conditions self.setDriver('BARPRES', float(record['bar_sea_level']), True, False) TypeError: float() argument must be a string or a number, not 'NoneType'

Pushed an update that should trap the missing pressure value so it doesn't crash.

Link to comment
  • 1 month later...

@bpwwer  Hi, I got the following errors that caused Weathlink to come to a stop. I restarted and it's working fine again. Thought I would pass it along.

Thanks

Gary

Traceback (most recent call last):
  File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connection.py", line 157, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw
  File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/util/connection.py", line 84, in create_connection
    raise err
  File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/util/connection.py", line 74, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 61] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
    chunked=chunked,
  File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 387, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/local/lib/python3.7/http/client.py", line 1252, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.7/http/client.py", line 1298, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.7/http/client.py", line 1247, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.7/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.7/http/client.py", line 966, in send
    self.connect()
  File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connection.py", line 184, in connect
    conn = self._new_conn()
  File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connection.py", line 169, in _new_conn
    self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x802ef5ad0>: Failed to establish a new connection: [Errno 61] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/polyglot/.local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 720, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/util/retry.py", line 436, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='192.168.20.63', port=80): Max retries exceeded with url: /v1/current_conditions (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x802ef5ad0>: Failed to establish a new connection: [Errno 61] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/var/polyglot/.local/lib/python3.7/site-packages/polyinterface/polyinterface.py", line 856, in _parseInput
    self.shortPoll()
  File "./wll.py", line 83, in shortPoll
    self.query_conditions()
  File "./wll.py", line 128, in query_conditions
    c = requests.get(request)
  File "/var/polyglot/.local/lib/python3.7/site-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/var/polyglot/.local/lib/python3.7/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/var/polyglot/.local/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/var/polyglot/.local/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/var/polyglot/.local/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.20.63', port=80): Max retries exceeded with url: /v1/current_conditions (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x802ef5ad0>: Failed to establish a new connection: [Errno 61] Connection refused'))
 

 
Link to comment
14 hours ago, garybixler said:

@bpwwer  Hi, I got the following errors that caused Weathlink to come to a stop. I restarted and it's working fine again. Thought I would pass it along.

Thanks

Gary

Thanks for the report Gary.  Looks like WLL refused the connection for some reason, as it started working after the restart, I assume it must be a temporary failure.  I added error trapping to the request so it shouldn't crash if it happens again.

Link to comment
  • 2 weeks later...

@bpwwer  Hi, weatherlink live works great. The only thing that causes a problem is when the app is connected.  It causes the NS to stop with errors. I don't know if that is because the weatherlink live doesn't allow more than one connection at a time or not. I copied the log showing the errors. 

Thanks

Gary


 
2020-05-19 15:28:58,682 [Controller] [ERROR] Exception in thread Controller:
Traceback (most recent call last):
File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connection.py", line 157, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw
File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/util/connection.py", line 84, in create_connection
raise err
File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/util/connection.py", line 74, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 61] Connection refused
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
chunked=chunked,
File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 387, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/local/lib/python3.7/http/client.py", line 1252, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1298, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1247, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1026, in _send_output
self.send(msg)
File "/usr/local/lib/python3.7/http/client.py", line 966, in send
self.connect()
File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connection.py", line 184, in connect
conn = self._new_conn()
File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connection.py", line 169, in _new_conn
self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x8030e0210>: Failed to establish a new connection: [Errno 61] Connection refused
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
File "/var/polyglot/.local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 720, in urlopen
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
File "/var/polyglot/.local/lib/python3.7/site-packages/urllib3/util/retry.py", line 436, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='192.168.30.63', port=80): Max retries exceeded with url: /v1/current_conditions (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x8030e0210>: Failed to establish a new connection: [Errno 61] Connection refused'))
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
File "./wll.py", line 129, in query_conditions
c = requests.get(request)
File "/var/polyglot/.local/lib/python3.7/site-packages/requests/api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "/var/polyglot/.local/lib/python3.7/site-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/var/polyglot/.local/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/var/polyglot/.local/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/var/polyglot/.local/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.30.63', port=80): Max retries exceeded with url: /v1/current_conditions (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x8030e0210>: Failed to establish a new connection: [Errno 61] Connection refused'))
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.7/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/var/polyglot/.local/lib/python3.7/site-packages/polyinterface/polyinterface.py", line 856, in _parseInput
self.shortPoll()
File "./wll.py", line 83, in shortPoll
self.query_conditions()
File "./wll.py", line 132, in query_conditions
LOGGER.error(e.msg);
AttributeError: 'ConnectionError' object has no attribute 'msg'
Link to comment
On 5/19/2020 at 12:40 PM, garybixler said:

@bpwwer  Hi, weatherlink live works great. The only thing that causes a problem is when the app is connected.  It causes the NS to stop with errors. I don't know if that is because the weatherlink live doesn't allow more than one connection at a time or not. I copied the log showing the errors. 

Thanks

Gary



 
 

I just pushed a new version that should fix this.  Thanks for the report.

Link to comment

@bpwwer  Hi 

I loaded the later version (1.0.6) but it had a problem loading the indoor node and got this error. It did happen each time I reloaded the NS.

2020-05-21 17:33:59,128 [Controller] [INFO ] {'lsid': 246588, 'data_structure_type': 4, 'temp_in': 72.0, 'hum_in': 48.6, 'dew_point_in': 51.6, 'heat_index_in': 70.9} 2020-05-21 17:33:59,144 [Controller] [ERROR] Exception in thread Controller: Traceback (most recent call last): File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner self.run() File "/usr/local/lib/python3.7/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/var/polyglot/.local/lib/python3.7/site-packages/polyinterface/polyinterface.py", line 856, in _parseInput self.shortPoll() File "./wll.py", line 83, in shortPoll self.query_conditions() File "./wll.py", line 217, in query_conditions self.nodes['indoor'].setDriver('CLITEMP', float(record['temp_in']), True, False) KeyError: 'indoor'

After a restart it was able to get the indoor node to come up.

Also I ran the APP for several minutes and had no problem from that.

Thanks for the APP fix.

Gary

Link to comment
  • 3 months later...
14 hours ago, kp3 said:

Does WLL work with extra sensors? I have 2 extra Temp/Hum sensors Garage & Shed, and two extra Temp sensors Pool & Pool Heat Return attached to my Davis Vantage Pro. I have yet to learn they will be accepted and transfer through the WLL.

The node server doesn't support any extra sensors. It pulls data from the 'current' 'indoor', 'soil' sections of the data.  It only pulls one temperature/humidity value from the 'current' section.

I can add more values, but would need to see the actual data from WLL with the additional data as I don't have a Davis system.

Link to comment
9 hours ago, bpwwer said:

I can add more values, but would need to see the actual data from WLL with the additional data as I don't have a Davis system.

Hmmm. That’s the thing- I’ve been on the fence about getting the WLL because I can’t seem to find out if it is capable of even fetching or passing extra sensors data. The documentation says ‘any 8 sensors’ but Davis has, in my experience, always been less than transparent regarding limitations or work around of their products. 

I will dig further (or someone could chime in). I would be willing to share My station data if it turns out there is data to be had!

Link to comment

After reading the following article

https://www.manula.com/manuals/pws/davis-kb/1/en/topic/weatherlink-live

my head is exploding. It appears Davis wants to control when the WLL will spew even current conditions data. 
I'm having trouble understanding whether The article is referring to data from the WLL or data from a WeatherLink.com account generated by WLL data.  This v1 vs v2 api is beyond me.
     I really have zero interest in seeing my data via a weatherlink site. I use a third party application to collect and graph all my data. The sole purpose of the WLL pursuit here was to hopefully be able to capture real-time extra sensor data for use in ISY programming decisions. 
     I’m still lost if that is possible and am unwilling to spend $200 to find out. 
    Does any of that info lead you to believe we can pull data off the WLL before having anything to do with weather link.com and their account/subscription/data control requirements?

Link to comment

My node server does pull data directly from the device, I'm using the V1 API and it can be configured to pull as often as you want.

It currently does not handle multiple sensors, at least not correctly, so I'd have to make some modifications to handle additional outside temp/humidity sensors and I'd need to see what the data looks like to do that.

From looking at the docs, it appears that the WLL device does support multiple sensors for the current conditions, but I'm not sure I'd bet my own $200 on that.

 

Link to comment

Archived

This topic is now archived and is closed to further replies.


  • Recently Browsing

    • No registered users viewing this page.
  • Who's Online (See full list)

    • There are no registered users currently online
  • Forum Statistics

    • Total Topics
      36.8k
    • Total Posts
      369.7k
×
×
  • Create New...