Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    blockly eleganter machen

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

      Hi,

      hat vielleicht jemand eine Info für mich, ob das eleganter mit einer Schleife, Liste etc. zu handeln ist. meine Script werden immer länger und wiederholen sich dabei mehr oder weniger x-mal.

      in dem Blockly prüfe ich ob meine Shelly online sind.
      ich trägere auf jeden Shelly und reagiere dann immer im gleichen Format, zähle den Wert hoch und schreibe den Namen auf und das ganze bald -> 20x

      Bildschirmfoto 2021-01-03 um 01.12.23.png

      wie kann ich dass den "variabler/flexiler" gestalten. Am liebsten würde ich sagen, ab hier

      shelly.0
      

      und alles was da drunter ist.

      ich hab jetzt nach schleifen und Listen gegoogelt, aber die Beispiele kann ich irgendwie nicht mit meiner Anforderung abbilden...

      Bin für "Nachhilfe" sehr dankbar.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @dos1973 last edited by mickym

        @dos1973

        Ich nutze zwar kein blockly sondern Node-Red - aber in diesem Fall ist die Logik Maschine leider nicht die Wurzel des Übels. (Du kannst zwar wie unten beschrieben eine Liste in einem eigen Datenpunkt definieren und dann via Schleife in einem Blockly durchgehen, aber schöner wäre es wenn man mit Wildcards arbeiten könnte).

        Im Prinzip hat iobroker das Problem, dass Du wahrscheinlich mit blockly und auch mit den Node-Red iobroker Nodes immer nur einzelne Nodes abfragen kannst.

        Ich habe das im Forum schon mal versucht zu thematisieren: https://forum.iobroker.net/topic/36470/node-red-und-iobroker-mqtt-watch-dog-funktion/2

        Das Problem ist, dass Du weder mit Blockly (???? da kenn ich mich zu wenig aus) noch mit Node-Red mit Wildcards als Trigger arbeiten kannst. Falls Du mit Blockly mit Wildcards arbeiten kannst - wäre das die eleganteste Lösung.

        Da ich mich mit blockly aber nicht auskenne, habe ich mir mit mqtt beholfen und überwache so meine Shellies .
        Über mqtt überwache ich alle Shellies mit dem Pfad: shellies/+/online also einem einzigen Befehl.

        Sollte also nur ein Shelly seinen Status ändern wird ein trigger erzeugt.

        screen.png

        So eine Watch-Dog Funktion gibt es aber mE in iobroker leider (noch 😉 ) nicht, um mit mehreren Datenpunkten aufeinmal einen Trigger auszulösen. Oder geht das mit Blockly????
        Falls nicht kann man ggf. einen mqtt broker zu nutzen und falls Du den Shelly Adapter nutzt diese Werte an einen mqtt broker weitergibst oder eben direkt auf mqtt switchst.
        Das macht aber auch nur Sinn, wenn man dann wiederum mit Blockly direkt auf einen mqtt-Broker zugreifen kann.?

        So habe ich mir dann eine Übersicht über Status und die wichtigsten Befehle in meinem persönlichen View zu den Shellies zusammengestellt.

        screen.png

        Nach der IP-Adresse haben die Symbole folgende Bedeutung:
        1- eventuelles Firmware Update
        2- Neustart des Shellies
        3- Öffnen des Shellies im Browser
        4- Status Ein/Ausgeschaltet
        5- Offline oder Online (Linkstatus)

        Diese anderen Parameter habe ich aber nur dadurch erreicht in dem ich mir zu den Schaltern eine eigene Alias Struktur gebildet habe, die sofern es die Infos der Hersteller hergeben. Soweit ich Dich aber verstanden habe, ist der Link-Status (rot markiert) das, was Dich interessiert.


        Im Prinzip kannst Du natürlich auch einen Datenpunkt unter userdata als Objekt/Liste definieren und den dann mit einer Schleife durchzählen. Ist immerhin eine Abhilfe - aber schön ist halt anders. 😉

        A Meister Mopper 2 Replies Last reply Reply Quote 0
        • A
          Ahnungsbefreit @mickym last edited by

          @mickym @dos1973 Blockly beherrscht das Triggern auf "Wildcards" über den "ID von Selektor $" Baustein. Ich bin gerade am Handy und habe mir das konkrete Beispiel von @dos1973 noch nicht angesehen aber die Aussage von @mickym ist so nicht richtig. Die Suche hier im Forum hilft da bestimmt weiter...

          mickym 1 Reply Last reply Reply Quote 0
          • Meister Mopper
            Meister Mopper @mickym last edited by

            @mickym Hm, ich sehe da einen Shelly mit gleicher IP und verschiedenen Namen. Kommt das durch Alias?


            c7b9bf93-07b9-4b17-9cf0-60413a4d372c-grafik.png

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @Meister Mopper last edited by

              @Meister-Mopper Nein das ist ein Shelly 2.5 - das ist ein Gerät mit 2 Kanälen. Deshalb gleiche IP.

              1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Ahnungsbefreit last edited by mickym

                @Ahnungsbefreit Na super - dann wäre das aber doch die Lösung - wenn Blockly mit Wildcards arbeiten kann und Du anhand des konkreten Pfades dann analysierst von welchem Gerät eine Meldung kommt. Eventuell braucht man dann eine Liste nur noch zu Initialisierung - aber man triggert nicht mehr auf Zeit, was auch resourcenschonender ist.

                A 1 Reply Last reply Reply Quote 0
                • A
                  Ahnungsbefreit @mickym last edited by

                  @mickym @dos1973 ich nutze keine Shellys deswegen kenne ich die Objektstruktur nicht aber ich stelle mir das etwa so vor:

                  215449de-01aa-4997-976f-782d3a84e787-image.png

                  Der Selektor muss bestimmt noch angepasst werden, habe mir das aus dem Screenshot zusammengesponnen...

                  mickym D 3 Replies Last reply Reply Quote 3
                  • mickym
                    mickym Most Active @Ahnungsbefreit last edited by mickym

                    @Ahnungsbefreit Ja genau - so meinte ich das. Mein Screenshot kannst nicht verwenden, da kein Shelly Adapter - aber das Prinzip ist genauso wie Du beschrieben hast und meines Erachtens umgesetzt hast. Die Frage ist quasi nur noch, ob man die Schleife zu initialisierung einmal vorher durchlaufen lässt für eine ggf. vorhandene visualisierung, aber das muss @dos1973 selbst beantworten.

                    1 Reply Last reply Reply Quote 0
                    • D
                      dos1973 @Ahnungsbefreit last edited by

                      @Ahnungsbefreit
                      ich probiere das gleich mal aus...

                      1 Reply Last reply Reply Quote 0
                      • D
                        dos1973 @Ahnungsbefreit last edited by

                        @Ahnungsbefreit

                        ich habe das mal nachgebaut

                        Bildschirmfoto 2021-01-03 um 12.58.16.png

                        12:57:54.260	info	javascript.0 (457) script.js.1_Überwachung_Wohnung.shelly_test: ID: ist offline
                        
                        

                        aber die "ID" wird nicht aufgelöst?

                        A 1 Reply Last reply Reply Quote 0
                        • A
                          Ahnungsbefreit @dos1973 last edited by

                          @dos1973 "varShellyID" und "varWert" sind falsch. Geh auf "Trigger", da gibt es den roten kleinen Block "ObjectID" und wenn Du auf den Pfeil klickst, kommen mehr Optionen:

                          4e4d65c2-4bf0-496c-af36-777b79be0be3-image.png

                          David G. D 2 Replies Last reply Reply Quote 1
                          • David G.
                            David G. @Ahnungsbefreit last edited by

                            @Ahnungsbefreit

                            Das ist ja sehr praktisch.
                            So könnte ich doch dann auch die Batteriezustände aller HomematicIP Geräte auf einmal überwachen oder?

                            A 1 Reply Last reply Reply Quote 0
                            • D
                              dos1973 @Ahnungsbefreit last edited by

                              @Ahnungsbefreit

                              ahh ok, habs, dachte das wären variablen.
                              das ist schonmal richtig cool 😉

                              13:08:41.243	info	javascript.0 (457) script.js.1_Überwachung_Wohnung.shelly_test: ID: shelly.0.SHPLG-S#020570#1.online ist online
                              

                              aber wie kann ich dem denn jetzt den Namen zuordnen?
                              Bildschirmfoto 2021-01-03 um 13.11.38.png

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                Ahnungsbefreit @David G. last edited by

                                @David-G Ja klar! Wobei es für diesen Zweck schon ein fertiges Script hier im Forum gibt, das nicht nur mit Homematic arbeitet und das Ergebnis auch visualisiert. Einfach mal nach Batterie Script suchen...

                                A David G. 2 Replies Last reply Reply Quote 0
                                • A
                                  Ahnungsbefreit @dos1973 last edited by

                                  @dos1973 Probier mal so:

                                  09a4223f-1e04-409a-95db-1a3251b7b8dc-image.png oder evtl. ein anderer Eintrag aus dem Menü, einfach mal versuchen...

                                  D 1 Reply Last reply Reply Quote 0
                                  • A
                                    Ahnungsbefreit @Ahnungsbefreit last edited by

                                    @David-G das hier: https://forum.iobroker.net/topic/31676/vorlage-generische-batteriestandsüberwachung-vis-ausgabe

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      dos1973 @Ahnungsbefreit last edited by

                                      @Ahnungsbefreit

                                      mit "KanalName" gehts.

                                      javascript.0 (457) script.js.1_Überwachung_Wohnung.shelly_test: ID: PlugS-Föhn ist online
                                      
                                      
                                      A 1 Reply Last reply Reply Quote 0
                                      • A
                                        Ahnungsbefreit @dos1973 last edited by

                                        @dos1973 Sehr schön, also ist Blockly doch nicht so unelegant 🙂

                                        Wenn ich Dir helfen konnte, darfst Du meinen Lösungsvorschlag gerne über die kleinen Pfeile rechts unten "upvoten"...

                                        D mickym 2 Replies Last reply Reply Quote 0
                                        • D
                                          dos1973 @Ahnungsbefreit last edited by

                                          @Ahnungsbefreit

                                          Danke Dir!
                                          bin begeistert... ich bau mal mein Script von gestern mit den 20 fachen Wiederholung um... Ich komme bestimmt nochmal

                                          1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @Ahnungsbefreit last edited by mickym

                                            @Ahnungsbefreit sagte in blockly eleganter machen:

                                            @dos1973 Sehr schön, also ist Blockly doch nicht so unelegant 🙂

                                            Habe ich ja nicht behauptet - hab gesagt, dass ich mich mit Blockly nicht auskenne - aber halt mit anderen Mitteln so einen Lösungsansatz gewählt habe. 😉 . Aber ist doch super, wie Du hier mit dem Lösungsansatz das Ganze in die richtigen Bahnen gelenkt hast. Vielen Dank auch von mir!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            918
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            5
                                            72
                                            4359
                                            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