Skip to content

Instantly share code, notes, and snippets.

@si458
Forked from jamesonuk/add_hildebrand.yaml
Last active December 7, 2023 22:07
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save si458/2a9ec8d0e2b07205e4859886cc5222b0 to your computer and use it in GitHub Desktop.
Save si458/2a9ec8d0e2b07205e4859886cc5222b0 to your computer and use it in GitHub Desktop.
blueprint:
name: Add Hildebrand CAD Entities
description: Create devices and entities using MQTT discovery
domain: script
source_url: https://gist.github.com/si458/2a9ec8d0e2b07205e4859886cc5222b0
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:
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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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",
"state_class": "measurement",
"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"
}
}
retain: true
- service: mqtt.publish
data:
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",
"state_class": "measurement",
"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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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",
"state_class": "measurement",
"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"
}
}
retain: true
- service: mqtt.publish
data:
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",
"state_class": "measurement",
"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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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"
}
}
retain: true
- service: mqtt.publish
data:
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",
"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"
}
}
retain: true
- service: mqtt.publish
data:
topic: homeassistant/sensor/smart_meter_ihd_software_{{CAD_MAC}}/config
payload: >-
{
"name": "Smart Meter IHD: Software",
"unique_id": "smart_meter_ihd_software",
"state_topic": "glow/{{CAD_MAC}}/STATE",
"value_template": "{% raw %}{{ value_json['software'] }}{% endraw %}",
"icon": "mdi:information-outline",
"entity_category": "diagnostic",
"device": {
"identifiers": "Smart Meter IHD",
"name": "smart_meter_ihd_{{CAD_MAC}}",
"model": "Smart Meter IHD",
"manufacturer": "Hildebrand"
}
}
retain: true
- service: mqtt.publish
data:
topic: homeassistant/sensor/smart_meter_ihd_hardware_{{CAD_MAC}}/config
payload: >-
{
"name": "Smart Meter IHD: Hardware",
"unique_id": "smart_meter_ihd_hardware",
"state_topic": "glow/{{CAD_MAC}}/STATE",
"value_template": "{% raw %}{{ value_json['hardware'] }}{% endraw %}",
"icon": "mdi:information-outline",
"entity_category": "diagnostic",
"device": {
"identifiers": "Smart Meter IHD",
"name": "smart_meter_ihd_{{CAD_MAC}}",
"model": "Smart Meter IHD",
"manufacturer": "Hildebrand"
}
}
retain: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment