New Add-on: Vantage Pro 2 MQTT (Deprecated)

Marco, Your version 1.0.8 fixed the connection issue I was experiencing. All is well now! Thanks for the quick response and update. Again, your Vantage Pro 2 MQTT is awesome. It is so nice to have my Davis Weather Vantage Pro2 integrated with Home Assistant.

I updated to 1.0.8. If I do a restart the Add-on gets data from the weather station and updates the entities as expected, but it never updates them again. In the log it looks like it is reading from the weather station just fine in each interval and says it passes the data to MQTT. I donā€™t see any errors in MQTT. I have tried restarting everything with no luck.

[2023-04-18 15:04:22] INFO: Check CRC : OK
[2023-04-18 15:04:22] INFO: Close connection <TCPLink tcp:192.168.1.186:22222>
[2023-04-18 15:04:22] INFO: Connection <TCPLink tcp:192.168.1.186:22222> was closed
[2023-04-18 15:04:22] DEBUG: Datetime=2023-04-18T15:04:22-0600 (type=<class 'str'>)
[2023-04-18 15:04:22] DEBUG: BarTrend=Falling Rapidly (type=<class 'str'>)
[2023-04-18 15:04:22] DEBUG: Barometer=29.284 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: TempIn=72.2 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: HumIn=21 (type=<class 'int'>)
[2023-04-18 15:04:22] DEBUG: TempOut=56.2 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: WindSpeed=5 (type=<class 'int'>)
[2023-04-18 15:04:22] DEBUG: WindSpeed10Min=4 (type=<class 'int'>)
[2023-04-18 15:04:22] DEBUG: WindDir=313 (type=<class 'int'>)
[2023-04-18 15:04:22] DEBUG: HumOut=13 (type=<class 'int'>)
[2023-04-18 15:04:22] DEBUG: RainRate=0.0 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: UV=n/a (type=<class 'str'>)
[2023-04-18 15:04:22] DEBUG: SolarRad=n/a (type=<class 'str'>)
[2023-04-18 15:04:22] DEBUG: RainDay=0.0 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: RainMonth=0.01 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: RainYear=13.12 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: BatteryVolts=4.7 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: ForecastIcon=7 (type=<class 'int'>)
[2023-04-18 15:04:22] DEBUG: ForecastRuleNo=Increasing clouds and cooler. Precipitation possible within 6 hrs. Windy with possible wind shift to the W, NW, or N. (type=<class 'str'>)
[2023-04-18 15:04:22] DEBUG: HeatIndex=56.2 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: WindChill=55.500257681575704 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: FeelsLike=56.2 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: WindDirRose=NW (type=<class 'str'>)
[2023-04-18 15:04:22] DEBUG: DewPoint=5.9 (type=<class 'float'>)
[2023-04-18 15:04:22] DEBUG: WindSpeedBft=2 (type=<class 'int'>)
[2023-04-18 15:04:22] DEBUG: IsRaining=OFF (type=<class 'str'>)
[2023-04-18 15:04:22] INFO: Data sent to MQTT

Does the log show more information after Data sent to MQTT? And what interval did you use in de configuration?

Hola. Ya si actualiza en Weatherlink. Desde que he actualizado me aparecen mediciones puntuales de viento errĆ³neas, siempre con un mismo valor 410,4 Km/h. Al principio era en varios sensores, ahora solo en la velocidad media del viento. Le estĆ” pasando a alguien?

PodrĆ­a incluir la unidad de la radiaciĆ³n solar (w/m2). Un saludo y gracias.

That is where the log ends until the next cycle. Below is the log from one cycle to the next. I currently have it set to 75 seconds. My station uploads to weatherlink every 60 seconds so I wanted to be off to avoid some conflicts.

