Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Wenn Wochentag X dann Wert von Objekt Y

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    793

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Wenn Wochentag X dann Wert von Objekt Y

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
7 Beiträge 4 Kommentatoren 825 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • miwiM Offline
    miwiM Offline
    miwi
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich nutze den SourceAnalytics Adapter zur Aufzeichnung meiner Stromverbräuche.
    Der Adapter erstellt Tageswerte im Format: Montag / Dienstag / Mittwoch usw..
    Vorher hatte ich das Stromzähler Script benutzt und meinen VIS View mit dessen Logik genutzt.
    Dort werden die Werte relativ gespeichert als: Gestern / Vorgestern / Vor 3 Tagen usw...

    Ich würde jetzt gerne ein Script erstellen, welches in Abhängigkeit des heutigen Tages, den Wert vom jeweiligen Objekt abholt.

    Also WENN heute Sonntag DANN lese Wert von Objekt 06_Samstag und schreibe diesen in die Variable Gestern
    WENN heute Sonntag DANN lese Wert von Objekt 05_Freitag und schreibe diesen in die Variable Vorgestern
    usw.

    Wie setze ich dies am besten um?

    Gruß
    miwi

    G paul53P 2 Antworten Letzte Antwort
    0
    • miwiM miwi

      Hallo zusammen,

      ich nutze den SourceAnalytics Adapter zur Aufzeichnung meiner Stromverbräuche.
      Der Adapter erstellt Tageswerte im Format: Montag / Dienstag / Mittwoch usw..
      Vorher hatte ich das Stromzähler Script benutzt und meinen VIS View mit dessen Logik genutzt.
      Dort werden die Werte relativ gespeichert als: Gestern / Vorgestern / Vor 3 Tagen usw...

      Ich würde jetzt gerne ein Script erstellen, welches in Abhängigkeit des heutigen Tages, den Wert vom jeweiligen Objekt abholt.

      Also WENN heute Sonntag DANN lese Wert von Objekt 06_Samstag und schreibe diesen in die Variable Gestern
      WENN heute Sonntag DANN lese Wert von Objekt 05_Freitag und schreibe diesen in die Variable Vorgestern
      usw.

      Wie setze ich dies am besten um?

      Gruß
      miwi

      G Offline
      G Offline
      GombersIOB
      schrieb am zuletzt editiert von GombersIOB
      #2

      @miwi said in Wenn Wochentag X dann Wert von Objekt Y:

      Wie setze ich dies am besten um?

      Vielleicht gibt das Beispiel (TypeScript) eine Idee:

      
      let theDay = new Date("March 14, 2023 01:15:00");
      getYesterdaysWeekday(theDay);
      theDay = new Date("March 18, 2023 01:15:00");
      getYesterdaysWeekday(theDay);
      let toDay = new Date();
      getYesterdaysWeekday(theDay);
      function getYesterdaysWeekday(todaysDate: Date) : number {
         let todaysWeekday:number = todaysDate.getDay();
         let yesterdaysWeekday:number = todaysWeekday-1;
         if (todaysWeekday === 0) {
      
         	yesterdaysWeekday = 6;
         }
         console.log("yesterday=" + yesterdaysWeekday);
         return yesterdaysWeekday;
      }
      

      Oder als Blockly:
      cb8f948a-2e81-4425-89ba-81e79ca8442b-image.png

      Mit diesem Script:

      let todaysWeekday = new Date().getDay();
      let yesterdaysWeekday = todaysWeekday-1;
      if (todaysWeekday === 0) {
      	yesterdaysWeekday = 6;
      }
      return yesterdaysWeekday;
      

      Beachte: Sonntag hat die Nummer "0" und zählt bis Samstag, zur Nummer "6"

      1 Antwort Letzte Antwort
      0
      • miwiM miwi

        Hallo zusammen,

        ich nutze den SourceAnalytics Adapter zur Aufzeichnung meiner Stromverbräuche.
        Der Adapter erstellt Tageswerte im Format: Montag / Dienstag / Mittwoch usw..
        Vorher hatte ich das Stromzähler Script benutzt und meinen VIS View mit dessen Logik genutzt.
        Dort werden die Werte relativ gespeichert als: Gestern / Vorgestern / Vor 3 Tagen usw...

        Ich würde jetzt gerne ein Script erstellen, welches in Abhängigkeit des heutigen Tages, den Wert vom jeweiligen Objekt abholt.

        Also WENN heute Sonntag DANN lese Wert von Objekt 06_Samstag und schreibe diesen in die Variable Gestern
        WENN heute Sonntag DANN lese Wert von Objekt 05_Freitag und schreibe diesen in die Variable Vorgestern
        usw.

        Wie setze ich dies am besten um?

        Gruß
        miwi

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        @miwi sagte: WENN heute Sonntag DANN lese Wert von Objekt 06_Samstag und schreibe diesen in die Variable Gestern

        Vorschlag:

        setState(idVor7, getState(idVor6).val, true);
        // usw.
        setState(idVor2, getState(idGestern).val, true);
        let jetzt = new Date();
        let gestern = jetzt.setDate(jetzt.getDate() - 1);
        let wd = new Date(gestern).getDay();
        if(wd == 0) wd = 7;
        let idSrc = 'xyz.0' + wd + '_' + formatDate(gestern, "WW", "de");
        setState(idGestern, getState(idSrc).val, true);
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • miwiM Offline
          miwiM Offline
          miwi
          schrieb am zuletzt editiert von
          #4

          Danke für die Hilfe.

          Habe das jetzt wie paul53 vorgeschlagen hat umgesetzt.
          Ist zwar kein wenn dann, aber übergibt mir jeden Abend um 23:58 den Wert des Vortags in die nächst ältere Variable.

          schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', async function () {
            setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen"/*Vor 2 Tagen*/, getState("sourceanalytix.0.0_userdata__0__Energie__Stromverbrauch_Gesamt.currentYear.consumed.01_previousDay").val, true);
            setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen"/*Vor 3 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen").val, true);
            setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen"/*Vor 4 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen").val, true);
            setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen"/*Vor 5 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen").val, true);
            setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen"/*Vor 6 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen").val, true);
            setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_7_Tagen"/*Vor 7 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen").val, true);
          });
          

          Gleiches mache ich jetzt noch für Wochen, Monate und Quartale und danach das ganze 7 mal für die Verschiedenen Verbräuche und Einspeisungen.

          Danke für die Hilfe,

          miwi

          paul53P B 2 Antworten Letzte Antwort
          0
          • miwiM miwi

            Danke für die Hilfe.

            Habe das jetzt wie paul53 vorgeschlagen hat umgesetzt.
            Ist zwar kein wenn dann, aber übergibt mir jeden Abend um 23:58 den Wert des Vortags in die nächst ältere Variable.

            schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', async function () {
              setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen"/*Vor 2 Tagen*/, getState("sourceanalytix.0.0_userdata__0__Energie__Stromverbrauch_Gesamt.currentYear.consumed.01_previousDay").val, true);
              setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen"/*Vor 3 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen").val, true);
              setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen"/*Vor 4 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen").val, true);
              setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen"/*Vor 5 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen").val, true);
              setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen"/*Vor 6 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen").val, true);
              setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_7_Tagen"/*Vor 7 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen").val, true);
            });
            

            Gleiches mache ich jetzt noch für Wochen, Monate und Quartale und danach das ganze 7 mal für die Verschiedenen Verbräuche und Einspeisungen.

            Danke für die Hilfe,

            miwi

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

            @miwi
            Mach es besser in umgekehrter Reihenfolge: Ältesten Wert zuerst.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            miwiM 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @miwi
              Mach es besser in umgekehrter Reihenfolge: Ältesten Wert zuerst.

              miwiM Offline
              miwiM Offline
              miwi
              schrieb am zuletzt editiert von
              #6

              @paul53 said in Wenn Wochentag X dann Wert von Objekt Y:

              @miwi
              Mach es besser in umgekehrter Reihenfolge: Ältesten Wert zuerst.

              Stimmt sonst wird bei Abarbeitung immer der erste Wert übernommen (Dominoeffekt).

              1 Antwort Letzte Antwort
              0
              • miwiM miwi

                Danke für die Hilfe.

                Habe das jetzt wie paul53 vorgeschlagen hat umgesetzt.
                Ist zwar kein wenn dann, aber übergibt mir jeden Abend um 23:58 den Wert des Vortags in die nächst ältere Variable.

                schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', async function () {
                  setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen"/*Vor 2 Tagen*/, getState("sourceanalytix.0.0_userdata__0__Energie__Stromverbrauch_Gesamt.currentYear.consumed.01_previousDay").val, true);
                  setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen"/*Vor 3 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_2_Tagen").val, true);
                  setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen"/*Vor 4 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_3_Tagen").val, true);
                  setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen"/*Vor 5 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_4_Tagen").val, true);
                  setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen"/*Vor 6 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_5_Tagen").val, true);
                  setState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_7_Tagen"/*Vor 7 Tagen*/, getState("0_userdata.0.Energie.Stromverbrauch__Gesamt.Vor_6_Tagen").val, true);
                });
                

                Gleiches mache ich jetzt noch für Wochen, Monate und Quartale und danach das ganze 7 mal für die Verschiedenen Verbräuche und Einspeisungen.

                Danke für die Hilfe,

                miwi

                B Offline
                B Offline
                Baerny
                schrieb am zuletzt editiert von
                #7

                @miwi Hallo miwi,

                klappt das Script bei dir einwandfrei bzw. zeigt die richtigen Werte an ? Bei mir kommt es immer mal wieder vor, dass er einen Tag verschluckt und nicht den Wert von z. B. vorgestern übernimmt.

                CCU 2 | Intel NUC mit Proxmox

                1 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                698

                Online

                32.6k

                Benutzer

                82.0k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe