Belgian Youless users - piekvermogen

Hi

After a lot of trial and error with regex, I created the following config to read information about “piekvermogen”, available in the Belgiam digital meters.

You get 3 sensors:

  • Actual peak (Fluvius uses 00-15, 15-30, 30-45 and 45-00)
  • Highest peak current month
  • Date and time of highest peak current month

Youless will probaly come with an update soon, but I couldn’t wait…

CHANGE RESOURCE IP adres to YOUR Youless IP!

Here it is (configuration.yaml):

rest:
  - resource: http://192.168.1.220/V?p=1
    method: GET
    verify_ssl: false
    scan_interval: 10
    sensor:
      - name: Piekvermogen Huidige Maand
        value_template: >
          {{ value | regex_findall_index('1\\-0\\:1\\.6\\.0\\([0-9]+.\)\(([0-9]*\.[0-9]+)\*kW\)') | replace(".","") | int }}
        unique_id: piekvermogen_huidigemaand
        force_update: true
        unit_of_measurement: W
        state_class: measurement 
        device_class: power
      - name: Piekvermogen Tijd
        value_template: >
          {% set dateraw = ( value | regex_findall_index('1\\-0\\:1\\.6\\.0\\(([0-9]*)')) %}
          {{  as_timestamp(strptime(dateraw,'%y%m%d%H%M%S')) | timestamp_local }}
        unique_id: piekvermogen_tijd
        force_update: true
        device_class: timestamp
      - name: Piekvermogen Momenteel
        value_template: >
          {{ value | regex_findall_index('1\\-0\\:1\\.4\\.0\\(([0-9]*\.[0-9]+)\*kW\)') | replace(".","") | int }}
        unique_id: piekvermogen_momenteel
        force_update: true
        unit_of_measurement: W
        state_class: measurement 
        device_class: power

EDIT 04/02/23: toevoegen state_class en device_class zodoende de data langer bewaard wordt (als LTS)

3 Likes

In case you are interested in this too: I have 3 phases coming in to my house, and created the following in my sensors.yaml to read the values for those three phases and the current tariff. I was luckier in that the data was in json format.

- platform: rest
  name: Youless phases
  scan_interval: 12
  resource: http://192.168.2.123/f
  headers:
    User-Agent: Home Assistant
    Content-Type: application/json
  method: GET
  json_attributes:
    - tr
    - i1
    - i2
    - i3
    - v1
    - v2
    - v3
    - l1
    - l2
    - l3
  value_template: "OK"
- platform: template
  sensors:
    youless_tariff:
      availability_template: "{{ state_attr('sensor.youless_phases', 'tr') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "tr") }}'
      unique_id: sensor.youless_tariff
      friendly_name: "Youless tariff"
    phase_1_current:
      availability_template: "{{ state_attr('sensor.youless_phases', 'i1') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "i1") | float(0) }}'
      unique_id: sensor.phase_1_current
      friendly_name: "Phase 1 current"
      unit_of_measurement: "A"
      device_class: "current"
    phase_1_voltage:
      availability_template: "{{ state_attr('sensor.youless_phases', 'v1') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "v1") | float(0) }}'
      friendly_name: "Phase 1 voltage"
      unique_id: sensor.phase_1_voltage
      unit_of_measurement: "V"
      device_class: "voltage"
    phase_1_power:
      availability_template: "{{ state_attr('sensor.youless_phases', 'l1') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "l1") | float(0) }}'
      friendly_name: "Phase 1 power"
      unique_id: sensor.phase_1_power
      unit_of_measurement: "W"
      device_class: "power"
    phase_2_current:
      availability_template: "{{ state_attr('sensor.youless_phases', 'i2') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "i2") | float(0) }}'
      friendly_name: "Phase 2 current"
      unique_id: sensor.phase_2_current
      unit_of_measurement: "A"
      device_class: "current"
    phase_2_voltage:
      availability_template: "{{ state_attr('sensor.youless_phases', 'v2') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "v2") | float(0) }}'
      friendly_name: "Phase 2 voltage"
      unique_id: sensor.phase_2_voltage
      unit_of_measurement: "V"
      device_class: "voltage"
    phase_2_power:
      availability_template: "{{ state_attr('sensor.youless_phases', 'l2') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "l2") | float(0) }}'
      friendly_name: "Phase 2 power"
      unique_id: sensor.phase_2_power
      unit_of_measurement: "W"
      device_class: "power"
    phase_3_current:
      availability_template: "{{ state_attr('sensor.youless_phases', 'i3') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "i3") | float(0) }}'
      friendly_name: "Phase 3 current"
      unit_of_measurement: "A"
      unique_id: sensor.phase_3_current
      device_class: "current"
    phase_3_voltage:
      availability_template: "{{ state_attr('sensor.youless_phases', 'v3') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "v3") | float(0) }}'
      friendly_name: "Phase 3 voltage"
      unique_id: sensor.phase_3_voltage
      unit_of_measurement: "V"
      device_class: "voltage"
    phase_3_power:
      availability_template: "{{ state_attr('sensor.youless_phases', 'l3') != 'unavailable' }}"
      value_template: '{{ state_attr("sensor.youless_phases", "l3") | float(0) }}'
      friendly_name: "Phase 3 power"
      unique_id: sensor.phase_3_power
      unit_of_measurement: "W"
      device_class: "power"
2 Likes

Unfortunately, this does not work if you have 3 phases.
And I think you still have to multiply by 4 somewhere to get the peak in kWh.
These numbers are totally different from what I see in the Engie app.

Works perfectly! Thanks for sharing.

Does the youless take into account that you are using a battery ? I have the impression that the value for the peak, is the actual peak usage, but doesn’t take into account that I’m using a battery.