Skip to content

Instantly share code, notes, and snippets.

@jamesonuk
Last active October 9, 2023 14:35
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 jamesonuk/079ed3639924e9f373783e5b67f4385d to your computer and use it in GitHub Desktop.
Save jamesonuk/079ed3639924e9f373783e5b67f4385d 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/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:
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",
"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",
"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",
"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",
"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",
"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"
}
}
retain: true
@si458
Copy link

si458 commented Mar 27, 2023

Erm.. Status not staus please haha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment