Zum Hauptinhalt springen

Weishaupt heat pump Smart-Home-Integration, kostenlos und Open Source

Weishaupt heat pump-Integration für Gladys Assistant

Weishaupt heat pumps with built-in Modbus TCP: temperatures, circuits, hot water; options.

Info

Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.

This integration shows your Weishaupt heat pump in Gladys through its built-in Modbus TCP interface on your local network, without any cloud. If you allow it, it can also change the modes and setpoints and start a hot water push.

Never tested with a real device. The integration follows Weishaupt's datapoint list "Modbus TCP (WWP)" 83807301 (1/2025-11) and the Home Assistant integration weishaupt_modbus, and was tested against a simulated heat pump only. Not affiliated with Weishaupt.

What you need​

  • A Weishaupt heat pump whose controller has Modbus TCP built in: WAB, WBB, WSB or WGB, with a recent controller software (Weishaupt: a missing data point may need a software update). Heat pumps that only offer the separate Weishaupt Modbus module are not supported (another product, another register map). The Weishaupt WEM portal (cloud) is not used.
  • Modbus TCP enabled on the heat pump: "User" → "Settings" → "Modbus TCP", "Parameter: On", and in "Network" / "Netmask" a range that contains the address of Gladys (safest: allow only the IP address of Gladys).
  • A fixed IP address for the heat pump (reserve it in your router).
  • Modbus TCP has no password: any allowed device can read and write the settings of the heat pump. Keep it on a trusted network, never exposed to the Internet.

Configuration​

FieldRole
IP address of the heat pumpIPv4 or host name, port 502 unless you add one (192.168.1.60:502).
Modbus unit id1.
Heating circuitsThe numbers of your circuits, 1 to 4, separated by commas (1 by default).
Allow the commandsOff by default (see below).
Hot water ceiling (°C)The highest hot water setpoint Gladys may send: 65 °C by default, 30 to 65 °C.
Refresh interval60 s by default, 30 s to 1 h.
LanguageLanguage of the device names, the status and the messages.

Save, then add the heat pump from the Discovery tab. The "Test the connection" button reads the heat pump again, never more often than the interval.

What you see​

  • System operating mode (automatic, heating, cooling, summer, standby, second heat generator), system state and heat pump state (heating, hot water, defrost, standby, utility lock, frost protection…, as stable texts such as heating, hot-water, defrost).
  • Fault (0/1, register 33102), error code and warning code (none, or the code number as a text: look it up in the manual of the heat pump).
  • Power demand (%), temperatures: outdoor 1 and 2, heat pump flow and return, hydraulic switch, regenerative, buffer tank, total flow (B7), hot water and hot water target in force.
  • Hot water setpoints (normal, setback) and hot water push (off, or the minutes left rounded up to the next choice by 5 minutes: 27 minutes left show as "30 min").
  • Second heat generator and electric heaters 1 and 2 (on/off), when the heat pump gives them.
  • For each configured circuit: mode, party/pause (automatic, pause-90-min, party-60-min…), room setpoints (comfort, normal, setback), room temperature and humidity, room target in force, flow and flow target temperatures.

A feature shows once a value of it was read. The special values are never published as measures: "no sensor", "open", "short circuit" and the digital states of a sensor, "no setpoint demand" (1 or -32768) on a setpoint, 0xFFFF on a percentage, a state outside its list, a value out of range. A text (state, code) is never published as a number.

Not shown: the energy statistics of the heat pump (kWh per day, month and year: they restart at each period, they are not a meter index), the heat output computed by weishaupt_modbus from a power map of one model, the inputs/outputs and the installer settings.

The commands​

Off by default. With "Allow the commands", Gladys may change:

  • the system operating mode (automatic, heating, cooling, summer, second heat generator);
  • the mode of a configured circuit (automatic, comfort, normal, setback);
  • the room setpoints of a circuit (comfort, normal, setback), 16 to 28 °C by 0.5 °C, keeping comfort ≥ normal ≥ setback as read on the heat pump just before;
  • the hot water setpoints (normal, setback), 5.5 °C up to the ceiling of the configuration (65 °C by default), by 0.5 °C, keeping normal ≥ setback. Nothing above 65 °C is ever sent, whatever is typed. The heat pump refuses a setpoint above its own hot water maximum (installer setting, 60 °C from the factory): Gladys then answers "refused";
  • the hot water push (5 to 240 minutes, by 5).

Each command first reads the current values on the heat pump, writes nothing when it is already right, then reads the written value back: it succeeds only when the read back shows the value asked. Otherwise Gladys answers "sent, without confirmation" and reads the heat pump 5 s, 25 s and 60 s after.

A command is refused, nothing sent, when: the option is off (also checked right before the write), the value is out of range, above the ceiling or breaks the order of the setpoints, the circuit is not in the configuration, the current values could not be read, the configuration changed meanwhile, a stop was sent after it arrived, a stop sent to this heat pump is not confirmed yet (only a new choice on that very setting goes then), 16 commands are already waiting, or this setting was already changed 6 times in the last hour or 20 times in the last 24 hours (kept across a restart). These limits protect the memory of the heat pump, which keeps these settings in an EEPROM of 100,000 writes for its whole life (Weishaupt); they never apply to a lower setpoint nor to a stop.

