Skip to content

Home Assistant automations

stefanschoemaker edited this page May 15, 2025 · 3 revisions

Add 2 automations:

GbbOptimizer - MQTT Publish

Edit the payload to suit your needs for your energy configuration in home assistant

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:
          - action: switch.turn_off
            target:
              entity_id: switch.growatt_omvormer_battery_first_mode
            data: {}
          - action: switch.turn_off
            target:
              entity_id: switch.growatt_omvormer_grid_first_mode
            data: {}
        alias: Mode Normal
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload_json['Operation'] == 'Discharge' }}"
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.growatt_omvormer_grid_first_mode
        alias: Mode Discharge
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload_json['Operation'] == 'DisableCharge' }}"
        sequence:
          - action: select.select_option
            target:
              entity_id: select.growatt_omvormer_ac_charging
            data:
              option: Disabled
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: switch.growatt_omvormer_battery_first_mode
        alias: Disable Charge from grid
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload_json['Operation'] == 'Charge' }}"
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.growatt_omvormer_battery_first_mode
          - action: select.select_option
            target:
              entity_id: select.growatt_omvormer_ac_charging
            data:
              option: Enabled
        alias: Charge From Grid
    enabled: true

Clone this wiki locally