[2023-04-19 08:18:34] DEBUG: RainYear=13.12 (type=<class 'float'>)
[2023-04-19 08:18:34] DEBUG: BatteryVolts=4.7 (type=<class 'float'>)
[2023-04-19 08:18:34] DEBUG: ForecastIcon=3 (type=<class 'int'>)
[2023-04-19 08:18:34] DEBUG: ForecastRuleNo=Mostly cloudy and cooler. Precipitation possible within 12 hours, possibly heavy at times. Windy. (type=<class 'str'>)
[2023-04-19 08:18:34] DEBUG: HeatIndex=35.5 (type=<class 'float'>)
[2023-04-19 08:18:34] DEBUG: WindChill=35.5 (type=<class 'float'>)
[2023-04-19 08:18:34] DEBUG: FeelsLike=37.2295 (type=<class 'float'>)
[2023-04-19 08:18:34] DEBUG: WindDirRose=NNW (type=<class 'str'>)
[2023-04-19 08:18:34] DEBUG: DewPoint=17.2 (type=<class 'float'>)
[2023-04-19 08:18:34] DEBUG: WindSpeedBft=1 (type=<class 'int'>)
[2023-04-19 08:18:34] DEBUG: IsRaining=OFF (type=<class 'str'>)
[2023-04-19 08:18:34] INFO: Data sent to MQTT
[2023-04-19 08:19:49] INFO: Acquiring data from tcp:192.168.1.186:22222 using vproweather
[2023-04-19 08:19:49] INFO: new <TCPLink tcp:192.168.1.186:22222> was initialized
[2023-04-19 08:19:49] INFO: try wake up console
[2023-04-19 08:19:49] INFO: Write : <'\n'>
[2023-04-19 08:19:49] INFO: Read : <'\n\r'>
[2023-04-19 08:19:49] INFO: Check ACK: OK ('\n\r')
[2023-04-19 08:19:49] INFO: try send : VER
[2023-04-19 08:19:49] INFO: Write : <'VER\n'>
[2023-04-19 08:19:50] INFO: Read : <'\n\rOK\n\r'>
[2023-04-19 08:19:50] INFO: Check ACK: OK ('\n\rOK\n\r')
[2023-04-19 08:19:50] INFO: Read : <'Sep 29 2009\n\r'>
[2023-04-19 08:19:50] INFO: try wake up console

For some added debug information, I saw the issue ronrose77 is experiencing. I set my ā€œintervalā€ to 60 and can see the same thing. I have been using an interval of 10 and that seems to work just fine for my set up.

FYI, I reset my interval back to the default of 30 and it looks to be updating now.

@ronrose77
I think I fixed the issue where MQTT didnā€™t get updated if an interval of 60 seconds or more is used. Please give it a try.

Looks to be working now with the interval set backup to 75. Thanks!

thanks for the reply, i have no idea what happens with my HA but i ended up restarting a few times and it seems to be running now ( green dot) and getting all the info thats on the display also.
Thanks again

Hi Marcos, will PyVantagePro communicate with a Davis Vantage Vue running with a serial to USB data logger?

If itā€™s a WeatherLink datalogger, then yes, it probably will. I donā€™t own a Vue myself.

My apologies should have finished reading all the posts, I did get it communicating with my Vue.
I did have an error and had to amend line 85 of the main.py file to get things working for me.
I changed print args.start too print (ā€˜args.startā€™) Hope that wonā€™t cause any other issues as I continue to experiment with your work?
Thank you for all your work and supportā€¦ I have been looking for something like this for quite a while!

Marco, I have pyvanatgepo installed and pulling data through my serial connection. I have Home Assistant Core and eclipse-mosquitto installed and connected in a Debian Docker environment. HA core will not let me add your repository to install Vantage Pro 2 MQTT to make the final connection. Are there other options to Vantage Pro 2 MQTT? This is all very new too meā€¦

You donā€™t need to install pyvantagepro yourself. By installing the add-on you install a container within HA. The add-on will use the pyvantagepro which is already installed within the container.
Which error did you get when installing the add-on within HA?

When I click the ā€œAdd Repositoryā€ link above, says this site cannot provide a secure connection. I tried to manually add the Repository from inside HA as a custom Repository, and HA tells me the Repository structure for master is not compliant. Is there a set of command line instructions to install your container that way?

Thinking because I am running HA Core which does not include the ā€œSupervisorā€ function. I am unable to install Add-Ons in the traditional way.

Iā€™m sorry, I use HAOS myself and installing custom repoā€™s isnā€™t a problem. Maybe someone else in the community can help you out,

