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 Selektor u. Aufzählungen Geräte zählen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly Selektor u. Aufzählungen Geräte zählen

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

      @dslraser meinst du so
      fehler.png
      dann kommt folgender Fehler und anzeigen tut er auch nix
      log.png

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

        @Icube
        Ändere Zeile 4 in der Javascript-Funktion in

        return devicename;
        

        oder mach einen 2-Zeiler draus:

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

          @paul53 ja jetzt klappt es danke
          richtig.png

          1 Reply Last reply Reply Quote 1
          • C
            Conquest @dslraser last edited by

            @dslraser
            Ja genau so habe ich es gemeint.
            Bekomme allerdings noch eine Warnung im Log:

            javascript.3	2020-01-31 15:36:11.067	warn	(24179) script.js.Alexa.Alexa_Lichtansage: Das angesprochene Gerät unterstützt kein ssml oder speak-volume !
            
            dslraser 1 Reply Last reply Reply Quote 0
            • dslraser
              dslraser Forum Testing Most Active @Conquest last edited by

              @Conquest
              auf was für einem Gerät soll die Ansage kommen ? Und kommt denn eine Ansage ?

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

                @dslraser sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:

                @Conquest
                auf was für einem Gerät soll die Ansage kommen ? Und kommt denn eine Ansage ?

                Auf einem Amazon Echo. Ob eine Ansage kommt kann ich nicht sagen bin momentan nicht zu Hause. Der Fehler kam direkt nach Scriptstart.

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

                  @Conquest sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:

                  Auf einem Amazon Echo. Ob eine Ansage kommt kann ich nicht sagen bin momentan nicht zu Hause. Der Fehler kam direkt nach Scriptstart.

                  Okay, das mit dem Scriptstart könnte sein, weil der Datenpunkt eventuell erstellt und dann aktualisiert wurde.
                  Diese Warnung habe ich absichtlich drinn, weil nicht alle Geräte ssml unterstützen, z.B. wenn Du die Ansage am Handy per Sprache startest. Eine Antwort soll am angesprochenen Gerät erfolgen, was ja eigentlich kein ECHO sein kann, wenn Du nicht zu Hause bist oder am Handy.
                  Probiere mal bitte eine echte Ansage wenn Du zu Hause bist.

                  1 Reply Last reply Reply Quote 0
                  • tugsi
                    tugsi @tugsi last edited by

                    @tugsi sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:

                    Kann man eigentlich in dem Selektor auch eine ODER-Verknüpfung einbringen, weil meine ZWAVE Fensterkontakte ja auf einen anderen Datenpunkt signalisieren (.SENSOR_1)

                    Sowas wie (state[id=.opened]ORstate[id=.SENSOR_1])(functions=fenster) ...

                    @paul53 vielleicht kannst Du was dazu sagen?,
                    kann ich im Selektor zwei verschiedene Datenpunkte abfragen, sodass ich mir eine erneute Schleife spare?

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

                      @tugsi sagte:

                      kann ich im Selektor zwei verschiedene Datenpunkte abfragen, sodass ich mir eine erneute Schleife spare?

                      Das habe ich noch nicht getestet. Du kannst es mal so testen und berichten:

                      $('state[id=*.(opened|SENSOR_1)$](functions=fenster)')
                      

                      Vermutlich wird es nicht funktionieren, da der Selektor nicht funktioniert, wenn die ID Klammern enthält.

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

                        @paul53 sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:

                        Das habe ich noch nicht getestet. Du kannst es mal so testen und berichten:

                        $('state[id=*.(opened|SENSOR_1)$](functions=fenster)')
                        

                        Vermutlich wird es nicht funktionieren, da der Selektor nicht funktioniert, wenn die ID Klammern enthält.

                        JS meckert:

                        Invalid selector: enum close bracket ")" cannot be found in "$('state[id=*.(opened|SENSOR_1)$](functions=fenster)')"
                        
                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @tugsi last edited by paul53

                          @tugsi sagte:

                          ohne Fenster öffnen, passiert keine Änderung

                          Du kannst so testen, ob alle passenden IDs gefunden werden:

                          $('state[id=*.(opened|SENSOR_1)$](functions=fenster)').each(function(id, i) {
                             log(id);
                          });
                          
                          tugsi 1 Reply Last reply Reply Quote 0
                          • tugsi
                            tugsi @paul53 last edited by

                            @paul53 Ok,
                            Aber der kommt schon mit dem $ nach dem SENSOR_1 nicht klar.
                            Und im Blockly kann ich die ' nicht mit reinpacken, dass bemängelt der auch.

                            Ist der Ausdruck von Dir aus JS genommen?
                            Btw gibts ne gute Seite für JS, sodass ich da einiges nachlesen kann?

                            paul53 2 Replies Last reply Reply Quote 0
                            • paul53
                              paul53 @tugsi last edited by

                              @tugsi sagte:

                              Btw gibts ne gute Seite für JS

                              Funktions-Doku zum JS-Adapter.

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

                                @tugsi sagte:

                                der kommt schon mit dem $ nach dem SENSOR_1 nicht klar.

                                $ kannst Du weglassen.

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

                                  @paul53 sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:

                                  @tugsi sagte:

                                  der kommt schon mit dem $ nach dem SENSOR_1 nicht klar.

                                  $ kannst Du weglassen.

                                  Ich habe jetzt einiges probiert, aber er kommt nicht klar mit den Klammern.
                                  Muss man wohl doch eine zweite Schleife mit einbauen

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

                                    Moin, erstmal Danke für die Mühe, die Du hier reinsteckst!

                                    Jetzt zu meinem Anliegen, ich würde sehr gerne das blockly zum zählen meiner Beleuchtung ausprobieren jedoch bin ich mit den Einstellungen ein wenig überfordert. Ich weiß nicht wie ich es einstellen muss das es funktioniert. Ich sehe HMIP und HUE, das nutze ich alles nicht und meine Aufzählungen sehen so aus.

                                    Anmerkung 2020-02-09 113815.jpg

                                    Das ich im Blockly dann bei stateid=*.STATE anstatt HUE, Licht eintragen muss kann ich mir denken, aber was ist mit id=level ? Brauch ich dass? Weiter unten im Blockly weiss ich auch nicht was ich bei den Variabeln auswählen muss?

                                    Anmerkung 2020-02-09 112619.jpg

                                    Ausserdem möchte ich nicht das die Datenpunkte unter userdata.0.Geräte zählen angelegt werden. Ich hätte sie viel lieber hier.

                                    Anmerkung 2020-02-09 113117.jpg

                                    Ist es möglich, dass Blockly so abzuändern das die Datenpunkte hier landen?

                                    Vielen Dank im Voraus für eure Hilfe.

                                    dslraser 3 Replies Last reply Reply Quote 0
                                    • dslraser
                                      dslraser Forum Testing Most Active @Elektroniker86 last edited by

                                      @Elektroniker86
                                      was sind das denn für Geräte von Deinem Licht ? Poste mal einen Datenpunkt von so einem Gerät als RAW in Code Tags.

                                      möchte ich nicht das die Datenpunkte unter userdata.0.Geräte zählen angelegt werden

                                      ja, das geht, in der Funktion Datenpunkte anlegen.
                                      da rein klicklen </>
                                      Bildschirmfoto 2020-02-09 um 11.54.41.png
                                      dann ganz unten in den Datenpunkten den / die Ordnerstruktur bestimmen. Ganz unten dann anstatt 0_userdata.0 Dein javascript.o eintragen.
                                      Bildschirmfoto 2020-02-09 um 11.54.53.png

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

                                        @Elektroniker86 sagte in Geräte zählen mit Blockly Selektor u. Aufzählungen:

                                        Das ich im Blockly dann bei stateid=*.STATE anstatt HUE, Licht eintragen muss kann ich mir denken, aber was ist mit id=level ? Brauch ich dass? Weiter unten im Blockly weiss ich auch nicht was ich bei den Variabeln auswählen muss?

                                        Bildschirmfoto 2020-02-09 um 11.58.46.png

                                        Du meinst den Selector. Was bei Dir anstatt id=*.STATE rein kommt sehe ich dann im Datenpunkt und die functions=HUE ist die Aufzählung, das wäre bei Dir dann functions=light
                                        Das was hinten, hinter dem Punkt steht ist entscheidend
                                        Bildschirmfoto 2020-02-09 um 12.04.05.png

                                        Weiter unten im Blockly weiss ich auch nicht was ich bei den Variabeln auswählen muss?

                                        in diesem Beispiel werden zwei Selectoren verwendet, weil HUE und HMIP Geräte in einer Aufzählung sind.

                                        1 Reply Last reply Reply Quote 1
                                        • Elektroniker86
                                          Elektroniker86 @dslraser last edited by

                                          @dslraser

                                          Moin, danke für die schnelle Antwort.
                                          Das sind in Javascript erstellte Geräte, denn ich habe bei mir Zuhause eine SPS /Siemens LOGO die liefert steuer id und status id separat und diese Datenpunkte habe ich in Javascript zusammengefasst.

                                          {
                                            "common": {
                                              "def": false,
                                              "type": "boolean",
                                              "read": true,
                                              "write": true,
                                              "name": "Deckenleuchte Flur EG",
                                              "role": "switch",
                                              "unit": "",
                                              "custom": {
                                                "iot.0": {
                                                  "smartName": {
                                                    "de": "Licht Flur"
                                                  }
                                                }
                                              }
                                            },
                                            "native": {
                                              "name": "Deckenleuchte Flur EG",
                                              "role": "switch",
                                              "type": "boolean",
                                              "unit": "",
                                              "read": true,
                                              "write": true
                                            },
                                            "type": "state",
                                            "from": "system.adapter.javascript.0",
                                            "user": "system.user.admin",
                                            "ts": 1572017048211,
                                            "_id": "javascript.0.LOGO.s7-0.Deckenleuchte_Flur EG",
                                            "acl": {
                                              "object": 1636,
                                              "state": 1636,
                                              "owner": "system.user.admin",
                                              "ownerGroup": "system.group.administrator"
                                            }
                                          }
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • dslraser
                                            dslraser Forum Testing Most Active @Elektroniker86 last edited by

                                            @Elektroniker86
                                            Wenn es nur eine Sorte Geräte ist, dann nimm am Besten das Steckdosen Beispiel zum umarbeiten für Dich, da ist auch nur ein Selector drinn. Wie die Variablen heißen ist eigentlich egal, aber wenn Du die umbenennst, dann werden die dazu gehörigen auch umbenant, falls die mehrfach verwendet werden. Die Blöcke für die Ausgabe musst Du dann auch für Dich anpassen, wenn Du javascript.0 verwendest.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            693
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            14
                                            202
                                            23166
                                            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