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. Blockly
  5. Blockly um Markise bei böigem Wind einzufahren

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Blockly um Markise bei böigem Wind einzufahren

Geplant Angeheftet Gesperrt Verschoben Blockly
climate
26 Beiträge 4 Kommentatoren 2.0k 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.
  • SBorgS Offline
    SBorgS Offline
    SBorg
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #4

    Eine kleine RRD?
    Bild 1.png
    Dann kannst du über Zeitraum X auswerten.

    LG SBorg ( SBorg auf GitHub)
    Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

    HomoranH 1 Antwort Letzte Antwort
    0
    • SBorgS SBorg

      Eine kleine RRD?
      Bild 1.png
      Dann kannst du über Zeitraum X auswerten.

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von Homoran
      #5

      @SBorg Danke!
      Das hatte ich befürchtet - ist aber noch außer meiner Skills :-(
      kommt sicher irgendwann

      EDIT:
      sieht aber doch gar nicht so schwer aus.
      Warum hatte ich immer so einen Respekt vor Arrays??

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      SBorgS 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @SBorg Danke!
        Das hatte ich befürchtet - ist aber noch außer meiner Skills :-(
        kommt sicher irgendwann

        EDIT:
        sieht aber doch gar nicht so schwer aus.
        Warum hatte ich immer so einen Respekt vor Arrays??

        SBorgS Offline
        SBorgS Offline
        SBorg
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #6

        @Homoran Nicht nur Array, sogar eine RRD (Round Robin Datenbank)
        Damit steht der aktuellste Wert immer an 1. Stelle, der älteste an letzter ;)

        ...und wenn man es runter bricht sind es sogar nur zwei Anweisungen.

        LG SBorg ( SBorg auf GitHub)
        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

        1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          Hallo zusammen.
          ich hab da mal wieder eine Frage ;-)

          Jetzt wo die Sonne endlich mal wieder scheint kommt auch unsere Markise wieder zum Einsatz.
          Diese ist nicht so ganz klein (650x350cm) was sie natürlich zu einem hervorragenden Segel macht.

          Bisher habe ich sie versucht über die HomeMatic-Wetterstation zu steuern.
          Windwerte werden aber dort nur alle 3 Minuten gesendet, was bereits den Tod der Markise bedeuten könnte oder per Direktverknüpfung. Diese ist aber sehr grob einzustellen. Entweder fährt die Markise viel zu früh oder zu spät ein.

          Dazu kommt noch, dass zum einen je nach Windrichtung die Markise schon zappelt, das Anemometer aber nichts mitbekommt oder umgekehrt.
          Zum anderen fahre ich bei etwas stärkerem Wind die Markise auch gerne auf die Hälfte oder ein Viertel ein, so dass das Fenster noch genug Schatten bekommt, aber der Wind nicht mehr greift. Trotzdem fährt dann die Markise ein, da man die Direktverknüpfung nicht ausfallbedingt verknüpfen kann :-(

          jetzt habe ich mir bereits vor längerer Zeit zwei Sensoren montiert. zum einen den alten Tilt-Sensor zum anderen den Gyrosensor.

          Jetzt möchte ich deren Ergebnisse auswerten um festzustellen wann es böig wird, ohne dass die Windgeschwindigkeit selber messbar steigt.

          • zum einen die Anzahl erfasste "Schläge" über einen fließenden Zeitraum
          • zum anderen den kürzesten Abstand dieser Schläge ebenfalls über einen Zeitraum

          Ich bin im Moment noch am Anfang:
          Windboen01.png

          Es scheint besser zu sein, für jeden Sensor einen eigenen Trigger zu nehmen um, dann anschließend mit dem Pulldown-Baustein des Triggers zu arbeiten der Timestamp/Wert usw. anbietet)

          Hauptsächlich für die Berechnung der Werte über ein fließendes Zeitintervall habe ich keine Ahnung wie ich das angehen kann und wäre für jeden Schubser dankbar.

          Interessantes am Rande:
          Habe inzwischen festgestellt, dass man sogar die Windrichtung analysieren könnte. Der Tilt-Sensor sitzt in der Mitte des Ausfalls und der Gyrosensor an einem Rand (nahe der Garage auf der die Wetterstation steht).
          Der Gyro schlägt eher aus, wenn der Wind seitlich kommt und die Markise verdreht, der Tilt, wenn die Markise zentral schwankt.

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

          @Homoran sagte:

          den kürzesten Abstand dieser Schläge ebenfalls über einen Zeitraum

          Das könnte prinzipiell so erfolgen:

          Blockly_temp.JPG

          @Homoran sagte in Blockly um Markise bei böigem Wind einzufahren:

          die Anzahl erfasste "Schläge" über einen fließenden Zeitraum

          Füge die "letzte Änderung" zu einem Array hinzu, und lösche alle Einträge im Array, die älter sind als "letzte Änderung" - Zeitraum. Die Länge des resultierende Arrays ist die Anzahl der Schläge im definierten Zeitraum. Etwa so:

          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

          HomoranH 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @Homoran sagte:

            den kürzesten Abstand dieser Schläge ebenfalls über einen Zeitraum

            Das könnte prinzipiell so erfolgen:

            Blockly_temp.JPG

            @Homoran sagte in Blockly um Markise bei böigem Wind einzufahren:

            die Anzahl erfasste "Schläge" über einen fließenden Zeitraum

            Füge die "letzte Änderung" zu einem Array hinzu, und lösche alle Einträge im Array, die älter sind als "letzte Änderung" - Zeitraum. Die Länge des resultierende Arrays ist die Anzahl der Schläge im definierten Zeitraum. Etwa so:

            Blockly_temp.JPG

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von Homoran
            #8

            @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

            Füge die "letzte Änderung" zu einem Array hinzu, und lösche alle Einträge im Array, die älter sind als "letzte Änderung" - Zeitraum. Die Länge des resultierende Arrays ist die Anzahl der Schläge im definierten Zeitraum.

            das geht??
            Das ist ja das was ich will.

            EDIT:
            Du hast editiert! DANKE!

            Sieht im Moment bei mir so aus:
            Windboen02.png

            Testing ist jetzt erst mal sowieso nicht mehr, da die Markise jetzt drin ist

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            paul53P 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

              Füge die "letzte Änderung" zu einem Array hinzu, und lösche alle Einträge im Array, die älter sind als "letzte Änderung" - Zeitraum. Die Länge des resultierende Arrays ist die Anzahl der Schläge im definierten Zeitraum.

              das geht??
              Das ist ja das was ich will.

              EDIT:
              Du hast editiert! DANKE!

              Sieht im Moment bei mir so aus:
              Windboen02.png

              Testing ist jetzt erst mal sowieso nicht mehr, da die Markise jetzt drin ist

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

              @Homoran sagte:

              Sieht im Moment bei mir so aus:

              Gyro_time = Zeitstempel - vorheriger Zeitstempel
              ist die Dauer des Wertes falsch (Auschaltdauer), nicht der zeitliche Abstand zwischen 2 mal wahr. Ist es das was Du brauchst ?

              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

              HomoranH 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @Homoran sagte:

                Sieht im Moment bei mir so aus:

                Gyro_time = Zeitstempel - vorheriger Zeitstempel
                ist die Dauer des Wertes falsch (Auschaltdauer), nicht der zeitliche Abstand zwischen 2 mal wahr. Ist es das was Du brauchst ?

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #10

                @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                @Homoran sagte:

                Sieht im Moment bei mir so aus:

                Gyro_time = Zeitstempel - vorheriger Zeitstempel
                ist die Dauer des Wertes falsch, nicht der zeitliche Abstand zwischen 2 mal wahr. Ist es das was Du brauchst ?

                Sorry, was willst du mir sagen?

                Heisst das dass der letzte Zeitstempel, der ist, wenn der Wert auf false springt? Also der in dem Device eingestellte Timeout?

                @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                nicht der zeitliche Abstand zwischen 2 mal wahr.

                Das wäre Mist!
                ich brauche natürlich den Abstand zwischen 2*true

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                paul53P 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                  @Homoran sagte:

                  Sieht im Moment bei mir so aus:

                  Gyro_time = Zeitstempel - vorheriger Zeitstempel
                  ist die Dauer des Wertes falsch, nicht der zeitliche Abstand zwischen 2 mal wahr. Ist es das was Du brauchst ?

                  Sorry, was willst du mir sagen?

                  Heisst das dass der letzte Zeitstempel, der ist, wenn der Wert auf false springt? Also der in dem Device eingestellte Timeout?

                  @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                  nicht der zeitliche Abstand zwischen 2 mal wahr.

                  Das wäre Mist!
                  ich brauche natürlich den Abstand zwischen 2*true

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

                  @Homoran sagte:

                  ich brauche natürlich den Abstand zwischen 2*true

                  Dann brauchst Du eine Variable wie in meinem 1. Beispiel oben (lastWindschlag).

                  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

                  HomoranH 1 Antwort Letzte Antwort
                  1
                  • paul53P paul53

                    @Homoran sagte:

                    ich brauche natürlich den Abstand zwischen 2*true

                    Dann brauchst Du eine Variable wie in meinem 1. Beispiel oben (lastWindschlag).

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #12

                    @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                    @Homoran sagte:

                    ich brauche natürlich den Abstand zwischen 2*true

                    Dann brauchst Du eine Variable wie in meinem 1. Beispiel oben (lastWindschlag).

                    Ok, dann baue ich komplett um

                    Danke (mal wieder!!)

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von Homoran
                      #13

                      Hallo @paul53

                      Gehirnjogging tut immer mal wieder gut.
                      Hat was länger gedauert, bis ich es vollstäündig nachvollziehen konnte, aber das ist ja Sinn der Sache.
                      Ich hoffe ich habe es verstanden. Das War genau das was ich mit dem fließenden Wert meinte und auch so realisieren wollte, aber nicht die Bausteine/Befehle kannte, die dazu notwendig waren.

                      Du hast natürlich zusätzlich noch ein paar Schmankerl reingesetzt

                      Wenn ich es richtig verstanden und umgesetzt habe müsste es dieses sein:
                      Windboen03.png

                      Habe ich das richtig verstanden dass die 600000 Millisekunden der "Beobachtungszeitraum" sein sollen, also 10 Minuten?
                      Wenn ja, habe ich das mal runtergesetzt und spiele an den Werten bis ich empirisch eine vernünftige Lösung habe.

                      Die Namen habe ich angepasst, da ich das Ganze auch noch für den Tilt-Sensor machen will.
                      da kommt dann (viel) später als Kirsche auf die Sahne noch ein Vergleich und/oder Addition beider Sensoren.

                      EDIT: sehe gerade die Variable "Gyro" kann weg - die wird nicht mehr benutzt

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      paul53P 2 Antworten Letzte Antwort
                      0
                      • HomoranH Homoran

                        Hallo @paul53

                        Gehirnjogging tut immer mal wieder gut.
                        Hat was länger gedauert, bis ich es vollstäündig nachvollziehen konnte, aber das ist ja Sinn der Sache.
                        Ich hoffe ich habe es verstanden. Das War genau das was ich mit dem fließenden Wert meinte und auch so realisieren wollte, aber nicht die Bausteine/Befehle kannte, die dazu notwendig waren.

                        Du hast natürlich zusätzlich noch ein paar Schmankerl reingesetzt

                        Wenn ich es richtig verstanden und umgesetzt habe müsste es dieses sein:
                        Windboen03.png

                        Habe ich das richtig verstanden dass die 600000 Millisekunden der "Beobachtungszeitraum" sein sollen, also 10 Minuten?
                        Wenn ja, habe ich das mal runtergesetzt und spiele an den Werten bis ich empirisch eine vernünftige Lösung habe.

                        Die Namen habe ich angepasst, da ich das Ganze auch noch für den Tilt-Sensor machen will.
                        da kommt dann (viel) später als Kirsche auf die Sahne noch ein Vergleich und/oder Addition beider Sensoren.

                        EDIT: sehe gerade die Variable "Gyro" kann weg - die wird nicht mehr benutzt

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

                        @Homoran sagte:

                        müsste es dieses sein:

                        Gyro_min_Time auf 0 zu initialisieren, ist keine gute Idee.

                        @Homoran sagte in Blockly um Markise bei böigem Wind einzufahren:

                        die 600000 Millisekunden der "Beobachtungszeitraum" sein sollen, also 10 Minuten?

                        Ja.

                        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

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @Homoran sagte:

                          müsste es dieses sein:

                          Gyro_min_Time auf 0 zu initialisieren, ist keine gute Idee.

                          @Homoran sagte in Blockly um Markise bei böigem Wind einzufahren:

                          die 600000 Millisekunden der "Beobachtungszeitraum" sein sollen, also 10 Minuten?

                          Ja.

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #15

                          @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                          Gyro_min_Time auf 0 zu initialisieren, ist keine gute Idee.

                          Warum?
                          was wäre denn besser?

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • HomoranH Homoran

                            @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                            Gyro_min_Time auf 0 zu initialisieren, ist keine gute Idee.

                            Warum?
                            was wäre denn besser?

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

                            @Homoran sagte:

                            was wäre denn besser?

                            Der Beobachtungszeitraum, da der neue Wert nie kleiner 0 sein kann. Außerdem bei Initialisierung:

                            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

                            HomoranH 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @Homoran sagte:

                              was wäre denn besser?

                              Der Beobachtungszeitraum, da der neue Wert nie kleiner 0 sein kann. Außerdem bei Initialisierung:

                              Blockly_temp.JPG

                              HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #17

                              @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                              da der neue Wert nie kleiner 0 sein kann

                              Das leuchtet mir sogar auf Anhieb ein :flushed:

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              1 Antwort Letzte Antwort
                              0
                              • HomoranH Nicht stören
                                HomoranH Nicht stören
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #18

                                @paul53

                                Habe ich jetzt angepasst - Danke auch dafür!
                                Windboen03_initial.png

                                Markise wieder ausgefahren - mal sehen was heute noch kommt

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                1 Antwort Letzte Antwort
                                0
                                • HomoranH Homoran

                                  Hallo @paul53

                                  Gehirnjogging tut immer mal wieder gut.
                                  Hat was länger gedauert, bis ich es vollstäündig nachvollziehen konnte, aber das ist ja Sinn der Sache.
                                  Ich hoffe ich habe es verstanden. Das War genau das was ich mit dem fließenden Wert meinte und auch so realisieren wollte, aber nicht die Bausteine/Befehle kannte, die dazu notwendig waren.

                                  Du hast natürlich zusätzlich noch ein paar Schmankerl reingesetzt

                                  Wenn ich es richtig verstanden und umgesetzt habe müsste es dieses sein:
                                  Windboen03.png

                                  Habe ich das richtig verstanden dass die 600000 Millisekunden der "Beobachtungszeitraum" sein sollen, also 10 Minuten?
                                  Wenn ja, habe ich das mal runtergesetzt und spiele an den Werten bis ich empirisch eine vernünftige Lösung habe.

                                  Die Namen habe ich angepasst, da ich das Ganze auch noch für den Tilt-Sensor machen will.
                                  da kommt dann (viel) später als Kirsche auf die Sahne noch ein Vergleich und/oder Addition beider Sensoren.

                                  EDIT: sehe gerade die Variable "Gyro" kann weg - die wird nicht mehr benutzt

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

                                  @Homoran sagte:

                                  müsste es dieses sein:

                                  Die Variable Gyro_min_Time wird zur Laufzeit nie wieder hochgesetzt (s. mein 1. Beispiel mit timeout).

                                  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

                                  HomoranH 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @Homoran sagte:

                                    müsste es dieses sein:

                                    Die Variable Gyro_min_Time wird zur Laufzeit nie wieder hochgesetzt (s. mein 1. Beispiel mit timeout).

                                    HomoranH Nicht stören
                                    HomoranH Nicht stören
                                    Homoran
                                    Global Moderator Administrators
                                    schrieb am zuletzt editiert von
                                    #20

                                    @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                                    @Homoran sagte:

                                    müsste es dieses sein:

                                    Die Variable Gyro_min_Time wird zur Laufzeit nie wieder hochgesetzt (s. mein 1. Beispiel mit timeout).

                                    Hast recht!
                                    immer nur kleiner

                                    Da lass ich mir noch was anderes einfallen als einen schnöden Timeout mit fixem Reset.

                                    Das hast du nun davon wenn du jemanden mit deiner Perfektion anfixest.
                                    Und ich will nichts von dir zu diesem "Problem" hören bevor ich nicht winselnd angekrochen kommen :joy:

                                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #21

                                      Habe jetzt "eigentlich" alles soweit gelöst. - Finetuning und Reaktion auf die Werte kommt noch.

                                      Etwas hat mich allerdings irritiert:
                                      Markise eingefahren, dann kommt nocht:

                                      14:33:17.878	info	javascript.0 (27541) script.js.Markise_Sturm_v3: Wind registriert! Gyrosensor hat 1 counts, kürzester Abstand 739.8 sec, die Beobachtung beträgt 3 Min, mittlerer Wind 20.9 km/h; Markise ist 0% raus
                                      14:33:37.875	info	javascript.0 (27541) script.js.Markise_Sturm_v3: Wind registriert! Gyrosensor hat 2 counts, kürzester Abstand 0 sec, die Beobachtung beträgt 3 Min, mittlerer Wind 20.9 km/h; Markise ist 0% raus
                                      14:39:49.770	info	javascript.0 (27541) script.js.Markise_Sturm_v3: Wind registriert! Gyrosensor hat 3 counts, kürzester Abstand 0 sec, die Beobachtung beträgt 3 Min, mittlerer Wind 20.4 km/h; Markise ist 0% raus
                                      14:48:53.884	info	javascript.0 (27541) script.js.Markise_Sturm_v3: Wind registriert! Gyrosensor hat 4 counts, kürzester Abstand 0 sec, die Beobachtung beträgt 3 Min, mittlerer Wind 20.8 km/h; Markise ist 0% raus
                                      

                                      Gut. Die Markise gibt bei Abkühlung gerne mal knackende Geräusche die IMHO auch zum Auslösen des Sensors führen könnten.
                                      Aber warum ist dann der Abstand 0 sekunden???

                                      @paul53 für dich mal meine aktuelle Version als code:

                                      var Beobachtungsdauer, Tilt_count, Gyro_count, Tilt_time, Gyro_time, Tilt_min_time, Gyro_min_Time, Tilt_Liste, Gyro_Liste, Tilt_Time_median, Gyro_time_median, Tilt_zuletzt, Gyro_zuletzt;
                                      
                                      
                                      Beobachtungsdauer = 180000;
                                      Gyro_count = 0;
                                      Gyro_time = 0;
                                      Gyro_min_Time = Beobachtungsdauer;
                                      Gyro_Liste = [];
                                      Gyro_time_median = [];
                                      Gyro_zuletzt = getState('hm-rpc.1.000F18A98C91E3.1.MOTION').ts;
                                      on({id: 'hm-rpc.1.000F18A98C91E3.1.MOTION', val: true}, function (obj) {
                                       var value = obj.state.val;
                                       var oldValue = obj.oldState.val;
                                       if (getState('hm-rpc.0.JEQ0112571.1.WORKING').val == false && getState('hm-rpc.0.JEQ0112571.1.LEVEL').val < 99) {
                                         Gyro_Liste.push((obj.state ? obj.state.ts : ""));
                                         while (true) {
                                           if ((obj.state ? obj.state.lc : "") - Beobachtungsdauer > Gyro_Liste[0]) {
                                             Gyro_Liste.shift();
                                           } else {
                                             break;
                                           }
                                         }
                                         Gyro_count = Gyro_Liste.length;
                                         Gyro_time = (obj.state ? obj.state.lc : "") - Gyro_zuletzt;
                                         if (Gyro_time < Gyro_min_Time) {
                                           Gyro_min_Time = Gyro_time;
                                         }
                                         Gyro_zuletzt = (obj.state ? obj.state.lc : "");
                                         Gyro_time_median.push(Gyro_time);
                                         while (true) {
                                           if (Gyro_time_median.length > Gyro_Liste.length) {
                                             Gyro_time_median.shift();
                                           } else {
                                             break;
                                           }
                                         }
                                         if (Gyro_time > Gyro_min_Time) {
                                           if (Gyro_time_median.length > 0) {
                                             Gyro_min_Time = Math.round(Gyro_time_median.reduce(function(x, y) {return x + y;}) / Gyro_time_median.length);
                                           } else {
                                             Gyro_min_Time = Math.round((Gyro_min_Time + Gyro_time) / 3);
                                           }
                                         }
                                         console.log((['Wind registriert! Gyrosensor hat ',Gyro_count,' counts, kürzester Abstand ',Math.round((Gyro_min_Time / 1000)*10)/10,' sec, die Beobachtung beträgt ',Beobachtungsdauer / 60000,' Min, mittlerer Wind ',Math.round(getState('hm-rega.0.12770').val*10)/10,' km/h; Markise ist ',Math.round(100 - getState('hm-rpc.0.JEQ0112571.1.LEVEL').val),'% raus'].join('')));
                                       }
                                      });
                                      
                                      Tilt_count = 0;
                                      Tilt_time = 0;
                                      Tilt_min_time = Beobachtungsdauer;
                                      Tilt_Liste = [];
                                      Tilt_Time_median = [];
                                      Tilt_zuletzt = getState('hm-rpc.0.HEQ0105937.1.STATE').ts;
                                      on({id: 'hm-rpc.0.HEQ0105937.1.STATE', val: true}, function (obj) {
                                       var value = obj.state.val;
                                       var oldValue = obj.oldState.val;
                                       if (getState('hm-rpc.0.JEQ0112571.1.WORKING').val == false) {
                                         Tilt_Liste.push((obj.state ? obj.state.ts : ""));
                                         while (true) {
                                           if ((obj.state ? obj.state.lc : "") - Beobachtungsdauer > Tilt_Liste[0]) {
                                             Tilt_Liste.shift();
                                           } else {
                                             break;
                                           }
                                         }
                                         Tilt_count = Tilt_Liste.length;
                                         Tilt_time = (obj.state ? obj.state.lc : "") - Tilt_zuletzt;
                                         if (Tilt_time < Tilt_min_time) {
                                           Tilt_min_time = Tilt_time;
                                         }
                                         Tilt_zuletzt = (obj.state ? obj.state.lc : "");
                                         Tilt_Time_median.push(Tilt_time);
                                         while (true) {
                                           if (Tilt_Time_median.length > Beobachtungsdauer / getState('hm-rpc.0.HEQ0105937.1.STATE').ts) {
                                             Tilt_Time_median.shift();
                                           } else {
                                             break;
                                           }
                                         }
                                         if (Tilt_time > Tilt_min_time) {
                                           if (Tilt_Time_median.length > 0) {
                                             Tilt_min_time = Math.round(Tilt_Time_median.reduce(function(x, y) {return x + y;}) / Tilt_Time_median.length);
                                           } else {
                                             Tilt_min_time = Math.round((Tilt_min_time + Tilt_time) / 3);
                                           }
                                         }
                                         console.log((['Wind registriert! Tilt-Sensor hat ',Tilt_count,' counts, kürzester Abstand ',Math.round((Tilt_min_time / 1000)*10)/10,'sec, die Beobachtung beträgt ',Beobachtungsdauer / 60000,' Min, mittlerer Wind ',Math.round(getState('hm-rega.0.12770').val*10)/10,' km/h'].join('')));
                                       }
                                      });
                                      

                                      Im Falls beim Gyrosensor habe ich jetzt auch noch auf ausgefahren geprüft. Das war während des logs noch nicht so

                                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • HomoranH Homoran

                                        Habe jetzt "eigentlich" alles soweit gelöst. - Finetuning und Reaktion auf die Werte kommt noch.

                                        Etwas hat mich allerdings irritiert:
                                        Markise eingefahren, dann kommt nocht:

                                        14:33:17.878	info	javascript.0 (27541) script.js.Markise_Sturm_v3: Wind registriert! Gyrosensor hat 1 counts, kürzester Abstand 739.8 sec, die Beobachtung beträgt 3 Min, mittlerer Wind 20.9 km/h; Markise ist 0% raus
                                        14:33:37.875	info	javascript.0 (27541) script.js.Markise_Sturm_v3: Wind registriert! Gyrosensor hat 2 counts, kürzester Abstand 0 sec, die Beobachtung beträgt 3 Min, mittlerer Wind 20.9 km/h; Markise ist 0% raus
                                        14:39:49.770	info	javascript.0 (27541) script.js.Markise_Sturm_v3: Wind registriert! Gyrosensor hat 3 counts, kürzester Abstand 0 sec, die Beobachtung beträgt 3 Min, mittlerer Wind 20.4 km/h; Markise ist 0% raus
                                        14:48:53.884	info	javascript.0 (27541) script.js.Markise_Sturm_v3: Wind registriert! Gyrosensor hat 4 counts, kürzester Abstand 0 sec, die Beobachtung beträgt 3 Min, mittlerer Wind 20.8 km/h; Markise ist 0% raus
                                        

                                        Gut. Die Markise gibt bei Abkühlung gerne mal knackende Geräusche die IMHO auch zum Auslösen des Sensors führen könnten.
                                        Aber warum ist dann der Abstand 0 sekunden???

                                        @paul53 für dich mal meine aktuelle Version als code:

                                        var Beobachtungsdauer, Tilt_count, Gyro_count, Tilt_time, Gyro_time, Tilt_min_time, Gyro_min_Time, Tilt_Liste, Gyro_Liste, Tilt_Time_median, Gyro_time_median, Tilt_zuletzt, Gyro_zuletzt;
                                        
                                        
                                        Beobachtungsdauer = 180000;
                                        Gyro_count = 0;
                                        Gyro_time = 0;
                                        Gyro_min_Time = Beobachtungsdauer;
                                        Gyro_Liste = [];
                                        Gyro_time_median = [];
                                        Gyro_zuletzt = getState('hm-rpc.1.000F18A98C91E3.1.MOTION').ts;
                                        on({id: 'hm-rpc.1.000F18A98C91E3.1.MOTION', val: true}, function (obj) {
                                         var value = obj.state.val;
                                         var oldValue = obj.oldState.val;
                                         if (getState('hm-rpc.0.JEQ0112571.1.WORKING').val == false && getState('hm-rpc.0.JEQ0112571.1.LEVEL').val < 99) {
                                           Gyro_Liste.push((obj.state ? obj.state.ts : ""));
                                           while (true) {
                                             if ((obj.state ? obj.state.lc : "") - Beobachtungsdauer > Gyro_Liste[0]) {
                                               Gyro_Liste.shift();
                                             } else {
                                               break;
                                             }
                                           }
                                           Gyro_count = Gyro_Liste.length;
                                           Gyro_time = (obj.state ? obj.state.lc : "") - Gyro_zuletzt;
                                           if (Gyro_time < Gyro_min_Time) {
                                             Gyro_min_Time = Gyro_time;
                                           }
                                           Gyro_zuletzt = (obj.state ? obj.state.lc : "");
                                           Gyro_time_median.push(Gyro_time);
                                           while (true) {
                                             if (Gyro_time_median.length > Gyro_Liste.length) {
                                               Gyro_time_median.shift();
                                             } else {
                                               break;
                                             }
                                           }
                                           if (Gyro_time > Gyro_min_Time) {
                                             if (Gyro_time_median.length > 0) {
                                               Gyro_min_Time = Math.round(Gyro_time_median.reduce(function(x, y) {return x + y;}) / Gyro_time_median.length);
                                             } else {
                                               Gyro_min_Time = Math.round((Gyro_min_Time + Gyro_time) / 3);
                                             }
                                           }
                                           console.log((['Wind registriert! Gyrosensor hat ',Gyro_count,' counts, kürzester Abstand ',Math.round((Gyro_min_Time / 1000)*10)/10,' sec, die Beobachtung beträgt ',Beobachtungsdauer / 60000,' Min, mittlerer Wind ',Math.round(getState('hm-rega.0.12770').val*10)/10,' km/h; Markise ist ',Math.round(100 - getState('hm-rpc.0.JEQ0112571.1.LEVEL').val),'% raus'].join('')));
                                         }
                                        });
                                        
                                        Tilt_count = 0;
                                        Tilt_time = 0;
                                        Tilt_min_time = Beobachtungsdauer;
                                        Tilt_Liste = [];
                                        Tilt_Time_median = [];
                                        Tilt_zuletzt = getState('hm-rpc.0.HEQ0105937.1.STATE').ts;
                                        on({id: 'hm-rpc.0.HEQ0105937.1.STATE', val: true}, function (obj) {
                                         var value = obj.state.val;
                                         var oldValue = obj.oldState.val;
                                         if (getState('hm-rpc.0.JEQ0112571.1.WORKING').val == false) {
                                           Tilt_Liste.push((obj.state ? obj.state.ts : ""));
                                           while (true) {
                                             if ((obj.state ? obj.state.lc : "") - Beobachtungsdauer > Tilt_Liste[0]) {
                                               Tilt_Liste.shift();
                                             } else {
                                               break;
                                             }
                                           }
                                           Tilt_count = Tilt_Liste.length;
                                           Tilt_time = (obj.state ? obj.state.lc : "") - Tilt_zuletzt;
                                           if (Tilt_time < Tilt_min_time) {
                                             Tilt_min_time = Tilt_time;
                                           }
                                           Tilt_zuletzt = (obj.state ? obj.state.lc : "");
                                           Tilt_Time_median.push(Tilt_time);
                                           while (true) {
                                             if (Tilt_Time_median.length > Beobachtungsdauer / getState('hm-rpc.0.HEQ0105937.1.STATE').ts) {
                                               Tilt_Time_median.shift();
                                             } else {
                                               break;
                                             }
                                           }
                                           if (Tilt_time > Tilt_min_time) {
                                             if (Tilt_Time_median.length > 0) {
                                               Tilt_min_time = Math.round(Tilt_Time_median.reduce(function(x, y) {return x + y;}) / Tilt_Time_median.length);
                                             } else {
                                               Tilt_min_time = Math.round((Tilt_min_time + Tilt_time) / 3);
                                             }
                                           }
                                           console.log((['Wind registriert! Tilt-Sensor hat ',Tilt_count,' counts, kürzester Abstand ',Math.round((Tilt_min_time / 1000)*10)/10,'sec, die Beobachtung beträgt ',Beobachtungsdauer / 60000,' Min, mittlerer Wind ',Math.round(getState('hm-rega.0.12770').val*10)/10,' km/h'].join('')));
                                         }
                                        });
                                        

                                        Im Falls beim Gyrosensor habe ich jetzt auch noch auf ausgefahren geprüft. Das war während des logs noch nicht so

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

                                        @Homoran sagte:

                                        warum ist dann der Abstand 0 sekunden???

                                        ?? Was treibst Du in Zeilen 37 bis 43 ? Da musst Du wohl noch ein paar Debug-Blöcke einbauen um zu sehen, woher die 0 Sekunden kommen.
                                        Übrigens: runden(wert / 1000 * 10) / 10 = runden(wert / 100) / 10 (1 Nachkommastelle)

                                        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

                                        HomoranH 1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @Homoran sagte:

                                          warum ist dann der Abstand 0 sekunden???

                                          ?? Was treibst Du in Zeilen 37 bis 43 ? Da musst Du wohl noch ein paar Debug-Blöcke einbauen um zu sehen, woher die 0 Sekunden kommen.
                                          Übrigens: runden(wert / 1000 * 10) / 10 = runden(wert / 100) / 10 (1 Nachkommastelle)

                                          HomoranH Nicht stören
                                          HomoranH Nicht stören
                                          Homoran
                                          Global Moderator Administrators
                                          schrieb am zuletzt editiert von Homoran
                                          #23

                                          @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                                          Was treibst Du in Zeilen 37 bis 43

                                          Das ist mein Rücksetzen der minimalen Zeit auf einen halbwegs variablen Wert ;-)

                                          @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                                          Da musst Du wohl noch ein paar Debug-Blöcke einbauen um zu sehen, woher die 0 Sekunden kommen.

                                          Hatte ich schon wieder rausgenommen, nachdem es im normalen Betrieb alles passte.
                                          Die 0 ist jetzt erst im "Ruhezustand" aufgetreten.

                                          Dann setze ich die Blöcke wieder

                                          Danke!

                                          EDIT:

                                          @paul53 sagte in Blockly um Markise bei böigem Wind einzufahren:

                                          Übrigens: runden(wert / 1000 * 10) / 10 = runden(wert / 100) / 10 (1 Nachkommastelle)

                                          Das passiert wenn man mit Werten spielt und es so wächst :flushed:

                                          EDIT2:
                                          ich bin unschuldig ;-) sieht ganz harmlos aus:
                                          Runden.png

                                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                          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

                                          528

                                          Online

                                          32.7k

                                          Benutzer

                                          82.4k

                                          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