Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [VORLAGE] Blockly Meldung wenn Waschmaschine fertig

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [VORLAGE] Blockly Meldung wenn Waschmaschine fertig

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

      @oberfragger Moin
      Setze mal ein Debug Baustein ein. Da kannst Du überprüfen ob die Steckdose überhaupt den Trigger auslöst.
      Sceen01.png

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

        @rantanplan Gute Idee. Ich bin mir da ja "sicher". Mal gucken was dann das Log sagt.

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

          @rantanplan Habs gefunden. Der Datenpunkt war da... allerdings weder true noch false. Habs dann mal manuella auf false gesetzt und schon funktionierte das Script sofort.

          Leider kommt die "fertig"-Meldung erst wenn die Waschmaschine per Hand ausgestellt wurde. Aber sind halt schon mal 50%. Mal gucken.

          1 Reply Last reply Reply Quote 0
          • S
            Superdad last edited by

            Hallo,

            habe das Script von @berndroid verwendet.
            Dort werden ja Variablen verwendet.

            So weit so gut.
            Variablen werden ja nicht angelegt bzw sichtbar.

            Wie muss ich es anstellen, wenn ich die Variablen auswerten möchte und z.Bsp. sichtbar machen möchte in VIS?

            1 Reply Last reply Reply Quote 0
            • X
              xbow42 last edited by xbow42

              Damit VIS auf die Werte aus Scriptvariablen zu geifen kann musst du dir unter ioBroker-Objekte eigene Datenpunte anlegen und die Werte der Variablen in den Datenpunkten abspeichern. Diese Datenpunkte kannst du dann in VIS auslesen & setzen falls nötig.

              S 1 Reply Last reply Reply Quote 0
              • S
                Superdad @xbow42 last edited by

                @xbow42 Danke!

                1 Reply Last reply Reply Quote 0
                • D
                  dehein2 last edited by dehein2

                  Hallo zusammen,

                  auch ich habe probiert dieses SCript zu verwenden, habe aber ein komisches Problem:

                  Die Erkennung des Starts funktioniert. Die Fertig erkennung jedoch nicht. Wenn der Wert < Grenzwert wird wird in einem Durchlauf der Timer immer einmal gestartet und gestoppt.

                  Und wenn ich die Funktion "CheckFertig" richtig verstehe wird doch der Timer in jedem Fall gestoppt wenn die funktion aufgerufen wird, oder? Das beudetet sie startet ja immer von vorne. Auch wenn der parameter "wahr" übergeben wird. Oder verstehe ich etwas falsch?

                  16:33:34.298	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: Timer WM stop
                  16:33:34.299	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: Timer WM start
                  16:33:34.300	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: WERT2
                  16:33:44.778	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: Timer WM stop
                  16:33:44.779	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: Timer WM start
                  16:33:44.780	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: WERT2
                  

                  f7311d28-b211-44fa-b351-f47914562e50-image.png

                  6dd9ad6a-088d-4c4a-a022-d45e1118ee02-image.png

                  Das Gesamte Scipt wird ja mehrmals pro Minnute durchlaufen und somit auch die Funktion "CheckFertig"...

                  Noch eine Frag zum Verständniss des Timers. Ist es so, dass der Timer immer die "gleiche" Variale ist. Also wenn der parameter wahr ist wird der timer gestartet und läuft so lange bis die funkion stop timout aufgerufen wird? Weil dann verstehe ich die funktio nicht. 😉

                  Danke

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

                    @dehein2
                    CheckFertig wird mehrmals aufgerufen. Wichtig ist dabei mit welchem Parameter.

                    Timer können mehrmals aufgerufen werden. Dabei werden jedesmal NEUE Timer gestartet, die parallel zu den Anderen laufen. Deshalb stoppt man vor einem erneuten Aufruf einen eventuell schon laufenden..

                    Wenn ein Timer gestoppt wird, werden die Bausteine in dem Timer NICHT ausgeführt.

                    Dein Problem wird wahrscheinlich der "GrenzWertInWatt" sein. 300 finde ich zu hoch.
                    Beobachte doch einfach mal die Werte wenn die Waschmaschine läuft.

                    1 Reply Last reply Reply Quote 0
                    • D
                      dehein2 last edited by

                      @rantanplan
                      Danke. Die Sache ist, dass selbst wenn die Maschine fertig ist und dauerhaft <5W braucht die Schleife ja immer mit dem befehl stop(timeout) gebinnt, oder? Und das obwohl die funktion immer mit dem parameter wahr aufgerunfen wird...

                      oder verstehe ich das falsch?

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

                        Also ich meine, und das sieht man im Log ja auch, es ist dann immer

                        stop(timeout) -> timout(60) -> stop (timeout)....

                        Daran, dass immer nur "Wert" auftaucht sieht man ja, dass die falls-Funktion das tut was sie soll, oder?

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

                          @dehein2 sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                          @rantanplan
                          Danke. Die Sache ist, dass selbst wenn die Maschine fertig ist und dauerhaft <5W braucht die Schleife ja immer mit dem befehl stop(timeout) gebinnt, oder? Und das obwohl die funktion immer mit dem parameter wahr aufgerunfen wird...

                          oder verstehe ich das falsch?

                          Das Script triggert "Power" auf Änderung. Jedes Mal wenn sich der Wert ändert, wird es durchlaufen.
                          Wie schon gesagt dient das "Stop timeout" zur Sicherheit.

                          Es sind zwei Bedingungen um "CheckFertig" mit "wahr" aufzurufen. Wenn das laufend aufgerufen wird, obwohl die Waschmaschine fertig ist, stimmt "WaschmaschineAn" nicht. Schau mal nach ob dort ein Wert eingetragen ist.
                          Wenn das Script zum ersten Mal gestartet wird, wird "WaschmaschineAN" zwar angelegt aber enthält KEINEN Wert.

                          Das Script ist schon etwas älter. Da gab es noch keinen "Init-Wert" bei "Datenpunkt erzeugen". Muss ich mal bei Gelegenheit anpassen.

                          Funktioniert das Script bei Dir nicht oder geht es nur um eine Verständnisfrage?

                          1 Reply Last reply Reply Quote 0
                          • D
                            dehein2 last edited by dehein2

                            Hi @rantanplan.

                            Danke. Nein es funktioniert leider nicht. Die Ini Werte habe ich gesetzt und die "an" erkennung funktioniert auch.

                            Im Prinzip durchläuft das script dies mehrmals pro minute, alle 2-3 Sekunden (halt immer wenn sich der POWER Wert ändert). Dies passiert wenn Power <300W ist (deutlich darunter):

                            16:33:34.298	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: Timer WM stop
                            
                            16:33:34.299	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: Timer WM start
                            
                            16:33:34.300	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: WERT2
                            
                            16:33:44.778	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: Timer WM stop
                            
                            16:33:44.779	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: Timer WM start
                            
                            16:33:44.780	info	javascript.0 (16094) script.js.Geräte.Waschmaschine: WERT2
                            

                            Dadurch wird der Timer natürlich immer wieder gestoppt.

                            Sorry, so ganz verstehe ich es immernoch nicht.
                            Das Hauptscirpt hat ja im Prinzip 2 Optionen dir alle paar Sekunden durchlaufen werden
                            A: Wert > GrenzWertInWatt -> checkfertig wird aufgerufen mit false -> es durchläuft nur stop(timeout)
                            B: Wert < GrenzWertInWatt && WaschmaschineAN=true ->checkfertig wird aufgerufen mit true -> es durchläuft erst stop(timeout) und dann Ausführen in 60 sek

                            Was ich nicht verstehe: (beispiel wie im code oben (Wert 2 ist Fall B))

                            Sek 1: A -> kein Timer
                            Sek 3 B -> Timer stop -> Timer start
                            Sek 5 B -> Timer stop - Timer start

                            Irgendwie wird der timer ja IMMER gestoppt, oder?

                            DANKE!

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

                              @dehein2 sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                              Hi @rantanplan.

                              Danke. Nein es funktioniert leider nicht. Die Ini Werte habe ich gesetzt und die "an" erkennung funktioniert auch.

                              Im Prinzip durchläuft das script dies mehrmals pro minute, alle 2-3 Sekunden (halt immer wenn sich der POWER Wert ändert). Dies passiert wenn Power <300W ist (deutlich darunter):

                              Was benutzt Du denn für einen Stecker? Änderungen alle 2-3 Sekunden? Das ist happig. Wie sieht denn da Dein DutyCycle aus?
                              Da müsstest Du Dir eventuell einen "Puffer" einbauen. Ähnlich so wie ich am Anfang auf "0" prüfe.

                              Falls "vorheriger Wert" > "vorheriger Wert" + "x" ODER "vorheriger Wert" < "vorheriger Wert" - "y"

                              Irgendwie wird der timer ja IMMER gestoppt, oder?

                              Ja. In Deinem Fall ist das auch gut so. Sonst hättest Du in kürzester Zeit 1000sende Timer am Laufen und ioBroker würde einfrieren.

                              Ich würde mir einen anderen Stecker besorgen.

                              1 Reply Last reply Reply Quote 0
                              • D
                                dehein2 last edited by

                                @rantanplan
                                Das ist ein Shelly PlugS. Vielliecht sind es auch 10sek 😉 Aber ist das wirklich so relevant. Selbst wenn der Wert nur alle 30sek neu käme würde es ja nicht klappen oder?

                                Dann würde ja trotzdem nach 30 sek obwohl der wert < 300W sit Option B durchlaufen und der Timer gestoppt. Oder stehe ich total auf dem Schlauch? 😉

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

                                  @dehein2 sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                                  @rantanplan
                                  Das ist ein Shelly PlugS. Vielliecht sind es auch 10sek 😉 Aber ist das wirklich so relevant. Selbst wenn der Wert nur alle 30sek neu käme würde es ja nicht klappen oder?

                                  Dann würde ja trotzdem nach 30 sek obwohl der wert < 300W sit Option B durchlaufen und der Timer gestoppt. Oder stehe ich total auf dem Schlauch? 😉

                                  Alles ein Zeitproblem. Wenn ein Timer nach 40 Sek. etwas machen soll, sich aber alle 10 bis 30 Sek. etwas ändert funktioniert das nicht. Dafür ist das Script in der Form nicht geeignet.
                                  Endweder anderer Stecker oder Script mit mit "Puffer" anpassen.

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    dehein2 last edited by

                                    @rantanplan : spricht denn etwas dagegen den Stop timeout" auf in eine if Abfrage zu packen und nur zu durchlaufen wenn der wert false übergeben wird? Dann hätte ich wahrscheinlich das Problem, dass der Timer x mal gestartet wird, oder?

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

                                      @dehein2 sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                                      @rantanplan : spricht denn etwas dagegen den Stop timeout" auf in eine if Abfrage zu packen und nur zu durchlaufen
                                      wenn der wert false übergeben wird? Dann hätte ich wahrscheinlich das Problem, dass der Timer x mal gestartet wird, oder?

                                      Der Timer ist schon wichtig und richtig. Sonst kann man die Waschfunktionen (Richtungswechsel, Änderung Waschprogramm usw.) nicht richtig überwachen.
                                      Das Script ist schon älter und wird von mir und etlichen anderen Usern fehlerfrei eingesetzt,

                                      Deine schnellen Änderungen sind nicht normal.
                                      Diese müsstest Du mal überwachen und feststellen was sich um wieviel ändert. Das kann nicht viel sein.
                                      Ich sehe nur eine Chance in dem von mir beschriebenen "Puffer".
                                      Etwa so
                                      Beispiel.PNG

                                      Ausprobieren kannst nur Du das.

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        dehein2 last edited by

                                        @rantanplan
                                        Danke. Das werde ich nächste Woche mal testen

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          dehein2 last edited by

                                          @rantanplan
                                          Danke nochmal. Ich habe es nun etwas anders probiert.
                                          Und zwar habe ich eine 2. Variable eingeführt die den Status des Timers enthält. Also Timer läuft und timer läuft nicht. Passend dazu habe in der CheckFertig dann die if-Abfrage erweitert. Außerdem habe ich einen Grenzwert für Einschalterkennung und einen anderen Grenzwert für die Ausschalterkennung eingebaut.

                                          Bei den erstem 3 tests hat es gut geklappt. Mal schauen wie es mit unterschiedlichen Wasch-/Trocken-Programmen aussieht.

                                          VG

                                          773c4ec6-e322-4610-8eae-d610b898c933-image.png

                                          3c47afa9-6800-4880-867d-c2fbbc794ee5-image.png

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            Master-Rudi @dslraser last edited by Negalein

                                            @dslraser said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                                            @Vazi
                                            dieser "erste Block" erstellt den nötigen Datenpunkt, der hat sich in der Zwischenzeit geändert. Bei Dir fehlen die Werte in Common und event. wie er initialisiert werden soll.

                                            @Vazi said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:

                                            Hallo Leute

                                            Habe Script erfolggreich inportiert, beim Test bekomme ich jedoch die FM: "Deiser Block ist mit anderen nicht richig verbunden".

                                            Ich habe leider genau das Gleiche Problem. An sich scheint alles zu passen, aber irgendwie läuft das Skript nicht los.
                                            Wie muss ich denn die Werte in common und event anpassen und welche müssen da rein!

                                            Danke für die Hilfe

                                            Mod-Edit: Vollzitat gekürzt! Bitte vermeidet Vollzitate! Siehe Forum Regeln, Punkt 2

                                            dslraser rantanplan 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            831
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly template
                                            59
                                            242
                                            59189
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo