Salda Smarty Smart-Home-Integration, kostenlos und Open Source

Salda Smarty ventilation over local Modbus TCP: temperatures, mode, fans, filter; optional commands.
Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.
Shows a Salda Smarty heat recovery ventilation unit (Smarty 2X, 3X, 4X P/V, MCB controller) in Gladys, through its Modbus TCP interface on your local network, without any cloud or account. Unofficial integration, not affiliated with Salda. Never tested with a real device: it reads and writes the registers Salda publishes, as the open-source pysmarty2 library (used by Home Assistant) does; please report what you see.
Before you start
- The unit must be on your network (Ethernet) with Modbus TCP enabled, reachable from Gladys on port 502. Give it a fixed IP address in your router.
- Modbus TCP has no password: keep the unit on a trusted network.
- The Modbus unit id (slave address) is 1 unless you changed it on the unit.
Installation
- Install the integration from the Gladys store.
- Enter the IP address of the unit (port 502 unless you add one) and, if needed, the Modbus unit id; save.
- Open the Discovery tab and add the unit.
What you get
One device, Salda Smarty ventilation, with:
| Feature | Notes |
|---|---|
| Supply, extract and outdoor air temperatures | °C |
| Supply and extract fan speeds | rpm |
| Filter: days left | days |
| Ventilation mode (speed) | list: building protection (speed 1), economy (speed 2), comfort (speed 3) |
| Current mode | text: standby, building-protection, economy, comfort, boost |
| Unit state | text (stable English key, for example economy, boost, change-filters, fire-alarm) |
| Boost active, alarm, warning | read only, 1 = active |
| Start / stop the boost | buttons |
On the Smarty, the mode is the speed: building protection, economy and comfort are speeds 1, 2 and 3. Stand-by (unit stopped) shows in "Current mode" and in the status, never in the list.
The unit is read every 60 s (30 s to 1 h), in four requests over one connection, closed after. The test button, a Discovery scan, a reconnection of Gladys or a restart of the integration never read it sooner than the interval. Reads outside the interval:
- every command reads the unit just before writing, then reads the value written back;
- "Stop the boost" and its resends;
- 5 s and 20 s after a command not confirmed, or after a boost stop that follows a boost start not confirmed;
- a new address or unit id saved is read at once.
Commands
Changing the mode and "Start the boost" are refused until Allow the commands is on (off by default). No switch: a voice assistant's "turn everything off" never reaches the ventilation.
-
Every command reads the unit again just before writing (the mode, the unit state, its versions and the value to change), writes nothing when the value is already right, and is confirmed only when the unit returns the echo of the write and then reads the value asked. A command that may have reached the unit without being confirmed answers "sent, without confirmation": check the unit a few seconds later. A command the unit refuses with Modbus exception 1, 2 or 3 (illegal function, address or value) answers "refused" and was not applied; other exceptions (device failure, busy…) answer "sent, without confirmation". A command that cannot be written within 3.5 s is refused and nothing is sent.
-
Unit in stand-by (stopped): changing the mode or starting the boost would start it, so they are refused as soon as the mode set, the current mode or the state read is stand-by. Gladys neither stops nor restarts the unit in this version (stopping a heat recovery unit stops the air renewal).
-
Unit stopping (state "cooling heaters" or "closing dampers", Salda's stop sequence): the same refusals.
-
Critical or fire alarm (unit state): changing the mode and "Start the boost" are refused. The "Alarm" feature (alarm A) alone does not block them.
-
Versions changed: the integration keeps the software and configuration versions of the unit. When they change (an update, or another device at the same address), the status says so and changing the mode and "Start the boost" are refused until Test the connection is pressed, which accepts the versions shown. Unreadable versions block nothing.
-
Stop the boost is not subject to the option, another command, a read in progress, stand-by, an alarm or the versions; it cancels a command not sent yet. A refused or closed connection, a missing or wrong answer are tried again every 250 ms until 3.5 s after the press. It can still answer without having stopped the boost in these cases:
- no valid address or unit id in the configuration;
- a value other than 1;
- the unit unreachable until 3.5 s after the press ("not sent", or "not sent yet" while it still tries);
- the unit refusing the write (Modbus exception 1 to 3: "refused");
- the echo or the read back missing or different, another Modbus exception, or the boost read still on ("sent, without confirmation");
- another address or unit id saved during the stop: it is interrupted ("sent, without confirmation" if it had left) and its resends are dropped.
A second press during the first joins it. When not confirmed, the reads of the next two minutes send it again (three times at most) while the boost stays on; a "Start the boost" sent afterwards wins and is never undone. After a "Start the boost" sent but not confirmed, that start may still be applied after the stop: the stop is then watched for two minutes even when confirmed (reads at 5 s and 20 s, resent when the boost reads on, three times at most), and this watch survives a restart of the integration.
-
The Smarty limits the boost duration itself.
Limits
- Only the registers Salda publishes and pysmarty2 uses are read and written (no filter timer reset nor alarm reset in this version).
- The Smarty's Modbus map gives no serial number: the integration shows one unit, the one at the address entered, and only checks its versions (see above), which two units may share. Changing the address keeps the device and its history; another unit with the same versions put at the same address would show on the same device and receive its commands too. Reserve the address in your router (fixed DHCP lease).
- Temperatures are read as signed values (tenths of a degree); a value outside -60 to 90 °C is ignored.
- Gladys opens only one Modbus connection at a time to the unit; another home automation system polling it meanwhile may slow its answers.
- An invalid address is never shown again in the status: only its number of characters.
Privacy
Nothing leaves your network. The integration only keeps in its /data
volume the time of its last read, the versions of the unit and, for two
minutes at most, the watch of a boost stop.
Konfigurationseinstellungen
Diese Einstellungen fragt Salda Smarty in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Your Salda Smarty unit | section | Nein | Shows your Salda Smarty heat recovery ventilation (Smarty 2X, 3X, 4X P/V) in Gladys through its Modbus TCP interface (port 502) on your local network, without any cloud: supply, extract and outdoor temperatures, mode, unit state, fan speeds, days left before the filter change, alarm, warning and boost. Enable Modbus TCP on the unit, enter its IP address (give it a fixed address in your router), save, then add the unit from the Discovery tab. The mode (which sets the fan speed) and the boost can be changed from Gladys only if you allow the commands below; stopping the boost never depends on that option (see the guide for the cases where it can fail). Gladys never stops nor restarts the unit. Modbus TCP has no password: keep the unit on a trusted network. Never tested with a real device. Not affiliated with Salda. |
| IP address of the unit | string | Ja | An IPv4 address or a host name (port 502 unless you add one, for example 192.168.1.80:502). |
| Modbus unit id | number | Nein | The Modbus slave address of the unit, 1 unless you changed it on the unit. |
| Allow the commands | boolean | Nein | Off by default. On: Gladys may change the mode (building protection, economy, comfort: the fan speed) and start the boost; both are refused on a unit in stand-by, stopping, or in critical or fire alarm. Off: these commands are refused. Stopping the boost never depends on this option. |
| Refresh interval (s) | number | Nein | How often the unit is read, in seconds. |
| Language of the feature names | select | Nein | Used for the names of the device and features added from now on, the status and the command errors. |
So installierst du Salda Smarty in Gladys
- Öffne in Gladys Integrationen: Salda Smarty erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/lm1lc3n7/gladys-salda-smarty:0.1.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/LM1LC3N7/gladys-salda-smarty.
Salda Smarty 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
Salda Smarty 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.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation