Measure_power / meter_power

for integration of our heatpump I have an app working in developer mode on our homey. Only known issue left is to arrange homey recogined it as power user so it counts its use of energy.
I’am using a capability meter_power that contains the daily use of power. I also have two different capabilities measure_power that counts energy use for heating and the other for heating water.
All of them are available as insight.
How can I arrange meter_power will be recognized by homey? or do I use the wrong capability types?

I assume you have read already:

It describes quite well the the Energy functionality.

Based on that you should probably have meter_power.daily to keep track of the daily usage and then store the cumulative energy usage to meter_power, and that should never reset.

Yes I have red that.
I think i exactly do this.
I can imagine that because I have also 2 different values with capability measure _power cause it is not tecognized yet. But can not find how to deal with multiple power values like I have.

Total powerconsumption / day
Power consumption for heating / day
Power consumption for heating water / day.

Homey Energy dashboard is only reading meter_power (main capability, not subcapability).
Only exception is the imported/exported power that can be a subcapability, defined in device energy settings.

are there capability options I have to set/change? When I check insights I see every day increase of power. It look good to me.
could it be that power is not registrated from app’s that are installed locally?

below the capability settings I’am using :

"meter_power": {
      "type": "number",
      "title": {
        "en": "Energy",
        "nl": "Energie"
      },
      "decimals": 2,
      "units": {
        "en": "kWh",
        "ru": "кВтч",
        "ko": "kWh",
        "no": "kWh"
      },
      "desc": {
        "en": "Energy usage in kilowatt-hour (kWh)",
        "nl": "Energie verbruik in kilowattuur (kWh)"
      },
      "chartType": "spline",
      "options": {
        "isApproximated": {
          "type": "boolean",
          "default": false,
          "desc": {
            "en": "This flag is used to determine that the device itself has no power measurement functionality, but that the driver calculates the energy use.",
            "ru": "Этот флаг используется для определения того, что само устройство не имеет функции измерения электроэнергии, но драйвер рассчитывает потребление энергии.",
            "pl": "Flaga oznacza, że samo urządzenie nie ma funkcji pomiaru mocy, ale sterownik oblicza zużycie energii.",
            "ko": "이 플래그는 디바이스 자체에 전력 측정 기능이 없지만 드라이버가 에너지 사용량을 계산하는 경우에 사용됩니다.",
            "no": "Dette flagget brukes til å anmerke at enheten i seg selv ikke har noen funksjon for effektmåling, men at sjåføren beregner energibruken.",
            "es": "Este aviso indica que el dispositivo no dispone de ninguna funcionalidad para medir la energía, sino que el controlador calcula el uso de energía."
          }
        }
      },
      "insights": true,
      "getable": true,
      "setable": false,
      "uiComponent": "sensor"

Can you please show the code of your driver.compose.json?
How are the capabilities added to the device (which id)?

herewith driver.compose.json

{
  "name": {
    "en": "Stiebel Eltron Heatpump"
  },
  "class": "other",
  "connectivity": ["lan"],
  "capabilities": [
    "Operation_mode",
    "target_temperature",
    "measure_temperature",
    "measure_temperature.inputregister.1",
    "measure_temperature.inputregister.2",
    "measure_temperature.inputregister.3",
    "measure_temperature.inputregister.4",
    "measure_temperature.inputregister.5",
    "measure_temperature.inputregister.6",
    "measure_temperature.inputregister.7",
    "pump_state.inputregister.8",
    "pump_stateII.inputregister.8",
    "pump_state.inputregister.14",
    "pump_stateII.inputregister.14",
    "measure_pressure.inputregister.9",
    "measure_pressure.inputregister.10",
    "measure_power.inputregister.11",
    "measure_power.inputregister.12",
    "meter_power.inputregister.13"
  ],
  "capabilitiesOptions": {
    "measure_temperature.inputregister.1": {
        "title": {
        "en": "Outside temp",
        "nl": "Buiten temperatuur"
      },
      "address": 506,
      "scale": 10
    },
    "measure_temperature.inputregister.2": {
        "title": {
        "en": "Actual room temperature",
        "nl": "Kamer temperatuur"
      },
      "address": 583,
      "scale": 10
    },
    "measure_temperature.inputregister.3": {
       "title": {
        "en": "Hot water temperature",
        "nl": "Heet water temperatuur"
      },
      "address": 521,
      "scale": 10
    },
    "measure_temperature.inputregister.4": {
        "title": {
        "en": "Actual Flow temp",
        "nl": "WP Aanvoer temperatuur"
      },
      "address": 512,
      "scale": 10
    },
    "measure_temperature.inputregister.5": {
      "title": {
        "en": "Actual retun temp",
        "nl": "WP retour temp"
      },
      "address": 541,
      "scale": 10
    },
    "measure_temperature.inputregister.6": {
      "title": {
        "en": "requested water temp",
        "nl": "gevraagde water temp"
      },
      "address": 522,
      "scale": 10
    },
    "measure_temperature.inputregister.7": {
      "title": {
        "en": "Dew point",
        "nl": "Dauwpunt"
      },
      "address": 586,
      "scale": 10
    },
    "pump_state.inputregister.8": {
      "title": {
        "en": "Circulation pump",
        "nl": "Circulation pomp"
      },
      "address": 2511,
      "scale": 1
    },
    "pump_stateII.inputregister.8": {
      "title": {
        "en": "Circulation pump",
        "nl": "Circulation pomp"
      },
      "address": 2511,
      "scale": 1
    },
    "measure_pressure.inputregister.9": {
      "title": {
        "en": "Low pressure",
        "nl": "Lage druk"
      },
      "address": 544,
      "scale": 100
    },
    "measure_pressure.inputregister.10": {
      "title": {
        "en": "High pressure",
        "nl": "Hoge druk"
      },
      "address": 546,
      "scale": 100
    },
    "measure_power.inputregister.11": {
      "title": {
        "en": "powerconsumption heating water",
        "nl": "Energiegebruik warm water"
      },
      "address": 3514,
      "scale": 1
    },
    "measure_power.inputregister.12": {
      "title": {
        "en": "powerconsumption heating",
        "nl": "Energiegebruik verwarmen"
      },
      "address": 3511,
      "scale": 1
    },
    "meter_power.inputregister.13": {
      "title": {
        "en": "Powerconsumption today",
        "nl": "Totaal Energiegebruik"
      },

      " address" :  3515,
      "scale": 1
    },
    "pump_state.inputregister.14": {
      "title": {
        "en": "bron pump",
        "nl": "bron pomp"
      },
      "address": 2514,
      "scale": 1
    },
    "pump_stateII.inputregister.14": {
      "title": {
        "en": "bron pump",
        "nl": "bron pomp"
      },
      "address": 2514,
      "scale": 1
    }
  },
  "images": {
    "small": "/drivers/stiebel-heatpump/assets/small.png",
    "large": "/drivers/stiebel-heatpump/assets/large.png",
    "xlarge": "/drivers/stiebel-heatpump/assets/xlarge.png"
  },
  "pair": [
    {
      "id": "device",
      "navigation": {
        "next": "list_devices"
      }
    },
    {
      "id": "list_devices",
      "template": "list_devices",
      "navigation": {
        "prev": "device",
        "next": "add_devices"
      },
      "options": {
        "singular": true
      }
    },
    {
      "id": "add_devices",
      "template": "add_devices"
    }
  ],
  "ui": {
    "components": [
      {
        "id": "thermostat",
        "capabilities": [
          "measure_temperature",
          "target_temperature"
        ],
        "type": "thermostat",
        "options": {
          "temperature": {
            "measure_temperature": "measure_temperature",
            "target_temperature": "target_temperature"
          }
        }
      }
    ]
  }
}

Could you please reformat the code blocks with the “preformatted text” from the message editor.

 {
  "name": {
    "en": "Stiebel Eltron Heatpump"
  },
  "class": "other",
  "connectivity": ["lan"],
  "capabilities": [
    "Operation_mode",
    "target_temperature",
    "measure_temperature",
    "measure_temperature.inputregister.1",
    "measure_temperature.inputregister.2",
    "measure_temperature.inputregister.3",
    "measure_temperature.inputregister.4",
    "measure_temperature.inputregister.5",
    "measure_temperature.inputregister.6",
    "measure_temperature.inputregister.7",
    "pump_state.inputregister.8",
    "pump_stateII.inputregister.8",
    "pump_state.inputregister.14",
    "pump_stateII.inputregister.14",
    "measure_pressure.inputregister.9",
    "measure_pressure.inputregister.10",
    "measure_power.inputregister.11",
    "measure_power.inputregister.12",
    "meter_power.inputregister.13"
  ],
  "capabilitiesOptions": {
    "measure_temperature.inputregister.1": {
      "title": {
        "en": "Outside temp",
        "nl": "Buiten temperatuur"
      },
      "address": 506,
      "scale": 10
    },
    "measure_temperature.inputregister.2": {
      "title": {
        "en": "Actual room temperature",
        "nl": "Kamer temperatuur"
      },
      "address": 583,
      "scale": 10
    },
    "measure_temperature.inputregister.3": {
      "title": {
        "en": "Hot water temperature",
        "nl": "Heet water temperatuur"
      },
      "address": 521,
      "scale": 10
    },
    "measure_temperature.inputregister.4": {
      "title": {
        "en": "Actual Flow temp",
        "nl": "WP Aanvoer temperatuur"
      },
      "address": 512,
      "scale": 10
    },
    "measure_temperature.inputregister.5": {
      "title": {
        "en": "Actual return temp",
        "nl": "WP retour temp"
      },
      "address": 541,
      "scale": 10
    },
    "measure_temperature.inputregister.6": {
      "title": {
        "en": "requested water temp",
        "nl": "gevraagde water temp"
      },
      "address": 522,
      "scale": 10
    },
    "measure_temperature.inputregister.7": {
      "title": {
        "en": "Dew point",
        "nl": "Dauwpunt"
      },
      "address": 586,
      "scale": 10
    },
    "pump_state.inputregister.8": {
      "title": {
        "en": "Circulation pump",
        "nl": "Circulation pomp"
      },
      "address": 2511,
      "scale": 1
    },
    "pump_stateII.inputregister.8": {
      "title": {
        "en": "Circulation pump",
        "nl": "Circulation pomp"
      },
      "address": 2511,
      "scale": 1
    },
    "measure_pressure.inputregister.9": {
      "title": {
        "en": "Low pressure",
        "nl": "Lage druk"
      },
      "address": 544,
      "scale": 100
    },
    "measure_pressure.inputregister.10": {
      "title": {
        "en": "High pressure",
        "nl": "Hoge druk"
      },
      "address": 546,
      "scale": 100
    },
    "measure_power.inputregister.11": {
      "title": {
        "en": "powerconsumption heating water",
        "nl": "Energiegebruik warm water"
      },
      "address": 3514,
      "scale": 1
    },
    "measure_power.inputregister.12": {
      "title": {
        "en": "powerconsumption heating",
        "nl": "Energiegebruik verwarmen"
      },
      "address": 3511,
      "scale": 1
    },
    "meter_power.inputregister.13": {
      "title": {
        "en": "Powerconsumption today",
        "nl": "Totaal Energiegebruik"
      },
      "address":3515,     
       "scale": 1
    },
    "pump_state.inputregister.14": {
      "title": {
        "en": "bron pump",
        "nl": "bron pomp"
      },
      "address": 2514,
      "scale": 1
    },
    "pump_stateII.inputregister.14": {
      "title": {
        "en": "bron pump",
        "nl": "bron pomp"
      },
      "address": 2514,
      "scale": 1
    }
  },
  "images": {
    "small": "/drivers/stiebel-heatpump/assets/small.png",
    "large": "/drivers/stiebel-heatpump/assets/large.png",
    "xlarge": "/drivers/stiebel-heatpump/assets/xlarge.png"
  },
  "pair": [
    {
      "id": "device",
      "navigation": {
        "next": "list_devices"
      }
    },
    {
      "id": "list_devices",
      "template": "list_devices",
      "navigation": {
        "prev": "device",
        "next": "add_devices"
      },
      "options": {
        "singular": true
      }
    },
    {
      "id": "add_devices",
      "template": "add_devices"
    }
  ],
  "ui": {
    "components": [
      {
        "id": "thermostat",
        "capabilities": [
          "measure_temperature",
          "target_temperature"
        ],
        "type": "thermostat",
        "options": {
          "temperature": {
            "measure_temperature": "measure_temperature",
            "target_temperature": "target_temperature"
          }
        }
      }
    ]
  }
}

That’s what @OH2TH said. You should add one capability as meter_power and measure_power representing the overeall usage as main capability (not subcapability).

I’am not sure of I understand well. Do you mean I have to use measure_power als total and meter_power als subtotals? exchange both types? something like:

meter_power.inputregister.11. | daily use for heating water
meter_power.inputregister.12. | daily use for heating
measure_power.inputregister.13 | total daily use

You don’t have an overall meter value (without reset)?

Something like this would be used:

meter_power.heating_water_daily
meter_power.heating_daily
meter_power          
measure_power 

meter_power should be an overall meter like a power meter. It should not be cleared, but increasing over the whole time.

measure_power is the current usage (W). It’s not a daily sum/meter.
If measure_power.inputregister.13 is a sum of the first meter capabilities, then use meter_power.daily,not measure_power

really thanks for your help

I indeed have not an register within the total daily use. inputregister 13 is the sum of 11 and 12.
i have changed measure_power.inputregister.13 into meter_power.dailyuse
Installed it and also re-installled the device in homey. now i gues i have to wait…

It is not an issue i have mulitple meter_power values?
I indeed have not an register with the current use of power so i skip measure_power.
I let you know or it works…

thanks,
Henk

Without a meter_power capability it won’t show up as consumer in new energy dashboard.
And you better should not use a daily/weekly meter for this.

https://apps.developer.homey.app/the-basics/devices/energy#measuring-devices

You could add a calculyted meter_power capability and your app can calculate the value liek this:

IF meter daily (register) changed
IF meter daily > last capability value of meter_power(increaded during the day)
THEN
meter_power += current value - old meter_power value
ELSE (new value < old value, that means it was reset during night)
meter_power += current value

This way you could build your own increasing overall meter.
In an app where I did it similar, I added a flow action so set the initial meter value. Don’t know if this is needed.

Another workaround (for users) would be to test if PowerByTheHour app is able to sum up such a daily meter into a overall meter.

Hi Ronny,
I have meter_power capabilities, that increase all the time.

First capability value is used power to heat water.
second capability is used power to heat our home.

To see also total amount I also use a thirth one within de sum of both.

total use today is around 932KWH since first installation. last weeks i saw increase of around 20kwh a day. (for example 14kwh used for heating and 6 for heating water ). So I expect to see an increase tomorrow that result into around 952KwH as total use.

I only have not a current value that shows the live actual use at the moment. If I understood well all you described meter_power should be enough? I only had doubt or it could be an issue that I have 3 different values for that ( 2 sub values and 1 total value )

No issues :slight_smile:
If you use meter_power for your main meter, then it should appear in ener gasboard (in device list as consumer).
The other meters (subcapability meter-power.xxxx) are ignored in energy view.

Hi Ronny,
Do you mean that i have to use meter_power as name for the daily Total ? Without any extension as inputregister.14 like i do now?
Homey only use the main capability without name extension?

Yes, only “power_meter” as id. So suffix (subcapability).
Based on your last post, the register has a real total meter value. So it’s not daily used, but total used instead. That would be right for the meter_power capability.

one additional hint… I think that’s the reason why we talked past each other.

You said, your meter is a daily consumption meter.
That would mean, the meter counts up over the day and at midnigts it’s reset to 0.

But based on your example data, it’s not a daily meter, but an overall meter instead, updated once a day.
So better don’t use meter_power.heating_daily for it. Everyone will think it’s reset one a day. Name it only meter_power.heating
And the overall meter is named meter_power.