Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Sonnenprogramm

    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

    Sonnenprogramm

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

      Es wird jede Minute ausgelöst, was bedeutet, dass jede Minute ein neuer Timer erzeugt wird. Das wird so nicht funktionieren.

      Die Bedingungen können jede Minute geprüft werden und als Ergebnis die virtuellen Datenpunkte "global.sonne-ort" gesetzt werden. Für jeden Ort sollte dann der Datenpunkt "global.sonne-ort" als Trigger dienen:

      493_blockly_hoch_runter_verz_gerung.jpg
      Jede Timer-Variable benötigt ihren eigenen Namen.

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

        Hi Paul,

        //UPDATE // Habe gerade gesehen das dein Vorschlag mit meinem identisch ist 🙂

        das hatte ich auch gemerkt 🙂 Glücklicher Weise habe ich ein schönes flot Diagramm gemacht und konnte mir die Einstellungen und deren Auswirkung live ansehen. Ich habe dann mal den Blocky code als Javascript code angesehen und in dem Code lesen können was da für ein Mist passiert. Dann habe ich umgedacht und das folgende gemacht:

        8270_screenshot_2018-08-22_javascript_-iobroker_1.png

        und das Ergebnis ist:
        8270_screenshot_2018-08-22_flot_chart.png

        Man kann an der gelben Linie sehen das es jetzt tatsächlich dauert wenn das Sonnenprogramm eingeschaltet wurde. Die gelbe Line 100% ist das Sonnenprogramm und die bis 80, 90 oder 30% ist die Markise. Ich habe dann zwischenzeitlich das Sonnenprogramm beendet und die Markise blieb draußen. Dann habe ich vor Ablauf von 15 Minuten beendet und die Markise blieb draußen. Dann habe ich beenden lassen und die Markise ist eingefahren. So klappt das m.E wunderbar.

        Und on top habe ich noch eingebaut das wenn man das Sonnenprogramm abschaltet alles einfährt …

        Also, es hat funktioniert. was sagst Du zu dieser Lösung ? Sie sieht anders aus als deine aber scheint zu funktionieren ... oder siehst Du da was negatives dran ?

        Viele Grüße,

        marc

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

          Du hast allerdings die STOP teile noch drin, ich nicht - was bewirkt das bei mir bzw. was würde es bewirken wenn ich die noch einsetze ?

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

            @meicker:

            was sagst Du zu dieser Lösung ? Sie sieht anders aus als deine aber scheint zu funktionieren … oder siehst Du da was negatives dran ? `
            Bau mal einen Debug-Block vor den steuere Block ein, dann wirst Du es sehen.

            @meicker:

            Du hast allerdings die STOP teile noch drin, ich nicht - was bewirkt das bei mir bzw. was würde es bewirken wenn ich die noch einsetze ? `
            stop timeout_balkon_runter bewirkt, dass der Timer timeout_balkon_runter sofort gestoppt wird, wenn während der Laufzeit des Timers die Sonne hinter einer Wolke verschwindet; die Rollos fahren also nicht runter. Kommt die Sonne wieder hervor (z.B. nach 2 Minuten), wird der Timer wieder gestartet. Die Sonne muss also während der Timerlaufzeit ununterbrochen scheinen, damit die Rollos runterfahren.

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

              > Die Sonne muss also während der Timerlaufzeit ununterbrochen scheinen, damit die Rollos runterfahren.

              Baue ich mal wieder mit ein - ist im wesentlichen was ich oben probiert hatte mit den gegensätzlichen Zuständen …

              Vielen Dank, mal wieder 🙂

              Gruß,

              Marc

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

                @meicker:

                siehst Du da was negatives dran ? `
                Schau mal, was passiert, wenn man einen Timer mit mehreren (5) Minuten jede Minute triggert.
                493_blockly_timer_minutentrigger.jpg

                erster Trigger: 20:35 Uhr

                erster Wert: 20:40 Uhr

                Bedingungs-Ende: 20:46:47

                letzter Wert: 20:51

                Und jede Minute wird an den Rollo-Aktor gesendet !

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

                  Das ist unnötig viel Traffic. ich habe das eben angepasst und bin Morgen mal auf das Monitoring gespannt 🙂 Vielen Dank nochmal für die viele Hilfe von Dir 🙂 So macht das Spaß 🙂

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

                    Hi Paul,

                    ich habe noch eine Ergänzung, aber jetzt stimmt es wirklich. Du hast wechselseitig die Timer abgeschaltet was bewirkt hat, dass die 15 Minuten nicht eingehalten wurden und die wilde fahrerei wieder angefangen hat. Ich schalte jetzt jeden Timer beim wechsel aus und lasse von vorne laufen, so kommt nichts durcheinander. ich glaube vorher war es so, dass die Timer durcheinander gekommen waren wenn die Sonne in kurzen Abständen verschwunden war bzw nur für kurze Zeit da war …

                    Zum testen habe ich die Markise gelassen, die fährt auf 90%

                    Die gelbe Linie bei 100% ist Sonne wahr

                    Die roten Linien bei 30% sind die Rolläden (umgestellt auf beide Timer abschalten)

                    Die Linie bei 50000 ist die Schaltgrenze und die balue der Lichtwert
                    8270_screenshot_2018-08-23_javascript_-_iobroker.png

                    und das ergibt:
                    8270_screenshot_2018-08-23_flot_edit.png

                    Die Rolläden bleiben oben und die Markise fährt (noch) - Speziell bei 13 Uhr kannst Du sehen wie die Markise kurz raus und dann direkt wieder eingefahren ist …

                    Viele Grüße,

                    Marc

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

                      Scheiße 🙂 Schon wieder ein Denkfehler ??? Ich werd bekloppt 🙂

                      8270_screenshot_2018-08-23_flot_edit_1_.png
                      8270_screenshot_2018-08-23_javascript_-_iobroker.png

                      Balkon Rolladen sind unten

                      Sonne ist da: Timer 1 RESET Timer 2 RESET Timer1 gestartet läuft in 15 Minuten und fährt raus -> Sind draußen, nix wird passieren

                      Sonne ist weg Timer 1 RESET Timer2 RESET Timer2 gestartet läuft in 15 Minuten und fährt rauf -> Sind draußen, werden in 15 Minuten eingefahren.

                      Aber genau das ist nicht passiert … warum ? Das hätte doch eigentlich nach 15 Minuten passieren müssen wenn der zweite Timer gestartet wurde. Es hat sich doch in der Zwischenzeit nichts mehr geändert ... oder ?

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

                        Ich glaube ich weiß warum 🙂 Die werden ja jede Minute neu gestartet … da kann sich nichts ändern :oops: :lol:

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

                          so ! Ich glaube ich habs 🙂

                          8270_screenshot_2018-08-23_javascript_-_iobroker.png
                          Zumindest sah ein erster Testlauf am Nachmittag nicht verkehrt aus:
                          8270_screenshot_2018-08-23_flot_edit.png

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

                            Läuft das, was wir sehen immer noch innerhalb des minütlichen Schedules ab ? Dann solltest Du es ändern, indem Du den Datenpunkt

                            "global.sonne-esszimmer" als Trigger für die Rollo-Steuerung im Esszimmer nimmst ! https://forum.iobroker.net/viewtopic.php?f=21&t=16313#p171521

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

                              Hi Paul,

                              die einzelnen Zustände werden ebenfalls über den minütlichen Trigger generiert. Hier das komplette Script:
                              8270_screenshot_2018-08-23_javascript_-iobroker_1.png
                              Wenn ich oben den Trigger ändere betrifft das alles.

                              Oder sollte ich einen neuen Trigger einfügen direkt im Anschluss an den Schedule und dort die Rolladensteuerung reinpacken … meinst Du das so ?

                              Und warum sollte ich das machen ? Auch wegen Traffic ? Würde sich denn da überhaupt was ändern, der Traffic wäre doch dann trotzdem vorhanden, nur nicht über das komplette Script.

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

                                @meicker:

                                Hier das komplette Script: `
                                Leider ist nichts zu erkennen. Kannst Du es mal als .JPG speichern und hochladen ?
                                @meicker:

                                Oder sollte ich einen neuen Trigger einfügen direkt im Anschluss an den Schedule und dort die Rolladensteuerung reinpacken … meinst Du das so ? `
                                Ja.

                                Dir ist klar, dass die Sachen außerhalb des Schedule nur <u>einmal</u> bei Skriptstart ausgeführt werden ?
                                @meicker:

                                Und warum sollte ich das machen ? Auch wegen Traffic ? `
                                Ja, auch. Außerdem hast Du 15 Timer auf einmal laufen. Ich habe Dir im Log gezeigt, was passiert, wenn man es so wie Du macht.
                                @meicker:

                                Würde sich denn da überhaupt was ändern, der Traffic wäre doch dann trotzdem vorhanden, nur nicht über das komplette Script. `
                                Ja. Der Teil, der jede Minute ausgeführt wird, ist kürzer und betrifft keine Timer und vor allem kein Senden an Geräte (steuere). Traffic erzeugt das Senden an Geräte !

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

                                  @paul53:

                                  Leider ist nichts zu erkennen. Kannst Du es mal als .JPG speichern und hochladen ? `
                                  Kalt erwischt 🙂 Ich mache das immer im Firefox mit Screenshot. Aber mit Bildschirmfoto wird es auch nicht besser, ich muss es ganz klein machen um es komplett auf den Schirm zu kriegen. Ich habe es jetzt etwas näher herangeholt. Oder gibt es einen anderen Weg ?
                                  8270_screenshot_2018-08-23_javascript_-iobroker_3.png

                                  @paul53:

                                  Dir ist klar, dass die Sachen außerhalb des Schedule nur einmal bei Skriptstart ausgeführt werden ? `
                                  Hätte mir klar sein sollen 🙂 Baue ich wo anders ein … Danke für den Hinweis 🙂

                                  @paul53:

                                  Ja, auch. Außerdem hast Du 15 Timer auf einmal laufen. Ich habe Dir im Log gezeigt, was passiert, wenn man es so wie Du macht. `
                                  Kann ich denn Timer einsparen ? Klar 🙂 Eigentlich gibt es keine Überschneidungen in der Steuerung. Aber falls es im Sonnenverlauf doch mal zu einer Überschneidung käme wenn ich etwas ändere, würde ich wenigstens 2 Timer verwenden müssen und abwechselnd einsetzen. Markise und Rolladen können sich einen teilen da sie sowieso zusammen liegen und gleichzeitig arbeiten. Dann würde ich einsparen können - Ich denke so könnte ich es machen, oder ?

                                  Und den zweiten Trigger setze ich dann später drunter wenn ich Ruhe habe. Erst mal Abendprogramm 🙂

                                  vg und evtl. bis später 🙂

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

                                    Das .JPG Bild ist etwas besser zu erkennen, wenn man es anklickt.
                                    @meicker:

                                    Kann ich denn Timer einsparen ? `
                                    Das hast Du falsch verstanden. Wenn in jeder Minute ein Timer gestartet wird, obwohl noch ein Timer (15 Minuten) läuft, wird ein weiterer Timer erzeugt. Innerhalb von 15 Minuten werden also 15 Timer gestartet. Jeder Timer beendet sich selbst erst nach der abgelaufenen Zeit.

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

                                      Ach das meinst Du … OK ! Ich lege die Timer in einen neuen Schedule der jeweils auf Balkon, Markise, Esszimmer und BadSZ hört.

                                      so:
                                      8270_screenshot_2018-08-23_javascript_-iobroker_4.png

                                      Und die Menge der Timer ist also nicht so schlimm ? Die könnte ich ja wie beschrieben auch noch reduzieren.

                                      Und jetzt mal noch ne ganz interessante Frage 🙂 Betrifft alle Scripts. Könnte ich eigentlich alle Scripts einfach untereinander packen und nur noch eines haben ? Oder ist es besser viele kleine zu haben ? Oder ist es gar nicht möglich ?

                                      vg

                                      Marc

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

                                        @meicker:

                                        Und die menge der Timer ist also nicht so schlimm ? Die könnte ich ja wie beschrieben auch noch reduzieren. `
                                        Das würde ich nicht machen, denn es kann vielleicht doch mal zu zeitlichen Überschneidungen kommen. Die Menge der Timer ist unkritisch.
                                        @meicker:

                                        Könnte ich eigentlich alle Scripts einfach untereinander packen und nur noch eines haben ? Oder ist es besser viele kleine zu haben ? Oder ist es gar nicht möglich ? `
                                        Man kann viele Funktionen in ein Skript packen oder einzelne Skripte erstellen. Ich bevorzuge wegen der Übersichtlichkeit mehrere kleine Skripte. Es ist letztlich Geschmacksache.

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

                                          OK - Dann lasse ich das so wie es ist. Oben habe ich das aufgeräumte Script in meinen vorherigen Post eingepflegt. Meinst Du so, richtig ?

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

                                            Ich würde es pro Ort etwa so machen, wenn ich in Blockly programmieren würde:
                                            493_blockly_rollo_balkon.jpg
                                            Es können auch alle Abfragen für die virtuellen Datenpunkte in des eine Schedule und die Trigger auf die Datenpunkte untereinander, wie Du es bereits gemacht hast.

                                            Die Abfrage des Datenpunktes "global.sonnenprogramm_aktiv" muss in das Schedule !

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            935
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            53
                                            3251
                                            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