NEWS
[gelöst] Diverse Daten zwischenspeichern
-
Hallo liebe Foristen,
ich arbeite gerade an einem Skript und komme an einer Stelle nicht weiter. Ich hoffe, dass ihr mir helfen könnt.
Und zwar habe ich einen Trigger (Urlaub = true/false) und wenn der Trigger ausgelöst wird, möchte ich die Daten aus einer Liste (insgesamt 16 Datenpunkte) speichern und später wieder in die gleichen Datenpunkte schreiben.
Leider fehlt mir die Idee, wie ich das am besten umsetzen kann ohne zig Variablen und zusätzliche Datenpunkte anzulegen.
Vielen Dank
-
Genau dies mache ich so bei dem Stand meiner Rollladen.
Bei Urlaub = true schreibe ich alle Stände in einen extra Datenpunkt.
Dann werden alle Rolläden während Urlaub auf 0 gefahren.Bei Urlaub = false hole ich den Inhalt o.g. DP und schreibe die Werte wieder in die DP der Rollläden.
Könnte dir ein JS geben; bei blockly bin ich raus.
-
-
@chrille1507
anbei:
In solchen Variablen habe ich gespeichert, wo die Rollläden hin gehen sollen nachts:
Wenn nun Urlaub true läuft folgendes Script:
function vor_Urlaub () { var akt = []; akt.push(getState(java2 + 'Arbeitszimmer_Wert').val); akt.push(getState(java2 + 'Bad_EG_Wert').val); akt.push(getState(java2 + 'Kueche_Wert').val); akt.push(getState(java2 + 'Wohnzimmer-Terrasse_Wert').val); akt.push(getState(java2 + 'Wohnzimmer-Fenster_Wert').val); akt.push(getState(java2 + 'Wohnzimmer-Balkon_Wert').val); akt.push(getState(java2 + 'Schlafzimmer-Tuer_Wert').val); akt.push(getState(java2 + 'Schlafzimmer-Fenster_Wert').val); akt.push(getState(java2 + 'Buero_Wert').val); akt.push(getState(java2 + 'Hobbyraum-Fenster_Wert').val); akt.push(getState(java2 + 'Hobbyraum-Tuer_Wert').val); akt.push(getState(java2 + 'Heizung_Wert').val); akt.push(getState(java2 + 'Fitnessraum_Wert').val); setState(java2 + 'Stand_vor_Urlaub', akt.join(';')); }
Es werden also die Stände in die Variable "..Stand_vor_Urlaub" geschrieben.
Danach wird bei den o.g. Var. alle auf 20 % gesetzt.Wenn Urlaub dann wieder false, läuft folgendes Script:
function nach_Urlaub () { var akt = (getState(java2 + 'Stand_vor_Urlaub').val).split(';'); setState(java2 + 'Arbeitszimmer_Wert', parseInt(akt[0])); setState(java2 + 'Bad_EG_Wert', parseInt(akt[1])); setState(java2 + 'Kueche_Wert', parseInt(akt[2])); setState(java2 + 'Wohnzimmer-Terrasse_Wert', parseInt(akt[3])); setState(java2 + 'Wohnzimmer-Fenster_Wert', parseInt(akt[4])); setState(java2 + 'Wohnzimmer-Balkon_Wert', parseInt(akt[5])); setState(java2 + 'Schlafzimmer-Tuer_Wert', parseInt(akt[6])); setState(java2 + 'Schlafzimmer-Fenster_Wert', parseInt(akt[7])); setState(java2 + 'Buero_Wert', parseInt(akt[8])); setState(java2 + 'Hobbyraum-Fenster_Wert', parseInt(akt[9])); setState(java2 + 'Hobbyraum-Tuer_Wert', parseInt(akt[10])); setState(java2 + 'Heizung_Wert', parseInt(akt[11])); setState(java2 + 'Fitnessraum_Wert', parseInt(akt[12])); }
Dann stehen die alten Stände wieder drin.
mfg
Dieter -
@chrille1507 sagte: Daten aus einer Liste (insgesamt 16 Datenpunkte) speichern und später wieder in die gleichen Datenpunkte schreiben.
Anstelle der Zuweisung von 16 Datenpunkt-IDs kann vielleicht auch der Selektor verwendet werden?
Blockly-Version:Der Datenpunkt für
Liste
muss vom Typ "array" sein. -