Hildebrand Glow UPDATE! Local MQTT and Home Assistant
Those nice people over at Hildebrand were probably like “some geek is moaning on YouTube about the Glow display not supporting local access, I’ll release this firmware update straight away so as his video is out of date, that’ll show him.”. Yeah, that’s probably exactly how it went! Or… the cynic in me suspects that this might have something to do with Octopus launching their new Octopus Home Mini CAD which basically does the same thing as Glow. Hildebrand now quickly needed a way to differentiate their product, and Local MQTT access is that feature. (Update August 2022: Jane from Hildebrand has contacted me to assure me that the timing of the release of local MQTT on the Glow display with the announcement of the Octopus CAD was purely co-incidental, and that my hypothetical scenario is not true!)
Setting up local access is really easy, assuming you’ve already configured the Mosquitto Broker add-on in Home Assistant. I’ve gone over that in other videos so I won’t show you that again, but to recap, find Mosquitto Broker in the Add-on store, and install with default options.
To configure the CAD, open the menu, select ‘Metering’, then ‘MQTT’. Enter the IP address of your MQTT broker, or Home Assistant server in the ‘Host’ field. I suggest you leave the topic as ‘glow’, then type in your MQTT credentials. You can either use a dedicated MQTT username and password or just your Home Assistant logon if you want. When you tap the save button, wait until the status at the top of the screen says ‘Connected’, and then you’re ready to test it. You’ll also need your Device ID, which is the same as the device’s MAC address – you can double-check this value in the menu by choosing ‘Display’, then ‘Details’, and the MAC is the first item in the list. Make a note of this but without the colons, so you just have a 12 character string.
(Update: A viewer has informed me that the MAC address is also available on a sticker inside the battery compartment – just look for the item labelled ‘WIFI’.)
Testing is easy, go to your Home Assistant integrations page and click on the Configure button for MQTT. In the section that says ‘Listen to a topic’ you want to type something along the lines of:
glow/YOURDEVICEID/SENSOR/electricitymeter
Where YOURDEVICEID is replaced with the MAC address of your device that you looked up earlier. This is case sensitive and must be entered in upper case. Click on ‘Start Listening’ and you should see a bunch of JSON data appear after a couple of seconds. If that works, then it’s time to move on to creating some sensors in Home Assistant.
Since my last video/article on Glow, Home Assistant has actually changed the way that MQTT sensors are defined. Instead of adding them in the sensor section with a platform type of MQTT, you use the dedicated MQTT section. Now credit for these sensor definitions goes to robertalexa on the Home Assistant forums. I have changed them slightly to meet my needs though because I like the power output values to be in watts and not kilowatts because that matches all of my other power sensors. If you want kilowatts, follow Robert’s configuration, if you want watts then have a look at this! I’ve also added in some entities to capture exported energy readings too.
mqtt: sensor: #--------------------------------------- # New Local MQTT for Glow IHD - name: "Smart Meter Electricity: Power" unique_id: "smart_meter_electricity_power" state_topic: "glow/YOURDEVICEID/SENSOR/electricitymeter" device_class: "power" unit_of_measurement: "W" state_class: "measurement" value_template: "{{ (value_json['electricitymeter']['power']['value'] * 1000) | round() }}" icon: "mdi:flash" - name: "Smart Meter Electricity: Energy Import" unique_id: "smart_meter_electricity_energy_import" state_topic: "glow/YOURDEVICEID/SENSOR/electricitymeter" device_class: "energy" unit_of_measurement: "kWh" state_class: "total_increasing" value_template: > {% if value_json['electricitymeter']['energy']['import']['cumulative'] == 0 %} {{ states('sensor.smart_meter_electricity_energy_import') }} {% else %} {{ value_json['electricitymeter']['energy']['import']['cumulative'] }} {% endif %} icon: "mdi:flash" - name: "Smart Meter Electricity: Energy Export" unique_id: "smart_meter_electricity_energy_export" state_topic: "glow/YOURDEVICEID/SENSOR/electricitymeter" device_class: "energy" unit_of_measurement: "kWh" state_class: "total_increasing" value_template: > {% if value_json['electricitymeter']['energy']['export']['cumulative'] == 0 %} {{ states('sensor.smart_meter_electricity_export') }} {% else %} {{ value_json['electricitymeter']['energy']['export']['cumulative'] }} {% endif %} icon: "mdi:flash" - name: "Smart Meter Gas: Import" unique_id: "smart_meter_gas_import" state_topic: "glow/YOURDEVICEID/SENSOR/gasmeter" device_class: "energy" unit_of_measurement: "kWh" state_class: "total_increasing" value_template: > {% if value_json['gasmeter']['energy']['import']['cumulative'] == 0 %} {{ states('sensor.smart_meter_gas_import') }} {% else %} {{ value_json['gasmeter']['energy']['import']['cumulative'] }} {% endif %} icon: "mdi:fire" - name: "Smart Meter Electricity: Import Unit Rate" unique_id: "smart_meter_electricity_import_unit_rate" state_topic: "glow/YOURDEVICEID/SENSOR/electricitymeter" device_class: "monetary" unit_of_measurement: "GBP/kWh" state_class: "measurement" value_template: "{{ value_json['electricitymeter']['energy']['import']['price']['unitrate'] }}" icon: "mdi:cash" - name: "Smart Meter Electricity: Import Standing Charge" unique_id: "smart_meter_electricity_import_standing_charge" state_topic: "glow/YOURDEVICEID/SENSOR/electricitymeter" device_class: "monetary" unit_of_measurement: "GBP" state_class: "measurement" value_template: "{{ value_json['electricitymeter']['energy']['import']['price']['standingcharge'] }}" icon: "mdi:cash" - name: "Smart Meter Gas: Import Unit Rate" unique_id: "smart_meter_gas_import_unit_rate" state_topic: "glow/YOURDEVICEID/SENSOR/gasmeter" device_class: "monetary" unit_of_measurement: "GBP/kWh" state_class: "measurement" value_template: "{{ value_json['gasmeter']['energy']['import']['price']['unitrate'] }}" icon: "mdi:cash" - name: "Smart Meter Gas: Import Standing Charge" unique_id: "smart_meter_gas_import_standing_charge" state_topic: "glow/YOURDEVICEID/SENSOR/gasmeter" device_class: "monetary" unit_of_measurement: "GBP" state_class: "measurement" value_template: "{{ value_json['gasmeter']['energy']['import']['price']['standingcharge'] }}" icon: "mdi:cash"
This is a copy of my actual configuration but with the MAC address removed. I have a sensor defined for live power as before but because the value from MQTT is in kilowatts, I multiply by one thousand and round to the nearest whole number to get rid of the decimal point.
I then have a couple of entities for electricity import and export, and then gas import. Interestingly gas import data is only available in kWh via this local link whereas previously I could only get it in cubic metres. [Note, removed Gas Power on 2023-06-25] You can also get the instantaneous gas power value, but I have a feeling this won’t be too useful as it’s an averaged value taken over 30 minutes which is a restriction of the gas meter itself.
And finally the last few entities are all about grabbing the current unit price from your tariff. This is great for tracking your energy costs in the Home Assistant Energy dashboard. Robertalexa has some even better examples of sensors on his forum post which will keep track of your cumulative costs, I won’t repeat those here because I don’t personally make use of them at the moment but you should really go and check them out.
There we have it, Hildebrand are listening and have turned a good product into a fantastic product with just a firmware upgrade. Time to moan again though – what would make this better? An ethernet port! The CAD is Wifi only and I would love a hard-wired version to reduce the congestion on my Wifi network. I’m told that the new CAD without display that they are launching soon will have an Ethernet port on it for that very reason… but that’s something they can’t fix on the display with a firmware update sadly. Maybe for their second generation display, just a suggestion!