

SaveAndLoadValues (Speichere und lese Werte)
Dieser Baustein gehört zum Paket „Storage (Speicher).“
Paket-Preis: 12,50€
Kurzbeschreibung
Diese Methode ermöglicht das Speichern und Wiederherstellen von Werten auf einer SD-Karte. Durch Aktivierung der Speicherfunktion wird ein eingegebener Wert gespeichert, der später wieder abgerufen werden kann – entweder manuell oder automatisch nach einer definierten Verzögerung. Die Funktion unterstützt verschiedene Datentypen wie Zahlen, Texte und Wahrheitswerte. Zudem kann sie so konfiguriert werden, dass gespeicherte Werte nach einem Systemneustart automatisch wiederhergestellt werden.
Hinweis:
Besonders nützlich beim Austausch von Zustandlosen Werten mit anderen Systemen (z.B: HomeAssistant)
Besonderheit
- Datenpersistenz:
Die Methode ermöglicht das Speichern und spätere Wiederherstellen eines Wertes aus einer Datei. - Automatische Wiederherstellung:
Nach einem Neustart oder nach einer einstellbaren Verzögerung kann der gespeicherte Wert automatisch wieder geladen werden. - Flexible Eingaben:
Es können verschiedene Datentypen gespeichert und wiederhergestellt werden (z. B. Zahlen, Texte, Wahrheitswerte). - Lizenzprüfung:
Das System erfordert eine gültige Lizenz zur Nutzung. - Speicherung auf SD-Karte
Die Werte werden auf einer SD-Karte unter/opt/card/SmartSystemSolutions/saveandload/
gespeichert. Falls keine SD-Karte vorhanden ist, kann die Speicherung nicht durchgeführt werden. - Fehlerbehandlung:
Es werden verschiedene Fehler abgefangen, insbesondere bei Dateioperationen oder ungültigen Eingaben. - Logging und Statusmeldungen:
Alle relevanten Ereignisse und Zustände werden in Log-Variablen protokolliert, die als Ausgänge zur Verfügung stehen.
Diese Methode speichert einen übergebenen Wert in einer Datei und ermöglicht es, diesen später wieder auszulesen.
- Der Speicherpfad ist flexibel wählbar, standardmäßig wird
/opt/card/SmartSystemSolutions/saveandload/
genutzt. - Eine Aktivierung ist notwendig, um die Funktionalität zu nutzen.
- Falls ein Wert gespeichert wird, kann er optional direkt an den Ausgang weitergegeben werden.
- Das System kann so konfiguriert werden, dass der gespeicherte Wert nach einer einstellbaren Verzögerung automatisch wieder eingelesen und genutzt wird.
- Es gibt verschiedene Steuerungsmechanismen, z. B. eine explizite Lesefunktion, die den letzten gespeicherten Wert erneut an den Ausgang schreibt.
- Falls kein gültiger Speicherpfad angegeben ist oder keine SD-Karte vorhanden ist, wird kein Wert gespeichert.
- Die Methode erkennt verschiedene Datentypen und speichert sie entsprechend ab.
- Ein Log-Mechanismus gibt Aufschluss über die ausgeführten Operationen, mögliche Fehler und Lizenzinformationen.
- Das System benötigt eine gültige Lizenz zur Nutzung. Dabei wird geprüft, ob eine korrekte Lizenzdatei und eine gültige Hardware vorhanden sind.
- Activate (bool):
Aktiviert die Funktion. - TriggerReadStorage (bool):
Löst das erneute Laden des gespeicherten Wertes aus. - WriteOutputIfInputWasSet (bool):
Gibt den gespeicherten Wert direkt aus, wenn er neu gesetzt wurde. - Input (any):
Der zu speichernde Wert. - StoragePath (string):
Speicherort der Datei, um den Speicherort des Wertes von anderen Werten des gleichen Bausteins zu unterschieden! - DelayAfterInitialize (timespan):
Wartezeit nach Initialisierung, bevor gespeicherte Werte geladen werden. - ActivateReadStorageAfterDelay (bool):
Falls aktiviert, wird der gespeicherte Wert nach der Verzögerung geladen. - ActivateSaveStorageInFirstRun (bool):
Falls aktiviert, wird der Wert beim ersten Durchlauf gespeichert. - Type (string):
Datentyp des gespeicherten Wertes (z. B. „string“, „bool“, „byte“, „short“, „ushort“, „int“, „uint“, „long“, „ulong“, „float“, „double“, „datetime“). - LicenseKey01 (string):
Erster Teil des Lizenzschlüssels. - LicenseKey02 (string):
Zweiter Teil des Lizenzschlüssels.
- Output (any):
Enthält den gespeicherten Wert oder den aktuell eingegebenen Wert. - OutputOnlyTrigger (any):
Gibt den gespeicherten Wert nur dann aus, wennTriggerReadStorage
aktiviert wurde. - OutputOnlyRestart (any):
Gibt den gespeicherten Wert nach einem Neustart aus. - OutputOnlyInput (any):
Gibt den Wert nur dann aus, wenn eine Eingabe erfolgt ist. - LogExecute (string):
Enthält Protokolle zu ausgeführten Operationen und Fehlern. - LogSchedule (string):
Enthält Protokolle zu geplanten Speicher-/Lesevorgängen. - LogLicense (string):
Informationen zur Lizenz- und DLL-Integrität.
Beispiel 1 – Speicherung und Wiederherstellung eines Heizungs-Sollwertes für HomeAssistant:
Ein Smart-Home-Besitzer nutzt HomeAssistant zur Steuerung der Heizung über den Gira X1. Der Sollwert der Heizung wird über HomeAssistant eingestellt und über den X1 an das Heizsystem weitergeleitet. Wenn der X1 oder HomeAssistant neugestartet wird, geht dieser Wert normalerweise verloren, und die Heizung könnte auf einen Standardwert zurückspringen.
Durch diesen Baustein kann HomeAssistant nach einem Neustart den zuletzt gesetzten Sollwert abrufen und erneut an die Heizung senden. Dadurch wird sichergestellt, dass die Temperatursteuerung nach einem Neustart nahtlos weiter funktioniert.
- Eingabe:
Activate
:true
- Input:
21.5
Type
: doubleStoragePath
:heizung_bad
- ActivateSaveStorageInFirstRun: true
- ActivateReadStorageAfterDelay: true
- DelayAfterInitialize: 1m
- Ausgabe:
Output = 21.5
Vorteil für HomeAssistant:
Nach einem Neustart von HomeAssistant oder dem X1 kann HomeAssistant den letzten Sollwert erneut abrufen und sicherstellen, dass die Heizung sich nicht auf eine falsche Temperatur zurücksetzt


