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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Wunschliste Blockly-Elemente

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

      @siggi85

      1. Ichweiß nicht ob ioBroker überhaupt Regex in den Subscriptions zu lässt (bis auf * glaube ich)
        Du könntest auch ein Schedule anlegen und dann mit dem Selector Block alle Battery States holen. Wie von iomountain hier beschrieben.

      2. Das wäreoft bestimmt erleichternd. Auch wenn man sich alle Battery States holt und dann den Namen dazu ausgeben möchte.
        Möglich ist das jetzt aber bestimmt auch. Man muss von der ID nach dem letzten Punkt alles entfernen.
        Aber kommt mal auf die Liste.

      Edit: ok zweiteres geht nicht, da man nicht an den Namen einer ObjectID kommt (zumindest hab ich nix gefunden).
      Werde es dann in zwei Elemente teilen: getParentId und getObjectFromID

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

        @thewhobox sagte:

        Ichweiß nicht ob ioBroker überhaupt Regex in den Subscriptions zu lässt

        Ja, Regex funktioniert in Subscriptions (s. Doku).

        Zu 2.

            return getObject(id.substring(0, id.lastIndexOf('.'))).common.name;
        
        thewhobox 1 Reply Last reply Reply Quote 0
        • thewhobox
          thewhobox @paul53 last edited by thewhobox

          @paul53 Okay danke für die Info mit den Subscriptions. Dachte geht nur der *.
          Heißt das müsste ja aber auch so schon funktionieren:
          57fe10b3-7562-4297-9a4a-22fcc01f123b-grafik.png

          Zu 2. Dass das so geht weiß ich, aber mit Blockly kann man das nicht realisieren, da es kein Blockly für "getObject" gibt. Richtig?

          paul53 dslraser 2 Replies Last reply Reply Quote 1
          • paul53
            paul53 @thewhobox last edited by paul53

            @thewhobox sagte:

            Heißt das müsste ja aber auch so schon funktionieren:

            Nein, das ist noch kein Regex, sondern ein String mit "*".

            @thewhobox sagte:

            da es kein Blockly für "getObject" gibt. Richtig?

            Richtig.

            Anmerkung: Blockly ist für Nicht-Programmier gedacht und ist deshalb im Umfang beschränkt. Ich halte es nicht für sinnvoll, so komplexe Funktionen in Blockly zu integrieren. Wer so etwas benötigt, sollte Javascript lernen und die Funktions-Dokumentation zum JS-Adapter lesen !

            siggi85 iomountain 2 Replies Last reply Reply Quote 2
            • dslraser
              dslraser Forum Testing Most Active @thewhobox last edited by dslraser

              @thewhobox
              @paul53

              ich versuche mich gerade am Fensterskript in Blockly. Beim öffnen eines Fensters bekomme ich schon mal alle Fenster mit Ihrem Status (0,1,2) im Log. Allerdings nicht die Namen sondern die ID.
              Kann ich das auch anders machen um die Namen zu bekommen ?

              Bildschirmfoto 2019-03-13 um 11.50.50.png

              Bildschirmfoto 2019-03-13 um 11.49.28.png

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @dslraser last edited by

                @dslraser Da getObject() nicht in Blockly vorhanden ist, geht dies nur mit einer eigenen Javascript-Funktion.

                1 Reply Last reply Reply Quote 1
                • siggi85
                  siggi85 @paul53 last edited by

                  Danke für den "ID from Selector" Block, den kannte ich noch nicht. Werde ich mal testen.

                  @paul53 sagte in Wunschliste Blockly-Elemente:

                  @thewhobox sagte:

                  Heißt das müsste ja aber auch so schon funktionieren:

                  Nein, das ist noch kein Regex, sondern ein String mit "*".

                  @thewhobox sagte:

                  da es kein Blockly für "getObject" gibt. Richtig?

                  Richtig.

                  Anmerkung: Blockly ist für Nicht-Programmier gedacht und ist deshalb im Umfang beschränkt. Ich halte es nicht für sinnvoll, so komplexe Funktionen in Blockly zu integrieren. Wer so etwas benötigt, sollte Javascript lernen und die Funktions-Dokumentation zum JS-Adapter lesen !

                  Im stimme da schon zu.
                  Da jedoch ein Device in ioBroker in der Ordnerstruktur fast immer als "Ordner" dargestellt wird, und die Attribute zu dem Device oft direkt darunter liegen (die alle einen eigenen Namen haben wie bspw. "Temperatur"), halte ich den Wert "Namen des übergeordneten Datenpunktes/Ordners" weiterhin für so nützlich, dass ich eine Nutzung in Blockly nicht als zu komplex einstufen würde. 🙂 Ich will damit sagen, dass ich nicht den kompletten Funktionsumfang von getObject brauche, aber diese eine Funktion fände ich schon sehr hilfreich.

                  paul53 1 Reply Last reply Reply Quote 2
                  • paul53
                    paul53 @siggi85 last edited by paul53

                    @siggi85 sagte:

                    aber diese eine Funktion fände ich schon sehr hilfreich.

                    Dann verwende eine eigene Funktion. Export:

                    <block xmlns="http://www.w3.org/1999/xhtml" type="procedures_defcustomreturn" id="!*N6;}kSECsPgA~=}mQv" x="138" y="88">
                      <mutation statements="false">
                        <arg name="id" varid="3Eu!3bSQeipPK#4r!G0o"></arg>
                      </mutation>
                      <field name="NAME">getParentName</field>
                      <field name="SCRIPT">aWYoZ2V0T2JqZWN0KGlkLnN1YnN0cmluZygwLCBpZC5sYXN0SW5kZXhPZignLicpKSkpIHJldHVybiBnZXRPYmplY3QoaWQuc3Vic3RyaW5nKDAsIGlkLmxhc3RJbmRleE9mKCcuJykpKS5jb21tb24ubmFtZTsNCmVsc2UgcmV0dXJuICdwYXJlbnQgaXMgbm90IGFuIG9iamVjdCAhJzs=</field>
                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                    </block>
                    

                    Blockly_getParentName.JPG

                    siggi85 1 Reply Last reply Reply Quote 3
                    • siggi85
                      siggi85 @paul53 last edited by

                      @paul53 sagte in Wunschliste Blockly-Elemente:

                      @siggi85 sagte:

                      aber diese eine Funktion fände ich schon sehr hilfreich.

                      Dann verwende eine eigene Funktion. Export:

                      <block xmlns="http://www.w3.org/1999/xhtml" type="procedures_defcustomreturn" id="!*N6;}kSECsPgA~=}mQv" x="138" y="88">
                        <mutation statements="false">
                          <arg name="id" varid="3Eu!3bSQeipPK#4r!G0o"></arg>
                        </mutation>
                        <field name="NAME">getParentName</field>
                        <field name="SCRIPT">aWYoZ2V0T2JqZWN0KGlkLnN1YnN0cmluZygwLCBpZC5sYXN0SW5kZXhPZignLicpKSkpIHJldHVybiBnZXRPYmplY3QoaWQuc3Vic3RyaW5nKDAsIGlkLmxhc3RJbmRleE9mKCcuJykpKS5jb21tb24ubmFtZTsNCmVsc2UgcmV0dXJuIG51bGw7</field>
                        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                      </block>
                      

                      Blockly_getParentName.JPG

                      Nach ein bisschen Testen hat es funktioniert. Danke! 🙂

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

                        @siggi85
                        zeig mal bitte wie Du es anwendest

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

                          @thewhobox sagte in Wunschliste Blockly-Elemente:

                          @iomountain Selector Blockly ist fertig 🙂 (Gibt alle IDs als Array zurück)
                          72f039d4-bf81-4751-8d0f-1aec5a64e7f3-image.png

                          Wie kann ich den nun nutzen? Scriptadapter aus "latest" installieren?

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

                            @dslraser sagte in Wunschliste Blockly-Elemente:

                            siggi85
                            zeig mal bitte wie Du es anwendest

                            Kein Problem.

                            getparentname.PNG

                            paul53 madjack84 2 Replies Last reply Reply Quote 1
                            • paul53
                              paul53 @siggi85 last edited by

                              @siggi85 Die Wandlung nach String ist unnötig, denn der Name ist immer ein String.

                              siggi85 1 Reply Last reply Reply Quote 1
                              • siggi85
                                siggi85 @paul53 last edited by

                                @paul53 Stimmt, funktioniert auch ohne.

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

                                  @siggi85 bisher kannst du ihn nur nutzen, wenn die ihn von meinem github installierst. https://github.com/thewhobox/ioBroker.javascript

                                  1 Reply Last reply Reply Quote 1
                                  • iomountain
                                    iomountain @paul53 last edited by

                                    @paul53 sagte in Wunschliste Blockly-Elemente:

                                    Anmerkung: Blockly ist für Nicht-Programmier gedacht und ist deshalb im Umfang beschränkt. Ich halte es nicht für sinnvoll, so komplexe Funktionen in Blockly zu integrieren. Wer so etwas benötigt, sollte Javascript lernen und die Funktions-Dokumentation zum JS-Adapter lesen !

                                    Ich kenne mich in JavaScript nicht wirklich aus, denke aber ich würde meine einfachen Blocky Sachen auch in Java Script hinbekommen. Aber dann läuft das und wenn ich dann in einem Jahr reinschaue um was anzupassen hab ich wieder alles vergessen und muss mich neu einarbeiten.
                                    Bei meinen einfachen Blockly Scripten erkenne ich auf Anhieb was sie machen ohne mich wieder groß einzuarbeiten.
                                    Deswegen: Danke für die Blöcke die es gibt.

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

                                      noch mal eine Frage zum Selctor Baustein.
                                      Mit diesem "Befehl" bekomme ich nun alle Zustände meiner Fenster im Log angezeigt.
                                      0 = geschlossen
                                      1 = kipp
                                      2 = offen
                                      (HMIP Drehgriffe)

                                      Wie kann ich nun mit Blockly z.B. zählen lassen wie viele Fenster es insgesamt gibt, oder wie viele Fenster offen oder gekippt sind ?
                                      Ich probiere schon eine ganze Weile mit den verfügbaren Bausteinen rum, aber ohne Erfolg. Braucht es dazu auch eine Funktion, oder wie stelle ich das mit Blockly an ?

                                      Bildschirmfoto 2019-03-15 um 20.05.37.png

                                      (ein anderes Problem ist das ich zwei Sorten Fensterkontakte habe, also normale optische HMIP
                                      0 = geschlossen
                                      1 = offen
                                      Bildschirmfoto 2019-03-15 um 20.02.24.png
                                      Bildschirmfoto 2019-03-15 um 20.01.06.png

                                      Drehgriffe
                                      0 = geschlossen
                                      1 = gekippt
                                      2 = offen
                                      Bildschirmfoto 2019-03-15 um 20.02.56.png
                                      Bildschirmfoto 2019-03-15 um 20.01.49.png

                                      das könnte man ja vielleicht über zwei Gewerke lösen ? z.B Fenster und Fenstergriff)

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

                                        @dslraser In Blockly kannst du variablen einfach um 1 erhöhen.
                                        38a1a24e-79d7-4ba3-9287-d2d4dae1f2ff-image.png
                                        Das machst du einmal für jede ID vom Selector (Anzahl gesamter Fenster) und einmal wenn der Wert = true/1/oder sonst was ist (Anzahl offener/gekippter Fenster).

                                        Ja das könntest du über zwei Gewerke lösen (dann auch zwei Selectoren). Ein anderer Weg fällt mir gerade auch nicht ein.

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

                                          Guten Morgen - schöne Sache das hier aktiv an Blockly weitergemacht wird.

                                          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.

                                          a5f64056-ceac-4f31-b90c-8024768f57ae-grafik.png

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

                                            Und gerade noch eine Idee bekommen:

                                            • Per Doppelklick auf ein Blockly: entfalten/zusammenfalten
                                            • Doppelklick mit gedrücker STRG: aktivieren/deaktivieren
                                            padrino 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            538
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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