The commands go one at a time, in their order of arrival, on one connection. A scene setting several values sets them all: a command still waiting its turn after 3.5 s gets the answer "waiting" and goes within 15 s of the click, or not at all.

The stops​

Setting the system operating mode to Standby, a circuit to Standby or the hot water push to Off does not depend on the commands option, the bounds, a read in progress or failing, a heat pump not read yet, nor a waiting command. A stop goes before anything; every command that arrived before it and has not left is dropped. A refused connection is tried again every 250 ms for 3 s; Gladys gets its answer within 3.5 s.

A stop not confirmed is held in /data (with the value of before) until a read shows it: it is not dropped after some time. The integration checks the heat pump every 15 s for 3 minutes, then every minute, whatever the refresh interval: a stop that could not leave is tried again at each check; a stop written but not shown yet is sent again while the heat pump still shows the value of before (at least 20 s after the last write, three times at most per click: each one is a write in the memory of the heat pump). After that the stop stays held without writing until a read shows it, a new click or a change at the heat pump. A check never interrupts a command; a new click on a stop interrupts a check and is written and read back like any click. After a restart, the check runs at once, before even reading the configuration. Stops are never limited by the hourly quota of the commands.

While a stop is held, the other commands to the same heat pump are refused.

A stop can fail or be no longer held in these cases:

  • no valid address in the configuration (or, before the configuration is read, no heat pump read before): refused, nothing sent;
  • the heat pump stays unreachable for 3 s: "not sent", then tried again at every check until it can be sent;
  • the heat pump answers a Modbus exception: "refused" or "sent, without confirmation" depending on the code;
  • the read back does not show the stop yet: "sent, without confirmation", then held;
  • it is no longer held once a read shows it, once a newer Gladys command for the same setting left (a click with the option on), once two reads in a row show another value than the one before the stop (set at the heat pump; for a stop clicked before any read, the first value read after it is the value of before), or once the configuration names another heat pump (address, port or unit id);
  • /data holding a stop dated in the future (a clock set back): it is invalid and not replayed.

Gladys never starts the heat pump again by itself.

Known limits​

  • No serial number over Modbus: the device is tied to the integration, not to the IP address (changing the address keeps the device and its history), and another Modbus device at the same address would not be detected.
  • The registers are those of Weishaupt's list 83807301 (1/2025-11); the party/pause of a circuit (41x04) only comes from weishaupt_modbus and is read apart, without failing the read when the heat pump does not serve it. The list warns that some Modbus software shifts the addresses by one: the integration sends them as listed, as weishaupt_modbus does. The time a written value takes to show is not documented (the integration allows 20 s before sending a stop again).
  • Register 30005 ("Fehlerfrei") is read but not shown: Weishaupt and weishaupt_modbus disagree on its format; the fault comes from register 33102.
  • Two Modbus clients at once (Home Assistant and Gladys) may not be accepted by the heat pump.

Konfigurationseinstellungen​

Diese Einstellungen fragt Weishaupt heat pump in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Your Weishaupt heat pumpsectionNeinShows your Weishaupt heat pump with built-in Modbus TCP (WAB, WBB, WSB, WGB) in Gladys over your local network (port 502), without any cloud: temperatures, states, fault and codes, heating circuits 1 to 4, hot water, second heat generator. On the heat pump, set User > Settings > Modbus TCP to "On" with Gladys in the allowed network, enter its IP address here, save, then add it from the Discovery tab. The separate Weishaupt Modbus module is not supported. Modes, setpoints and the hot water push change only if you allow the commands below; hot water never above the ceiling below (65 °C at most). Standby, circuit standby and push off never depend on that option (see the guide for when they can fail). Modbus TCP has no password: keep the heat pump on a trusted network. Never tested with a real device. Not affiliated with Weishaupt.
IP address of the heat pumpstringJaAn IPv4 address or a host name (port 502 unless you add one, for example 192.168.1.60:502).
Modbus unit idnumberNeinThe Modbus unit id of the heat pump: 1.
Heating circuitsstringNeinThe numbers of the heating circuits of your installation, 1 to 4, separated by commas (for example 1, 2).
Allow the commandsbooleanNeinOff by default. On: Gladys may change the system operating mode, the mode of a heating circuit, the room setpoints of a circuit (comfort, normal, setback: 16 to 28 °C), the hot water setpoints (5.5 °C to the ceiling below) and start a hot water push. Off: these commands are refused. Standby, a circuit standby and stopping the hot water push never depend on this option.
Hot water ceiling (°C)numberNeinThe highest hot water setpoint Gladys may send, 30 to 65 °C (65 °C by default). Nothing above 65 °C is ever sent, whatever is typed here. The heat pump also refuses more than its own hot water maximum (installer setting, 60 °C from the factory).
Refresh interval (s)numberNeinHow often the heat pump is read, in seconds.
Language of the feature namesselectNeinUsed for the names of the device and features added from now on, the status and the command errors.

So installierst du Weishaupt heat pump in Gladys​

  1. Öffne in Gladys Integrationen: Weishaupt heat pump erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/lm1lc3n7/gladys-weishaupt:0.1.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/LM1LC3N7/gladys-weishaupt.

Weishaupt heat pump benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Weishaupt heat pump ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von LM1LC3N7 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