Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Xiaomi Mi Smartswitch funktioniert nur sporadisch in Blockly

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Xiaomi Mi Smartswitch funktioniert nur sporadisch in Blockly

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

      Hallo,
      ich versuche gerade mit Blockly einen Xiaomi Smartswitch (rund) dafür zu benutzen via Single Click einen Fritz Dect 200 zu schalten.

      Leider funktioniert das nur sporadisch. Ein Muster kann ich nicht feststellen.
      Ich bin nach den Beispielen in den Foren davon ausgegangen, dass dies relativ einfach ist und prinzipiell funktioniert.

      Woran kanns liegen? Habe schon einiges versucht (Verzögerung usw)
      blockly1.png

      so ist es urpsrünglich gewesen

      blockly2.png

      Freue mich auf eine angeregte Diskussion

      Nils

      rantanplan 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer last edited by

        Versuch mal dieses hier:

        Screen Shot 2019-04-03 at 21.59.02 .png

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

          Guten Morgen,
          habe das heute morgen mal kurz probiert vor der Arbeit aber offenbar hat es nicht funktioniert.

          Ich habe den Eindruck,dass der Tastendruck meist nicht vom ioBroker registriert wird.

          In der Xiaomi App wir er erkannt und auch im Log verbucht.

          Ich habe die Xiaomi Sensoren alle über das "MiHome" Objekt eingebunden.

          Grundsätzlich würde es mich ja nicht wundern, wenn der Button prinzipiell zu "schnell" klickt aber für andere macht das hier ja keine Probleme.

          Ich fange gerade erst mit iobroker an und kann nicht ausschließen, dass ich was falsch mache.

          Nils

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

            @jmeister79
            Sind die beiden Trigger zur gleichen Zeit aktiv?
            Sehe gerade das sind ja sogar 3 Trigger und dann noch Trigger in Trigger.
            Das kann nicht funktionieren.

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

              Hi,

              Das sind zwei screenshots.

              Habe zwei unterschiedliche Ansätze versucht.

              Nils

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

                @jmeister79 sagte in Xiaomi Mi Smartswitch funktioniert nur sporadisch in Blockly:

                Habe zwei unterschiedliche Ansätze versucht.

                Ok, also die Version mit Trigger in Trigger kannst Du schonmal vergessen.
                Was ist "Simple click" für ein Datenpunkt?

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

                  @rantanplan
                  Danke das hab ich mi gedacht.

                  Also Simple Click ist der Datenpunkt des Tasters.
                  Der Hat Simple Click, Long Click und Double Click.
                  Alle haben das gleiche unzuverlässige verhalten in meinem Script.

                  ID: click
                  Name: Simple click
                  state: state
                  Rolle: button
                  Raum: Hobbyraum
                  Wert: false

                  Brauchst du mehr infos?
                  Ich denke die ganze Zeit daran, dass das signal evtl so kurz ist, dass ioBroker das garnicht mitbekommt wenn sich der zustand kurz ändert, das scheint das sporadische verhalten zu erklären. also müsste ich die abtastrate des mi home objektes erhöhen

                  Gruß
                  Nils

                  rantanplan 1 Reply Last reply Reply Quote 0
                  • jmeister79
                    jmeister79 last edited by

                    nochmal ganz blöd gefragt, woran erkenne ich ob das skript richtig läuft?

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

                      @jmeister79 sagte in Xiaomi Mi Smartswitch funktioniert nur sporadisch in Blockly:

                      nochmal ganz blöd gefragt, woran erkenne ich ob das skript richtig läuft?

                      Schau Dir mal den "debug output" Baustein an. Damit schreibst Du ins Log und kannst Informationen mitgeben.
                      Einer der wichtigsten Bausteine in Blockly!

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

                        @jmeister79 sagte in Xiaomi Mi Smartswitch funktioniert nur sporadisch in Blockly:

                        Also Simple Click ist der Datenpunkt des Tasters.
                        Der Hat Simple Click, Long Click und Double Click.
                        Alle haben das gleiche unzuverlässige verhalten in meinem Script.

                        Taster sind immer so eine Sache.
                        Du musst wissen, wie Dein Taster reagiert. Suche die Datenpunkte in "Objekte" und schau Dir dort an was passiert wenn Du den Taster betätigst. Es gibt welche, die gehen wieder von "true" auf "false" und andere die bleiben auf "true".
                        Endsprechend musst Du Deinen Trigger anpassen.

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

                          @rantanplan
                          wenn ich debug output oben drüber hänge, kommt das dann zyklisch oder einmalig?

                          bei mir kommt es einmalig.
                          hätte jetzt zyklisch im log erwartet.

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

                            @jmeister79 sagte in Xiaomi Mi Smartswitch funktioniert nur sporadisch in Blockly:

                            @rantanplan
                            wenn ich debug output oben drüber hänge, kommt das dann zyklisch oder einmalig?

                            bei mir kommt es einmalig.
                            hätte jetzt zyklisch im log erwartet.

                            Alles was außerhalb eines Triggers ist, wird nur einmalig bei Scriptstart ausgeführt.
                            Der sollte also schon innerhalb des Triggers sein.

                            z.B. am Anfang "debug output Hey ich habe getriggert aktuelle Zeit ist xx:xx Triggerwert ist abcd.
                            Innerhalb einer Bedingung "debug output Bedingung xy erfüllt"

                            Der sollte schon an den Punkten stehen, mit denen man den Programmablauf kontrollieren kann.
                            Und dann mit aussagefähigen Informationen. Sonst macht es keinen Sinn.

                            Ich gebe zu der Information immer noch "" mit. Also " Hey ich habe getriggert.......".
                            Wenn ich dann unter Log den Filter mit "***" setzte, bekomme ich nur meine Infos angezeigt und kann eine Langzeitbeobachtung machen.
                            Wenn das Script fehlerfrei läuft, kann man die Bausteine deaktivieren.

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

                              danke dir, soweit laufen meine skripte alle.
                              aber es liegt wohl daran, dass der schalterzustand wohl so übersehen wird.

                              Werde mich heute abend nochmal intensiver dran setzen

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

                                @jmeister79 sagte in Xiaomi Mi Smartswitch funktioniert nur sporadisch in Blockly:

                                aber es liegt wohl daran, dass der schalterzustand wohl so übersehen wird.

                                Kann ich mir nicht vorstellen. Wahrscheinlich triggerst Du den falschen Datenpunkt oder triggerst falsch.

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

                                  Ich musste den Adapter für MiHome neu starten und jetzt funktioniert er viel zuverlässiger, aber oft auch nicht oder stark verzögert. Werde versuchen die Xiaomi Geräte über Zigbee einzubinden.

                                  Danke für Eure Tipps.

                                  Nils

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

                                    Ok, jetzt langsam komm ich auf touren.
                                    Habe nochmal ne Frage zu den Triggern:

                                    Ein Blockly PRogramm läuft ja per se nur einmal nach Start durch wie ich das jetzt verstehe.

                                    Wie genau funktionieren da die Trigger? Kann ich auch auf Logik triggern oder nur auf Systemobjekte?
                                    Wenn ich mir zB eine Boolsche Variable in Javascript anlege und auf WAHR triggere, läuft das dann einmal (also steigende Flanke) oder solange sie WAHR ist.
                                    Das ist alles etwas schwammig.

                                    Nils

                                    Asgothian 1 Reply Last reply Reply Quote 0
                                    • Asgothian
                                      Asgothian Developer @jmeister79 last edited by

                                      @jmeister79 sagte in Xiaomi Mi Smartswitch funktioniert nur sporadisch in Blockly:

                                      Ok, jetzt langsam komm ich auf touren.
                                      Habe nochmal ne Frage zu den Triggern:

                                      Ein Blockly PRogramm läuft ja per se nur einmal nach Start durch wie ich das jetzt verstehe.

                                      Wie genau funktionieren da die Trigger? Kann ich auch auf Logik triggern oder nur auf Systemobjekte?
                                      Wenn ich mir zB eine Boolsche Variable in Javascript anlege und auf WAHR triggere, läuft das dann einmal (also steigende Flanke) oder solange sie WAHR ist.
                                      Das ist alles etwas schwammig.

                                      Nils

                                      Das ist eigentlich ganz einfach. Triggern kannst du nur auf Datenpunkte im Objektbaum, nicht auf variablen die du im Script angelegt hast.
                                      Die Datenpunkte im Objektbaum werden von den verschiedenen Quellen verändert oder aktualisiert. Wenn keine weiteren Bedingungen angegeben sind dann wird der trigger immer aktiviert wenn ein Objekt aktualisiert wurde.

                                      Es gibt dabei prinzipiell 2 Arten von Bedingungen.

                                      • die die auf den Wert des Objektes abzielen, sprich die nur triggern wenn der Wert nach der Aktualisierung einen bestimmten Wert hat
                                      • die die auf das "acknowledge" achten, sprich ob der Wert nur gesetzt oder gesetzt und bestätigt wurde.

                                      Auf variablen die du in Blockly's als "variable" anlegst kannst du nicht Triggern, die kannst du nur abfragen.

                                      ich hoffe der Schwamm wird etwas fester 🙂

                                      A.

                                      jmeister79 1 Reply Last reply Reply Quote 0
                                      • jmeister79
                                        jmeister79 @Asgothian last edited by

                                        @Asgothian Danke dir für die tolle Erklärung.

                                        Das habe ich mir fast gedacht, dass es mit der aktualisierung zusammenhängt. Man sieht in manchen tutorials, dass explizit darauf getriggert wurde. Und dann darunter nochmal auf WAHR FALSCH abgefragt wurde.

                                        Nocheinmal zum genauen Verständnis, der Code wird dann nach Aktualisierung auch nur einmal durchlaufen also wie eine positive Flankenerkennung

                                        Ich denke ichw erde zukünftig direkt codieren, blockly ist für den Eisntig ganz nett aber sobald es komplizierter wird führ ich mich anderswo wohler.
                                        In meinem Fall hab ich die Variablen als Objekte definiert.

                                        Ich versuche gerade in meinem Hobbyraum mittels des Türsensors und eines Bewegungsmelders eine Anwesenheitserkennung zu realisieren um Vitrinenbeleuchtung und Luftentfeuchter zu steuern, da ist das mit der Ausschaltverzögerung in Blockly für mich irgendwie nicht realisierbar. Habe mir jetzt mir der CRON Lösung geholfen, geht ist aber nicht sehr sauber, hätte da lieber n Countdown der durch Bewegung immer wieder von vorne gestartet wird. Leider klappt des aber nicht. Ist aber auch ein anderes Thema.
                                        Ich denke dies hier ist gelöst.

                                        Letztendlich kann man aber sagen, dass der Mihome Kram etwas launisch ist was die Weitergabe von Aktualisierungen angeht, das scheint manchmal mit dem Wetter zwischen China und hier zusammen zu hängen.
                                        Das ist bei allen Sensoren so, manchmal reagieren sie sofort, manchmal gar nicht, manchmal verzögert. Darum will ich Zigbee versuchen

                                        Asgothian 1 Reply Last reply Reply Quote 0
                                        • Asgothian
                                          Asgothian Developer @jmeister79 last edited by

                                          @jmeister79 sagte in Xiaomi Mi Smartswitch funktioniert nur sporadisch in Blockly:

                                          Ich versuche gerade in meinem Hobbyraum mittels des Türsensors und eines Bewegungsmelders eine Anwesenheitserkennung zu realisieren um Vitrinenbeleuchtung und Luftentfeuchter zu steuern, da ist das mit der Ausschaltverzögerung in Blockly für mich irgendwie nicht realisierbar.

                                          Das sollte im Blockly recht problemlos gehen. Der Schlüsselbegriff dazu ist "timeout". Dazu gibt es extra Blockly Elemente. Der Übliche weg ist:

                                          • Event triggern
                                          • Aktoren einschalten
                                          • nachschauen ob es schon einen (benannten) timeout gibt, wenn ja, anhalten
                                          • (benannten) timeout setzen, wann wieder abgeschaltet werden soll

                                          Ich bin grad im Büro und kann da kein Blockly zusammen bauen.

                                          Der Punkt "Schalten mit Verzögerung" ist nur dann sinnvoll, wenn die Aktion auf jeden Fall passieren muss. (Bsp. Rollo hoch - Aktor anschalten, Aktor ausschalten mit 5 sek. Verzögerung)

                                          Mit Zigbee hab ich gute Erfahrungen gemacht. Ich hab einiges an Xiaomi Sensoren im Einsatz due stabil laufen.

                                          A.

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

                                            Guten morgen,

                                            danke für den hinweis, ichw erde das mal ausprobieren, bin neulich etwas daran verzweifelt weil ich das in blockly nicht sooo gazn verstehe.

                                            Ich habe es jetzt erstmal durch eine Besonderheit im Xiaomi Bewegungsmelder gelöst. Der hat eine Variable die die Zeit seit der letzten Bewegung bis 600s hochzählt.
                                            Die tut ja genau das was ich suche. Da spare ich mir den Timer.

                                            Ich werde bei Gelegenheit mal das Blockly vorstellen, finde es ganz spannend. Habe noch Handmodes für den Entfeuchter eingebaut usw.

                                            Nils

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            901
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            20
                                            799
                                            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