Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Wunschliste Blockly-Elemente

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wunschliste Blockly-Elemente

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

      @padrino Du kannst den Code auch in eine Funktion packen, dann musst nur die funktion davor nochmal triggern.
      Anderst lässt sich das meine ich auf die schnelle auch mit geändertem Blockly Code nicht lösen.

      1 Reply Last reply Reply Quote 0
      • dslraser
        dslraser Forum Testing Most Active @dslraser last edited by dslraser

        @thewhobox

        ich habe mal eine Frage....
        Ich benutze den Selector als Trigger, das funktioniert auch (siehe Fensterscript). Wenn ich jetzt einen zweiten Trigger, z.B. einen Sensorwert/Temperatur als Trigger dazu nehme kommt eine Fehlermeldung.
        Gehen nicht beide zusammen ?

        So funktioniert es:

        Bildschirmfoto 2019-04-28 um 22.16.04.png

        So kommt eine Fehlermeldung:

        Bildschirmfoto 2019-04-28 um 22.14.12.png

        Bildschirmfoto 2019-04-28 um 22.17.55.png

        Diese Stelle wird angemeckert ?

        on({id: new RegExp(Array\\.prototype\\.slice\\.apply\\($\\('channel\[state\\.id=*\\.STATE]\\(functions="Fenster"\\)'\\)\\) + "|" + 'hm-rpc\\.0\\.XXX\\.1\\.ACTUAL_TEMPERATURE'), change: "ne"}, function (obj) {
        
        thewhobox 1 Reply Last reply Reply Quote 0
        • thewhobox
          thewhobox @dslraser last edited by

          @dslraser Nein das funktioniert nicht. Wie auch im Javascript kannst du ENTWEDER:

          • ID als String
          • Regex
          • ID`s als Array angeben.

          Der Selektor liefert die schon ein Array zurück.
          Du müsstest also vorher iwie dem Array die einzelne Objekt ID hinzufügen.
          Wie das in Blockly geht weiß ich gerade nicht, in Javascript wäre es einfach:

          var selektorArray = Array.prototype.slice.apply($('channel[state.id=*.STATE](functions="Fenster");
          selektorArray.push("Temperatursensor_aussen.ACUTAL_TEMPTERATUR");
          on({id: selektorArray}, functionToDo);
          
          1 Reply Last reply Reply Quote 0
          • padrino
            padrino Most Active @darkiop last edited by

            @darkiop sagte in Wunschliste Blockly-Elemente:

            Noch ein Vorschlag:
            Rechte Maustaste auf ein Steuerungs/Aktualisierungs-Blockly --> Neuer Eintrag: Erzeuge Wert von Objekt, ggf. das selbe auch beim Erstellen DP-Erstellungs-Blockly.

            • Per Doppelklick auf ein Blockly: entfalten/zusammenfalten
            • Doppelklick mit gedrücker STRG: aktivieren/deaktivieren

            Ich vermute mal, solche Ideen müsstest/solltest Du auf github unter dem "original" Adapter posten, da das über "neue Blöcke" hinaus geht und wohl mehr bzw. anderer Programmierarbeit bedarf. 😃

            thewhobox 1 Reply Last reply Reply Quote 0
            • thewhobox
              thewhobox @padrino last edited by

              @padrino wie schon weiter oben iwo erwähnt, würde das Änderungen im originalen blockly Code erfordern, was heißt, dass mn die Änderungen bei jedem Update von blockly wieder neu einpflegen muss, oder man schreibt Google die Änderungen ^^

              1 Reply Last reply Reply Quote 0
              • padrino
                padrino Most Active last edited by

                Da ich es gerade auf Facebook gelesen habe 😇 und es mir so wieder in Erinnerung kam 😄
                Wäre es vielleicht möglich, dass man Variablen etc. für den Zeitwert in timeout/intervall blocklys verwenden könnte?

                D 1 Reply Last reply Reply Quote 1
                • D
                  darkiop Most Active @padrino last edited by

                  @padrino Offiziell ist das wohl nicht mehr Unterstützt - aber meiner Erfahrung nach funktioniert es wenn der Zeitwerk auf ms steht. Wenn du dir den JS-Code anschaust, sollte kein NaN an dieser stehen.

                  padrino 1 Reply Last reply Reply Quote 0
                  • D
                    darkiop Most Active last edited by

                    Ist das hier

                    https://forum.iobroker.net/topic/22109/gelöst-setstate-wiederholen-falls-nicht-erfolgreich-zigbee-lampe-schalten-ack/4

                    evtl. noch etwas fürs Blockly?

                    thewhobox 1 Reply Last reply Reply Quote 0
                    • thewhobox
                      thewhobox @darkiop last edited by

                      @darkiop sowas würde ich dann doch lieber in eine Funktion auslagern global, dann kann man sie einfach in jedem Skript verwenden.

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

                        @thewhobox sagte in Wunschliste Blockly-Elemente:

                        @darkiop sowas würde ich dann doch lieber in eine Funktion auslagern global, dann kann man sie einfach in jedem Skript verwenden.

                        Über Blockly kann man aber nicht auf globale Funktionen zugreifen.

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

                          @rantanplan Das wäre dann doch mal ein Vorschlag für einen neues Element.
                          Globale Funktionen aufrufen zu können.

                          Workaround wäre: In Blockly eine JS function erstellen die dann halt das globale Skript aufruft.

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

                            @thewhobox sagte in Wunschliste Blockly-Elemente:

                            @rantanplan Das wäre dann doch mal ein Vorschlag für einen neues Element.
                            Globale Funktionen aufrufen zu können.

                            Workaround wäre: In Blockly eine JS function erstellen die dann halt das globale Skript aufruft.

                            Man sollte das Klientel für Blockly nicht aus den Augen verlieren.
                            Das sind meistens Leute, die noch nie etwas mit Programmen zu tun hatten. Da sollten die Bausteine schon einfach gehalten werden. So etwas bedeutet für einen Baustein-Programmierer natürlich Mehraufwand☺
                            Es ist halt Blockly, gedacht für Leute die keine Programmiererfahrung haben und mal eben ein Script basteln wollen.

                            Homoran 1 Reply Last reply Reply Quote 1
                            • Homoran
                              Homoran Global Moderator Administrators @rantanplan last edited by

                              @rantanplan
                              Daran habe ich bei den ganzen neuen Bausteinen auch gedacht. Da habe ich mir die Frage gestellt:
                              Kann man bei solchen "Expertenbausteinen" nicht ein Icon oder die Farbe schraffiert (übertrieben!) an den Block basteln damit ein Einsteiger diese Blöcke erst einmal meidet?

                              iomountain thewhobox 2 Replies Last reply Reply Quote 2
                              • iomountain
                                iomountain @Homoran last edited by

                                @Homoran sagte in Wunschliste Blockly-Elemente:

                                Kann man bei solchen "Expertenbausteinen" nicht ein Icon oder die Farbe schraffiert (übertrieben!) an den Block basteln damit ein Einsteiger diese Blöcke erst einmal meidet?

                                Vielleicht als Download, um bei Bedarf die Expertenbausteine nachladen zu können.
                                Unter Variablen, Funktionen, dann Eigene Bausteine wo solche hinterlegt, bzw. nachgeladen werden können.

                                BBTown 1 Reply Last reply Reply Quote 0
                                • BBTown
                                  BBTown @iomountain last edited by BBTown

                                  @iomountain sagte in Wunschliste Blockly-Elemente:

                                  Vielleicht als Download, um bei Bedarf die Expertenbausteine nachladen zu können

                                  Da könntest Du aber eventuell Gefahr laufen, dass ein Experte jemandem bei eine Script hilft, und dieser die verwendeten Bausteine nicht finden kann?!?

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

                                    @BBTown Ja, die Gefahr besteht, ziemlich sicher sogar.

                                    1 Reply Last reply Reply Quote 0
                                    • padrino
                                      padrino Most Active @darkiop last edited by padrino

                                      @darkiop sagte in Wunschliste Blockly-Elemente:

                                      @padrino Offiziell ist das wohl nicht mehr Unterstützt - aber meiner Erfahrung nach funktioniert es wenn der Zeitwerk auf ms steht. Wenn du dir den JS-Code anschaust, sollte kein NaN an dieser stehen.

                                      Du meinst, das ging mal?

                                      Hab' mal in den Code geschaut, denke Du hast Recht, da ist keine Zauberei drin. 😉
                                      Aus dem

                                      timeout = setTimeout(function () {
                                      }, 1000);
                                      

                                      müsste sich doch gut ein

                                      var zeit, timeout;
                                      
                                      zeit = 5000;
                                      timeout = setTimeout(function () {
                                      }, zeit);
                                      

                                      machen lassen, oder? 🙂
                                      Vielleicht ja auch ein zusätzlicher Block, der fest auf "ms" steht, wegen der fehlenden Umrechnung? 🤔

                                      @thewhobox nicht interessant? 😉

                                      thewhobox D 2 Replies Last reply Reply Quote 1
                                      • thewhobox
                                        thewhobox @Homoran last edited by

                                        @Homoran Die Idee finde ich eig gar nicht mal schlecht. Man könnte aber statt andere Farbe vll einfach eine weiter Gruppe neben "Logik, Mathe" halt noch "Experte" oder so einfügen.

                                        Homoran 1 Reply Last reply Reply Quote 1
                                        • thewhobox
                                          thewhobox @padrino last edited by

                                          @padrino Für die Abwerstkompatibilität müsste man aber das in einen zweiten Baustein machen, oder komplizierter über eine Checkbox (was ich aber nicht wirklich gut finden würde)

                                          1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @thewhobox last edited by Homoran

                                            @thewhobox
                                            Ich weiß nicht ob das geht:

                                            in der Block-Auswahl eine horizontale Trennlinie?
                                            Oben BASIC
                                            Unten EXPERT

                                            Dann bleiben die Expertenblöcke wenigstens im richtigen Kontext

                                            Wenn möglich mit den Überschriften

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            545
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            40
                                            268
                                            38343
                                            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