NEWS
Test Luxtronik2-Controller
-
Morgen, @TbsJah
also wenn ich es jetzt in ein kleines script packen würde.
wenn Automatik an und AT < 20°C und AT Unterschreitung > 12h dann (opStateCoolingString) Aus
wenn Automatik an und AT > 20°C und AT Freigabe > 12h
dann (opStateCoolingString) Aktivwenn Kühlung aus dann (opStateCoolingString) Aus
ich weiß nicht wie es in der WP geprüft wird dann könnte man den ein oder anderen Punkt weglassen.
hoffe ist Verständlich.
Kannst du meine WP noch mit aufnehmen.
MSW2-9S
wird als unbekannt angezeigt.
-
Morgen, @TbsJah
also wenn ich es jetzt in ein kleines script packen würde.
wenn Automatik an und AT < 20°C und AT Unterschreitung > 12h dann (opStateCoolingString) Aus
wenn Automatik an und AT > 20°C und AT Freigabe > 12h
dann (opStateCoolingString) Aktivwenn Kühlung aus dann (opStateCoolingString) Aus
ich weiß nicht wie es in der WP geprüft wird dann könnte man den ein oder anderen Punkt weglassen.
hoffe ist Verständlich.
Kannst du meine WP noch mit aufnehmen.
MSW2-9S
wird als unbekannt angezeigt.
@Homer.J. sagte:
wenn Automatik an und AT < 20°C und AT Unterschreitung > 12h dann (opStateCoolingString) Aus
wenn Automatik an und AT > 20°C und AT Freigabe > 12h
dann (opStateCoolingString) Aktivwenn Kühlung aus dann (opStateCoolingString) Aus
Steht im Display irgendwo ein Zähler der Abläuft wenn die Temperatur erreicht oder unterschritten ist und abläuft bis zur Vorgabezeit?
Also Temperatur vorgabe erreicht > 20°C seit 10 Minuten - Kühlfreigabe nach 2h
Timer -> 1:50hKannst du bitte mal schauen und wenn ja dann mit einem Dumplog abgleichen (dort sind es bestimmt Sekunden)
Ich bräuchte dann den Index -
-
Morgen, @TbsJah
also wenn ich es jetzt in ein kleines script packen würde.
wenn Automatik an und AT < 20°C und AT Unterschreitung > 12h dann (opStateCoolingString) Aus
wenn Automatik an und AT > 20°C und AT Freigabe > 12h
dann (opStateCoolingString) Aktivwenn Kühlung aus dann (opStateCoolingString) Aus
ich weiß nicht wie es in der WP geprüft wird dann könnte man den ein oder anderen Punkt weglassen.
hoffe ist Verständlich.
Kannst du meine WP noch mit aufnehmen.
MSW2-9S
wird als unbekannt angezeigt.
-
@Homer.J. sagte:
wenn Kühlung ...
Ist drin. Auch ein paar andere Objekte für Kühlung
Schau es dir es mal an - vielleicht passt dir das schonTyp ist auch eingetragen
Morgen,
habs durchgesehen einiges ist mir aufgefallen.
dieser Punkt sieht schon gut aus wird aktualisiert zeigt aber unbekannt bei Automatik.


dieser Punkt für was ist der?

da passiert nichts.und bei diesen kommt eine Zahlenreihenfolge die aktualisiert wird.

für was ist dieser Punkt

Grüße
-
Morgen,
habs durchgesehen einiges ist mir aufgefallen.
dieser Punkt sieht schon gut aus wird aktualisiert zeigt aber unbekannt bei Automatik.


dieser Punkt für was ist der?

da passiert nichts.und bei diesen kommt eine Zahlenreihenfolge die aktualisiert wird.

für was ist dieser Punkt

Grüße
-
-
Schau mal bitte ob bei dir eine on Zeit gesetzt ist
Die zwei Werte sind bei der LWP direkt gesetzt
Wichtig ist dass du da 0 bei on einträgst - sonst läuft das zusätzlich zum Bewegungsmelder/ TasterMüsste ich mal in der Doku vermerken - aber ich bin sehr Faul was die Dokumentation betrifft

