Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions source/_integrations/victronvenus.markdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
title: "Victron Venus OS Integration"
description: "Documentation for the Victron Venus integration"
ha_release: "2025.3"
ha_category: Energy
ha_iot_class: "Local Push"
ha_config_flow: true
ha_codeowners:
- '@JohansLab'
ha_domain: victronvenus

---

The [Victron](https://www.victronenergy.com/) Venus OS integration allows connection to
a [Victron Venus OS device](https://www.victronenergy.com/monitoring).
that has local MQTT enabled. This add-on will automatically configure the
integration through UPnP/Simple Service Discovery Protocol if possible.

## Installation and Configuration

### Prerequisites

This integration requires a Venus OS device configured to expose its MQTT interface.
To configure it on your device the following steps can be followed:

1. Open the Venus local web console. It is typically available at
[http://venus.local.](http://venus.local./).
2. Navigate to Settings > Services and activate MQTT on LAN.

### Setup in Home Assistant

If MQTT is enabled the installation should be picked up automatically with
UPnP/Simple Service Discovery Protocol. In case the device is not picked up automatically
it can be added manually.

To add the integration manually, add the integration using Home Assistant's
menu. It will prompt for the following information:

1. Host name - Default venus.local. You can also enter an IP address
2. Port - the default MQTT port is 1883.
3. User name - this is optional and the default is empty.
4. Password - this is optional and the default is empty.
5. Use SSL - indicates whether the connection should be made via SSL.

Comment on lines +41 to +44
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Add security warning about default empty credentials

Please add a security warning about using default empty credentials, especially when the device is exposed to the internet. Consider adding:

 3. User name - this is optional and the default is empty. 
 4. Password - this is optional and the default is empty.
+
+{% warning %}
+Using default empty credentials is not recommended if your device is accessible from the internet. 
+Consider implementing network isolation or firewall rules to restrict access to your local network.
+{% endwarning %}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
3. User name - this is optional and the default is empty.
4. Password - this is optional and the default is empty.
5. Use SSL - indicates whether the connection should be made via SSL.
3. User name - this is optional and the default is empty.
4. Password - this is optional and the default is empty.
{% warning %}
Using default empty credentials is not recommended if your device is accessible from the internet.
Consider implementing network isolation or firewall rules to restrict access to your local network.
{% endwarning %}
5. Use SSL - indicates whether the connection should be made via SSL.
🧰 Tools
🪛 LanguageTool

[style] ~41-~41: It’s more common nowadays to write this noun as one word.
Context: ...ort - the default MQTT port is 1883. 3. User name - this is optional and the default is e...

(RECOMMENDED_COMPOUNDS)


[uncategorized] ~41-~41: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...is 1883. 3. User name - this is optional and the default is empty. 4. Password - th...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~42-~42: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...s empty. 4. Password - this is optional and the default is empty. 5. Use SSL - indi...

(COMMA_COMPOUND_SENTENCE_2)

🪛 Markdownlint (0.37.0)

41-41: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)

Not that the Venus settings on the device does not allow you to configure
a username and password via the Venus web console.
Comment on lines +45 to +46
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix typo in configuration note.

-Not that the Venus settings on the device does not allow you to configure
+Note that the Venus settings on the device do not allow you to configure
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Not that the Venus settings on the device does not allow you to configure
a username and password via the Venus web console.
Note that the Venus settings on the device do not allow you to configure
a username and password via the Venus web console.


+{% warning %}
+Using default empty credentials is not recommended if your device is accessible from the internet.
+Consider implementing network isolation or firewall rules to restrict access to your local network.
+{% endwarning %}

The connection typically fail for the following reasons:

Comment on lines +53 to +54
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix grammar in error description.

-The connection typically fail for the following reasons:
+The connection typically fails for the following reasons:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
The connection typically fail for the following reasons:
The connection typically fails for the following reasons:
🧰 Tools
🪛 LanguageTool

[grammar] ~53-~53: Possible subject-verb agreement error.
Context: ...dwarning %} The connection typically fail for the following reasons: 1. Device i...

(SINGULAR_NOUN_ADV_AGREEMENT)

1. Device is not configured for MQTT, please see [Prerequisites]
2. The network connection to the device is unstable (e.g. due to weak WiFi signal
or similar). This can cause name look-up failures. For unstable connections using
the IP address of the device can alleviate the problem.


## Removing the integration

This integration follows standard integration removal. No extra steps are required.

{% include integrations/remove_device_service.md %}

## Integration Functionality

The integration currently only provides sensors.

### List of exposes sensors

#### Grid Sensors

- The number of grid phases e.g. 1 for single-phase, or 3 for three-phase.
If there is a grid failure then the number of phases will be 0. This can be used
detect grid failure.
Comment on lines +75 to +77
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix grammar in grid sensors description.

-The number of grid phases e.g. 1 for single-phase, or 3 for three-phase.
-If there is a grid failure then the number of phases will be 0. This can be used
-detect grid failure.
+The number of grid phases (e.g., 1 for single-phase, or 3 for three-phase).
+If there is a grid failure, then the number of phases will be 0. This can be used
+to detect grid failure.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- The number of grid phases e.g. 1 for single-phase, or 3 for three-phase.
If there is a grid failure then the number of phases will be 0. This can be used
detect grid failure.
The number of grid phases (e.g., 1 for single-phase, or 3 for three-phase).
If there is a grid failure, then the number of phases will be 0. This can be used
to detect grid failure.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~75-~75: Possible missing comma found.
Context: ...#### Grid Sensors - The number of grid phases e.g. 1 for single-phase, or 3 for three...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~76-~76: Possible missing comma found.
Context: ...r 3 for three-phase. If there is a grid failure then the number of phases will be 0. Th...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~76-~76: Possible missing preposition found.
Context: ...r of phases will be 0. This can be used detect grid failure. - The AC voltage, current...

(AI_HYDRA_LEO_MISSING_TO)

- The AC voltage, current and power for each of the available grid phases.
- The combined voltage, current and power for the combined grid input.
- The lifetime running total of all energy consumed from the grid, or fed back
to the grid. These figures generally only makes sense as delta values.

#### Solar Panels

- The DC voltage, current and power of the solar panels.
- The lifetime running total yield of the solar panels. These figures generally
only makes sense as delta values.
- The maximum power produced by the solar panels for the current day.

#### Batteries

- The DC voltage, current and power of the batteries.
- The temperature of the battery.
- The lifetime running total of energy charged and discharged from the battery.
These figures generally only makes sense as delta values.
- The current capacity and installed capacity of the batteries in Ampere-Hours (Ah).
- The state of charge of the batteries.

#### Consumption

- The AC Load in watts on the inverter input.
- The Critical Loads in watts on the inverter output.

## Limitations

The integration currently has the following limitations:

- The integration was built and tested against an installation consisting of a
single-phase grid-tied Multiplus Inverter, with a single MPPT Solar Charger and
a battery that contains its own BMS. Your installation might have a different
configuration.
- The integration does not currently support generators and other configuration
options.
- The integration currently only exposes sensors, it does not yet allow changing
Venus OS settings from Home Assistant.
- This integration was not tested with MQTT with SSL.


## Advanced Troubleshooting Options

### Verify that the Venus device is visible on your network:

```bash
ping venus.local.
```
Comment on lines +121 to +125
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Refine Advanced Troubleshooting Heading and Ping Command

  • Remove the trailing colon from the heading "### Verify that the Venus device is visible on your network:" to comply with markdownlint guidelines.
  • In the ping command (line 124), remove the trailing period from "venus.local." so that it reads simply venus.local. For example:
-### Verify that the Venus device is visible on your network:
+### Verify that the Venus device is visible on your network
-ping venus.local.
+ping venus.local
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Verify that the Venus device is visible on your network:
```bash
ping venus.local.
```
### Verify that the Venus device is visible on your network
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

121-121: Trailing punctuation in heading
Punctuation: ':'

(MD026, no-trailing-punctuation)


#### Verify that MQTT is working and available

1. Download an application like [MQTT Explorer](http://mqtt-explorer.com/) and
connect to your venus device.
2. Find your serial number under the topic hierarchy e.g. "N/<serial>/system/0/Serial"
3. Publish the number "1" to the topic "R/<serial>/keepalive"
4. You should see various parameters of your system reflected under the "N/<serial>"
hierarchy.