Skip to content

Home Assistant automations

stefanschoemaker edited this page May 14, 2025 · 3 revisions

Add 2 automations:

GbbOptimizer - MQTT Publish

alias: GbbOptimizer - MQTT Publish
description: Send every-minute energy stats to GbbOptimizer via MQTT
triggers:
  - seconds: "1"
    trigger: time_pattern
    minutes: /15
actions:
  - data:
      qos: 0
      retain: false
      topic: ha_gbb/sensor
      payload: |-
        {
          "loads_total_kWh": {{ states("sensor.growatt_omvormer_local_load_total") | float(-1) }},
          "fromgrid_total_kWh": {{ states("sensor.meterstand") | float(-1) }},
          "pv_total_kWh": {{ states("sensor.omcucd708c_pv_all_energy_total") | float(-1) }},
          "soc_perc": {{ states("sensor.growatt_omvormer_battery_soc") | float(-1) }},
          "togrid_total_kWh": {{ states("sensor.teruglevering") | float(-1) }},
          "ev_charge_total_kWh": {{ states("sensor.auto_stroom_totaal_verbruik") | float(-1) }},
          "hp_total_kWh": {{ states("sensor.airco_stroommeter_total_power_import") | float(-1) }}
        }
    action: mqtt.publish

GbbOptimizer - Handle MQTT EMS Payload

alias: GbbOptimizer - Handle MQTT EMS Payload
description: >
  Set SOC on all six time slots, enforce ChargeLimitW bounds, and toggle
  operation input_booleans based on 'Operation'
triggers:
  - topic: ha_gbb/EMS
    trigger: mqtt
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload_json['Operation'] == 'Normal' }}"
        sequence:
          - type: turn_off
            device_id: d6941af6e53509f79ee3e5e1d2f73ba0
            entity_id: 4a126bc84d7dfe61dac87f643ba967ab
            domain: switch
          - type: turn_off
            device_id: d6941af6e53509f79ee3e5e1d2f73ba0
            entity_id: 20dedde889c0ca1df78acf21a6f210ac
            domain: switch
        alias: Mode Normal
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload_json['Operation'] == 'Discharge' }}"
        sequence:
          - type: turn_on
            device_id: d6941af6e53509f79ee3e5e1d2f73ba0
            entity_id: 20dedde889c0ca1df78acf21a6f210ac
            domain: switch
        alias: Mode Discharge
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload_json['Operation'] == 'DisableCharge' }}"
        sequence:
          - device_id: d6941af6e53509f79ee3e5e1d2f73ba0
            domain: select
            entity_id: eaa000ef73b3b4ed7853367aa26e360e
            type: select_option
            option: Disabled
          - type: turn_off
            device_id: d6941af6e53509f79ee3e5e1d2f73ba0
            entity_id: 4a126bc84d7dfe61dac87f643ba967ab
            domain: switch
        alias: Disable Charge from grid
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload_json['Operation'] == 'Charge' }}"
        sequence:
          - type: turn_on
            device_id: d6941af6e53509f79ee3e5e1d2f73ba0
            entity_id: 4a126bc84d7dfe61dac87f643ba967ab
            domain: switch
          - device_id: d6941af6e53509f79ee3e5e1d2f73ba0
            domain: select
            entity_id: eaa000ef73b3b4ed7853367aa26e360e
            type: select_option
            option: Enabled
        alias: Charge From Grid

Clone this wiki locally