-
Die neue Version 0.6.4 des Luxtronik 2 Adapters steht zur Verfügung.
Der Schwerpunkt dieses Updates liegt auf der Reduzierung von Schreibzugriffen auf den internen Flash-Speicher (EEPROM) der Wärmepumpe, um Hardware-Verschleiß vorzubeugen.Hier sind die wesentlichen technischen Änderungen:
- Überwachung und Reduzierung der Schreibzyklen (Read-Before-Write)
Um die Schreibvorgänge auf die Steuerung nachvollziehbar zu machen, wurden unter den Systeminformationen zwei neue Datenpunkte integriert:
write_cycles_today (automatischer Reset täglich um 00:00 Uhr)
write_cycles_total (fortlaufend)
Zusätzlich prüft der Adapter nun vor jedem Netzwerbbefehl global ab, ob der zu schreibende Wert bereits dem Ist-Zustand entspricht (Read-Before-Write). Ist dies der Fall, wird der Schreibbefehl blockiert, um unnötige EEPROM-Zugriffe zu verhindern.
- Steuerung externer Aktoren für die Zirkulationspumpe (ZIP)
Bisher führte das softwareseitige Auslösen der Zirkulationspumpe (z. B. bei Präsenzerkennung) zu unvermeidbaren Schreibvorgängen in der Luxtronik-Steuerung.
In den Adapter-Einstellungen können nun stattdessen externe Aktoren (z. B. Shelly- oder Zigbee-Relais) per Objekt-ID hinterlegt werden. Der Adapter schaltet bei Anforderung diese Relais direkt. Die Luxtronik wird hierbei komplett umgangen, wodurch die EEPROM-Schreibvorgänge für die ZIP-Steuerung auf 0 sinken.
Die Logik der externen Aktoren ist dabei an die Wärmepumpe gekoppelt:
Die in der Luxtronik hinterlegten ZIP-Zeitpläne (Woche, 5+2, Einzeltage) können weiterhin als erlaubtes Zeitfenster für die Relais genutzt werden.
Die externen Aktoren können bei einer aktiven Warmwasserbereitung der Wärmepumpe automatisch synchron mitgestartet werden.
Das Update sollte in Kürze über die entsprechenden Repositories verfügbar sein.
Viel Spaß beim Testen! Ich freue mich wie immer über euer Feedback und Rückmeldungen,Hier der komplette changelog
0.6.3 (2026-07-23)
Features & Enhancements
- External Actor Support for ZIP (100% Flash Safe): Added the ultimate hardware protection feature. Users can now configure a list of external actors (e.g., Shelly or Zigbee relays) via their object IDs in the Admin UI. When motion is detected, the adapter switches these relays directly, completely bypassing the heat pump and reducing Luxtronik EEPROM write cycles to absolute zero.
- External Actor Schedule Compliance: External ZIP actors now dynamically respect the Luxtronik ZIP time tables (Week, 5+2, or Individual days). Motion triggers will be cleanly ignored if they occur outside the permitted time windows, unless the user explicitly checks the "Disable Hardware ZIP Timers" option in the configuration.
- Hot Water Sync for External Actors: The adapter now automatically activates external circulation pump relays when the heat pump begins a hot water generation cycle, maximizing comfort at the tap with zero impact on flash memory wear.
- Global EEPROM Flash Protection (Read-Before-Write): Implemented a global interceptor for all hardware write commands (
writePumpSafe). The adapter now caches the current heat pump parameters in real-time and strictly blocks any duplicate or redundant write requests before they are sent over the network. - Automated Hardware-Safe ZIP Defaults: The adapter can now automatically enforce hardware-safe circulation pump schedules upon startup. Accounts for Luxtronik firmware behavior by intelligently setting the first start block to
00:01:00(60 seconds) to prevent invalid zero-run rejections, while keeping ON-time at0 minand OFF-time at60 min. - Admin UI - Flash Wear Statistics & Guidance: Expanded the ZIP configuration page with detailed educational information. Added hard data explaining that internal ZIP control causes between 4 and 14 physical write operations per activation, highly recommending the new external actor setup.
- Write Cycle Monitoring: Introduced two new virtual data points under System Info (
write_cycles_todayandwrite_cycles_total) to transparently track physical write operations sent to the heat pump. The daily counter automatically resets every night at midnight. - Cooling Extension & Intelligent Status: Comprehensive integration of new cooling data points (e.g.,
cooling_status,cooling_configured,opStateCooling). Added the dynamically calculatedopStateCoolingString. - Admin UI - Notification Testing: Added a dedicated "Send Test Message" button to the configuration interface to easily verify Telegram and ioBroker Notification Center setups directly from the UI.
- Hardened ZIP Macro Execution: Reaffirmed and secured the ZIP demand-driven macro to exclusively use the deaeration program (Entlüftungsprogramm).
- New Flow Rate Datapoints: Added flow rate tracking for the heat source (
flow_rate_heat_source, ID 173) and cooling (flow_rate_cooling, ID 254) to the state mapping. - Extended Admin UI: All newly added cooling data points and the heat source flow rate can now be individually enabled or disabled via new checkboxes in the adapter configuration (
jsonConfig.json). - New Hardware Supported: Officially added the MSW2-9S heat pump to the model recognition (
HP_TYPES).
Bugfixes
- Motion Sensor Cooldown Logic: Fixed an issue where the 10-minute anti-cycling cooldown for motion sensors was perpetually stuck when using external relays. The logic now correctly monitors the virtual
Activate_Zipstate's timestamp instead of the bypassed internalZIPoutstate. - Virtual State Reset: Fixed a bug where the
Activate_Zipbutton/state remainedtrueafter an external relay timer expired, which broke subsequent cooldown calculations. It now cleanly resets tofalsewhen the run cycle finishes. - External Actor State Detection: Fixed a logic flaw where the adapter incorrectly checked the internal heat pump state (
ZIPout) instead of the external relay state to determine if the circulation pump was already running. It now dynamically checksgetForeignStateAsyncfor configured actors, cleanly preventing redundant switch commands and allowing silent timer extensions if motion is re-detected. - Timer Formatting in Objects: Fixed a bug where timer schedules (Heating, Hot Water, Circulation) were incorrectly displayed as raw seconds (e.g.,
60or0). Applied the internal duration formatter (isDurationFormat: true) globally so all time tables natively and persistently display asHH:MM:SS(e.g.,00:01:00) in the ioBroker object tree. - Admin UI i18n Compliance: Fixed missing language definitions (E5611) in the
jsonConfig.jsondropdown menus to strictly comply with the latest ioBroker repository checks. - TypeScript/Linter Strictness: Fixed strictly typed linter errors (e.g.,
@typescript-eslint/no-floating-promises,no-redundant-type-constituents, and template literal typings) by correctly handling asynchronous database calls, replacinganywithunknown, and strictly casting types. - Missing Imports: Resolved compilation errors regarding missing helper functions (e.g.,
getDpPath) during module refactoring. - Cooling Operating Hours: Fixed the
hours_coolingdatapoint. The value is now correctly read from real-time telemetry data (raw_value), resolving an issue where the timestamp "Jan 1, 1970" was incorrectly shown. - Config Cleanup: Fixed an incorrect identifier in the admin UI (changed
sync_Gerätezeittosync_deviceTime) and removed unused/dead checkboxes.
Technical Changes (Under the Hood)
- Separation of Concerns (zipManager): Completely refactored the motion sensor and circulation pump logic. Extracted the event handling and startup initialization out of
main.tsintozipManager.ts. It now also dynamically handles iterations over arrays of external actors. - Network Queue Isolation: Extracted the core transmission queue (
queueWrite,processQueue) from the main adapter class intorawFunctions.ts, achieving 100% isolation of TCP/WebSocket network logic from ioBroker state management. - Comprehensive Code Refactoring (DRY): Created dedicated
convert.tsandutils.tsmodules to centralize time string formatting (timeStringToSeconds,formatTimerSecondsToTime) and generic helper functions (getNumber,delay). - Global Time Refactoring: Centralized the duration and time calculation for status texts in the
updateStatusStringsfunction. - i18n Support for State Names: Updated the internal state definition (
name: string | { en: string; de?: string }) to fully support translation objects, allowing natively translated datapoint names in the ioBroker object tree.
- Überwachung und Reduzierung der Schreibzyklen (Read-Before-Write)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden



