Ich hole mir die Daten über den Proxy als Sensoren (in einer eigener yaml für Sensoren):
- platform: rest
name: "Solarwatt PowerOut"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_power_out"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_power_out')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Eigenverbrauch"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_power_selfconsumed"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_power_self_consumed')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Eigenverbrauch (PV & Speicher)"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_power_selfsupplied"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_power_self_supplied')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Einspeisung"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_power_out"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_power_out')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Bezug"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_power_in"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_power_in')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Gesamtverbrauch"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_power_consumed"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_power_consumed')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Batterie"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_power_battery"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'foxesshybrid_battery_2RHD123456AB123_battery_bms_power')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Verbrauch aus Netz"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_power_consumed_grid"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_power_consumed_from_grid')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung PV"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_power_produced"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_power_produced')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Phase 1"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_meter_active_power_r"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'foxesshybrid_meter_2RHD123456AB123_meter_active_power_r')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Phase 2"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_meter_active_power_s"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'foxesshybrid_meter_2RHD123456AB123_meter_active_power_s')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Leistung Phase 3"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_meter_active_power_t"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'foxesshybrid_meter_2RHD123456AB123_meter_active_power_t')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ val | round(1) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "W"
device_class: power
- platform: rest
name: "Solarwatt Energieverbrauch Gesamt"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_work_consumed_total"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_work_consumed_total')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ (val / 1000) | round(2) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- platform: rest
name: "Solarwatt Energieverbrauch Netz"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_work_consumed_grid"
scan_interval: 15
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_work_consumed_from_grid_total')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ (val / 1000) | round(2) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- platform: rest
name: "Solarwatt Energieverbrauch Speicher"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_work_consumed_storage"
scan_interval: 30
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_work_consumed_from_storage_total')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ (val / 1000) | round(2) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- platform: rest
name: "Solarwatt Energieverbrauch PV"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_work_consumed_producers"
scan_interval: 30
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_work_consumed_from_producers_total')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ (val / 1000) | round(2) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- platform: rest
name: "Solarwatt Energie PV-Erzeugung"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_work_produced"
scan_interval: 30
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_work_produced_total')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ (val / 1000) | round(2) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- platform: rest
name: "Solarwatt Energie Einspeisung"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_work_out"
scan_interval: 30
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'kiwigrid_location_standard_88d6c390f7f6_harmonized_work_out_total')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ (val / 1000) | round(2) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- platform: rest
name: "Solarwatt Energie Batterie Entladung"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_battery_work_out"
scan_interval: 30
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'foxesshybrid_battery_2RHD123456AB123_battery_work_out_total')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
.[] | select(.name == "foxesshybrid_battery_2RHD123456AB123_battery_bms_1_soc") | .state | split(" ") | .[0]
{{ (val / 1000) | round(2) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- platform: rest
name: "Solarwatt Energie Batterie Speicherung"
resource: http://192.168.178.5:5000/rest/items
unique_id: "solarwatt_battery_work_in"
scan_interval: 30
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'foxesshybrid_battery_2RHD123456AB123_battery_work_in_total')
| first %}
{% if item %}
{% set raw = item.state %}
{% set val = (raw.split('|')[-1].split(' ')[0]) | float %}
{{ (val / 1000) | round(2) }}
{% else %}
unknown
{% endif %}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- platform: rest
name: "Solarwatt Batterie SoC"
resource: "http://192.168.178.5:5000/rest/items"
unique_id: "solarwatt_batterie_soc"
scan_interval: 30
value_template: >
{% set item = value_json
| selectattr('name', 'equalto', 'foxesshybrid_battery_2RHD123456AB123_battery_bms_1_soc')
| list
| first %}
{{ item.state.split(' ')[0] }}
unit_of_measurement: "%"
device_class: battery
Publishe die benötigten Werte dann via MQTT (configuration.yaml):
mqtt_statestream:
base_topic: vision
include:
entities:
- sensor.solarwatt_leistung_bezug
- sensor.solarwatt_leistung_einspeisung
- sensor.solarwatt_energieverbrauch_netz
- sensor.solarwatt_leistung_batterie
- sensor.solarwatt_batterie_soc
- sensor.solarwatt_leistung_pv
- sensor.solarwatt_energie_produziert
Und meine “meters” in der evcc.yaml sehen dann wie folgt aus:
meters:
- name: grid
type: custom
power:
source: calc
add:
- source: mqtt
topic: vision/sensor/solarwatt_leistung_bezug/state
timeout: 43200s
- source: mqtt
topic: vision/sensor/solarwatt_leistung_einspeisung/state
timeout: 43200s
scale: -1
energy:
source: mqtt
topic: vision/sensor/solarwatt_energieverbrauch_netz/state
timeout: 43200s
- name: pv
type: custom
power:
source: mqtt
topic: vision/sensor/solarwatt_leistung_pv/state
timeout: 43200s
energy:
source: mqtt
topic: vision/sensor/solarwatt_energie_produziert/state
timeout: 43200s
- name: battery
type: custom
power:
source: mqtt
topic: vision/sensor/solarwatt_leistung_batterie/state
timeout: 43200s
scale: -1
soc:
source: mqtt
topic: vision/sensor/solarwatt_batterie_soc/state
timeout: 43200s
capacity: 7.78
Also alles ohne die ModBus Integration für FoxEss-Geräte.