Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Fenster und andere Geräte zählen opt. Alexa Ansagen

    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

    Fenster und andere Geräte zählen opt. Alexa Ansagen

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

      @dslraser

      vergiss, was ich geschrieben habe.
      Du hattest schon viel angepasst und eingestellt, so dass ich übersehen habe, dass die Datenpunkte nicht unter "0_userdata.0" liegen.
      Habe es jetzt geändert!

      FUNKTIONIERT!!!!👍 👍 👍 👍 👍

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

        @falke69
        das ist komisch, denn ich habe jetzt .LEVEL mit drinn (der muß in die Aufzählung)
        Wenn der level Wert >0 ist, dann sollte das Script das zeigen, bei mir funktioniert es
        Hier nochmal eine kleine Korrektur

        Test.txt

        Edit: in der Aufzählung kann jetzt ein .switch sein, oder ein .level
        Es sollten beide erkannt werden.
        false ist ja = 0
        true ist ja =1 (oder eben größer 0)

        Ich baue das generell ein und stelle oben neue Blocklys dafür ein.

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

          @dslraser

          die Aufzählung hatte ich schon geändert.
          Das neue Script läuft auch. 🙂

          1 Reply Last reply Reply Quote 0
          • P
            patsand last edited by

            Ich hätte mal eine Verständnisfrage. Wo bzw Wie füge ich die Geräte hinzu die aufgezählt werden? Ich möchte gerne per Telegram und Alexa wissen welche Lichter an sind. Deswegen hatte ich mir das Script ( 02Alexa_Ansage_Geraete_zaehlen_telegram.txt) importiert. Es wurde auch alles richtig eingetragen...aber unter userdata/anzahl lichter gesamt stehen 0 Lichter.

            alt text Wo finde z. B. diesen Reiter? Hoffe, es kann mir einer weiterhelfen. Bin relativ neu im Thema iobroker/blocky ;/

            dslraser 1 Reply Last reply Reply Quote 0
            • Slowman
              Slowman last edited by Slowman

              Unter Aufzählung findest du dies. Wenn es in deinen Menü noch nicht enthalten ist, links oben das schwarze Dreieck anklicken.

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

                @patsand
                da links im Menü

                Screenshot_20200522-202156_Chrome.jpg

                1 Reply Last reply Reply Quote 0
                • P
                  patsand last edited by

                  Danke;) Telegram funktioniert auch. Leider werden die Shellys bei Telegram als Geraet unbekannt angezeigt. Kann man die einzelne Lichter umbenennen?

                  Screenshot 2020-05-22 20.42.48.png

                  WhatsApp Image 2020-05-22 at 20.46.13.jpeg

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

                    @patsand sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                    Leider werden die Shellys bei Telegram als Geraet unbekannt angezeigt.

                    schau mal weiter oben in den Beiträgen, oder poste mir mal einen RAW von dem DP in Code Tags.

                    1 Reply Last reply Reply Quote 0
                    • P
                      patsand last edited by

                      @dslraser

                      meinst du den DP von der Shelly? Ich hatte schon im Thread nach unbekannten Geräten geschaut...leider hab ich es nicht ganz verstanden.

                      {
                        "type": "state",
                        "common": {
                          "type": "boolean",
                          "read": true,
                          "write": true,
                          "name": "Switch",
                          "role": "switch",
                          "def": false
                        },
                        "native": {},
                        "from": "system.adapter.shelly.0",
                        "user": "system.user.admin",
                        "ts": 1589671219509,
                        "_id": "shelly.0.SHSW-1#E2222F#1.Relay0.Switch",
                        "acl": {
                          "object": 1638,
                          "state": 1638
                        }
                      }
                      
                      dslraser 2 Replies Last reply Reply Quote 0
                      • dslraser
                        dslraser Forum Testing Most Active @patsand last edited by

                        @patsand
                        hm..das Ding heist nur Switch....

                        Hat der Kanal einen Namen ?. Zeige mal bitte ein Screenshot von den Datenpunkten in den Objekten vom ganzen Gerät.

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

                          @patsand
                          ich könnte das so rein nehmen, aber das macht ja wenig Sinn. Dann bekommst Du angezeigt das Switch an ist... (Alexa würde das auch so ansagen)

                          1 Reply Last reply Reply Quote 0
                          • P
                            patsand last edited by

                            @dslraser

                            Dann würde er bei allen Shellys ja switch anzeigen oder? Das macht dann wirklich wenig Sinn.

                            Hier der Datenpunkt von den Shellys shelly2.jpg

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

                              @patsand

                              Probiere mal...
                              klick mal in die Funktion getParentName und ändere mal channel in device

                              hier

                              Bildschirmfoto 2020-05-22 um 23.32.29.png

                              1 Reply Last reply Reply Quote 0
                              • P
                                patsand last edited by

                                Hat leider nichts gebracht.

                                Screenshot 2020-05-23 00.05.16.png

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

                                  @patsand
                                  kannst Du mal den markieren / anklicken

                                  Bildschirmfoto 2020-05-23 um 00.12.01.png

                                  und dann damit (Pfeil oben in den Objekten) das JSON exportieren und mir schicken. (E-Mail kann ich Dir im Chat schicken)

                                  Bildschirmfoto 2020-05-23 um 00.11.38.png

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

                                    @patsand

                                    noch mal in getParentName gehen und alles löschen und das hier einfügen

                                    var name = getObject(id).common.name;
                                    
                                    if (name.substr( -3) == ('.on')) return name.slice(0, -3);
                                    if (name.substr( -6) == ('.STATE')) return name.slice(0, -6);
                                    if (name.substr( -6) == ('.state')) return name.slice(0, -6);
                                    if (name.substr( -6) == ('.LEVEL')) return name.slice(0, -6);
                                    if (name.substr( -7) == ('.MOTION')) return name.slice(0, -7);
                                    if (name.substr( -9) == ('.presence')) return name.slice(0, -9);
                                    if (name.substr( -13) == (' Switch state')) return name.slice(0, -13);
                                    if (name.substr( -25) == ('.PRESENCE_DETECTION_STATE')) return name.slice(0, -25);
                                    
                                    
                                    
                                    id = id.substring(0, id.lastIndexOf('.'));
                                    if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
                                    id = id.substring(0, id.lastIndexOf('.'));
                                    if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
                                    
                                    else return 'Geraet unbekannt';
                                    

                                    bei mir geht es jetzt mit Deinem Shelly

                                    Bildschirmfoto 2020-05-23 um 00.52.33.png

                                    EDIT: oder Du lädst Dir die aktuelle Datei vom ersten Beitrag runter

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      patsand last edited by

                                      Klappt bei mir auch:) vielen Dank für die schnelle Lösung! Jetzt hab ich nur ein weiteres Problem... Bei shelly gibt es Geräte die 2 lichter steuern können. Also relay 0 und 1 die heißen natürlich jetzt beide gleich. Gibt es dafür auch vllt ne Lösung? Hab dir mal ne Mail geschrieben.

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

                                        @patsand sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                                        Gibt es dafür auch vllt ne Lösung?

                                        Eine Lösung wüßte ich...Am Besten Du legst Dir jeweils dafür ein Alias an. Sonst wüßte ich gerade keine andere Lösung.

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

                                          @patsand

                                          Hier ein Script zum Alias erstellen. (Javascript, kein Blockly) Dein Relay0 als Beispiel (xxx mußt Du ersetzen)

                                          // Original-Datenpunkt
                                          const idOrigin = 'shelly.0.SHSW-XXX.Relay0.Switch'/*Switch*/
                                          
                                          // Alias-Datenpunkt
                                          const idAlias = 'Licht.Licht Decke Wohnzimmer';
                                          var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
                                          // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                                          nameAlias = 'Licht Decke Wohnzimmer.state';
                                          // desc = 'per Script erstellt';
                                          //typeAlias = 'boolean'; // oder 'number'
                                          // read = "val == 'Ein' ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
                                          // write = "val ? 'Ein' : 'Aus'";
                                          // role = 'switch';
                                          // min = 0; // nur Zahlen
                                          // max = 100; // nur Zahlen
                                          //unit = ''; // nur für Zahlen
                                          states = {false: 'ausgeschaltet', true: 'eingeschaltet'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                                          custom = []; // verhindert doppelte Ausführung von history, telegram, mqtt-client, ...
                                          
                                          function createAlias(idSrc, idDst) {
                                            if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                                            else {
                                               var obj = {};
                                               obj.type = 'state';
                                               obj.common = getObject(idSrc).common;
                                               obj.common.alias = {};
                                               obj.common.alias.id = idSrc;
                                               if(typeAlias) obj.common.type = typeAlias;
                                               if(obj.common.read !== false && read) obj.common.alias.read = read;
                                               if(obj.common.write !== false && write) obj.common.alias.write = write;
                                               if(nameAlias) obj.common.name = nameAlias;
                                               if(role) obj.common.role = role;
                                               if(desc) obj.common.desc = desc;
                                               if(min !== undefined) obj.common.min = min;
                                               if(max !== undefined) obj.common.max = max;
                                               if(unit) obj.common.unit = unit;
                                               if(states) obj.common.states = states;
                                               if(custom && obj.common.custom) obj.common.custom = custom;
                                               obj.native = {};
                                               setObject(idDst, obj);
                                            } 
                                          }
                                          
                                          createAlias(idOrigin, 'alias.0.' + idAlias);
                                          
                                          

                                          zu dem Beispiel aus dem Script- Licht Decke Wohnzimmer (den Alias kannst Du ja nennen wie Du willst)

                                          Bildschirmfoto 2020-05-23 um 01.50.40.png

                                          Edit: also Alias erstellen und dann den Alias in die Aufzählung

                                          Edit2: Du mußt Deinen Wunschnamen und Deine Wunschstruktur in dem Script einstellen und es dann einmal starten. Dann für den zweiten Alias die ID vom nächsten Relay eintragen und den Wunschnamen dafür und wieder speichern. Das Script erstellt jeweils einen Alias für eine ID. Wenn Du Deine Alias erstellt hast, dann kannst Du das Script ausschalten, das ist nur für die einmalige Erstellung. Wenn Du den Alias nicht direkt siehst, oder das Script sagt, der Alias wäre schon vorhanden, dann starte die Javascript Instanz neu und den Browser aktualisieren ist auch immer eine gute Idee.

                                          P 1 Reply Last reply Reply Quote 0
                                          • Murmelbaerchen69
                                            Murmelbaerchen69 last edited by

                                            Hallo,

                                            erst einmal Danke für das Skript.
                                            ich habe jedoch ein Problem mit den Statusmeldungen. Irgendwie wird immer der vorherige Status gesendet.

                                            telegram.JPG

                                            Ich schalte ein Licht ein und als Meldung kommt:
                                            "Alle Lichter sind ausgeschaltet"
                                            schalte das zweite Licht an und die Meldung lautet:
                                            "Es ist 1 Licht an" , dann ein Licht wieder aus und die Meldung lautet: "Es sind zwei Lichter an"
                                            Es wird immer der vorherige Status gesendet.
                                            Der Status stimmt aber:

                                            einLichtan.JPG
                                            zweiLichtan.JPG

                                            Gruß

                                            dslraser 3 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            624
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript
                                            41
                                            1186
                                            350113
                                            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