Query the Tibber Pulse Bridge Locally with ESPHOME (no external web API)

Hi there, just wanted to share something.

Since the tibber web api is sometimes failing and I also want to avoid external API calls happening all the time I hacked this:

ProfDrYoMan/tibber_pulse_local_esphome: Query the Tibber pulse bridge locally without the web API of Tibber (github.com)

All said. Have fun!

1 Like

I came here after I was wondering if someone took the time to re-flash the Tibber Pulse with ESPHome.
So far I haven’t found anyone that did this, but I would like to share something here.

I have an unprovisioned Tibber Pulse, and when you power it up there’s a WiFi hotspot created. The password to connect to it is on the back of the device.
If you connect to the hotspot, you seem to be able to configure the Tibber Pulse to use a local MQTT server to publish its data and you don’t have to provision the device at all.

2 things tho;
1 - I haven’t actually tried this, I want to dump the original firmware first, then tinker with ESPHome, and if that fails do the above.
2 - With this, you’ll probably lose the visibility of your power consumption in your Tibber Dashboard

ok, so you are using an esp to read the pulse bridge locally. but what then? can I access this data by mqtt or json?

Entities will show up in HA like always in ESPhome. But anyhow. This one is the better solution:

I have to access the Pulse data also from my wallbox and was hoping to do it without Home Assistant in the middle. Perfect would be an solution where an ESP reads the data from the Pulse and publish them by using MQTT or JSON. This way it would be possible to access the Pulse from Home Assistant and the Wallbox.

You can easily publish topics from HA to MQTT.
MQTT - Home Assistant (home-assistant.io)

I do not have a solution for pulse to MQTT but I assume there is one on github.

As a starting point you might check this one: ProfDrYoMan/tibber_pulse_local: Knowledge Base Tibber Pulse (github.com)

Essentially check the links to other repos referenced there. I did this a long while ago and remember that I referred to my source of information.

I got this error:
Read missmatch, 396 != 0

Any idea what the reason could be? I’m using an “ESP8266 – Wemos D1 mini”. TX is GPIO1, RX is GPIO3 and I have connected them.

Really no idea. It seems the URL request result shows the right amount of payload and later reading this data is not succeeding as expected.
There is nothing happening on UART at that time of failure.
Sorry. I am not using this anymore. Cannot provide any more help.