Beispiel 2 – Manuelles Laden eines gespeicherten Wertes nach Neustart von HomeAssistant
Nach einem Neustart von HomeAssistant möchte der Benutzer einen bestimmten Wert abrufen, der zuvor gespeichert wurde. Zum Beispiel wurde über den Gira X1 ein numerischer Wert gespeichert (z. B. eine Verbrauchsstatistik oder eine individuelle Einstellung), und HomeAssistant soll diesen abrufen.
Da HomeAssistant nach einem Neustart seine internen Variablen verliert, kann er mit diesem Baustein aktiv den letzten gespeicherten Wert vom X1 anfordern und weiterverarbeiten.
- Eingabe:
Activate
:true
TriggerReadStorage
: trueType
: intStoragePath
:lastValue
- Ausgabe:
OutputOnlyTrigger = 42
Vorteil für HomeAssistant:
HomeAssistant kann nach einem Neustart aktiv Werte abrufen, anstatt darauf warten zu müssen, dass der Gira X1 ihn von selbst sendet. So bleiben individuelle Einstellungen und Systemwerte erhalten.


Beispiel 3 – Speicherung eines individuellen Dimmwerts nur für den Gira X1
Ein Benutzer nutzt den Gira X1 zur Steuerung seiner Wohnzimmerbeleuchtung. Die Helligkeit wird manuell über ein Taster-Panel oder eine Visualisierung eingestellt. Ohne diesen Baustein wird der Dimmwert nach einem Neustart des X1 auf einen Standardwert zurückgesetzt, und der Benutzer muss die gewünschte Helligkeit erneut einstellen.
Mit diesem Baustein kann der zuletzt eingestellte Dimmwert gespeichert und nach einem Neustart automatisch wiederhergestellt werden, sodass das Licht nach einem Neustart des X1 in der gewohnten Helligkeit bleibt.
- Eingabe:
Activate
:true
Input: 75
Type
: intStoragePath
:dimmen_wohnzimmer
- ActivateSaveStorageInFirstRun = true
- ActivateReadStorageAfterDelay = true
- DelayAfterInitialize = 1m
- Ausgabe:
OutputOnlyTrigger = 75
Vorteil für den X1 (ohne HomeAssistant):
- Der Benutzer muss die Helligkeit nach einem Neustart nicht erneut einstellen.
- Das Licht bleibt in der zuletzt gewählten Helligkeit.
- Automatisierungen innerhalb des X1 können weiterhin auf den richtigen Wert zugreifen.


