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. Ausgabe der Ergebnisse zweier Skripte

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Ausgabe der Ergebnisse zweier Skripte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
18 Beiträge 3 Kommentatoren 937 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.
  • CodierknechtC Codierknecht

    @stefan341
    Schreib Dir den passenden Wert in einen eigenen DP. Dann kannst Du das visualisieren.

    e5139a34-c8b4-4e08-a227-1707e0c24bc3-grafik.png
    BTW: 10 Minuten vor Sonnenuntergang wäre ein Versatz von -10

    Edit
    Wenn man schon dabei ist, kann man in dem Script auch gleich das Fahren der Rollläden steuern.

    af9ec78c-fabc-482a-9746-26b47f5d44ad-grafik.png

    S Offline
    S Offline
    Stefan341
    schrieb am zuletzt editiert von
    #3

    @codierknecht said in Ausgabe der Ergebnisse zweier Skripte:

    Danke. Das seltsame ist ja, wenn du das Blockly da so hinschreibst, sieht das immer voll einfach aus. Nur selber komme ich nicht darauf. Aber zumindest verstehe ich was da steht :)

    Eine Anmerkung habe ich noch, eigentlich ist es eine kleine "Schönheitssache": Ich würde ungerne in zwei Skripten die feste Uhrzeit von 21:00Uhr angeben. Der Grund ist, wenn ich irgendwann, aus welchem Grund auch immer feststelle das ich diese Zeit ändern möchte, habe sei Skripte in denen ich es ändern muss bzw erstmal suchen muss. Kann man das nicht irgendwie übernehmen lassen?

    CodierknechtC 1 Antwort Letzte Antwort
    0
    • S Stefan341

      @codierknecht said in Ausgabe der Ergebnisse zweier Skripte:

      Danke. Das seltsame ist ja, wenn du das Blockly da so hinschreibst, sieht das immer voll einfach aus. Nur selber komme ich nicht darauf. Aber zumindest verstehe ich was da steht :)

      Eine Anmerkung habe ich noch, eigentlich ist es eine kleine "Schönheitssache": Ich würde ungerne in zwei Skripten die feste Uhrzeit von 21:00Uhr angeben. Der Grund ist, wenn ich irgendwann, aus welchem Grund auch immer feststelle das ich diese Zeit ändern möchte, habe sei Skripte in denen ich es ändern muss bzw erstmal suchen muss. Kann man das nicht irgendwie übernehmen lassen?

      CodierknechtC Offline
      CodierknechtC Offline
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von Codierknecht
      #4

      @stefan341 sagte in Ausgabe der Ergebnisse zweier Skripte:

      Kann man das nicht irgendwie übernehmen lassen?

      Klar!
      Kann man ja in einem eigenen DP vorhalten.

      3a07eb40-16e2-475e-a826-52a0ead222a6-grafik.png

      b7ca519c-f492-4810-9aaa-72f0170082d0-grafik.png

      Ich würde ungerne in zwei Skripten die feste Uhrzeit von 21:00Uhr angeben

      Warum zwei? Das kann man doch auch alles in ein einziges Script packen.

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      S 1 Antwort Letzte Antwort
      0
      • CodierknechtC Codierknecht

        @stefan341 sagte in Ausgabe der Ergebnisse zweier Skripte:

        Kann man das nicht irgendwie übernehmen lassen?

        Klar!
        Kann man ja in einem eigenen DP vorhalten.

        3a07eb40-16e2-475e-a826-52a0ead222a6-grafik.png

        b7ca519c-f492-4810-9aaa-72f0170082d0-grafik.png

        Ich würde ungerne in zwei Skripten die feste Uhrzeit von 21:00Uhr angeben

        Warum zwei? Das kann man doch auch alles in ein einziges Script packen.

        S Offline
        S Offline
        Stefan341
        schrieb am zuletzt editiert von
        #5

        @codierknecht

        Ja, der DP ist eine gute Idee. Aber kann ich nicht in einem Script eine zentrale Stelle haben wo ich diese Uhrzeit einmal festlege und sowohl der erste Trigger in diesem Script
        Bildschirmfoto 2024-10-03 um 20.54.53.png
        als auch dein Script holt sich die Zeit aus dem DP?

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • S Stefan341

          @codierknecht

          Ja, der DP ist eine gute Idee. Aber kann ich nicht in einem Script eine zentrale Stelle haben wo ich diese Uhrzeit einmal festlege und sowohl der erste Trigger in diesem Script
          Bildschirmfoto 2024-10-03 um 20.54.53.png
          als auch dein Script holt sich die Zeit aus dem DP?

          CodierknechtC Offline
          CodierknechtC Offline
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #6

          @stefan341 sagte in Ausgabe der Ergebnisse zweier Skripte:

          Aber kann ich nicht in einem Script eine zentrale Stelle haben

          Das geht - theoretisch - mit einem globalen Script.
          Sowas hat aber einige Nachteile:
          Der Code eines globalen Scripts wird in alle anderen Scripte "reinkopiert". Sieht man nicht, ist aber so. Das heißt dann aber auch: Damit eine dort gemachte Änderung auch wirkt, muss die komplette Instanz neu gestartet werden.

          Für eine Variable würde ich das auf gar keinen Fall machen. Da ist ein DP deutlich flexibler und genau für sowas sind die ja auch gedacht.

          der erste Trigger in diesem Script ... als auch dein Script

          Ich würde beide Scripte zu einem zusammenführen. Ist ja eh alles für den gleichen Zweck gedacht.
          Die komplette Rollladensteuerung des Hauses liegt bei mir in einem einzigen Script. Da hat man dann schön alles zusammen.

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          S 1 Antwort Letzte Antwort
          0
          • CodierknechtC Codierknecht

            @stefan341 sagte in Ausgabe der Ergebnisse zweier Skripte:

            Aber kann ich nicht in einem Script eine zentrale Stelle haben

            Das geht - theoretisch - mit einem globalen Script.
            Sowas hat aber einige Nachteile:
            Der Code eines globalen Scripts wird in alle anderen Scripte "reinkopiert". Sieht man nicht, ist aber so. Das heißt dann aber auch: Damit eine dort gemachte Änderung auch wirkt, muss die komplette Instanz neu gestartet werden.

            Für eine Variable würde ich das auf gar keinen Fall machen. Da ist ein DP deutlich flexibler und genau für sowas sind die ja auch gedacht.

            der erste Trigger in diesem Script ... als auch dein Script

            Ich würde beide Scripte zu einem zusammenführen. Ist ja eh alles für den gleichen Zweck gedacht.
            Die komplette Rollladensteuerung des Hauses liegt bei mir in einem einzigen Script. Da hat man dann schön alles zusammen.

            S Offline
            S Offline
            Stefan341
            schrieb am zuletzt editiert von Stefan341
            #7

            @codierknecht
            Ok, dann machen wir es nicht unnötig kompliziert.

            Ich habe jetzt versucht mich an die Zeitausgabe wann die Rollos hochfahren zu machen.
            Auch hier wird wieder auf zwei DP getriggert. Wenn einer davon auf 1 geht, gehen die Rollos hoch.
            Der Erste DP ist wieder eine Astro-Zeit, nämlich der Sonnenaufgang. Damit komme ich jetzt klar.
            Der zweite DP ist eine feste Zeit, die aber abhängig davon ist, ob an dem Tag schulfrei (Ferien, Feiertage) ist und ob wir Wochenende haben oder nicht. Das Script dazu sieht so aus
            Bildschirmfoto 2024-10-03 um 22.54.13.png

            Könntest Du mir da nochmal weiterhelfen um da eine Zeit rauszubekommen, abhängig von schulfrei oder nicht und Werktag oder Wochenende?

            CodierknechtC 1 Antwort Letzte Antwort
            0
            • S Stefan341

              @codierknecht
              Ok, dann machen wir es nicht unnötig kompliziert.

              Ich habe jetzt versucht mich an die Zeitausgabe wann die Rollos hochfahren zu machen.
              Auch hier wird wieder auf zwei DP getriggert. Wenn einer davon auf 1 geht, gehen die Rollos hoch.
              Der Erste DP ist wieder eine Astro-Zeit, nämlich der Sonnenaufgang. Damit komme ich jetzt klar.
              Der zweite DP ist eine feste Zeit, die aber abhängig davon ist, ob an dem Tag schulfrei (Ferien, Feiertage) ist und ob wir Wochenende haben oder nicht. Das Script dazu sieht so aus
              Bildschirmfoto 2024-10-03 um 22.54.13.png

              Könntest Du mir da nochmal weiterhelfen um da eine Zeit rauszubekommen, abhängig von schulfrei oder nicht und Werktag oder Wochenende?

              CodierknechtC Offline
              CodierknechtC Offline
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von Codierknecht
              #8

              @stefan341
              In meiner ersten Antwort findest Du "Zeitplan aus Zeit-Zustand".
              Damit wird ein Zeitplan an einen DP gebunden.
              Dieser DP wird im ersten Zeitplan nachts jeweils neu berechnet.

              Das Ganze würde ich als Basis nehmen. Also den Zeitpunkt für das Hochfahren ebenfalls nachts neu berechnen lassen. Das kann im gleichen Block erledigt werden.

              Man kann ja problemlos ermitteln, ob heute Wochenende oder schulfrei ist. Dann wird die Zeit auf X gesetzt. Anderenfalls auf Y. Die ermittelte Zeit schreibt man in einen DP rollladen_rauf und hängt einen weiteren "Zeitplan aus Zeit-Zustand" daran, der für das Hochfahren zuständig ist.

              Also im Prinzip so:
              7c18e6b6-732c-4ba0-a1e0-c6d3a51a0f7d-grafik.png
              Wie Du die Zeit berechnest, kommt sehr auf Deine Gegebenheiten an.

              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
              HmIP|ZigBee|Tasmota|Unifi
              Zabbix Certified Specialist
              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

              1 Antwort Letzte Antwort
              0
              • S Stefan341

                Hallo,
                ich habe jetzt etwas hin und her probiert aber komme nicht wirklich auf eine Lösung.

                Ziel ist es: Ich möchte die Zeit wo meine Rollos runter gehen in der Vis ausgeben.

                Die Zeit wo sie runter gehen ist von zwei Skripten abhängig - und da ist das Problem

                Script 1:
                Bildschirmfoto 2024-10-03 um 20.54.05.png

                10 Minuten nach Sonnenuntergang wird der DB auf 1 geschaltet.

                Script 2:
                Bildschirmfoto 2024-10-03 um 20.54.53.png
                Im Sommer, wenn es spät dunkel wird, möchte ich nicht auf den Sonnenuntergang warten, sondern spätestens um 21:00Uhr die Rollläden schließen.

                Mein Problem ist jetzt folgendes: Ich stelle mir das wie folgt vor (bitte korrigiert mich wenn ich einen Gedankenfehler habe). Es muss quasi verglichen werden, welche Zeit zuerst eintritt (10 min vor Sonnenuntergang oder 21:00Uhr) Dann muss der Wert bzw. die Zeit, in einen DP geschrieben werden, damit ich ihn in der VIS ausgeben kann.
                Das schwierige, und das ist auch das, wo ich keinen Plan habe wie ich das realisieren soll: Diese Berechnung muss quasi für die Zukunft erfolgen, nämlich immer wenn ein neuer Tag anbricht. Das heißt, es muss quasi jede Nacht um 0:01Uhr berechnet werden, wann ist an dem Tag Sonnenuntergang und dieser Wert muss mit dem anderen Wert (der fest eingestellte Wert von 21:00Uhr) verglichen werden. Die Zeit die Zuerst eintritt, soll dann in einen DP geschrieben werden, den ich dann in der VIS ausgebe.

                Ich hoffe ich habe es nicht zu unverständlich beschrieben.

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

                @stefan341 sagte: ist von zwei Skripten abhängig - und da ist das Problem

                Man sollte das Fahren der Rollos in nur einem Skript erledigen - und das möglichst ohne zusätzlichen Datenpunkt:

                Blockly_temp.JPG

                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

                S 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @stefan341 sagte: ist von zwei Skripten abhängig - und da ist das Problem

                  Man sollte das Fahren der Rollos in nur einem Skript erledigen - und das möglichst ohne zusätzlichen Datenpunkt:

                  Blockly_temp.JPG

                  S Offline
                  S Offline
                  Stefan341
                  schrieb am zuletzt editiert von
                  #10

                  @paul53
                  @Codierknecht
                  Danke erstmal für eure Ausführungen. Ich bin mir nur nicht sicher ob wir vielleicht aneinander vorbei reden.

                  Ich habe bereits ein Script, dass die Rollos zuverlässig hoch und runter fährt. Da brauche ich nichts Neues. Es geht nur um die Visualisierung der Zeit, wann dies geschieht.

                  CodierknechtC 1 Antwort Letzte Antwort
                  0
                  • S Stefan341

                    @paul53
                    @Codierknecht
                    Danke erstmal für eure Ausführungen. Ich bin mir nur nicht sicher ob wir vielleicht aneinander vorbei reden.

                    Ich habe bereits ein Script, dass die Rollos zuverlässig hoch und runter fährt. Da brauche ich nichts Neues. Es geht nur um die Visualisierung der Zeit, wann dies geschieht.

                    CodierknechtC Offline
                    CodierknechtC Offline
                    Codierknecht
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #11

                    @stefan341 sagte in Ausgabe der Ergebnisse zweier Skripte:

                    Ich habe bereits ein Script, dass die Rollos zuverlässig hoch und runter fährt. Da brauche ich nichts Neues. Es geht nur um die Visualisierung der Zeit, wann dies geschieht.

                    Das ist uns schon klar.
                    Aber wenn ich das richtig sehe, fährst Du zu festgelegten Zeiten.
                    Du willst aber:

                    1. Zu unterschiedlichen Zeiten fahren (Wochenende, Urlaub, Ferien)
                    2. Die Zeiten visualisieren
                      Also lautet unser Vorschlag: Die Berechnung und das Fahren kommen in ein einziges Script.
                      Es ist nicht unbedingt sinnvoll, das auf mehrere Scripte aufzuteilen. Alles zusammen in ein Script macht die Sache deutlich übersichtlicher.

                    Du brauchst ja letztendlich auch 2 Berechnungen:

                    1. Runterfahren: Entweder Sonnenuntergang oder feste Zeit
                      Da muss die Zeit berechnet und in einem DP gespeichert werden, um sie visualisieren zu können. Wenn man die schon berechnet, kann man die ja auch gleich in den Zeitplan packen mit dem gefahren wird.
                    2. Hochfahren: Auch hier muss zuerst ermittelt werden, wann denn nun zu fahren ist. Wochenende, Ferien usw. muss ja schließlich berücksichtigt werden.

                    Wenn Du Dein funktionierendes Script nicht verlieren möchtest, kannst Du das ja erstmal stoppen.
                    Dann erzeugst Du ein neues, in das sowohl die Berechnung als auch das Fahren reinkommt.
                    Das besteht im Großen und Ganzen aus 4 Teilbereichen:

                    1. Berechnung für Runter
                    2. Zeitplan für Runter
                    3. Berechnung für Rauf
                    4. Zeitplan für Rauf

                    Für 4) fehlen uns noch Infos, wo denn Deine Werte herkommen.
                    Wie erkennst Du, ob z.B. Ferien- oder Feiertag ist? Mit welchem Adapter? Wie sehen da die DP aus?

                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                    HmIP|ZigBee|Tasmota|Unifi
                    Zabbix Certified Specialist
                    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                    S 1 Antwort Letzte Antwort
                    0
                    • CodierknechtC Codierknecht

                      @stefan341 sagte in Ausgabe der Ergebnisse zweier Skripte:

                      Ich habe bereits ein Script, dass die Rollos zuverlässig hoch und runter fährt. Da brauche ich nichts Neues. Es geht nur um die Visualisierung der Zeit, wann dies geschieht.

                      Das ist uns schon klar.
                      Aber wenn ich das richtig sehe, fährst Du zu festgelegten Zeiten.
                      Du willst aber:

                      1. Zu unterschiedlichen Zeiten fahren (Wochenende, Urlaub, Ferien)
                      2. Die Zeiten visualisieren
                        Also lautet unser Vorschlag: Die Berechnung und das Fahren kommen in ein einziges Script.
                        Es ist nicht unbedingt sinnvoll, das auf mehrere Scripte aufzuteilen. Alles zusammen in ein Script macht die Sache deutlich übersichtlicher.

                      Du brauchst ja letztendlich auch 2 Berechnungen:

                      1. Runterfahren: Entweder Sonnenuntergang oder feste Zeit
                        Da muss die Zeit berechnet und in einem DP gespeichert werden, um sie visualisieren zu können. Wenn man die schon berechnet, kann man die ja auch gleich in den Zeitplan packen mit dem gefahren wird.
                      2. Hochfahren: Auch hier muss zuerst ermittelt werden, wann denn nun zu fahren ist. Wochenende, Ferien usw. muss ja schließlich berücksichtigt werden.

                      Wenn Du Dein funktionierendes Script nicht verlieren möchtest, kannst Du das ja erstmal stoppen.
                      Dann erzeugst Du ein neues, in das sowohl die Berechnung als auch das Fahren reinkommt.
                      Das besteht im Großen und Ganzen aus 4 Teilbereichen:

                      1. Berechnung für Runter
                      2. Zeitplan für Runter
                      3. Berechnung für Rauf
                      4. Zeitplan für Rauf

                      Für 4) fehlen uns noch Infos, wo denn Deine Werte herkommen.
                      Wie erkennst Du, ob z.B. Ferien- oder Feiertag ist? Mit welchem Adapter? Wie sehen da die DP aus?

                      S Offline
                      S Offline
                      Stefan341
                      schrieb am zuletzt editiert von Stefan341
                      #12

                      @codierknecht
                      Ich verstehe, dass es sinnvoll ist alles über ein Script laufen zu lassen. Wie gesagt, wollte ich einfach nur die Zeiten ausgeben lassen für die VIS. Wenn ihr gleich das komplette Script neu machen wollt, halte ich euch nicht auf ;)

                      Also, die Informationen bzgl. schulfrei, Ferien etc kommen vom Adapter schoolfree. Das Ganze sieht dann so aus:
                      Bildschirmfoto 2024-10-05 um 19.44.14.png

                      Das Ganze soll dann wie folgt geschaltet werden:
                      Grundsätzlich teile ich die Rollos in zwei Gruppen (EG und OG)

                      Im EG soll es wie folgt funktionieren:

                      Rollos runter: 10Min nach Sonnenuntergang oder um 21:00Uhr, je nach dem was früher eintritt

                      Rollos hoch: Wenn "10 Minuten nach Sonnenaufgang" und einer folgender Szenarien zutrifft:
                      Bildschirmfoto 2024-10-05 um 19.56.55.png

                      Im OG soll es wie folgt funktionieren:

                      Grundsätzlich wird über zwei DP getriggert:

                      Kinder_Schlafenszeit
                      Sonne_untergegangen

                      Rollos runter: Einer der beiden DP geht auf 1

                      Rollos hoch: Kinder_Schlafenszeit geht auf 0

                      Die beiden DP werden wie folgt geschaltet:

                      Kinder_Schlafenszeit geht auf 1:

                      • Sonntag bis Donnerstag um 19:00Uhr wenn "schoolfree tomorrow" auf 0 ist.

                      • Sonntag bis Donnerstag um 20:00Uhr wenn "schoolfree tomorrow" auf 1 ist.

                      • Freitags und Samstags um 20:00Uhr.

                      Kinder_Schlafenszeit geht auf 0:

                      • Montag bis Freitag um 7:30Uhr wenn Wert von "school free today" 0 ist.

                      • Montag bis Freitag um 9:00Uhr wenn Wert von "school free today" 1 ist.

                      • Jeden Samstag und Sonntag um 9:00Uhr.

                      Sonne_untergegangen geht auf 0:

                      • Sonnenuntergang

                      Sonne_untergegangen geht auf 1:

                      • 3Min nach Sonnenaufgang

                      Das ist soweit die Grundschaltung. Nun ist aber noch der Sonnenschutz integriert.
                      Der Sonnenschutz ist temperaturabhängig. Bei größer 26Grad Außentemperatur (Adapter: das Wetter) und ertönt Alexa mit folgender Vorwarnung:
                      Der Sonnenschutz wurde durch die Aussentemperatur aktiviert. Alle Rollos fahren in zwei Minuten runter. Bitte für der hindernisfreien Lauf der Rollos sorgen. Dann folgt folgende Pushover:
                      Der Sonnenschutz wurde zu Hause aktiviert. Die Jalousien fahren in zwei Minuten runter.
                      Dann folgt ein Timeout von 2 Minuten
                      Dann nochmal Alexa mit: Der Sonnenschutz wird jetzt aktiviert.
                      Timeout 3Sek
                      Dann werden alle Rollos über folgenden http-Befehl, jeweils mit einem Timeout von einer Sekunde dazwischen runtergefahren:

                      http://IP-DES-SCHALTERS/cm?cmnd=ShutterPosition1%20
                      

                      Das Ganze sieht dann so aus:
                      Bildschirmfoto 2024-10-05 um 21.17.19.png

                      Der DP Sonnenschutz_aktiviert wird auf 1 gesetzt

                      Wenn die Außentemperatur unter 23Grad sinkt:

                      • Alexa mit Der Sonnenschutz wurde durch die Absenkung der Aussentemperatur deaktiviert. Alle Rollos fahren in einer Minute hoch.
                      • Pushover mit Der Sonnenschutz wurde zu Hause deaktiviert. Die Jalousien fahren in einer Minute hoch.
                      • Timeout 1Min
                      • Rollos per http:
                      http://192.168.100.52/cm?cmnd=ShutterPosition1%20100%20on
                      

                      hoch.

                      Jetzt habe ich noch zwei DP die ich zum Schutz eingebaut habe:

                      Sonnenschutz_aktiviert
                      Wenn der Sonnenschutz aktiviert wird, wird dieser DP auf 1 gesetzt. Das habe ich aus folgendem Grund so gemacht: Wenn die Temperatur über die eingestellte Schwelle steigt, wird geprüft ob der DP auf 0 ist. Damit wird verhindert, dass das Script immer wieder die Rollos auf 75% runter fährt wenn sich die Temperatur oberhalb der eingestellten Schwelle ändert, weil ja mit der Temperatur getriggert wird.

                      Rollo_hoch_verhindern
                      ist aus folgendem Problem entstanden: Der Sonnenschutz wurde aktiviert, abends sind die Rollos über die Automatik ganz normal geschlossen worden. Dann ist nachts die Temperatur unter die eingestellte Schwelle gesunken und der Sonnenschutz hat mitten in der acht alle Rollos hoch gemacht.
                      Wenn also der Sonnenschutz aktiviert ist und die Automatik die Rollos runter macht, geht der DP auf 1 und der Sonnenschutz schaut bevor er wegen sinkender Temperatur die Rollos hoch macht, ob der DP auch wirklich auf 0 ist. Dies kann dann nur tagsüber der Fall sein, weil der DB jeden Morgen um 9Uhr auf 0 gesetzt wird.

                      Sonnenschutz
                      Der DP wird über meine VIS gesteuert und ist lediglich dafür da, um festzulegen ob das Script aktiv ist oder nicht.

                      Automatik
                      Das gleiche wie Sonnenschutz, nur für die Automatik der Rollos.

                      Ich hoffe ich habe nichts vergessen.

                      ****EDIT
                      Ich sehe gerade, meine URLs im Code-Tag sind nicht vollständig. Die werden natürlich wie im Screenshot angegeben, zusammengefügt. Sorry für die Verwirrung.

                      CodierknechtC 1 Antwort Letzte Antwort
                      0
                      • S Stefan341

                        @codierknecht
                        Ich verstehe, dass es sinnvoll ist alles über ein Script laufen zu lassen. Wie gesagt, wollte ich einfach nur die Zeiten ausgeben lassen für die VIS. Wenn ihr gleich das komplette Script neu machen wollt, halte ich euch nicht auf ;)

                        Also, die Informationen bzgl. schulfrei, Ferien etc kommen vom Adapter schoolfree. Das Ganze sieht dann so aus:
                        Bildschirmfoto 2024-10-05 um 19.44.14.png

                        Das Ganze soll dann wie folgt geschaltet werden:
                        Grundsätzlich teile ich die Rollos in zwei Gruppen (EG und OG)

                        Im EG soll es wie folgt funktionieren:

                        Rollos runter: 10Min nach Sonnenuntergang oder um 21:00Uhr, je nach dem was früher eintritt

                        Rollos hoch: Wenn "10 Minuten nach Sonnenaufgang" und einer folgender Szenarien zutrifft:
                        Bildschirmfoto 2024-10-05 um 19.56.55.png

                        Im OG soll es wie folgt funktionieren:

                        Grundsätzlich wird über zwei DP getriggert:

                        Kinder_Schlafenszeit
                        Sonne_untergegangen

                        Rollos runter: Einer der beiden DP geht auf 1

                        Rollos hoch: Kinder_Schlafenszeit geht auf 0

                        Die beiden DP werden wie folgt geschaltet:

                        Kinder_Schlafenszeit geht auf 1:

                        • Sonntag bis Donnerstag um 19:00Uhr wenn "schoolfree tomorrow" auf 0 ist.

                        • Sonntag bis Donnerstag um 20:00Uhr wenn "schoolfree tomorrow" auf 1 ist.

                        • Freitags und Samstags um 20:00Uhr.

                        Kinder_Schlafenszeit geht auf 0:

                        • Montag bis Freitag um 7:30Uhr wenn Wert von "school free today" 0 ist.

                        • Montag bis Freitag um 9:00Uhr wenn Wert von "school free today" 1 ist.

                        • Jeden Samstag und Sonntag um 9:00Uhr.

                        Sonne_untergegangen geht auf 0:

                        • Sonnenuntergang

                        Sonne_untergegangen geht auf 1:

                        • 3Min nach Sonnenaufgang

                        Das ist soweit die Grundschaltung. Nun ist aber noch der Sonnenschutz integriert.
                        Der Sonnenschutz ist temperaturabhängig. Bei größer 26Grad Außentemperatur (Adapter: das Wetter) und ertönt Alexa mit folgender Vorwarnung:
                        Der Sonnenschutz wurde durch die Aussentemperatur aktiviert. Alle Rollos fahren in zwei Minuten runter. Bitte für der hindernisfreien Lauf der Rollos sorgen. Dann folgt folgende Pushover:
                        Der Sonnenschutz wurde zu Hause aktiviert. Die Jalousien fahren in zwei Minuten runter.
                        Dann folgt ein Timeout von 2 Minuten
                        Dann nochmal Alexa mit: Der Sonnenschutz wird jetzt aktiviert.
                        Timeout 3Sek
                        Dann werden alle Rollos über folgenden http-Befehl, jeweils mit einem Timeout von einer Sekunde dazwischen runtergefahren:

                        http://IP-DES-SCHALTERS/cm?cmnd=ShutterPosition1%20
                        

                        Das Ganze sieht dann so aus:
                        Bildschirmfoto 2024-10-05 um 21.17.19.png

                        Der DP Sonnenschutz_aktiviert wird auf 1 gesetzt

                        Wenn die Außentemperatur unter 23Grad sinkt:

                        • Alexa mit Der Sonnenschutz wurde durch die Absenkung der Aussentemperatur deaktiviert. Alle Rollos fahren in einer Minute hoch.
                        • Pushover mit Der Sonnenschutz wurde zu Hause deaktiviert. Die Jalousien fahren in einer Minute hoch.
                        • Timeout 1Min
                        • Rollos per http:
                        http://192.168.100.52/cm?cmnd=ShutterPosition1%20100%20on
                        

                        hoch.

                        Jetzt habe ich noch zwei DP die ich zum Schutz eingebaut habe:

                        Sonnenschutz_aktiviert
                        Wenn der Sonnenschutz aktiviert wird, wird dieser DP auf 1 gesetzt. Das habe ich aus folgendem Grund so gemacht: Wenn die Temperatur über die eingestellte Schwelle steigt, wird geprüft ob der DP auf 0 ist. Damit wird verhindert, dass das Script immer wieder die Rollos auf 75% runter fährt wenn sich die Temperatur oberhalb der eingestellten Schwelle ändert, weil ja mit der Temperatur getriggert wird.

                        Rollo_hoch_verhindern
                        ist aus folgendem Problem entstanden: Der Sonnenschutz wurde aktiviert, abends sind die Rollos über die Automatik ganz normal geschlossen worden. Dann ist nachts die Temperatur unter die eingestellte Schwelle gesunken und der Sonnenschutz hat mitten in der acht alle Rollos hoch gemacht.
                        Wenn also der Sonnenschutz aktiviert ist und die Automatik die Rollos runter macht, geht der DP auf 1 und der Sonnenschutz schaut bevor er wegen sinkender Temperatur die Rollos hoch macht, ob der DP auch wirklich auf 0 ist. Dies kann dann nur tagsüber der Fall sein, weil der DB jeden Morgen um 9Uhr auf 0 gesetzt wird.

                        Sonnenschutz
                        Der DP wird über meine VIS gesteuert und ist lediglich dafür da, um festzulegen ob das Script aktiv ist oder nicht.

                        Automatik
                        Das gleiche wie Sonnenschutz, nur für die Automatik der Rollos.

                        Ich hoffe ich habe nichts vergessen.

                        ****EDIT
                        Ich sehe gerade, meine URLs im Code-Tag sind nicht vollständig. Die werden natürlich wie im Screenshot angegeben, zusammengefügt. Sorry für die Verwirrung.

                        CodierknechtC Offline
                        CodierknechtC Offline
                        Codierknecht
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #13

                        @stefan341
                        Also bei so vielen Variablen würde ich das machen wie schon vorher skizziert:

                        1. Zeit für "runter" berechnen und die berechnete Zeit in einen DP schreiben
                          Den kann man dann auch prima visualisieren
                        2. Einen "Zeitplan aus Zeit-Zustand" auf diesen DP legen.
                          Damit wird dann auch tatsächlich zu diesem Zeitpunkt gefahren. Also zwei Fliegen mit einer Klappe.
                        3. Zeit für "rauf" berechnen.
                          Das ist ja nochmal deutlich komplizierter als "runter". Auch diese Zeit würde ich in einen DP schreiben. Muss ja nicht visualisiert werden, aber es hilft bei einer evtl. mal nötigen Fehlersuche.
                        4. Auch "rauf" würde ich an einen DP hängen. Genau wie bei 2). Macht das Ganze einfacher, wenn man nicht x-verschiedene Blöcke verwenden muss.

                        Ich würde das eigentliche Fahren der Rollläden in eine kleine Blockly-Funktion legen.
                        Mit einem Parameter, der "rauf" oder "runter" festlegt.
                        Innerhalb der Funktion werden dann die einzelnen Rolläden mit dem von Dir gewünschten Versatz gefahren.

                        Erwarte nicht, dass wir Dir das fertige Script liefern.
                        Wir bieten "Hilfe zur Selbsthilfe". Ein gewisser Lerneffekt soll ja bleiben ;-)

                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                        HmIP|ZigBee|Tasmota|Unifi
                        Zabbix Certified Specialist
                        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                        S 1 Antwort Letzte Antwort
                        0
                        • CodierknechtC Codierknecht

                          @stefan341
                          Also bei so vielen Variablen würde ich das machen wie schon vorher skizziert:

                          1. Zeit für "runter" berechnen und die berechnete Zeit in einen DP schreiben
                            Den kann man dann auch prima visualisieren
                          2. Einen "Zeitplan aus Zeit-Zustand" auf diesen DP legen.
                            Damit wird dann auch tatsächlich zu diesem Zeitpunkt gefahren. Also zwei Fliegen mit einer Klappe.
                          3. Zeit für "rauf" berechnen.
                            Das ist ja nochmal deutlich komplizierter als "runter". Auch diese Zeit würde ich in einen DP schreiben. Muss ja nicht visualisiert werden, aber es hilft bei einer evtl. mal nötigen Fehlersuche.
                          4. Auch "rauf" würde ich an einen DP hängen. Genau wie bei 2). Macht das Ganze einfacher, wenn man nicht x-verschiedene Blöcke verwenden muss.

                          Ich würde das eigentliche Fahren der Rollläden in eine kleine Blockly-Funktion legen.
                          Mit einem Parameter, der "rauf" oder "runter" festlegt.
                          Innerhalb der Funktion werden dann die einzelnen Rolläden mit dem von Dir gewünschten Versatz gefahren.

                          Erwarte nicht, dass wir Dir das fertige Script liefern.
                          Wir bieten "Hilfe zur Selbsthilfe". Ein gewisser Lerneffekt soll ja bleiben ;-)

                          S Offline
                          S Offline
                          Stefan341
                          schrieb am zuletzt editiert von
                          #14

                          @codierknecht said

                          Erwarte nicht, dass wir Dir das fertige Script liefern.
                          Wir bieten "Hilfe zur Selbsthilfe". Ein gewisser Lerneffekt soll ja bleiben ;-)

                          Das ist auch gut so, wenn ein gewisser Lerneffekt bleibt.
                          Um einen Anfang hinzubekommen, wäre wahrscheinlich die Grundvoraussetzung, dass man versteht wovon du schreibst ;). Das ist bei mir nicht mehr gegeben. Darum bin ich da auch raus. Das Ganze läuft bei mir so wie es soll. Das mit der Visualisierung wäre ganz nett gewesen. Aber wenn das so einfach nicht möglich ist, oder zu aufwändig ist, dann lass ich es eben. Meine Kenntnisse reichen nicht aus um auch nur einen Anfang zu finden auf dem man dann aufbauen könnte. Darum danke an euch Beiden für die Inspirationen soweit ;)

                          CodierknechtC 1 Antwort Letzte Antwort
                          0
                          • S Stefan341

                            @codierknecht said

                            Erwarte nicht, dass wir Dir das fertige Script liefern.
                            Wir bieten "Hilfe zur Selbsthilfe". Ein gewisser Lerneffekt soll ja bleiben ;-)

                            Das ist auch gut so, wenn ein gewisser Lerneffekt bleibt.
                            Um einen Anfang hinzubekommen, wäre wahrscheinlich die Grundvoraussetzung, dass man versteht wovon du schreibst ;). Das ist bei mir nicht mehr gegeben. Darum bin ich da auch raus. Das Ganze läuft bei mir so wie es soll. Das mit der Visualisierung wäre ganz nett gewesen. Aber wenn das so einfach nicht möglich ist, oder zu aufwändig ist, dann lass ich es eben. Meine Kenntnisse reichen nicht aus um auch nur einen Anfang zu finden auf dem man dann aufbauen könnte. Darum danke an euch Beiden für die Inspirationen soweit ;)

                            CodierknechtC Offline
                            CodierknechtC Offline
                            Codierknecht
                            Developer Most Active
                            schrieb am zuletzt editiert von Codierknecht
                            #15

                            @stefan341 sagte in Ausgabe der Ergebnisse zweier Skripte:

                            Das mit der Visualisierung wäre ganz nett gewesen.

                            Wenn's nur das ist ...

                            Die Lösung dafür steht ganz oben in meinem ersten Post.
                            Das kannst Du ja in Dein Script mit einbauen.

                            Man könnte aber auch aufräumen und den ganzen Salat vereinfachen, wenn man eh mal dran ist.

                            Um einen Anfang hinzubekommen, wäre wahrscheinlich die Grundvoraussetzung, dass man versteht wovon du schreibst ;). Das ist bei mir nicht mehr gegeben

                            22a4af7a-3b88-4f9b-87fc-e25e2966c224-1727983809481-af9ec78c-fabc-482a-9746-26b47f5d44ad-grafik.png

                            Wo ist das Problem?
                            Das Beispiel zeigt das "runter". Um 01:00 Uhr wird für den neuen Tag die Zeit berechnet und in einen eigenen DP unterhalb von 0_userdata.0 geschrieben. Den kann man praktischerweise auch visualisieren ;-)
                            Der "Zeitplan aus Zeit-Zustand" darunter zeigt auf genau diesen DP.
                            Bei Änderungen an diesem DP wird intern der Zeitplan gestoppt und mit der neuen Zeit neu gestartet.
                            Das Schöne daran: Man kann diesen DP auch manuell ändern und schwupps wird der Zeitplan zu diesem neuen Zeitpunkt ausgeführt.
                            Versuch macht klug:
                            38cee2be-feef-4750-b069-3dee61c6ebe3-grafik.png

                            Das Gleiche macht man noch für "rauf" (mit einer etwas aufwändigeren Berechnung der Zeit) und gut ist.

                            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                            HmIP|ZigBee|Tasmota|Unifi
                            Zabbix Certified Specialist
                            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                            S 1 Antwort Letzte Antwort
                            0
                            • CodierknechtC Codierknecht

                              @stefan341 sagte in Ausgabe der Ergebnisse zweier Skripte:

                              Das mit der Visualisierung wäre ganz nett gewesen.

                              Wenn's nur das ist ...

                              Die Lösung dafür steht ganz oben in meinem ersten Post.
                              Das kannst Du ja in Dein Script mit einbauen.

                              Man könnte aber auch aufräumen und den ganzen Salat vereinfachen, wenn man eh mal dran ist.

                              Um einen Anfang hinzubekommen, wäre wahrscheinlich die Grundvoraussetzung, dass man versteht wovon du schreibst ;). Das ist bei mir nicht mehr gegeben

                              22a4af7a-3b88-4f9b-87fc-e25e2966c224-1727983809481-af9ec78c-fabc-482a-9746-26b47f5d44ad-grafik.png

                              Wo ist das Problem?
                              Das Beispiel zeigt das "runter". Um 01:00 Uhr wird für den neuen Tag die Zeit berechnet und in einen eigenen DP unterhalb von 0_userdata.0 geschrieben. Den kann man praktischerweise auch visualisieren ;-)
                              Der "Zeitplan aus Zeit-Zustand" darunter zeigt auf genau diesen DP.
                              Bei Änderungen an diesem DP wird intern der Zeitplan gestoppt und mit der neuen Zeit neu gestartet.
                              Das Schöne daran: Man kann diesen DP auch manuell ändern und schwupps wird der Zeitplan zu diesem neuen Zeitpunkt ausgeführt.
                              Versuch macht klug:
                              38cee2be-feef-4750-b069-3dee61c6ebe3-grafik.png

                              Das Gleiche macht man noch für "rauf" (mit einer etwas aufwändigeren Berechnung der Zeit) und gut ist.

                              S Offline
                              S Offline
                              Stefan341
                              schrieb am zuletzt editiert von
                              #16

                              @codierknecht
                              Was genau ist der Trigger Zeitplan nach Zeit-Zustand? Also was macht der anders als der Trigger nach dem DP?

                              CodierknechtC 1 Antwort Letzte Antwort
                              0
                              • S Stefan341

                                @codierknecht
                                Was genau ist der Trigger Zeitplan nach Zeit-Zustand? Also was macht der anders als der Trigger nach dem DP?

                                CodierknechtC Offline
                                CodierknechtC Offline
                                Codierknecht
                                Developer Most Active
                                schrieb am zuletzt editiert von
                                #17

                                @stefan341
                                Ein "Zeitplan aus Zeit-Zustand" wird an einen bestimmten DP gebunden, der eine Zeit enthält.
                                Er löst zu der Zeit aus, die im DP steht , z.B. "12:00". Es muss also ein DP vom Typ "Zeichenfolge" sein.
                                Ändert man den Wert des DP, wird der Zeitplan gestoppt und mit der geänderten Zeit neu gestartet.
                                Eigentlich ideal für Deine Anforderung.

                                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                HmIP|ZigBee|Tasmota|Unifi
                                Zabbix Certified Specialist
                                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                S 1 Antwort Letzte Antwort
                                0
                                • CodierknechtC Codierknecht

                                  @stefan341
                                  Ein "Zeitplan aus Zeit-Zustand" wird an einen bestimmten DP gebunden, der eine Zeit enthält.
                                  Er löst zu der Zeit aus, die im DP steht , z.B. "12:00". Es muss also ein DP vom Typ "Zeichenfolge" sein.
                                  Ändert man den Wert des DP, wird der Zeitplan gestoppt und mit der geänderten Zeit neu gestartet.
                                  Eigentlich ideal für Deine Anforderung.

                                  S Offline
                                  S Offline
                                  Stefan341
                                  schrieb am zuletzt editiert von
                                  #18

                                  @codierknecht
                                  Ich habe jetzt normal etwas rumexperimentiert. Ich denke auch ich habe die Anzeigen soweit hinbekommen, nur die Anzeige für die Rollos oben runter will noch nicht so ganz. Es wird immer eine Minute nach der Triggerzeit angezeigt. Irgendwo habe ich da wahrscheinlich ein Fehler im Script, finde ihn aber nicht:
                                  Bildschirmfoto 2024-10-13 um 18.46.27.png

                                  Sonntag bis Donnerstag gehen die Rollos um 19:00 Uhr runter wenn der Wert von schoolfree tomorrow falsch ist. Wenn er wahr ist, um 20:00Uhr

                                  Freitags um Samstags gehen die Rollos immer um 20:00Uhr runter.

                                  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

                                  621

                                  Online

                                  32.6k

                                  Benutzer

                                  82.2k

                                  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