Victron VRM Portal API data integration

Danke für die schnelle Antwort :smiling_face_with_three_hearts:

Ich habe die Komponenten im selben Netzwerk. Ich habe auch Werte im mqtt, siehe Screenshot.

Es ist gut erkennbar, dass die MPPT Laderegler arbeiten und im eigenen Netz ein Verbrauch ist.
Am Ende des Tages ist es aber nicht möglich, die Summer der Verbräuche zu lesen.

Ich finde nur etwas von den MPPT Ladern “/solarcharger/277/History/Daily/0/Yield” als Zusammenfassung.
Mein Ziel ist es, eine Auswertung zu bekommen, die die Tages-Ergebnisse zeigt.

Ok then, you can use MQTT. To get daily results you can do the following:

  • If you have not done it yet, create MQTT sensor in HA for whatever power flows you need, production, consumption, etc. using MQTT Sensor - Home Assistant
  • From the power (in Watt or kWatt) sensor create an energy sensor (power x time = energy) using the integration integration Integration - Riemann sum integral - Home Assistant
  • Using this sensor, create a daily Utility Meter using Utility Meter - Home Assistant
  • You can use the same energy sensor in Utility Meter to create daily, weekly, monthly etc. sensors so you can keep historical track of your production/consumption.

Let me know if this is clear or if you need any further help.

Danke für deine Mühe :grinning:

Es ist viel zu lesen.
:thinking:
Ich werde sehr bald daran arbeiten und testen, ob ich es kann. Auf dem ersten Blick, kann ich nicht sagen, ob ich weiter komme. Ich werde es dich wissen lassen.
Gruß Guido

ich habe die 3 Seiten gelesen und ich denke, ich verstehe was es für Arbeit bedeutet. Ich werde es jetzt noch nicht tun. Ein Freund hat mir mein System zusammen gestellt. Ich kann es mir nicht erlauben, da einen Fehler einzubauen. :sneezing_face:
Ich werde einfach am Monatsende, die Daten aus dem VRM Portal per Download nehmen und sie ablegen.

Es sind die Daten, die im Grunde das aussagen, was ich von der Anlage wissen will. Ich dachte, es ginge automatisch.
Ich danke für deine Zeit und Mühe.
Evtl. schaue ich in einiger Zeit noch erneut nach der Lösung… Dazu muss ich sicherer mit dem eigenen System sein.
Gruß Guido

I’m using the VRM api and works great except the grab the solar state.
“idSite”: 123184,

  "timestamp": 1683626287,

  "Device": "Solar Charger",

  "instance": 290,

  "idDataAttribute": 85,

  "description": "Charge state",

  "formatWithUnit": "%s",

  "dbusServiceType": "solarcharger",

  "dbusPath": "/State",

  "code": "ScS",

  "bitmask": 0,

  "formattedValue": "Bulk",

  "rawValue": 3,

  "dataAttributeEnumValues":

In States i get result unavailable

Did you get the text to work? Strugeling with the same.

Hello. This thread is quite old and for more than 3 years I’m now using local MQTT or modbus/TCP as implemented by Victron and detailed here
Unless you have a really compelling reason to use the API I do recommend you move to either the MQTT or modbus options.

Hello, yes I know. Old but still valueble for me.
My installation is remote, it’s on a Boat with cellular connection with a NAT ip address… I Use a RasPi that is connected to VRM. My Homeassstiant is running at home, and if I’m not mistaken the MQTT / modus/TCP will not work in my case.
But anyways. I got it to work.
Had to remove the UnitOfMesurment and change the value_template a bit…

Ok, good to know. I found the use of the API convenient in those cases but “cluncky” as best and prone to issues when Victron changed anything and the mappings didn’t work anymore.

I did use the VRM API earlier as my Victron is located in my RV.

I changed to use modbus and this HACS integration. Easy peasy to setup.
sfstar/hass-victron: Integration for Home Assistant to fetch data from the victron gx device via modbusTCP (github.com)

But llike you, my RV is om a Celuar connection so I added ZeroTier addon to Homeassistant, set up a ZeroTier network and added ZeroTier to the VenusOS as described here:
remote access to VenusOS: ZeroTier-One installation on RPi [HOW-TO] - Victron Community (victronenergy.com)
Note that this requere the use of VenusOS Large image as you have to compile ZeroTier on the device.

2 Likes

This topic was opened 5 years ago and except in very particular circumstances is not useful anymore so I wanted to close it but can’t find a way to do that on the forum.
On the subject of integrating Victron equipment with HA here is a short summary for those ending up here:

  1. Use the VRM API as explained in this thread
    When? If your Victron installation is remote and it’s only connection to the “world” is via VRM
  2. Use MQTT as explained in many threads and specifically here
    When? If you’re familiar with MQTT and envision the use of, for instance, Red-Node, for logic programming and automations
  3. Use modbusTCP either using DYI config or using the excellent HACS integration from @sfstar you can find here
    When? If you’re familiar with modbus and like to keep it simple

