Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Blockly] Schalten zwischen Sonnenunter- und -aufgang mit zusätzlicher Bedingung

    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

    [Blockly] Schalten zwischen Sonnenunter- und -aufgang mit zusätzlicher Bedingung

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

      Hallo zusammen,

      ich bin gerade dabei mich in ioBroker einzuarbeiten und baue so langsam meine Programme von der CCU2 in ioBroker nach.

      Bei dem folgenden Programm aber stoße ich aktuell noch an meine Grenzen und bekomme es einfach nicht ans Laufen:

      Zwischen Sonnenuntergang und Sonnenaufgang soll sobald sich eine gewissen Türe öffnet und das Deckenlicht angehen, aber eben auch nur dann, wenn eine andere Lampe im Raum nicht leuchtet.

      on({id: getState("hm-rpc.1.OEQ0392593.1.STATE").val == true, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (compareTime(getAstroDate("sunrise", undefined, 0), getAstroDate("sunset", undefined, 0), "between", null) && getState("lightify.0.C2DF060000261884.on").val == true) {
          setState("hm-rpc.1.LEQ0074667.1.STATE"/*Licht Ankleide.STATE*/, true);
        }
      });
      
      

      Gebaut habe das mit Blockly und zum testen die Bedingung für den Zeitraum zwischen Sonnenauf- und -untergang gesetzt. Wenn es läuft soll das Programm aber nachts zwischen Sonnenunter- und aufgang laufen.

      Vielleicht könnt ihr mir helfen?

      Danke im Voraus.

      echicor
      5188_licht_ankleide.png

      1 Reply Last reply Reply Quote 0
      • ?
        A Former User last edited by

        Ich beherrsche JavaScript noch nicht gut genug dir ein fertiges

        Script zu präsentieren aber dein Blocky ist Käse.

        Das Blocky muss so aufgebaut sein:

        Falls Objekt ID „Tür“ wurde geändert:

        Falls Wert von Objekt ID Tür = true

        und Wert von Objekt ID andere Lampe = false

        und aktuelle Zeit zwischen Sonnenuntergang / Aufgang:

        Schalte andere Lampe an.

        Ich hoffe das ist verständlich.

        Gruß

        Udo

        1 Reply Last reply Reply Quote 0
        • R
          RappiRN Most Active last edited by

          Wenn du auch gern ein Blockly zum Probieren haben möchtest, schreib mal bitte in den Betreff noch Blockly rein.

          Um dir leichter helfen zu können, wäre noch ein Blockly-Export hilfreich. Das kannst du in den Scripten oben rechts machen, da ist ein Pfeil für Export und ein Pfeil für Import, damit du unsere Beispiele auch wieder ausprobieren kannst!

          Enrico

          1 Reply Last reply Reply Quote 0
          • rantanplan
            rantanplan last edited by

            @udo83:

            Ich beherrsche JavaScript noch nicht gut genug dir ein fertiges

            Script zu präsentieren aber dein Blocky ist Käse. `
            [/OT ON]

            Diese Ausdrucksweise lese ich in diesem Forum sehr, sehr, sehr…....selten.

            Und ich hoffe das bleibt so!!!!!!

            [/OT OFF]

            1 Reply Last reply Reply Quote 0
            • BBTown
              BBTown last edited by

              @echicor:

              Wenn es läuft soll das Programm aber nachts zwischen Sonnenunter- und aufgang laufen. ` Also zunächst einmal finde ich dass dein Blockly sehr sinnvoll ausschaut (zumindestens wenn dein zu prüfendes Licht tatsächlich "on" heißt) 😉 8-)

              Ich nehme an, dass Du in die Falle mit dem Tageswechsel läufst.

              Wenn ich das hier im Forum richtig verstanden habe, dann sind Timerfunktionen nur innerhalb eines Tages möglich.

              Du benötigst daher wahrscheinlich 2 Scripte:

              1. mit der Zeit von Sonnenuntergang bis 23:59h

              2. mit der Zeit 00:00h (oder ggf. 00:01h) bis Sonnenaufgang

              1 Reply Last reply Reply Quote 0
              • A
                andyb last edited by

                Einfach umdrehen:

                Aktuelle Zeit ist NICHT zwischen Sonnenaufgang und Sonnenuntergang.

                1 Reply Last reply Reply Quote 0
                • ?
                  A Former User last edited by

                  @rantanplan:

                  [

                  [/OT ON]

                  Diese Ausdrucksweise lese ich in diesem Forum sehr, sehr, sehr…....selten.

                  Und ich hoffe das bleibt so!!!!!!

                  [/OT OFF] `

                  Was ist daran falsch?

                  (von der Rechtschreibung mal abgesehen)

                  Sorry falls sich jemand auf den Schlips getreten fühlt.

                  War nicht böse gemeint.

                  Ich bin der Meinung der Trigger "Falls Wert von xyz = Wahr wurde geändert" macht keinen Sinn.

                  Es sollte doch "falls Wert xyz wurde geändert und falls Wert von xyz = wahr" heißen?

                  1 Reply Last reply Reply Quote 0
                  • rantanplan
                    rantanplan last edited by

                    @echicor:

                    Vielleicht könnt ihr mir helfen? `

                    Hallo echicor

                    Man kann keine Abfrage/Bedingung triggern.

                    Da kommt nur der zu überwachende Datenpunkt hin.

                    Den Status kannst Du dann innerhalb des Triggers auswerten oder Du lässt den Trigger nur auf einen

                    bestimmten Zustand reagieren.

                    Ändern von "wurde geändert" auf "ist wahr"

                    Grüße

                    1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User last edited by

                      sag ich doch. 🙂

                      1 Reply Last reply Reply Quote 0
                      • BBTown
                        BBTown last edited by

                        @rantanplan:

                        Man kann keine Abfrage/Bedingung triggern.

                        Da kommt nur der zu überwachende Datenpunkt hin. ` Du hast wahr, darüber bin ich nicht gestolpert 8-)

                        1 Reply Last reply Reply Quote 0
                        • modmax
                          modmax last edited by

                          Was Du willst ist wahrscheinlich sowas hier:

                          3374_example.png

                          Der Trigger ist dabei auf die Objekt-ID (hier eben dein Objekt), dann auf "wahr" prüfen.

                          Also wenn dein Objekt auf "wahr" umgeschaltet wird.

                          In dem Falls kommt dann die Bedigung rein mit UND verknüft.

                          Also Astreiteiz NICHt zwischen Sonnenaufgang und Untergang UND dann mch dein Licht.

                          Dann sollte das klappen.

                          1 Reply Last reply Reply Quote 0
                          • E
                            echicor last edited by

                            Danke zunächst für die Impulse.

                            ich habe es jetzt so gelöst wie es in der angehängten Grafik zu sehen ist. Testen kann ich es leider erst in den kommenden 2 Tagen wenn ich wieder daheim bin. Aber Ihr könnt gerne Eure Einschätzung abgeben ob es funktionieren sollte…..
                            5188_2018-01-17_14_56_47-iobroker.admin.png

                            1 Reply Last reply Reply Quote 0
                            • rantanplan
                              rantanplan last edited by

                              Wofür ist denn die "sonst falls" Bedingung gut?

                              1 Reply Last reply Reply Quote 0
                              • E
                                echicor last edited by

                                @rantanplan:

                                Wofür ist denn die "sonst falls" Bedingung gut? `

                                Ich will, dass die Deckenlampe nachts nur angeht bei öffnen der Tür, wenn die Lightfy-Lampe am Sideboard aus ist. Leuchtet die, soll die Deckenlampe aus bleiben.

                                1 Reply Last reply Reply Quote 0
                                • R
                                  RappiRN Most Active last edited by

                                  So steht das aber nicht im Blockly, mit dem sonst falls hebst du ja die obere Bedingung auf! 🙂

                                  Enrico

                                  1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 last edited by

                                    @echicor:

                                    die Deckenlampe nachts nur angeht bei öffnen der Tür, wenn die Lightfy-Lampe am Sideboard aus ist. Leuchtet die, soll die Deckenlampe aus bleiben. `
                                    Unter welcher Bedingung soll die Deckenlampe wieder ausschalten ?

                                    Das reine Einschalten unter den Bedingungen ist per Javascript recht einfach (Blockly liefert nicht alle Funktionen):

                                    const idTuer = "hm-rpc.1.OEQ0392593.1.STATE";
                                    const idSideboard = "lightify.0.C2DF060000261884.on";
                                    const idDecke = "hm-rpc.1.LEQ0074667.1.STATE"/*Licht Ankleide.STATE*/;
                                    
                                    var sideboard = getState(idSideboard).val;  // Initialisierung bei Skriptstart
                                    
                                    on({id: idTuer, val: true, change: "ne"}, function () {  // Tür öffnet
                                       if(!isAstroDay() && !sideboard) setState(idDecke, true);
                                    });
                                    
                                    on(idSideboard, function(dp) {  // Aktualisierung bei Wertänderung
                                       sideboard = dp.state.val;
                                    });
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 last edited by

                                      Es geht auch in Blockly, wenn man !isAstroDay() durch compareTime('sunset', 'sunrise', 'between') ersetzt.

                                      493_blockly_echicor.jpg

                                      1 Reply Last reply Reply Quote 0
                                      • E
                                        echicor last edited by

                                        Ich hole mal etwas weiter aus:

                                        Wir haben 2 Lampen auf den Sideboards in dem entsprechenden Zimmer. Diese werden bei Aktivierung des Nachtverschlusses des Hauses eingeschaltet. Wenn wir dann noch kurz in das Zimmer gehen soll die Deckenlampe wegen der eingeschalteten Lampen auf dem Sideboard nicht angehen. Gehen wir jedoch zum Beispiel morgens nach dem Aufstehen in das Zimmer sind die Lampen auf den Sideboards aus und da soll dann eben die Deckenlampe angehen. Ausgeschaltet wird die Deckenlampe in jedem Fall manuell am Schalter an der Wand bei verlassen der Tür, bzw. über den eingebauten Timer im Aktor nach spätestens 30 Minuten.

                                        Ich versuche erstmal eine Vorschläge umzusetzen und zu testen und melde mich dann hier noch mal…hoffe ich bekomme das hin 😉

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        908
                                        Online

                                        31.9k
                                        Users

                                        80.1k
                                        Topics

                                        1.3m
                                        Posts

                                        8
                                        18
                                        4028
                                        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