Just installed the most recent version of the add-on and Iā€™m really looking forward to getting this working.
Somehow, the add-on keeps stopping due to a write issue. The debug-log shows the following (removed the password (replace by ā€˜cutā€™).

The system is a Davis Vantage Pro 2, with an IP adapter in the console. IP adress of the console is 192.168.1.187, of HA it is 192.168.1.185
I do read out the console with Virtual Weather Station trough port 22222, based on the MAC adress. This has been working flawlessly for over 5 years. The sample rate is every 1.0 seconds as it rapid-fires into WeatherUnderground.

Nonetheless, I would like to use my local data in Home Assistant to use the data on a dashboard and to trigger automations. This addon seems the perfect fit, if I can get it to work :wink:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[15:12:36] INFO: MQTT available, fetching server details ...
[15:12:36] INFO: MQTT server settings not configured, trying to auto-discovering ...
[15:12:36] DEBUG: Requested API resource: http://supervisor/services/mqtt
[15:12:36] DEBUG: Request method: GET
[15:12:36] DEBUG: Request data: {}
[15:12:36] DEBUG: API HTTP Response code: 200
[15:12:36] DEBUG: API Response: {"result": "ok", "data": {"host": "core-mosquitto", "port": 1883, "ssl": false, "protocol": "3.1.1", "username": "addons", "password": " cut ", "addon": "core_mosquitto"}}
[15:12:37] INFO:  -d null -a 192.168.1.187:22222 -b core-mosquitto -P 1883 -u addons -p cut  -I homeassistant -s Metric -i 30 -l debug
[2023-08-18 15:12:37] DEBUG: device = 
[2023-08-18 15:12:37] DEBUG: address = 192.168.1.187:22222
[2023-08-18 15:12:37] DEBUG: broker = core-mosquitto
[2023-08-18 15:12:37] DEBUG: port = 1883
[2023-08-18 15:12:37] DEBUG: mqtt_user = addons
[2023-08-18 15:12:37] DEBUG: mqtt_pass = cut
[2023-08-18 15:12:37] DEBUG: discovery_prefix = homeassistant
[2023-08-18 15:12:37] DEBUG: unit_system = Metric
[2023-08-18 15:12:37] DEBUG: interval = 30
[2023-08-18 15:12:37] DEBUG: log_level = debug
[2023-08-18 15:12:37] DEBUG: new_sensor_used = False
[2023-08-18 15:12:37] DEBUG: alt_windspeed_uom = False
[2023-08-18 15:12:37] DEBUG: Added MQTT user and password
[2023-08-18 15:12:37] INFO: Connecting to MQTT broker
[2023-08-18 15:12:37] INFO: Connecting to weather station
[2023-08-18 15:12:39] INFO: new <TCPLink tcp:192.168.1.187:22222> was initialized
[2023-08-18 15:12:39] INFO: try wake up console
[2023-08-18 15:12:39] INFO: Write : <'\n'>
[2023-08-18 15:12:39] INFO: Read : <'\n\r'>
[2023-08-18 15:12:39] INFO: Check ACK: OK ('\n\r')
[2023-08-18 15:12:39] INFO: try send : VER
[2023-08-18 15:12:39] INFO: Write : <'VER\n'>
[2023-08-18 15:12:59] ERROR: Check ACK: BAD ('\n\rOK\n\r' != '')
[2023-08-18 15:13:00] INFO: try send : VER
[2023-08-18 15:13:00] INFO: Write : <'VER\n'>
[2023-08-18 15:13:20] ERROR: Check ACK: BAD ('\n\rOK\n\r' != '')
[2023-08-18 15:13:20] INFO: try send : VER
Traceback (most recent call last):
  File "//./vantagepro2mqtt.py", line 222, in <module>
    vantagepro2 = VantagePro2.from_url(link)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pyvantagepro/device.py", line 80, in from_url
    return cls(link)
           ^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pyvantagepro/device.py", line 69, in __init__
    self._check_revision()
  File "/usr/lib/python3.11/site-packages/pyvantagepro/device.py", line 329, in _check_revision
    if self.firmware_date < date:
       ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pyvantagepro/utils.py", line 66, in __get__
    value = self.func(obj)
            ^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pyvantagepro/device.py", line 286, in firmware_date
    self.send("VER", self.OK)
  File "/usr/lib/python3.11/site-packages/pyvantagepro/utils.py", line 93, in wrapped_f
    raise e
  File "/usr/lib/python3.11/site-packages/pyvantagepro/utils.py", line 85, in wrapped_f
    ret = f(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pyvantagepro/device.py", line 115, in send
    self.link.write("%s\n" % data)
  File "/usr/lib/python3.11/site-packages/pylink/link.py", line 115, in write
    self.send_to_socket(bytes(data.encode('utf-8')))
  File "/usr/lib/python3.11/site-packages/pylink/link.py", line 167, in send_to_socket
    self.socket.sendall(data)
BrokenPipeError: [Errno 32] Broken pipe
[2023-08-18 15:13:20] INFO: Close connection <TCPLink tcp:192.168.1.187:22222>
[2023-08-18 15:13:21] INFO: Connection <TCPLink tcp:192.168.1.187:22222> was closed
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Appearantly Iā€™m doing something wrong, however, any hint in the right direction would be highly appreciated.

I not sure because I donā€™t own a WeatherLink IP myself. Is the VantagePro2MQTT currently the only software reading the vantage pro?