Last active
December 8, 2024 21:35
-
-
Save jamesonuk/079ed3639924e9f373783e5b67f4385d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
blueprint: | |
name: Add Hildebrand CAD Entities | |
description: Create devices and entities using MQTT discovery | |
domain: script | |
source_url: https://gist.github.com/jamesonuk/079ed3639924e9f373783e5b67f4385d | |
input: | |
input_cad_mac: | |
name: MAC Address | |
description: "MAC address of CAD (without :s)" | |
default: "" | |
variables: | |
CAD_MAC: !input input_cad_mac | |
sequence: | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_electricity_export{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Electricity: Export", | |
"unique_id": "smart_meter_electricity_export", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/electricitymeter", | |
"device_class": "energy", | |
"unit_of_measurement": "kWh", | |
"state_class": "total_increasing", | |
"value_template": "{% raw %}{{ value_json['electricitymeter']['energy']['export']['cumulative'] }}{% endraw %}", | |
"icon": "mdi:flash", | |
"device": { | |
"identifiers": "Smart Electricity Meter via CAD", | |
"name": "smart_electricty_meter_{{CAD_MAC}}", | |
"model": "Smart Electricity Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_electricity_import{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Electricity: Import", | |
"unique_id": "smart_meter_electricity_import", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/electricitymeter", | |
"device_class": "energy", | |
"unit_of_measurement": "kWh", | |
"state_class": "total_increasing", | |
"value_template": "{% raw %} {% if value_json['electricitymeter']['energy']['import']['cumulative'] == 0 %} {{ states('sensor.smart_meter_electricity_import') }} {% else %} {{ value_json['electricitymeter']['energy']['import']['cumulative'] }} {% endif %}{% endraw %}", | |
"icon": "mdi:flash", | |
"device": { | |
"identifiers": "Smart Electricity Meter via CAD", | |
"name": "smart_electricty_meter_{{CAD_MAC}}", | |
"model": "Smart Electricity Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_electricity_import_today{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Electricity: Import (Today)", | |
"unique_id": "smart_meter_electricity_import_today", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/electricitymeter", | |
"device_class": "energy", | |
"unit_of_measurement": "kWh", | |
"state_class": "total_increasing", | |
"value_template": "{% raw %} {% if value_json['electricitymeter']['energy']['import']['day'] == 0 and now() > now().replace(hour=0).replace(minute=1).replace(second=0).replace(microsecond=0) %} {{ states('sensor.smart_meter_electricity_import_today') }} {% else %} {{ value_json['electricitymeter']['energy']['import']['day'] }} {% endif %}{% endraw %}", | |
"icon": "mdi:flash", | |
"device": { | |
"identifiers": "Smart Electricity Meter via CAD", | |
"name": "smart_electricty_meter_{{CAD_MAC}}", | |
"model": "Smart Electricity Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_electricity_import_week{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Electricity: Import (This week)", | |
"unique_id": "smart_meter_electricity_import_week", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/electricitymeter", | |
"device_class": "energy", | |
"unit_of_measurement": "kWh", | |
"state_class": "total_increasing", | |
"value_template": "{% raw %}{{ value_json['electricitymeter']['energy']['import']['week'] }}{% endraw %}", | |
"icon": "mdi:flash", | |
"device": { | |
"identifiers": "Smart Electricity Meter via CAD", | |
"name": "smart_electricty_meter_{{CAD_MAC}}", | |
"model": "Smart Electricity Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_electricity_import_month{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Electricity: Import (This month)", | |
"unique_id": "smart_meter_electricity_import_month", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/electricitymeter", | |
"device_class": "energy", | |
"unit_of_measurement": "kWh", | |
"state_class": "total_increasing", | |
"value_template": "{% raw %}{{ value_json['electricitymeter']['energy']['import']['month'] }}{% endraw %}", | |
"icon": "mdi:flash", | |
"device": { | |
"identifiers": "Smart Electricity Meter via CAD", | |
"name": "smart_electricty_meter_{{CAD_MAC}}", | |
"model": "Smart Electricity Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_electricity_import_unit_rate{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Electricity: Import Unit Rate", | |
"unique_id": "smart_meter_electricity_import_unit_rate", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/electricitymeter", | |
"device_class": "monetary", | |
"unit_of_measurement": "GBP/kWh", | |
"value_template": "{% raw %}{{ value_json['electricitymeter']['energy']['import']['price']['unitrate'] }}{% endraw %}", | |
"icon": "mdi:cash", | |
"device": { | |
"identifiers": "Smart Electricity Meter via CAD", | |
"name": "smart_electricty_meter_{{CAD_MAC}}", | |
"model": "Smart Electricity Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_electricity_import_standing_charge{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Electricity: Import Standing Charge", | |
"unique_id": "smart_meter_electricity_import_standing_charge", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/electricitymeter", | |
"device_class": "monetary", | |
"unit_of_measurement": "GBP", | |
"value_template": "{% raw %}{{ value_json['electricitymeter']['energy']['import']['price']['standingcharge'] }}{% endraw %}", | |
"icon": "mdi:cash", | |
"device": { | |
"identifiers": "Smart Electricity Meter via CAD", | |
"name": "smart_electricty_meter_{{CAD_MAC}}", | |
"model": "Smart Electricity Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_electricity_power{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Electricity: Power", | |
"unique_id": "smart_meter_electricity_power", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/electricitymeter", | |
"device_class": "power", | |
"unit_of_measurement": "kW", | |
"state_class": "measurement", | |
"value_template": "{% raw %} {% if value_json['electricitymeter']['power']['value'] < 0 %} {{ states('sensor.smart_meter_electricity_power') }} {% else %} {{ value_json['electricitymeter']['power']['value'] }} {% endif %}{% endraw %}", | |
"icon": "mdi:flash", | |
"device": { | |
"identifiers": "Smart Electricity Meter via CAD", | |
"name": "smart_electricty_meter_{{CAD_MAC}}", | |
"model": "Smart Electricity Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_gas_import{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Gas: Import", | |
"unique_id": "smart_meter_gas_import", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/gasmeter", | |
"device_class": "energy", | |
"unit_of_measurement": "kWh", | |
"state_class": "total_increasing", | |
"value_template": "{% raw %} {% if value_json['gasmeter']['energy']['import']['cumulative'] == 0 %} {{ states('sensor.smart_meter_gas_import') }} {% else %} {{ value_json['gasmeter']['energy']['import']['cumulative'] }} {% endif %}{% endraw %}", | |
"icon": "mdi:fire", | |
"device": { | |
"identifiers": "Smart Gas Meter via CAD", | |
"name": "smart_gas_meter_{{CAD_MAC}}", | |
"model": "Smart Gas Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_gas_import_today{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Gas: Import (Today)", | |
"unique_id": "smart_meter_gas_import_today", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/gasmeter", | |
"device_class": "energy", | |
"unit_of_measurement": "kWh", | |
"state_class": "total_increasing", | |
"value_template": "{% raw %} {% if value_json['gasmeter']['energy']['import']['day'] == 0 and now() > now().replace(hour=0).replace(minute=1).replace(second=0).replace(microsecond=0) %} {{ states('sensor.smart_meter_gas_import_today') }} {% else %} {{ value_json['gasmeter']['energy']['import']['day'] }} {% endif %}{% endraw %}", | |
"icon": "mdi:fire", | |
"device": { | |
"identifiers": "Smart Gas Meter via CAD", | |
"name": "smart_gas_meter_{{CAD_MAC}}", | |
"model": "Smart Gas Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_gas_import_week{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Gas: Import (This week)", | |
"unique_id": "smart_meter_gas_import_week", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/gasmeter", | |
"device_class": "energy", | |
"unit_of_measurement": "kWh", | |
"state_class": "total_increasing", | |
"value_template": "{% raw %}{{ value_json['gasmeter']['energy']['import']['week'] }}{% endraw %}", | |
"icon": "mdi:fire", | |
"device": { | |
"identifiers": "Smart Gas Meter via CAD", | |
"name": "smart_gas_meter_{{CAD_MAC}}", | |
"model": "Smart Gas Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_gas_import_month{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Gas: Import (This month)", | |
"unique_id": "smart_meter_gas_import_month", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/gasmeter", | |
"device_class": "energy", | |
"unit_of_measurement": "kWh", | |
"state_class": "total_increasing", | |
"value_template": "{% raw %}{{ value_json['gasmeter']['energy']['import']['month'] }}{% endraw %}", | |
"icon": "mdi:fire", | |
"device": { | |
"identifiers": "Smart Gas Meter via CAD", | |
"name": "smart_gas_meter_{{CAD_MAC}}", | |
"model": "Smart Gas Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_gas_import_unit_rate{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Gas: Import Unit Rate", | |
"unique_id": "smart_meter_gas_import_unit_rate", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/gasmeter", | |
"device_class": "monetary", | |
"unit_of_measurement": "GBP/kWh", | |
"value_template": "{% raw %}{{ value_json['gasmeter']['energy']['import']['price']['unitrate'] }}{% endraw %}", | |
"icon": "mdi:cash", | |
"device": { | |
"identifiers": "Smart Gas Meter via CAD", | |
"name": "smart_gas_meter_{{CAD_MAC}}", | |
"model": "Smart Gas Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_gas_import_standing_charge{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter Gas: Import Standing Charge", | |
"unique_id": "smart_meter_gas_import_standing_charge", | |
"state_topic": "glow/{{CAD_MAC}}/SENSOR/gasmeter", | |
"device_class": "monetary", | |
"unit_of_measurement": "GBP", | |
"value_template": "{% raw %}{{ value_json['gasmeter']['energy']['import']['price']['standingcharge'] }}{% endraw %}", | |
"icon": "mdi:cash", | |
"device": { | |
"identifiers": "Smart Gas Meter via CAD", | |
"name": "smart_gas_meter_{{CAD_MAC}}", | |
"model": "Smart Gas Meter via CAD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_ihd_rssi{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter IHD: RSSI", | |
"unique_id": "smart_meter_ihd_rssi", | |
"state_topic": "glow/{{CAD_MAC}}/STATE", | |
"device_class": "signal_strength", | |
"unit_of_measurement": "dB", | |
"state_class": "measurement", | |
"entity_category": "diagnostic", | |
"value_template": "{% raw %}{{ value_json['han']['rssi'] }}{% endraw %}", | |
"icon": "mdi:signal", | |
"device": { | |
"identifiers": "Smart Meter IHD", | |
"name": "smart_meter_ihd_{{CAD_MAC}}", | |
"model": "Smart Meter IHD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_ihd_status{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter IHD: Status", | |
"unique_id": "smart_meter_ihd_status", | |
"state_topic": "glow/{{CAD_MAC}}/STATE", | |
"value_template": "{% raw %}{{ value_json['han']['status'] }}{% endraw %}", | |
"icon": "mdi:monitor", | |
"device": { | |
"identifiers": "Smart Meter IHD", | |
"name": "smart_meter_ihd_{{CAD_MAC}}", | |
"model": "Smart Meter IHD", | |
"manufacturer": "Hildebrand" | |
} | |
} | |
- service: mqtt.publish | |
data: | |
retain: true | |
topic: homeassistant/sensor/smart_meter_ihd_lqi{{CAD_MAC}}/config | |
payload: >- | |
{ | |
"name": "Smart Meter IHD: LQI", | |
"unique_id": "smart_meter_ihd_lqi", | |
"state_topic": "glow/{{CAD_MAC}}/STATE", | |
"device_class": "signal_strength", | |
"state_class": "measurement", | |
"entity_category": "diagnostic", | |
"unit_of_measurement": "dB", | |
"value_template": "{% raw %}{{ value_json['han']['lqi'] }}{% endraw %}", | |
"icon": "mdi:signal", | |
"device": { | |
"identifiers": "Smart Meter IHD", | |
"name": "smart_meter_ihd_{{CAD_MAC}}", | |
"model": "Smart Meter IHD", | |
"manufacturer": "Hildebrand" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Erm..
Status
notstaus
please haha