Integração e controlo de Victron Energy

Boas,
Não tenho nenhuma experiencia em Home Assistant e por isso tenho evitado a sua implementação cá em casa, mas chegou o momento em que não o posso mais evitar e por isso venho solicitar a V/ajuda neste meu projecto.
Já pesquisei bastante, mas tem sido dificíl conseguir encontrar o que preciso.
O meu sistema de armazenamento de baterias da Victron é composto por o seguinte:

  • Medidor de energia EM24;
  • Controlador Cerbo GX;
  • Inversor Multiplus II 48/5000/70;
  • Baterias Pylontech

Até ao momento consegui:

  1. Instalar o HA numa máquina virtual num PC Windows.

  2. Adicionar o File editor, Grafana, Node-RED…

  3. Visualizar alguns parametros do sistema Victron através de modbus, tendo para isso:

modbus: !include modbus.yaml
  • Criei um ficheiro modbus.yaml, onde escrevi:
# modbus:
  - name: victron
    type: tcp
    host: 192.168.1.165 
    port: 502
    sensors:
      - name: "Grid Power"
        scan_interval: 10
        unit_of_measurement: "W"
        slave: 100
        address: 820

      - name: "AC Loads"
        scan_interval: 10
        unit_of_measurement: "W"
        slave: 100
        address: 817
 
      - name: "Inverter State"
        scan_interval: 10
        slave: 227
        address: 31 
 
      - name: "ESS State"
        scan_interval: 60
        slave: 100
        address: 2900

      - name: "Battery Power"
        scan_interval: 10
        unit_of_measurement: "W"
        slave: 100
        address: 842
        
      - name: "Battery SOC"
        scan_interval: 60
        unit_of_measurement: "%"
        slave: 225
        address: 266
        scale: 0.1

    switches:
      - name: Active input current limit
        slave: 227
        address: 22
        command_on: 200
        command_off: 100

      - name: ESS power setpoint - W
        slave: 227
        address: 37
        command_on: 0
        command_off: 20

Esta parte final dos switches penso que não deveria ser assim, pois o que pretendo é alterar os valores.
Tentei usar o Node-RED para alterar a determinada hora o ESS power setpoint para 0 e para -20 a outra hora, mas não sei qual o node usar para especificar as horas ou como fazer a integração de forma a alterar ESS power setpoint no equipamento.

Entretando alterei o ficheiro mobdus.yaml e retirei os switches e acrescentei as linhas seguintes:

    #Alteracões:
      - name: "Active input current limit"
        scan_interval: 60
        unit_of_measurement: "A"
        slave: 227
        address: 22
        scale: 1
        precision: 1
        device_class: current
        input_type: input

      - name: "ESS power setpoint"
        scan_interval: 60
        unit_of_measurement: "W"
        slave: 100
        address: 2700
        precision: 1
        device_class: current
        input_type: input

No HA acrescentei 2 botões para testar se estava a funcionar:


O respectivo codigo:

type: button
tap_action:
  action: call-service
  service: modbus.write_register
  service_data:
    address: 22
    unit: 227
    hub: victron
    value: 20
  target: {}
entity: sensor.active_input_current_limit
show_state: true
type: button
tap_action:
  action: call-service
  service: modbus.write_register
  service_data:
    address: 2700
    unit: 100
    value: 1
    hub: victron
  target: {}
entity: sensor.ess_power_setpoint
show_state: true

Com isto consigo alterar as configurações dos sensores para os valores que lá coloquei, mas continuo sem conseguir criar os automatismos no Node-RED… :disappointed:

Por exemplo como eu faço para alterar o sensor.active_input_current_limit a uma determinada hora?

Em vez de um botao um automatismo no HA

E/ou usar um input_number intermediário

Essa entidade é só o resultado

O que realmente controla é o serviço do modbus

Muito obrigado pela resposta.
Andava às voltas com o Node-RED mas não estava a ver bem a questão :+1:

Deixei para já de parte o Node-RED e criei as automações no menu Configuração-Automação:

automacoes

alias: Desligar inversor bateria durante bi_horario
description: ''
trigger:
  - platform: time
    at: '00:15'
condition: []
action:
  - service: modbus.write_register
    data:
      unit: 227
      address: 33
      value: 4
      hub: victron
mode: single

No automatismo “Alterar Setpoint para -20 ao pôr do sol” estou com um problema, não consigo definir valores de 0 ou negativos.
Isto estará relacionado com o tipo de número que o HA tem definido, mas não sei como resolver isso.

alias: Alterar Setpoint para -20W ao pôr do sol
description: ''
trigger:
  - platform: sun
    event: sunset
condition: []
action:
  - service: modbus.write_register
    data:
      address: 2700
      unit: 100
      value: -20
      hub: victron
mode: single

Já explorou a opção de “comandar” os aparelhos victron por mqtt? Eu uso victron, sem ser em renováveis, e apesar disso não tenho isto implementado mas pelo que li é possível. Poderia ser uma opção.
Outra coisa, tente enviar os valores com ‘ ‘, se o websocket do gx estiver a espera de uma “string” em vez de um int pode ser uma solução…

Ainda tentei o MQTT, mas nas pesquisas que fiz falavam em alerar firmware de um venus gx e coloquei isso de parte. Como vou ter de implementar um outro dispositivo por MQTT irei tentar novamente essa opção por tem de haver forma de fazer sem alterar o firmware.
Existe vantagem em usar o MQTT em vez do modbus?

Tentei colocar os valores entre ’ ’ e entre " " mas não resultou :disappointed:

Eventualmente -20 é 65516

É preciso mais detalhes

Mas a solução é deste genero

Anyway: https://community.home-assistant.io/t/modbus-write-negative-value-to-register/101279

Pois é o problema que imaginava.
É estranho não haver uma forma do HA converter isso automaticamente.
Mais uma vez obrigado pela dica :+1:

Como referi acima, tive de integrar um outro dispositivo no HA por mqtt.
Trata-se de um EVSE inteligente e quero alterar parametros no Victron conforme estou a utilizar o carregador do carro.
Para isto instalei o Mosquitto broker onde configuei o servidor do EVSE.

Tendo configurado broker com o servidor do EVSE já não poderei integrar o Victron pois o servidor seria diferente, corrento?

Será que vale a pena integrar o Victron por MQTT? Tenho vantagem em relação ao modbus?

Se configuraste o broker no HA para integrar o EVSE, agora basta configurar o Victron com os mesmos dados com que configuraste o EVSE.

O EVSE utiliza um broker próprio online.
O que fiz foi introduzir o broker e as credenciais do EVSE no Mosquitto broker.

BROKER_evse

Neste momento tenho esta automação a funcionar assim:



Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade