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.
    • 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
                                          • D
                                            darkiop Most Active @padrino last edited by

                                            @padrino

                                            Hier mit dem Intervall, analog dazu funktioniert das mit timeout. Einfach den Namen der Variable in das Feld der Zeit schreiben:

                                            7284f19b-676c-4dc8-a34a-ec07ac9b3953-image.png

                                            ff7bce42-59fe-42e4-848e-76dd9f0576de-image.png

                                            Und hier mit dem Fehler wenn Sekunden oder Minuten verwendet werden:

                                            6f9ae549-07c4-42a0-a01e-7ed0cd1c409b-image.png

                                            Aber wie gesagt: Offiziell wird das nicht mehr unterstützt, so meine Erfahrung aus dem Forum. Solange es geht ist ja aber gut, sollte man nur wissen.

                                            padrino 1 Reply Last reply Reply Quote 2
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            676
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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