From 5548d59613bf38b8cdfdf1557249e95de9dd2977 Mon Sep 17 00:00:00 2001
From: Pave87 <61083765+Pave87@users.noreply.github.com>
Date: Tue, 15 Oct 2024 00:11:49 +0300
Subject: [PATCH 1/2] Add option to define unique_id in yaml
---
custom_components/nordpool/sensor.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/custom_components/nordpool/sensor.py b/custom_components/nordpool/sensor.py
index 5912e84..62abb41 100644
--- a/custom_components/nordpool/sensor.py
+++ b/custom_components/nordpool/sensor.py
@@ -83,6 +83,7 @@
vol.Optional("price_type", default="kWh"): vol.In(list(_PRICE_IN.keys())),
vol.Optional("price_in_cents", default=False): cv.boolean,
vol.Optional("additional_costs", default=DEFAULT_TEMPLATE): cv.template,
+ vol.Optional("unique_id"): cv.string,
}
)
@@ -101,6 +102,7 @@ def _dry_setup(hass, config, add_devices, discovery_info=None):
use_cents = config.get("price_in_cents")
ad_template = config.get("additional_costs")
api = hass.data[DOMAIN]
+ unique_id = config.get("unique_id")
sensor = NordpoolSensor(
friendly_name,
region,
@@ -113,6 +115,7 @@ def _dry_setup(hass, config, add_devices, discovery_info=None):
api,
ad_template,
hass,
+ unique_id,
)
add_devices([sensor])
@@ -148,6 +151,7 @@ def __init__(
api,
ad_template,
hass,
+ unique_id=None,
) -> None:
self._area = area
self._currency = currency or _REGIONS[area][0]
@@ -161,6 +165,7 @@ def __init__(
self._ad_template = ad_template
self._hass = hass
self._attr_force_update = True
+ self._user_unique_id = unique_id
if vat is True:
self._vat = _REGIONS[area][2]
@@ -228,6 +233,9 @@ def unit_of_measurement(self) -> str: # FIXME
@property
def unique_id(self):
+ if self._user_unique_id:
+ return self._user_unique_id
+
name = "nordpool_%s_%s_%s_%s_%s_%s" % (
self._price_type,
self._area,
From 3970008a18d3c60f25f929844f1c57f3a3cab1be Mon Sep 17 00:00:00 2001
From: Pave87 <61083765+Pave87@users.noreply.github.com>
Date: Wed, 16 Oct 2024 19:16:30 +0300
Subject: [PATCH 2/2] Update README.md
Documentation for overriding entity id
---
README.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/README.md b/README.md
index db69078..37133ca 100644
--- a/README.md
+++ b/README.md
@@ -59,6 +59,7 @@ mv nordpool-X.Y.Z/custom_components/nordpool/* .
| Price in cents | no | *Default: false*
Display price in cents in stead of (for example) Euros.|
| Energy scale | no | *Default: kWh*
Price displayed for MWh, kWh or Wh.|
| Additional Cost | no | *default `{{0.0\|float}}`*
Template to specify additional cost to be added. See [Additional Costs](#additional-costs) for more details.|
+| Entity Id | no | *Default: Generated automatically based on scale, region, currency, precision, low price precentage and vat. |
### Option 1: UI
- Go to `Settings` -> `Devices & Services`
@@ -108,6 +109,11 @@ sensor:
# The template price is in EUR, DKK, NOK or SEK (not in cents).
# For example: "{{ current_price * 0.19 + 0.023 | float}}"
additional_costs: "{{0.0|float}}"
+
+ # Can be used to override default generated entity id.
+ # Enter only part after "sensor."
+ # Lower case and no spaces
+ unique_id: nordpool_custom
```
### Regions
See the [Nord Pool region map](https://www.nordpoolgroup.com/en/maps/) for details