Skip to content

This tiny bridge polls the central station of Roth EnergyLogic and pushes all information to an Mqtt broker.


Notifications You must be signed in to change notification settings


Repository files navigation

MIT License Docker pulls Go Report Card

Heating Mqtt Bridge

This tiny bridge polls the central station of Roth EnergyLogic and pushes all information to an Mqtt broker.


All parameters can be passed via cmdline arguments or via environment variables. If both are passed the cmdline argument has precedence.

  • -env Allow environment variables if provided, otherwise they will be ignored. (optional)
  • -heating / HEATING IP or hostname of your EnergyLogic. (required)
  • -broker / BROKER IP or hostname with port of your MQTT broker. (example: (required)
  • -user / BROKER_USER Username of your MQTT broker. (optional)
  • -password / BROKER_PSW Password of your MQTT broker. (optional)
  • -topic / TOPIC Topic-Prefix of provided information. (optional, default: "roth")
  • -clean / CLEAN Set clean session for MQTT. (optional, default: false)
  • -polling / POLLING Refresh interval in seconds. (optional, default: 300 seconds)
  • -tempchange / TEMPCHANGE Temperature change warning in hours. (optional, default: 12 hours)
  • -sensor / SENSOR Send additional sensor entity. (optional, default: true)
  • -full / FULL Provide any information to broker, most times this is not necessary. (optional, default: false)
  • -dns / DNS Use internal DNS cache. (optional, default: true)
  • -verbose / VERBOSE Provide more verbose logging. (optional, default: false)


The EnergyLogic provide some system information and information about any wireless sensor. Those wireless sensors are prefixed by a consecutive number of the central station like G0, G1 and so on. The number of wireless sensors are indicated by totalNumberOfDevices.


  isMaster: 1
  totalNumberOfDevices: 3


  hw/HostName: ROTH-0111A1


  R0/numberOfPairedDevices: 1


  R1/numberOfPairedDevices: 2


  G0/name: LivingRoom
  G0/RaumTemp: 22.55
  G0/SollTemp: 23.00
  G1/name: Kitchen
  G1/RaumTemp: 21.35
  G1/SollTemp: 21.00

Set values

The following room values are settable and will be propagated to the EnergyLogic. Be aware that Gx needs a valid room number like G0, G1 and so on.

  • name settable via Gx/set/name. This changes the room name.
  • SollTemp settable via Gx/set/SollTemp. This changes the target temperature.
  • TempSIUnit settable via Gx/set/TempSIUnit. This changes the temperature scale.
  • OPMode settable via Gx/set/OPMode. This changes heating mode for this device.
    • 0 Day (normally On)
    • 1 Night
    • 2 Holiday (normally Off)

Available topic

If this bridge is online or offline can be checked with available topic. The topic available under Gx indicates "no battery detection". This bridges exposes both available topics to home assistant auto discovery. So all available needs to be online. Otherwise all or a single climate is N/A. This depends on bridge not running or no battery.

Low / no battery detection

The EnergyLogic has no indicator to show low or no battery on a wireless controller. It just stops sending temperature values. So we send a Gx/RaumTempLastChange warning if the tempatures of a room has no changes in specified time (see above). This is configurable with the -tempchange parameter. The Gx/available topic will be switched to offline after that.

Auto discovery

It is possible to use auto-discovery support of Home Assistant and openhab (openhab/openhab-addons#10764).


You can run this bridge in a container with Docker.

docker run --rm --name heating -e HEATING= -e BROKER= aklitzing/heatingmqttbridge

Also you can use this repository as an AddOn in HomeAssistant. Add-On Store > Repositories > Add repository