Skip to content

Instantly share code, notes, and snippets.

@bje
Last active November 21, 2023 09:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bje/ec36ebb3e0d94925a083777111e34e23 to your computer and use it in GitHub Desktop.
Save bje/ec36ebb3e0d94925a083777111e34e23 to your computer and use it in GitHub Desktop.
Hildebrand CAD Entities
blueprint:
name: Add Hildebrand CAD Entities
description: Create devices and entities using MQTT discovery
domain: script
source_url: https://gist.github.com/bje/ec36ebb3e0d94925a083777111e34e23
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment