Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Blockly] Lampe einschalten, wenn PC zwischen Sonnenuntergang und Sonnenaufgang eingeschaltet ist

    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] Lampe einschalten, wenn PC zwischen Sonnenuntergang und Sonnenaufgang eingeschaltet ist

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

      @Modjo:

      Wie importiere ich das? `
      Alles was "code" steht kopieren (strg+c)

      Und dann in Blockly in den Import-Dialog einfügen (strg+v)
      147_blocklyimport.png

      Grüße

      1 Reply Last reply Reply Quote 0
      • M
        mikiline last edited by

        @rantanplan:

        @mikiline Exports bitte auch in "spoiler" Tags setzen. Dann muss man nicht jedesmal Seitenweise scrollen.

        Also erst "spoiler" und dann "code" klicken.

        Den Export dann dazwischen einfügen.

        Grüße `

        Ja. Hast recht

        Erledigt 😉

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

          @Modjo:

          // Scriptstart
          nacht = compareTime(getAstroDate("sunriseEnd", undefined, 0), getAstroDate("sunsetStart", undefined, 0), "between", null);
          ```` `  
          

          Wieso zeigt der Script code "between" und Blockly "nicht zwischen" ? Im Script code muss es "not between" sein.

          1 Reply Last reply Reply Quote 0
          • M
            Modjo last edited by

            @rantanplan:

            @Modjo:

            Wie importiere ich das? `
            Alles was "code" steht kopieren (strg+c)

            Und dann in Blockly in den Import-Dialog einfügen (strg+v)

            BlocklyImport.PNG

            Grüße `

            Vielen Dank, hat geklappt 🙂

            Das mit dem Abfragen alle 30 Minuten finde ich nicht so glücklich.

            @paul53:

            @Modjo:

            // Scriptstart
            nacht = compareTime(getAstroDate("sunriseEnd", undefined, 0), getAstroDate("sunsetStart", undefined, 0), "between", null);
            ```` `  
            

            Wieso zeigt der Script code "between" und Blockly "nicht zwischen" ? Im Script code muss es "not between" sein. `

            Ja, da hatte ich ein wenig rumgespielt, um die Funktionalität zu testen… sorry 🙂

            Also das Script funktioniert ansich, ich muss es aber immer deaktivieren und aktivieren, dann schaltet er an und aus, wenn die Parameter (Zeitfenster, PC-Ping) stimmen. Das kann aber nicht die Lösung sein. Es funktioniert also nicht aktomatisch, wenn das Script immer gestartet ist...
            4811_unbenannt.jpg

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

              Hi,

              dein Blockly ist so nur noch durcheinander. Wundert mich, dass überrhaupt was passiert beim Scriptstart. Bin erstmal unterwegs, schreibe später was dazu sofern niemand schneller ist.

              Gruß

              Matze

              1 Reply Last reply Reply Quote 0
              • M
                mikiline last edited by

                Ich habe ansich nichts gegen Beratungsresistenz…...aber.....wieso machst Du nicht das Skript in eine einzige Bedingung rein?

                Deine Abfrage "Nacht" läuft auch nur einmal durch wenn du das Skript startest! Wieso sollte es immer laufen?

                Du hast keinen Cronjob hinterlegt und deshalb geht das auch nicht.

                Was gefällt dir an meinem Vorschlag nicht? Wieso sieht dein Blockly immer noch so aus?

                Das ist ein "Spaghetti-Code".... (nennt man so, da unnötig lang)

                ich denke wir haben dir alle Infos zukommen lassen und Beispiele gegeben mit Code.....

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

                  Dein @Modjo:

                  ich muss es aber immer deaktivieren und aktivieren, dann schaltet er an und aus, wenn die Parameter (Zeitfenster, PC-Ping) stimmen. Das kann aber nicht die Lösung sein. Es funktioniert also nicht aktomatisch, wenn das Script immer gestartet ist… `
                  Das ist auch kein Wunder, da die Funktion buero_kugel() 4 mal bei Skriptstart aufgerufen wird aber nicht innerhalb der Trigger, so wie es in http://forum.iobroker.net/viewtopic.php?f=21&t=10807&start=20#p118246 zu sehen ist.

                  1 Reply Last reply Reply Quote 0
                  • M
                    mikiline last edited by

                    @paul53:

                    Das ist auch kein Wunder, da die Funktion buero_kugel() 4 mal bei Skriptstart aufgerufen wird aber nicht innerhalb der Trigger, so wie es in `

                    Das man überhaupt ein Blockly so kompliziert darstellen kann wundert mich :roll: Für das was er vor hat reichen 4 Zeilen!

                    Die Funktion "buero_kugel" braucht es dabei gar nicht…

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

                      Ich glaube, je länger hier diskutiert wird desto komplizierter wird das Blockly :lol:

                      Ich setzte nochmal ganz vorne an. Ich habe bei mir einen Datenpunkt Astro_Nacht, der durch ein Script gesetzt wird und in weiteren Scripten genau für solche Zwecke verwurstet wird. Leg dir den mal meinetwegen unter JavaScript.0 an. Dazu das Blockly:

                      3514_blockly.png

                      Den Sayit-Teil kannst du dabei gerrne weglassen. Ob Sonnenunter / aufgang oder lieber andere Astrowerte passen musst du ausprobieren.

                      Danach zu deinem Vorrhaben:

                      3514_blockly2.png

                      Im falls fehlt noch der Wert deines PC-Ping. bei mache und sonst der Wert der Lampe.

                      Matze

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

                        @Matzebhv:

                        desto komplizierter wird das Blockly `
                        Es brauchen nur die 3 Funktionsaufrufe buero_kugel, die jetzt unterhalb der Triggerfunktion angeordnet sind, in die Triggerfunktion hinter das Setzen der zugehörigen Skriptvariablen verschoben werden, damit es funktioniert.

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

                          @paul53:

                          @Matzebhv:

                          desto komplizierter wird das Blockly Es brauchen nur die 3 Funktionsaufrufe __buero_kugel__, die jetzt unterhalb der Triggerfunktion angeordnet sind, in die Triggerfunktion hinter das Setzen der zugehörigen Skriptvariablen verschoben werden, damit es funktioniert.

                          Hi,

                          da ich bei deinen Beiträgen fast immer mit den Ohren schlacker bin ich mir sicher, dass das funktioniert hätte. Ich finde nur diese einfache Aufgabe so maximal komplex umgesetzt. Damit dürfte ein Anfänger hoffnungslos überfordert sein. Wollte damit nix gegen deine Scriptkünste sagen.

                          Gruß

                          Matze

                          1 Reply Last reply Reply Quote 0
                          • M
                            Modjo last edited by

                            @paul53:

                            @Matzebhv:

                            desto komplizierter wird das Blockly Es brauchen nur die 3 Funktionsaufrufe __buero_kugel__, die jetzt unterhalb der Triggerfunktion angeordnet sind, in die Triggerfunktion hinter das Setzen der zugehörigen Skriptvariablen verschoben werden, damit es funktioniert.

                            Hallo Paul,

                            vielen Dank für den Hinweis, das hatte ich echt falsch. Wenn ich es berichtige funktioniert es. Nur habe ich hier ein Problem:

                            Hier wird nur auf das Objekt PC getriggert… Was ist aber, wenn ich die Nacht über den PC anhabe und die Nacht (Astrozeit) vorüber ist. Dann bleibt das Licht trotzdem so lange an, bis ich den PC herunterfahre und der Wert damit auf false springt.

                            @mikiline: Vielen Dank für deine Hilfe! Ich habe mir das angesehen, glaube aber dass das schwierig für mich wird, da du ja feste Zeiten definierst und keine "Astrozeiten". Deshalb tue ich mich damit schwer das nach deinem Schema hinzubekommen.

                            Und weil ich mich damit zu doof angestellt habe, hatte ich zunächst das "alte" Script wieder fokussiert.

                            Ich muss mir jetzt nochmal die vielen Lösungsansätze ansehen. Ich bin gerade sehr verwirrt. Ich merke schon, dass viele Wege nach Rom führen, aber ich muss halt alle noch einmal ansehen und versuchen sie zu verstehen 😄

                            Ich bin euch auf jedenfall ALLEN für die Hilfe und Unterstützung sehr dankbar.

                            VG

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

                              @Modjo:

                              Was ist aber, wenn ich die Nacht über den PC anhabe und die Nacht (Astrozeit) vorüber ist. Dann bleibt das Licht trotzdem so lange an, bis ich den PC herunterfahre `
                              Nein, der Trigger zum Sonnenaufgang-Ende setzt nacht = false und ruft anschließend die Funktion buero_kugel() auf, die das Licht ausschaltet.

                              493_ping_nachts.jpg

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

                                @Modjo:

                                [Was ist aber, wenn ich die Nacht über den PC anhabe und die Nacht (Astrozeit) vorüber ist. Dann bleibt das Licht trotzdem so lange an, bis ich den PC herunterfahre und der Wert damit auf false springt. `

                                Deswegen mein Beispiel. Damit umgehst du das alles und kannst außerdem den Datenpunkt Astro_Nacht noch in weiteren Scripten mit ähnlicher Aufgabenstellung verwenden.

                                Matze

                                1 Reply Last reply Reply Quote 0
                                • M
                                  Modjo last edited by

                                  So ich habe mir noch einmal in Ruhe 3 Lösungen angesehen.

                                  1. paul53

                                  2. mikiline

                                  3. Matzebhv

                                  In der Zwischenzeit habe ich alle verstanden, wobei ich die Ausführung von Matzebhv eim einfachsten (als Noob) umzusetzen konnte (inkl. der 2 Trigger von mikiline), was ich auch in 2 Wochen noch verstehe 😄

                                  Also habe ich den derzeitigen Stand wie folgt:

                                  1. Ich habe ein Objekt erstellt "Astro_Nacht", welches "true" oder "false" sein kann. (Astro_Nacht_Objekt.JPG)

                                  2. Ein Script erstellt, welches das Objekt "Astro_Nacht" auf "true" oder "false" setzt, je nach Zustand Sonnenuntergang-Anfang & Sonnenaufgang-Ende. (Astro_Nacht_Script.JPG)

                                  3. Ein Script erstellt, welches das Objekt "PC" und "Astro_Nacht" antriggert und dann die Lampe schaltet. (PC Licht.JPG)

                                  Ich werde das jetzt mal durchtesten und Rückmeldung geben.

                                  Ich bedanke mich noch einmal für den tollen Support!

                                  VG

                                  Modjo
                                  4811_astro_nacht_objekt.jpg
                                  4811_astro_nacht_script.jpg
                                  4811_pc_licht.jpg

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mikiline last edited by

                                    Tip Top ! Jetzt sieht es doch viel besser aus 😉 und vor allem übersichtlich

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

                                      @mikiline:

                                      vor allem übersichtlich `
                                      Es fehlt ja auch die Auswertung bei Skriptstart.

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        Modjo last edited by

                                        @paul53:

                                        @mikiline:

                                        vor allem übersichtlich Es fehlt ja auch die Auswertung bei Skriptstart.
                                        Hallo paul53,

                                        welche Auswertung fehlt? Kann dem gerade nicht ganz folgen.

                                        Vielen Damk & Gruß

                                        Modjo

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

                                          Diese Skripte reagieren nur auf Ereignisse (SA, SU, ping ein/aus). Sollte der Pi mal runtergefahren werden (z.B. um dis SD Card zu kopieren) und dann wieder hochgefahren werden, wobei der PC läuft und in der Zwischenzeit die Sonne untergegangen ist, schaltet beim Hochfahren (Skriptstart) die Büro-Kugel nicht ein, denn das Ereignis "Sonnenuntergang" wurde verpasst.

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            radierer last edited by

                                            Nabend,

                                            ich glaube wenn man die Objektwerte aus Matzes Skript verwendet, kann man auch ohne große Umwege die Zeit zwischen Sonnenuntergang und Sonnenaufgang verwenden.

                                            @Matzebhv:

                                            Mit diesem Script kannst du dir die Astrodaten für den Tag anzeigen lassen.

                                            ! // Astrozeiten für heute - V1.0 ! log("====================="); log("Astro Werte für heute"); log("====================="); //----------------------------------------------------------------- Werte vom 3.12.2015 var nightEnd = getAstroDate("nightEnd"); log(" (0) nightEnd (Ende der Nacht)........................: " + nightEnd.toLocaleTimeString());      // 05:37 var nauticalDawn = getAstroDate("nauticalDawn"); log(" (1) nauticalDawn (naut. Dämmerung Morgens)...........: " + nauticalDawn.toLocaleTimeString());  // 06:13 var dawn = getAstroDate("dawn"); log(" (2) dawn (Dämmerung Morgens).........................: " + dawn.toLocaleTimeString());          // 06:52 var sunrise = getAstroDate("sunrise"); log(" (3) sunrise (Sonnenaufgang)..........................: " + sunrise.toLocaleTimeString());       // 07:26 var sunriseEnd = getAstroDate("sunriseEnd"); log(" (4) sunriseEnd (Ende des Sonnenaufgangs).............: " + sunriseEnd.toLocaleTimeString());    // 07:26 var goldenHourEnd = getAstroDate("goldenHourEnd"); log(" (5) goldenHourEnd (Ende der Golden Hour VM)..........: " + goldenHourEnd.toLocaleTimeString()); // 08:17 var solarNoon = getAstroDate("solarNoon"); log(" (6) solarNoon (Mittag)...............................: " + solarNoon.toLocaleTimeString());     // 11:49 var goldenHour = getAstroDate("goldenHour"); log(" (7) goldenHour (Start der Golden Hour NM)............: " + goldenHour.toLocaleTimeString());    // 15:22 var sunsetStart = getAstroDate("sunsetStart"); log(" (8) sunsetStart (Start des Sonnenuntergangs).........: " + sunsetStart.toLocaleTimeString());   // 16:08 var sunset = getAstroDate("sunset"); log(" (9) sunset (Sonnenuntergang).........................: " + sunset.toLocaleTimeString());        // 16:12 var dusk = getAstroDate("dusk"); log("(10) dusk (Dämmerung Abends)..........................: " + dusk.toLocaleTimeString());          // 16:47 var nauticalDusk = getAstroDate("nauticalDusk"); log("(11) nauticalDusk (naut. Dämmerung Abends)............: " + nauticalDusk.toLocaleTimeString());  // 17:25 var night = getAstroDate("night"); log("(12) night (Start der Nacht)..........................: " + night.toLocaleTimeString());         // 18:02 var nadir = getAstroDate("nadir"); log("(13) nadir (Mitternacht)..............................: " + nadir.toLocaleTimeString());         // 23:49 log("====================="); var today = new Date(); var tomorrow = today.setDate(today.getDate()+1); var tomorrowNight = getAstroDate("night", tomorrow); log("Night starts tomorrow at " + tomorrowNight.toLocaleTimeString()); `

                                            Hab das gerade mal getestet und es wird "true" ausgegeben. Daher sollte es so gehen. Evtl. hilfts ja dem einen oder anderen.

                                            9657_screenshot_20190116-193616_chrome.jpg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            691
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            73
                                            5105
                                            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