Der Baustein funktioniert nicht ohne eine gültige Lizenz und eine unmanipulierte .dll-Datei. Der Lizenzstatus wird im Ausgang LogLicense
dokumentiert.
Ohne diesen Baustein gehen alle gespeicherten Werte im Gira X1 nach einem Neustart verloren. Das kann dazu führen, dass Beleuchtungen, Temperaturen oder andere Werte auf Standardwerte zurückfallen. Mit diesem Baustein können Werte gespeichert und nach einem Neustart wiederhergestellt werden. (Werte bleiben auch beim Löschen des Projektes erhalten)
- Verlustfreie Werte: Nach einem Neustart von HomeAssistant oder X1 bleiben Zustände erhalten.
- Nahtlose Automatisierungen: HomeAssistant kann gespeicherte Werte erneut abrufen und weiterverwenden.
- Einfache Integration: Die gespeicherten Werte können per MQTT, KNX oder andere Schnittstellen von HomeAssistant abgefragt werden.
- Mehr Zuverlässigkeit: HomeAssistant kann so stabiler und unabhängiger von Neustarts arbeiten.
Der Gira X1 verliert nach einem Neustart alle Werte. HomeAssistant kann gespeicherte Werte nur dann abrufen, wenn sie irgendwo gespeichert wurden. Mit diesem Baustein kann HomeAssistant nach einem Neustart den letzten bekannten Wert erneut abfragen.
Falls beide Systeme gleichzeitig neu starten, wird HomeAssistant den gespeicherten Wert erneut abrufen können, sobald der X1 wieder hochgefahren ist. Die Verzögerungsfunktion sorgt dafür, dass HomeAssistant genug Zeit hat, bevor der gespeicherte Wert ausgegeben wird.
Ja! Durch Setzen von TriggerReadStorage = true
kann HomeAssistant jederzeit den zuletzt gespeicherten Wert abrufen.
Die Werte bleiben unbegrenzt gespeichert, solange die SD-Karte im X1 funktionsfähig ist. Sie werden nicht überschrieben, es sei denn, ein neuer Wert wird gespeichert.
Ja! Du kannst beispielsweise eine Szene als Zeichenkette speichern (Type = "string"
) und nach einem Neustart erneut aktivieren lassen. Dadurch bleibt die zuletzt genutzte Szene auch nach einem Stromausfall erhalten.
- Version 3.0.5
- First Release
Baustein-Support
Wenn Sie X1-Logik-Baustein-Support benötigen, senden Sie uns bitte zusätzlich den Log (LogExecute, LogScheduleStart und LogScheduleReset, welcher als Ausgang des Bausteins ausgegeben wird) und eine detaillierte Beschreibung des Problems zu!