After having used all 3 methods I am now and for the foreseeable future using modbus because I have other modbus integrations in my HA such as for instance swimming pool filters/clorinator, Fronius inverter, etc. which reduces the number of integration and keeps it simple. But this is a purely personal choice, feel free to test and try and break and share your experiences.

If you want Victron’s opinion please read this post by Matthys Vader on the subject. you can find the complete thread here

3 Likes

Hello, please help??
I somehow tried everything, but:
HOW SHOULD I ADD THOSE SENSORS TO LOVELACE !!
I DON’T SEE ANY ICON ON MY VIEW.
Thank you.

Do you really need to use the VRM API or can you not use MQTT or modbusTCP?

I am using Modbus TCP and it works great. It’s just matter of downloading the Modbus TCP register list from Victron technical info, and then write sensor definitions for selected parameters, for example

  - name: "ESS battery SoC"
    unique_id: "PAkBZRSAZWIeJkdNQ2JwAKFTVsmtzrsd"
    unit_of_measurement: "%"
    scan_interval: 20
    slave: 100
    address: 843
    data_type: uint16
    device_class: battery
1 Like

Please do not close this topic!

If you can use modbus or MQTT this is of course a much better way, but if you use globalLink the VRM api is the only way to integrate.

I have a cabin with solar power only, and being in Norway and in a northfacing slope i have zero sun from Nov - Mar so having anything other than a globallink to watch my system is impossible without draining the batteries.

The globallink use 4g LTE-M to send data each 15 mins directly to the VRM. It use very little energy, but cannot be remotely accessed any other way than by the VRM api.

The globalLlink have a relay so i can turn on my 4g wifi-modem and webcams etc to make quick checkouts and then turn off everything except the globallink again.

BTW the api have a full web interface for testing out all the calls from a browser at

https://vrm-api-docs.victronenergy.com/#/

I didn’t see this in the thread. If its there i apologize.

Very easy to test out all calls, just remember that the tokens should be written without the surrounding “<>” signs (Took me a while to figure that one out…)

-Goffen

1 Like
Bearer <eyJ0e....>  = "success": false

Bearer eyJ0e....      = "success": TRUE!!

-Goffen

Hello, I have a problem and hope someone can help:
I connected via VRM API.
vrm is connected.
However, I don’t get any battery data.
I have the data set from here:

  • platform: template
    sensors:
    vrm_temp:
    friendly_name: ‘VRM Battery temperature’
    value_template: ‘{% for item in states.sensor.vrm_data.attributes.records if item[“code”] == “CT” and item[“instance”] == 521 %}{{ item[“formattedValue”][ :-2] | float() | round(1) }}{% endfor %}’
    unit_of_measurement: ‘°C’

    battery:
    friendly_name: ‘VRM Battery’
    value_template: ‘{% for item in states.sensor.vrm_data.attributes.records if item[“code”] == “SOC” and item[“instance”] == 288 %}{{ item[“formattedValue”][ :-2] | float() | round(1) }}{% endfor %}’
    unit_of_measurement: ‘%’

Data from VRM:
sensor.vrm_data

success: true
records:

  • idSite: *******
    accessLevel: 1
    owner: true
    is_admin: true
    name: Electrics
    identifier: *********
    idUser: *******
    pvMax: 0
    time zone: Europe/Berlin
    phonenumber: zero
    notes: zero
    geofence: zero
    geofenceEnabled: false
    realtimeUpdates: true
    hasMains: 0
    hasGenerator: 0
    noDataAlarmTimeout: null
    alarm monitoring: 1
    invalidVRMAuthTokenUsedInLogRequest: 0
    syscreated: 170*****
    isPaygo: 0
    paygoCurrency: null
    paygoTotalAmount: zero
    idCurrency: 1
    currencyCode: EUR
    currencySign: €
    currencyName: Euro
    inverterChargerControl: 0
    shared: false
    device_icon: battery
    friendly_name: vrm data

Hi. Difficult to say with the data you provide. Have you checked the vrm_data output for the instance carrying the SOC?
But before that, are you using the API because your HA instance is not on the same network/site as the Victron installation, or for another reason? Could you use MQTT or modbus?

I suspect that I inserted incorrect data by copying it. Do I get the sensor data via Postmann or are they standard values?
Yes, I’m not on the same network, otherwise it would be easier.

Hi, my configurations stopped working. I’m running 2024.4.0
No changes have been done to the configuration. Any

I have tested with postman and Token works.
Also tested in Template Editor and i get a ‘value_json’ is undefined


Any idea what could be the problem?

Have you looked into the logs?