A writeup of how to make a Tibber Pulse work locally while still sending data to Tibber. This is based on the Norwegian version of the Pulse, which is directly connected to the AMS meter using MBUS. It might also work with other versions supplied by Tibber, but this is untested from my part. This writeup is quite messy and could probably be cleaned up alot. Sorry for that, I tried including alot of pictures for reference
- A local MQTT Broker
- A Tibber Pulse
- Optionally a UART/Serial adapter
- Basic knowledge of electronics
- Extract SSL/TLS Certificates using either:
- Setup MQTT Broker As Bridge HomeAssistant Supervised or Other MQTT Broker
- Connect Pulse to your local broker Pulse Setup
- Reset your Pulse by holding down the reset button for around 5 seconds
- Disconnect the Pulse Power-Up from the Tibber app by going into Power-Ups > Pulse > Disconnect (If you have previously had it connected)
- Open the Tibber app and start setting up the Pulse. When you get to input your WiFi password, make sure to intensionally input the wrong password!
- Your app should now show a WiFi error.
- Force-Quit the Tibber app.
- Connect to the Pulse's network, the password is shown on the back of the pulse. It looks like this
QWGH-ED12
. The - has to be included - Navigate to 10.133.70.1
- The website should now include everything the Tibber app sent to the Pulse, including the wrong password.
- Copy everything inside the ca_cert field.
- Paste it into a new file called CA.ca
- Copy everything inside the certificate field.
- Paste it into a new file called Cert.crt
- Copy everything inside the private_key field.
- Paste it into a new file called Priv.key
- Copy and paste mqtt_url, mqtt_topic and mqtt_topic_sub into a file called mqtt_info or something like that
- Change the psk to the correct password for your WiFi network.
- Press send and then apply afterwards.
- After a while, the Pulse should show an empty page with just some numbers and characters at the top. Like 8f5g6e6h5f. If it shows MQTTErr or WiFiErr you have to redo everything.
- Check that the Pulse now shows on the main screen of the Tibber app(It wont have any data, just make sure the bubble is there. You might have to force-quit the app and restart it for it to show up).
//To come. Basically, the Pulse spits out everything the app sends to it when you connect it to the tibber app. It does require you to open the Pulse and connect a serial debugger to the TX/RX pins and make the pulse and the debugger share a common ground, but not power! The pulse needs to be connected to USB power while doing this The rough idea is to just listen for serial data while connecting it to the app. The output is in the same format you can see in step 12.
- Make sure you have the MQTT addon installed
- Make a user for the Pulse (If you have not made one already or you are allowing anonymous connections)
- Open Studio Code Server or an equivalent File Editor on the HomeAssistant instance
- Press the hamburger menu > File > Open Folder
- Enter
/root/
and press enter - Navigate to or create a directory called
share
if it doesnt exist. - Create a directory called
mosquitto
undershare
- Create a new directory called
tibber_cert
or something equivalent you remember undermosquitto
- Create a new file called
bridge.conf
undermosquitto
Now the directory structure should look like this - Move the CA.ca, Cert.crt and Priv.key files to the
tibber_cert
folder - Locate the Pulse-ID which can be found in the mqtt_info file we created earlier.
- Paste this into the bridge.conf file. (Make sure your mqtt_url is the same as mine, if not change
connection blabla:8883
to whatever you have in the code below)
connection bridge-to-tibber
bridge_cafile /share/mosquitto/tibber_cert/CA.ca
bridge_certfile /share/mosquitto/tibber_cert/Cert.crt
bridge_keyfile /share/mosquitto/tibber_cert/Priv.key
address a1zhmn1192zl1a.iot.eu-west-1.amazonaws.com:8883
clientid tibber-pulse-[Remove this and fill in your Pulse-ID]
try_private false
notifications false
topic $aws/# out
topic tibber-pulse-[Remove this and fill in your Pulse-ID]/receive in
It should look like this
13. Open the Mosquitto addon Configuration
14. Set active: true and folder: mosquitto
under Customize
15. Save the configuration and restart the addon.
16. Make sure the log from the addon doesnt show any errors.
All the steps above are relevant. Just paste everything I have in the .conf
file above into your MQTT Broker config file. And change the directories to some local directory.
- Reset the Pulse again, but DO NOT disconnect it in the Tibber app.
- Connect to the Pulse's network, the password is shown on the back of the pulse. It looks like this
QWGH-ED12
. The - has to be included - Navigate to 10.133.70.1
- Im assuming you already know how to connect the pulse to your local broker, but here are some pictures Without MQTT username and password With MQTT username and password
- The
mqtt_topic
on the Pulse has to be what is shown in mqtt_info file we created earlier - Press send, and apply.
- Check that the pulse is connected to the MQTT Broker
- Set the MQTT Topic your local Pulse decoder like https://github.com/toreamun/amshan-homeassistant or https://github.com/iotux/ElWiz to the MQTT Topic you specified over and in the dump from the app/serial.