Fenecon Home und das Rest-API

Merkwürdigerweise exportieren nicht alle Schnittstellen am Fenecon Home die gleichen Informationen. Die Rest-API hat mehr als Modbus, ist aber leider nur unvollständig dokumentiert. Die internen Temperaturen, die Netzfrequenz oder die Alterung der Batterie z.B. scheint es nur über Rest zu geben. Home Assistant kann Rest von Haus aus:

- resource: "http://192.168.0.123:8084/rest/channel/meter0/(Frequency)“
username: x
password: user
authentication: basic
scan_interval: 60
sensor:
  - value_template: '{{value_json | selectattr("address", "equalto", "meter0/Frequency") | map(attribute="value") | first }}‘
    name: "FEMS Netzfrequenz“
    unit_of_measurement: „Hz“
    device_class: Frequency
    state_class: measurement
    unique_id: "fems/meter0/frequency“
- resource: "http://192.168.0.123:8084/rest/channel/battery0/(Tower0PackVoltage|Current|Soh)“
username: x
password: user
authentication: basic
scan_interval: 60
sensor:
  - value_template: '{{value_json | selectattr("address", "equalto", "battery0/Tower0PackVoltage") | map(attribute="value") | first / 10 }}‘
    name: "FEMS Batteriespannung“
    unit_of_measurement: „V“
    device_class: voltage
    state_class: measurement
    unique_id: "fems/battery0/Tower0PackVoltage“
  - value_template: '{{value_json | selectattr("address", "equalto", "battery0/Current") | map(attribute="value") | first }}‘
    name: "FEMS Batteriestrom“
    unit_of_measurement: „A“
    device_class: current
    state_class: measurement
    unique_id: "fems/battery0/Current“
  - value_template: '{{value_json | selectattr("address", "equalto", "battery0/Soh") | map(attribute="value") | first }}‘
    name: "FEMS Batterie State of Health“
    unit_of_measurement: „%“
    #device_class: current
    state_class: measurement
    unique_id: "fems/battery0/Soh“
- resource: "http://192.168.0.123:8084/rest/channel/charger.+/(ActualPower|Voltage|Current|ActualEnergy)“
username: x
password: user
authentication: basic
scan_interval: 20
sensor:
  - name: "FEMS PV 2 Leistung“
    value_template: '{{value_json | selectattr("address", "equalto", "charger1/ActualPower") | map(attribute="value") | first }}‘
    unit_of_measurement: „W“
    device_class: power
    state_class: measurement
    unique_id: "fems/charger1/ActualPower“
  - value_template: '{{value_json | selectattr("address", "equalto", "charger1/Voltage") | map(attribute="value") | first / 1000 }}‘
    name: "FEMS PV 2 Spannung“
    unit_of_measurement: „V“
    device_class: voltage
    state_class: measurement
    unique_id: "fems/charger1/Voltage“
  - value_template: '{{value_json | selectattr("address", "equalto", "charger1/Current") | map(attribute="value") | first / 1000 }}‘
    name: "FEMS PV 2 Strom“
    unit_of_measurement: „A“
    device_class: current
    state_class: measurement
    unique_id: "fems/charger1/Current“
  - value_template: '{{value_json | selectattr("address", "equalto", "charger1/ActualEnergy") | map(attribute="value") | first }}‘
    name: "FEMS PV 2 Erzeugung“
    unit_of_measurement: „Wh“
    device_class: energy
    state_class: total_increasing
    unique_id: "fems/charger1/ActualEnergy“
  - value_template: '{{value_json | selectattr("address", "equalto", "charger0/ActualPower") | map(attribute="value") | first }}‘
    name: "FEMS PV 1 Leistung“
    unit_of_measurement: „W“
    device_class: power
    state_class: measurement
    unique_id: "fems/charger0/ActualPower“
  - value_template: '{{value_json | selectattr("address", "equalto", "charger0/Voltage") | map(attribute="value") | first / 1000 }}‘
    name: "FEMS PV 1 Spannung“
    unit_of_measurement: „V“
    device_class: voltage
    state_class: measurement
    unique_id: "fems/charger0/Voltage“
  - value_template: '{{value_json | selectattr("address", "equalto", "charger0/Current") | map(attribute="value") | first / 1000 }}‘
    name: "FEMS PV 1 Strom“
    unit_of_measurement: „A“
    device_class: current
    state_class: measurement
    unique_id: "fems/charger0/Current“
  - value_template: '{{value_json | selectattr("address", "equalto", "charger0/ActualEnergy") | map(attribute="value") | first }}‘
    name: "FEMS PV 1 Erzeugung“
    unit_of_measurement: „Wh“
    device_class: energy
    state_class: total_increasing
    unique_id: "fems/charger0/ActualEnergy“
- resource: "http://192.168.0.123:8084/rest/channel/batteryInverter0/(AirTemperature|BmsPackTemperature|RadiatorTemperature)“
username: x
password: user
authentication: basic
scan_interval: 60
sensor:  
  - value_template: '{{value_json | selectattr("address", "equalto", "batteryInverter0/AirTemperature") | map(attribute="value") | first }}‘
    name: "FEMS batteryInverter0/AirTemperature“
    unit_of_measurement: „°C“
    device_class: temperature
    state_class: measurement
    unique_id: "fems/batteryInverter0/AirTemperature“
  - value_template: '{{value_json | selectattr("address", "equalto", "batteryInverter0/BmsPackTemperature") | map(attribute="value") | first }}‘
    name: "FEMS batteryInverter0/BmsPackTemperature“
    unit_of_measurement: „°C“
    device_class: temperature
    state_class: measurement
    unique_id: "fems/batteryInverter0/BmsPackTemperature“
  - value_template: '{{value_json | selectattr("address", "equalto", "batteryInverter0/RadiatorTemperature") | map(attribute="value") | first }}‘
    name: "FEMS batteryInverter0/RadiatorTemperature“
    unit_of_measurement: „°C“
    device_class: temperature
    state_class: measurement
    unique_id: "fems/batteryInverter0/RadiatorTemperature"