Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Diverse Daten zwischenspeichern

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Diverse Daten zwischenspeichern

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Chrille1507 last edited by Chrille1507

      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

      bahnuhr paul53 2 Replies Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active @Chrille1507 last edited by

        @chrille1507

        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.

        C 1 Reply Last reply Reply Quote 0
        • C
          Chrille1507 @bahnuhr last edited by

          @bahnuhr

          Hallo,

          per Javascript würde es mir wirklich sehr helfen.
          Vielen Dank schon mal!

          bahnuhr 1 Reply Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active @Chrille1507 last edited by

            @chrille1507
            anbei:
            In solchen Variablen habe ich gespeichert, wo die Rollläden hin gehen sollen nachts:
            18ccee62-c5a6-4425-92ab-b2e06ddd8f18-image.png

            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

            1 Reply Last reply Reply Quote 1
            • paul53
              paul53 @Chrille1507 last edited by paul53

              @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:

              Bild_2022-09-19_143755431.png

              Der Datenpunkt für Liste muss vom Typ "array" sein.

              1 Reply Last reply Reply Quote 1
              • C
                Chrille1507 last edited by

                Vielen herzlichen Dank an @bahnuhr und @paul53. Beide Varianten helfen mir sehr weiter und ich kann mich jetzt daran probieren.
                Alleine hätte ich das nicht hinbekommen.

                Danke Danke Danke

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                894
                Online

                31.9k
                Users

                80.1k
                Topics

                1.3m
                Posts

                3
                6
                222
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo