Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Fenster und andere Geräte zählen opt. Alexa Ansagen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.4k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.6k

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

Geplant Angeheftet Gesperrt Verschoben Blockly
blocklyjavascript
1.2k Beiträge 41 Kommentatoren 413.7k Aufrufe 71 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Stephan SchleichS Stephan Schleich

    @dslraser
    39ff074a-ae25-4490-ae38-b295ae58b4be-image.png
    ed9e9789-7372-48d8-bd8b-7c07f7ec8332-image.png

    dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #1170

    @Stephan-Schleich
    Wie hast Du das Blockly importiert ?
    Herunter geladen auf den eigenen Rechner ? Mit einem richtigen Editor geöffnet ? (utf-8) Und dann denn Inhalt der geöffneten Datei kopiert und importiert ?

    Riecht nach Umlaute Fehler...

    Stephan SchleichS 1 Antwort Letzte Antwort
    0
    • dslraserD dslraser

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

      Und wie bekomme ich die Scroll Balken weg?

      keine Ahnung, frag mal im iQontrol Thread

      Hallo, wo kann ich die Überschrift beeinflussen, habe 2 mal Batterien Haus?

      Bitte mal Version 1.6.5 probieren (eigene Überschrift/selbst definieren)
      Bildschirmfoto 2020-12-19 um 12.07.37.png

      @DocGame

      Könnte man die Spalte der Werte etwas Breiter machen? Bei einer Nachkommastelle gibt es sonst einen Zeilenumbruch

      in Version 1.6.5 ist der Zeilenumbruch in der Spalte mit den Werten deaktiviert.

      Batterien_Prozent_1-6-5.zip

      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #1171

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

      Hallo, wo kann ich die Überschrift beeinflussen, habe 2 mal Batterien Haus?

      Läuft. :+1:

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      dslraserD 1 Antwort Letzte Antwort
      0
      • sigi234S sigi234

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

        Hallo, wo kann ich die Überschrift beeinflussen, habe 2 mal Batterien Haus?

        Läuft. :+1:

        dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #1172

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

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

        Hallo, wo kann ich die Überschrift beeinflussen, habe 2 mal Batterien Haus?

        Läuft. :+1:

        Die eigene Überschrift baue ich dann noch überall ein, aber nicht mehr heute.

        1 Antwort Letzte Antwort
        0
        • dslraserD dslraser

          @Stephan-Schleich
          Wie hast Du das Blockly importiert ?
          Herunter geladen auf den eigenen Rechner ? Mit einem richtigen Editor geöffnet ? (utf-8) Und dann denn Inhalt der geöffneten Datei kopiert und importiert ?

          Riecht nach Umlaute Fehler...

          Stephan SchleichS Offline
          Stephan SchleichS Offline
          Stephan Schleich
          schrieb am zuletzt editiert von
          #1173

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

          @Stephan-Schleich
          Wie hast Du das Blockly importiert ?
          Herunter geladen auf den eigenen Rechner ? Mit einem richtigen Editor geöffnet ? (utf-8) Und dann denn Inhalt der geöffneten Datei kopiert und importiert ?

          Riecht nach Umlaute Fehler...

          jup alles wie immer :)

          folgende Änderungen hab ich gemacht
          170103a8-63ec-45dd-a254-b8342be8134c-image.png

          dslraserD 2 Antworten Letzte Antwort
          0
          • Stephan SchleichS Stephan Schleich

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

            @Stephan-Schleich
            Wie hast Du das Blockly importiert ?
            Herunter geladen auf den eigenen Rechner ? Mit einem richtigen Editor geöffnet ? (utf-8) Und dann denn Inhalt der geöffneten Datei kopiert und importiert ?

            Riecht nach Umlaute Fehler...

            jup alles wie immer :)

            folgende Änderungen hab ich gemacht
            170103a8-63ec-45dd-a254-b8342be8134c-image.png

            dslraserD Offline
            dslraserD Offline
            dslraser
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #1174

            @Stephan-Schleich
            Schau ich mir an.

            1 Antwort Letzte Antwort
            0
            • Stephan SchleichS Stephan Schleich

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

              @Stephan-Schleich
              Wie hast Du das Blockly importiert ?
              Herunter geladen auf den eigenen Rechner ? Mit einem richtigen Editor geöffnet ? (utf-8) Und dann denn Inhalt der geöffneten Datei kopiert und importiert ?

              Riecht nach Umlaute Fehler...

              jup alles wie immer :)

              folgende Änderungen hab ich gemacht
              170103a8-63ec-45dd-a254-b8342be8134c-image.png

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              schrieb am zuletzt editiert von dslraser
              #1175

              @Stephan-Schleich
              Ich habe mir Dein Bild nochmal angesehen.
              Dieses hier:

              1608378967744-170103a8-63ec-45dd-a254-b8342be8134c-image.png

              Bei mir sieht das so aus:

              Screenshot_20201219-171709_Chrome.jpg

              Warum steht da bei Dir z.B.
              Batterien_verwenden_Volt ?

              bei Selektor steht auch
              selektor_Batterien_Volt ?

              Hast Du das zu dem Batterien Volt Blockly dazu importiert ? (nimm mal für den Import ein neues leere Blockly)

              Edit: ich habe mir jetzt das Blockly aus dem 1.Beitrag herunter geladen und bei mir installiert. Danach habe ich Deine Einstellungen übernommen (nur ich habe es in javascript.0 und in 0_userdata.0 installiert). Geht alles so wie es soll.

              Bildschirmfoto 2020-12-19 um 18.14.32.png

              Stephan SchleichS 1 Antwort Letzte Antwort
              1
              • dslraserD dslraser

                @Stephan-Schleich
                Ich habe mir Dein Bild nochmal angesehen.
                Dieses hier:

                1608378967744-170103a8-63ec-45dd-a254-b8342be8134c-image.png

                Bei mir sieht das so aus:

                Screenshot_20201219-171709_Chrome.jpg

                Warum steht da bei Dir z.B.
                Batterien_verwenden_Volt ?

                bei Selektor steht auch
                selektor_Batterien_Volt ?

                Hast Du das zu dem Batterien Volt Blockly dazu importiert ? (nimm mal für den Import ein neues leere Blockly)

                Edit: ich habe mir jetzt das Blockly aus dem 1.Beitrag herunter geladen und bei mir installiert. Danach habe ich Deine Einstellungen übernommen (nur ich habe es in javascript.0 und in 0_userdata.0 installiert). Geht alles so wie es soll.

                Bildschirmfoto 2020-12-19 um 18.14.32.png

                Stephan SchleichS Offline
                Stephan SchleichS Offline
                Stephan Schleich
                schrieb am zuletzt editiert von
                #1176

                @dslraser aaah, ich hab nur die blöcke gelöscht, aber nicht die variablen, das ist das problem, ich mach lieber n neues blockly, sorry mein fehler

                1 Antwort Letzte Antwort
                0
                • dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von dslraser
                  #1177

                  Alle Blocklys im ersten Beitrag auf Version 1.6.6 aktualisiert.
                  Damit kann in allen Blocklys eine eigene Überschrift für die HTML Ansicht konfiguriert werden. Diese Überschrift wird gleichzeitig in Telegram sowie E-Mail als Betreff verwendet.
                  Der Zeilenumbruch in den Zellen der HTML Tabelle für den Status (da wo die Smyleys, die Temperatur oder die Voltanzeige sind) habe ich deaktiviert.
                  Wenn es keine Fehlermeldungen, andere Vorschläge oder Wünsche gibt, dann ist das erstmal der "finale Zustand".
                  Ich wünsche einen schönen Adventssonntag.:evergreen_tree: :boom:

                  F S 2 Antworten Letzte Antwort
                  3
                  • dslraserD dslraser

                    Alle Blocklys im ersten Beitrag auf Version 1.6.6 aktualisiert.
                    Damit kann in allen Blocklys eine eigene Überschrift für die HTML Ansicht konfiguriert werden. Diese Überschrift wird gleichzeitig in Telegram sowie E-Mail als Betreff verwendet.
                    Der Zeilenumbruch in den Zellen der HTML Tabelle für den Status (da wo die Smyleys, die Temperatur oder die Voltanzeige sind) habe ich deaktiviert.
                    Wenn es keine Fehlermeldungen, andere Vorschläge oder Wünsche gibt, dann ist das erstmal der "finale Zustand".
                    Ich wünsche einen schönen Adventssonntag.:evergreen_tree: :boom:

                    F Offline
                    F Offline
                    FuXXz2
                    schrieb am zuletzt editiert von
                    #1178

                    @dslraser Danke für die Mühe und ich wünsche schöne Feiertage

                    1 Antwort Letzte Antwort
                    1
                    • dslraserD dslraser

                      Alle Blocklys im ersten Beitrag auf Version 1.6.6 aktualisiert.
                      Damit kann in allen Blocklys eine eigene Überschrift für die HTML Ansicht konfiguriert werden. Diese Überschrift wird gleichzeitig in Telegram sowie E-Mail als Betreff verwendet.
                      Der Zeilenumbruch in den Zellen der HTML Tabelle für den Status (da wo die Smyleys, die Temperatur oder die Voltanzeige sind) habe ich deaktiviert.
                      Wenn es keine Fehlermeldungen, andere Vorschläge oder Wünsche gibt, dann ist das erstmal der "finale Zustand".
                      Ich wünsche einen schönen Adventssonntag.:evergreen_tree: :boom:

                      S Offline
                      S Offline
                      Sequal
                      schrieb am zuletzt editiert von
                      #1179

                      Tag zusammen,

                      ich hab auch noch eine Kleinigkeit - Seit heute morgen antwortet mir die angesprochene Alexa im Lichterblockly mit "OK", die eigentliche Ansage welche Lichter noch an sind kommt allerdings von einer anderen Alexa nebenan :astonished:
                      Wasn das nu wieder?

                      Euch auch einen schönen Sonntag!

                      dslraserD 1 Antwort Letzte Antwort
                      0
                      • S Sequal

                        Tag zusammen,

                        ich hab auch noch eine Kleinigkeit - Seit heute morgen antwortet mir die angesprochene Alexa im Lichterblockly mit "OK", die eigentliche Ansage welche Lichter noch an sind kommt allerdings von einer anderen Alexa nebenan :astonished:
                        Wasn das nu wieder?

                        Euch auch einen schönen Sonntag!

                        dslraserD Offline
                        dslraserD Offline
                        dslraser
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #1180

                        @Sequal
                        dann kann die andere Alexa nebenan Dich auch hören.

                        S 1 Antwort Letzte Antwort
                        0
                        • dslraserD dslraser

                          @Sequal
                          dann kann die andere Alexa nebenan Dich auch hören.

                          S Offline
                          S Offline
                          Sequal
                          schrieb am zuletzt editiert von
                          #1181

                          @dslraser
                          das muss ich nachher mal ausprobieren.....eigentlich halte ich das für ausgeschlossen, da zwei geschlossene Türen dazwischen sind. Jetzt ist aber erstmal Kaffee :)

                          Gruß
                          Sequal

                          1 Antwort Letzte Antwort
                          0
                          • dslraserD dslraser
                            Versionen 1.6.7
                            aktualisiert am 23.12.2020
                            Typ Blockly mit JavaScript Funktionen
                            verwendete Adapter je nach dem was im Blockly aktiviert ist
                            verwendete Geräte verschieden - gemischt
                            was kann das Blockly wird hier beschrieben

                            Hallo Zusammen.
                            Ich stelle hier mein Blockly zum Geräte zählen und optional zum Ansagen über den Alexa2 Adapter über speak, sowie optionaler Versand über Telegram / E-Mail zur Verfügung.
                            Das gesamte Blockly nutzt "alias'e". Alle anderen benötigten Datenpunkte erstellt und löscht das Blockly selbst, je nach dem was verwendet werden soll.
                            Wer also keine alias erstellen oder nutzen möchte kann an dieser Stelle aufhören zu lesen, für alle anderen Interessierten versuche ich möglichst genau zu beschreiben was zu tun ist.

                            Mit Alexa geht dann z.B.

                            • Alexa, welche Fenster sind noch auf
                            • Alexa, welche Türen sind noch auf
                            • Alexa, welche Steckdosen sind noch an
                            • Alexa, welche Lampen sind noch an
                            • Alexa, was machen die Batterien
                            • Alexa, welche Bewegungsmelder sind aktiv
                            • Alexa, wie sind die Temperaturen (Ansage, aller Temperaturen meiner Räume und Außentemperatur nacheinander in einer Ansage)

                            Welche Frage in welcher Formulierung gestellt wird bestimmt Ihr natürlich selbst, da dies über eine Routine in der Alexa App gesteuert wird. Dazu später mehr.

                            Ein Hinweis gleich noch zu Beginn. Da die Ansage am angesprochenen ECHO erfolgen soll, kann es vorkommen, das, wenn es mehrere ECHO's in Hörweite gibt, die Ansage an einem anderen ECHO ausgegeben wird, weil sich ein anderer ECHO "angesprochen fühlt". Wenn ich in einem Raum bin, wo mich nur ein ECHO hören kann, funktioniert es bei mir zuverlässig.

                            Meine verwendeten Adapter dafür sind:

                            • Alexa2 Adapter 3.4.0
                            • iot Adapter 1.8.8
                            • Javascript Adapter 4.10.8
                            • Telegram Adapter 1.5.9 (optional)
                            • E-Mail Adapter 1.0.7 (optional)
                            • und wenn gewünscht (optional) iQontrol 1.5.2
                            • TR-064 4.2.1 Anruferansage (optional Telegram/EMAIL-extra Blockly im zweiten Beitrag)

                            SmartGeräte für den iot Adapter werden direkt im Blockly erstellt, das sind dann die Button für die spätere Routine in der Amazon App.
                            Das Blockly legt die benötigten Datenpunkte wahlweise unter 0_userdata.0 oder javascript.x selbst an (x=Javascript Instanznummer). Für die Erstellung der Datenpunkte nutze ich das Script von @Mic in einer Funktion. Dafür muß die Option "Erlaube das Kommando "setObject" im Javascript Adapter erlaubt sein.

                            Bildschirmfoto 2020-04-08 um 12.05.38.png

                            Der Versand aller Nachrichten (Telegram oder EMAIL) ist immer schaltbar, z.B. wenn man eine Anwesenheitsfunktion hat, dann könnte man den Versand bei Abwesenheit "scharf" schalten.
                            Die Button hingegen funktionieren immer. Hier könnte man jeweils eine Routine in der Alexa App anlegen und den Versand des Gerätestatus-Versand auslösen.
                            Z.B.
                            Alexa, schicke mir den Fensterstatus.
                            Alexa, schicke mir den Lichtstatus
                            Alexa, schicke mir den Steckdosenstatus usw...

                            Über diesen Weg lasse ich mir auch zum Beispiel auf Anforderung den Batteriestatus aller meiner Geräte mit Batterien als Liste schicken. Oder auch, Alexa schicke mir ein Bild von der Eingangskamera. Wenn man es auf die Spitze treibt, dann geht auch: Alexa, schicke mir den kompletten Status und dann trudeln bei mir nacheinander Bilder von drei Kameras, alle Batteriezustände, eine Liste mit geöffneten/gekippten Fenstern, ein Liste mit eingeschalteten Lampen usw. usw. usw. ein.

                            Wenn Ihr nun Lust auf das Blockly habt, dann ist jetzt einmalig etwas Fleißarbeit angesagt. Bevor Ihr das Blockly nutzen könnt, müssen die Alias für Eure Geräte, die Ihr im Blockly verwenden wollt, erstellt werden. Dafür eignet sich die Scriptvorlage von @CruziX hervorragend. Mit dieser Vorlage können alle Alias auf einmal erstellt werden. Eine Vorlage als Beispiel findet Ihr im Spoiler. An dieser Stelle sei gleich gesagt, sinnvolle Namen im Alias zu verwenden (id ist egal, nur der Name ist gemeint), da diese Namen dann für alles im Blockly verwendet werden, also alle Gerätenamen allgemein. Also immer so erstellen, das sich der Name auch z.B. für Alexa aussprechen lässt.
                            In der id keine Leerzeichen/Sonderzeichen oder Umlaute verwenden, damit vermeidet man direkt im Vorfeld mögliche Fehler.
                            Als erstes solltet ihr in den Aufzählungen neue Funktionen erstellen, diese kann man dann gleich im alias Script benutzen. Da auf das Plus drücken.
                            Bildschirmfoto 2020-06-29 um 21.16.04.png
                            dann auf das Plus bei neue benutzerdefinierte Gruppe klicken
                            Bildschirmfoto 2020-06-29 um 21.16.19.png

                            Ich habe folgende erstellt (wenn Ihr die gleichen nehmt müsst Ihr das nichtmal im Blockly umstellen)

                            batterien_voll_leer_alias
                            batterien_volt_alias
                            bewegungsmelder_alias
                            fenster_alias
                            licht_alias
                            steckdosen_alias
                            temperaturen_alias
                            tueren_alias
                            batterien_prozent_alias

                            Das sind die Selektoren im Blockly

                            Bildschirmfoto 2020-12-19 um 09.07.55.png
                            Bildschirmfoto 2020-12-19 um 09.08.22.png
                            Bildschirmfoto 2020-12-19 um 09.08.51.png
                            Bildschirmfoto 2020-12-19 um 09.09.21.png
                            Bildschirmfoto 2020-12-19 um 09.09.59.png
                            Bildschirmfoto 2020-12-19 um 09.10.34.png
                            Bildschirmfoto 2020-12-19 um 09.11.17.png
                            Bildschirmfoto 2020-12-19 um 09.12.00.png
                            Bildschirmfoto 2020-12-19 um 09.12.32.png

                            Das ganze sieht dann nach dem Blockly Start in den Objekten z.B. so aus: (wenn alle Schalter im Blockly auf wahr stehen)

                            Bildschirmfoto 2020-12-02 um 19.33.40.png

                            01_Anzeigen_und_Listen

                            Bildschirmfoto 2020-12-02 um 19.43.57.png

                            02_Trigger_und_Schalter

                            Bildschirmfoto 2020-12-02 um 19.44.12.png

                            03_HTML_Daten hat zwei Unterordner

                            Bildschirmfoto 2020-12-02 um 19.44.31.png

                            01_HTML_Hell_Dunkel_Festeinstellung ist nicht veränderbar und sieht so aus (helle Einstellung aktiv)

                            Bildschirmfoto 2020-12-02 um 19.45.09.png

                            03_HTML_Eigene_Einstellung enthält die gleichen Datenpunkte und wird beim ersten verwenden des Triggers mit Standardwerten befüllt. Diese Werte können dann mit eigenen Werten überschrieben werden.

                            Und hier noch der Rest

                            Bildschirmfoto 2020-12-02 um 19.45.42.png

                            Die Bilder bzw. Icon links und rechts habe ich als Base64 eingefügt. Ich benutze dafür das hier: https://www.base64-image.de/

                            Wenn iQontrol installiert ist, dann funktioniert auch der Pfad zu einem Icon (einfach den eingestellten Pfad zum Icon aus iQontrol kopieren und einfügen)
                            In den eigenen 02_HTML_Eigene_Einstellungen kann alles selbst an die eigenen Wünsche angepasst werden.

                            Hier noch ein kurzes GiF
                            (klick auf das linke Icon schaltet die Farbeinstellungen durch. klick auf das rechte Icon blendet die Tabelle ein und aus bzw. schaltet auf aktiv/inaktiv)
                            20201202_200704.gif



                            Das ganze sieht dann so bei mir aus (ich habe immer nur die ersten fünf auf den Bildern)

                            Bildschirmfoto 2020-07-04 um 19.22.51.png

                            Bildschirmfoto 2020-07-04 um 19.26.55.png

                            Bildschirmfoto 2020-06-30 um 15.46.33.png

                            Bildschirmfoto 2020-06-30 um 15.46.48.png

                            Bildschirmfoto 2020-06-30 um 15.47.02.png

                            Bildschirmfoto 2020-06-30 um 15.47.15.png

                            Bildschirmfoto 2020-07-04 um 19.23.12.png

                            Bildschirmfoto 2020-06-30 um 15.47.46.png


                            Im Beispielvideo werden die eigenen Alias ab Zeile 271 eingefügt, also ab dem ersten createAlias
                            Video Beispiel:
                            Alias_per_Script_erstellen.m4v
                            In der Vorlage habe ich jeweils zwei meiner verwendeten Geräte als Beispiel eingefügt.
                            Hier und in den folgenden Beiträgen versuche ich die Alias Funktion vom Script etwas zu erklären:
                            Klick Erklärung alias Funktion

                            /**************************************************************
                            Github - https://github.com/xCruziX/ioBroker-Creating-Alias/blob/master/CreateAlias.js
                               			Changelog
                            Version 1.1.4
                            - fix error by using bCreateAliasPath and bConvertExistingPath (has no target 9/Error creating alias-path)
                            **************************************************************/
                            
                            /**************************************
                               	Flags /
                               	Variablen
                            ***************************************/
                            
                            // typeAlias = 'boolean'; // oder 'number'
                            // read = "val == 'Ein' ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
                            // write = "val ? 'Ein' : 'Aus'";
                            // nameAlias = 'Licht Haustür';
                            // role = 'switch';
                            // desc = 'per Script erstellt';
                            // min = 0; // nur Zahlen
                            // max = 100; // nur Zahlen
                            // unit = '%'; // nur für Zahlen
                            // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                            
                            
                            let bCreateAliasPath = true;  // If this flag is true, each folder is created seperately so rooms and functions can be assigned.
                            
                            /*
                            Requirements: bCreateAliasPath == true
                            If this flag is true, existing folders in the path will be converted so rooms and functions can be assigned.
                            */
                            let bConvertExistingPath = false;
                            
                            /***************************************
                               	Don't change anything from here /
                               	Ab hier nichts verändern
                            ***************************************/
                            
                            let arEnum = [];
                            let arId = [];
                            let timeoutAssignEnum;
                            var callbackAlias = undefined;
                            function createAlias(idSrc, idDst,raum, gewerk,typeAlias, read, write, nameAlias, role, desc, min, max, unit, states) {
                             if(!idDst.includes('alias.0.'))
                                 idDst = 'alias.0.' + idDst;
                             if(!existsObject(idSrc))
                             {
                                 log('Source-Id ' + idSrc +' does not exists.','warn');
                                 return;
                             }
                             
                             // Create the object Path for alias id, 
                             // so you can assign rooms and function to the parents
                             var createAliasPath = (id) => {
                                  if(bCreateAliasPath){
                                       let lisMergedIds = [];
                                       let mergedId = 'alias.0';
                                       id = id.replace(mergedId + '.', ''); // Remove prefix alias so it will not be changed
                                       let split = id.split('.'); 
                                       for(let i=0;i<split.length-1;i++){
                                           mergedId += '.' + split[i];
                                           lisMergedIds.push(mergedId);
                                       }
                                       
                                       function path(){
                                           if(lisMergedIds.length == 0) {
                                               alias();
                                               return;
                                           }
                                           let tmpId = lisMergedIds[0];
                                           lisMergedIds.splice(0,1); // remove element
                                           if(!existsObject(tmpId) || bConvertExistingPath){ // not exists
                                               let obj;
                                               if(existsObject(tmpId))
                                                   obj = getObject(tmpId);
                                               else
                                                   obj = {};
                            
                                               let bApply = false;
                                               if(obj != undefined){
                                                   if(obj.type == undefined || String(obj.type) != 'meta'){
                                                       obj.type = 'meta';
                                                       bApply = true;
                                                   }
                                                   if(obj.common == undefined){
                                                       obj.common = {};
                                                       obj.common.type = 'meta.folder';
                                                       bApply = true;
                                                   }
                                                   else if(obj.common.type == undefined || String(obj.common.type) != 'meta.folder'){
                                                       obj.common.type = 'meta.folder';
                                                       bApply = true;
                                                   }
                                                   if(obj.native == undefined){
                                                       obj.native = {};
                                                       bApply = true;
                                                   }
                                               }
                                               else{
                                                   path();
                                                   log('Object is undefined');
                                                   return;
                                               }
                                               
                            
                                               if(bApply){
                                                   setObject(tmpId, obj, (err) =>{
                                                   if(!err){
                                                       log('Created Alias-Path ' + tmpId);
                                                       path();
                                                   }
                                                   else
                                                       log('Error creating alias-path','error');
                                               });
                                               }
                                               else
                                                   path();
                                               
                                           }
                                       }
                                       path();
                                  }
                                  else
                                    alias();
                             }
                             
                             
                             function alias(){
                                 // Create alias object
                                 
                                   if(!existsObject(idDst)){
                                       let obj = {};
                                       obj.type = 'state';
                                       obj.common = getObject(idSrc).common;
                                       obj.common.alias = {};
                                       obj.common.alias.id = idSrc;
                                       if(typeAlias !== undefined) 
                                           obj.common.type = typeAlias;
                                       if(obj.common.read !== undefined) 
                                           obj.common.alias.read = read;
                                       if(obj.common.write !== undefined) 
                                           obj.common.alias.write = write;
                                       if(nameAlias !== undefined) 
                                           obj.common.name = nameAlias;
                                       if(role !== undefined) 
                                           obj.common.role = role;
                                       if(desc !== undefined) 
                                           obj.common.desc = desc;
                                       if(min !== undefined) 
                                           obj.common.min = min;
                                       if(max !== undefined) 
                                           obj.common.max = max;
                                       if(unit !== undefined) 
                                           obj.common.unit = unit;
                                       if(states !== undefined) 
                                           obj.common.states = states;
                            
                                       obj.native = {};
                                       obj.common.custom = []; // Damit die Zuordnung zu iQontrol, Sql etc. nicht übernommen wird
                                       log('Created Alias-State ' + idDst);
                                       setObject(idDst, obj,(err) =>{ 
                                           if(!err)
                                               startAttach(); 
                                           else
                                               log('Error creating-alias','error');
                                       });
                                   }
                                   else
                                       startAttach();
                             }
                             
                             
                             // Save ID and Enum (room or function)
                             var attach = (id, enu,value) => {
                                 if(id.length == 0){
                                     log('ID has lenght 0, can not attach to enum','warn');
                                     return;
                                 }
                                 if(value.length == 0){
                                     log('Value has lenght 0','warn');
                                     return;
                                 }
                               
                                 let sEnuId = 'enum.' + enu + '.' + value;
                                 if(enu.length > 0 && existsObject(sEnuId)) 
                                 {
                                     let obj = getObject(sEnuId)
                                     let members = obj.common.members;
                                     if(!members.includes(id)){
                                         arEnum.push(sEnuId);
                                         arId.push(id);
                                     }
                                 }
                                 else
                              	      log('Can not find enum ' + sEnuId,'warn');
                             }
                            
                            function startAttach(){
                               let bRoom = raum !== undefined && raum.length > 0;
                               let bGewerk = gewerk !== undefined && gewerk.length > 0;
                               
                               if(bRoom)
                                   attach(idDst,'rooms',raum);
                               if(bGewerk)
                                   attach(idDst,'functions',gewerk);
                               if(bRoom || bGewerk){
                                       if(timeoutAssignEnum){
                                           clearTimeout(timeoutAssignEnum);
                                           timeoutAssignEnum = null;
                                       }
                                       timeoutAssignEnum = setTimeout(finishScript,100);
                               }
                            }
                            
                             createAliasPath(idDst);
                            }
                            
                            function finishScript(){
                               assignEnums();
                            }
                            
                            // Add the saved IDs to the rooms/functions
                            function assignEnums(){
                            if(arEnum.length == 0 || arId.length == 0){
                                 return;
                            }
                            
                            if(arEnum.length != arId.length){
                                 log('Arrays have different size','error');
                                 return;
                            }
                            let mapEnumId = new Map();
                            
                            for(let i=0;i < arEnum.length; i++){
                                let enu = arEnum[i];
                                let id = arId[i];
                                if(existsObject(id)){
                               	 let obj = getObject(enu)
                               	 let members;
                               	 if(!mapEnumId.has(enu)){
                               		 members = obj.common.members;
                               		 mapEnumId.set(enu,members);
                               	 }
                               	 else
                               		 members = mapEnumId.get(enu);    
                               	 if(!members.includes(id)){
                               		  log("Adding " + id + " to " + enu);
                               		  members.push(id);
                               	 }	      
                                }
                                else
                                    log('Can not find Alias ' + id,'error');
                            }
                             
                             function setMembers(members,enu,map){
                                 let obj = getObject(enu);
                                 obj.common.members = members;
                                 setObject(enu,obj);
                             }
                             mapEnumId.forEach(setMembers);
                            }
                            
                            /**********************************************************
                               	END /
                               	ENDE
                            **********************************************************/
                            
                            //////////////////////////////
                            //  Fenster
                            //////////////////////////////
                            //2 x Fenstersensoren HMIP
                            //einfache HMIP Fenstersensoren über rpc-Adapter in function fenster_alias
                            //{0: 'geschlossen', 1: 'geöffnet'}
                            createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'number', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                            createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                            
                            //2 x Fenstersensoren HM
                            //einfache HM Fenstersensoren über rpc-Adapter in function fenster_alias
                            //{false: 'geschlossen', true: 'geöffnet'}
                            createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'boolean', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                            createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'boolean',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                            
                            
                            //2 x Fensterdrehgriffe HMIP
                            //HMIP Fensterdrehgriffe über rpc-Adapter in function fenster_alias
                            //{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'}
                            createAlias('hm-rpc.0.xxx.1.STATE'/*Keller W-Baum Fenster STATE*/, 'Fenster.Keller_Weihnachtsbaum_Fenster', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller W Baum', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                            createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Wohnzimmer Fenster mitte STATE*/, 'Fenster.Keller_Wohnzimmer_Fenster_mitte', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Wohnzimmer mitte', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                            
                            //2 x Fenster(Türen) Sensoren HMIP
                            //einfache HMIP Fenstersensoren über rpc-Adapter in function tueren_alias
                            //{0: 'geschlossen', 1: 'geöffnet'}
                            createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Terrassentür STATE*/, 'Tueren.Terrassentuer', undefined, 'tueren_alias', 'number',undefined, undefined, 'Terrassentür', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                            createAlias('hm-rpc.0.xxx.1.STATE'/*Haustür STATE*/, 'Tueren.Haustuer', undefined, 'tueren_alias', 'number',undefined, undefined, 'Haustür', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                            
                            //////////////////////////////
                            //  Steckdosen
                            //////////////////////////////
                            //2 x Steckdosen
                            //HMIP Steckdosen über rpc-Adapter in function steckdosen_alias
                            //{false: 'aus', true: 'an'}
                            createAlias('hm-rpc.0.xxx.3.STATE'/*Waschmaschine STATE*/, 'Steckdosen.Waschmaschine', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Waschmaschine', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                            createAlias('hm-rpc.0.xxx.3.STATE'/*Geschirrspueler STATE*/, 'Steckdosen.Geschirrspueler', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Geschirrspüler', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                            
                            //////////////////////////////
                            //  Bewegungsmelder
                            //////////////////////////////
                            //2 x Bewegungsmelder und 2 x Präsenzmelder und 1 x Erschütterungssensor
                            //HMIP Bewegungsmelder und Präsenzmelder über rpc-Adapter in function bewegungsmelder_alias
                            //{false: 'inaktiv', true: 'aktiv'}
                            createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Weihnachtsbaumkeller MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Weihnachtsbaumkeller', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'W Baum Keller', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                            createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Heizungskeller MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Heizungskeller', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Heizungskeller', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                            //ab hier 2 x Präsenzmelder
                            createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Badezimmer PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Badezimmer', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Badezimmer', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                            createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Dusche PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Dusche', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Dusche', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                            //ab hier 1 x Erschütterungssensor
                            createAlias('hm-rpc.0.xxx.1.MOTION'/*Briefkasten MOTION*/, 'Bewegungsmelder.Praesenzmelder_Briefkasten', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Briefkasten', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                            
                            //////////////////////////////
                            //  Licht
                            //////////////////////////////
                            //2 x HUE und 5 x HMIP Licht über HUE und rpc-Adapter in function licht_alias
                            //{false: 'aus', true: 'an'}
                            createAlias('hue.0.Badezimmerlampe_links.on'/*Badezimmerlampe links on*/, 'Licht.Badezimmer_Licht_links', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Badezimmer links', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                            createAlias('hue.0.Badezimmerlampe_rechts.on'/*Badezimmerlampe rechts on*/, 'Licht.Badezimmer_Licht_rechts', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Badezimmer rechts', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                            
                            //ab hier 2 x Licht HMIP Steckdosen über rpc Adapter
                            createAlias('hm-rpc.0.xxx.3.STATE'/*Kugellampe STATE*/, 'Licht.Wohnzimmer_Kugel_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Kugellicht', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                            createAlias('hm-rpc.0.xxx.3.STATE'/*Gäste WC Licht STATE*/, 'Licht.Gaeste_WC_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Gäste WC Licht', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                            
                            //////////////////////////////
                            //  Temperaturen
                            //////////////////////////////
                            //HMIP 2 x Temperaturen über rpc-Adapter in function temperaturen_alias
                            createAlias('hm-rpc.0.xxx.1.ACTUAL_TEMPERATURE'/*Wandthermostat Schlafzimmer:1 ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Schlafzimmer', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Schlafzimmer', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
                            createAlias('hm-rpc.0.xxx.1.ACTUAL_TEMPERATURE'/*Wandthermostat Wohnzimmer:1 ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Wohnzimmer', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Wohnzimmer', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
                            
                            //////////////////////////////
                            //  Batterien_voll_leer
                            //////////////////////////////
                            //2 x Batterien voll-leer über boolean Wert false/true in function batterien_voll_leer_alias
                            createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Wohnzimmer Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Wohnzimmer_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Wohnzimmer Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                            createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Küche Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Kueche_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Küche Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                            
                            //////////////////////////////
                            //  Batterien_Volt
                            //////////////////////////////
                            //2 x Batterien Volt Anzeige in function batterien_volt_alias
                            createAlias('hm-rpc.0.xxx.0.OPERATING_VOLTAGE'/*Wohnzimmer Fenster links:0 OPERATING VOLTAGE*/, 'Batterien_Volt.Wohnzimmer_Fenster_links', undefined, 'batterien_volt_alias', 'number', undefined, undefined, 'Wohnzimmer Fenster links', 'value.voltage', 'per Script erstellt', undefined, undefined, 'Volt', undefined)
                            createAlias('hm-rpc.0.xxx.0.OPERATING_VOLTAGE'/*Küche Fenster links:0 OPERATING VOLTAGE*/, 'Batterien_Volt.Kueche_Fenster_links', undefined, 'batterien_volt_alias', 'number', undefined, undefined, 'Küche Fenster links', 'value.voltage', 'per Script erstellt', undefined, undefined, 'Volt', undefined)
                            
                            


                            nach dem Alias erstellen das hier beachten: Klick


                            bitte das Blockly auf den eigenen Rechner downloaden und dort mit einem Editor öffnen und den gesamten Inhalt der Textdatei in die Zwischenablage kopieren und anschließend in ein neues leeres Blockly importieren. Nicht direkt im Browser öffnen und kopieren, dann kommt es oft zu Umlaute Fehlern im Blockly.

                            Hier ist der Blockly Export


                            Temperaturen_1-6-7.zip


                            Batterien_Volt_1-6-7.zip


                            Steckdosen_1-6-7.zip


                            Lichter_1-6-7.zip


                            Bewegungsmelder_1-6-7.zip


                            Batterien_voll_leer_1-6-7.zip


                            Fenster_1-6-7.zip


                            Tueren_1-6-7.zip


                            Batterien_Prozent_1-6-7.zip

                            meine iQontrol Einstellungen


                            Bildschirmfoto 2020-12-03 um 08.00.37.png

                            Bildschirmfoto 2020-12-03 um 08.00.50.png

                            Bildschirmfoto 2020-12-03 um 08.02.31.png

                            Bildschirmfoto 2020-12-03 um 08.03.03.png

                            Bildschirmfoto 2020-12-03 um 08.03.44.png

                            Bildschirmfoto 2020-12-03 um 08.04.20.png

                            Bildschirmfoto 2020-12-03 um 08.05.09.png

                            Bildschirmfoto 2020-12-03 um 08.06.48.png

                            Bildschirmfoto 2020-12-03 um 08.07.24.png

                            Bildschirmfoto 2020-12-03 um 08.08.20.png

                            Bildschirmfoto 2020-12-03 um 08.09.00.png


                            Hier der Export von diesem View
                            2020-12-20_iqontrol_0_selected_views.json.zip

                            20201220_092104.jpg




                            Zuerst muß das neue SmartGerät aus iot gesucht und gefunden werden. Dazu ist es wichtig einmal den iot Adapter zu öffnen und in den Reiter "SMART-GERÄTE" zu wechseln. Das neue Gerät sollte da sein, aber wenn man diesen Schritt nicht macht, dann werden von Alexa keine neuen Geräte gefunden. Danach kann der Adapter wieder geschlossen werden.
                            Bildschirmfoto 2020-04-26 um 15.34.49.png
                            Nun entweder in der App neue Geräte suchen lassen, oder kurz den Sprachbefehl: "Alexa, suche neue Geräte" ausführen. Wenn das durchgelaufen ist und ein neues oder mehrere neue Geräte gefunden wurden, dann geht es mit dem Einrichten der Routine weiter.

                            neue Geräte suchen lassen in der Alexa App

                            2020-06-30 15.03.38.jpg

                            ein neues Gerät (oder mehrere) wurde gefunden

                            2020-06-30 15.04.00.jpg
                            alles überspringen und dann zu den Routinen. Dort dann auf das Plus (oben rechts) drücken und eine neue Routine anlegen. Satz bzw. Frage eingeben bei Stimme

                            2020-06-30 15.04.36.jpg

                            Dann als nächstes die Aktion hinzufügen (SmartHome), alle Geräte auswählen und das passende Gerät einfügen.

                            2020-06-30 15.04.55.jpg

                            Oben rechts auf speichern, dann kurz warten und ausprobieren...

                            Mr-RobotM Offline
                            Mr-RobotM Offline
                            Mr-Robot
                            schrieb am zuletzt editiert von Mr-Robot
                            #1182

                            @dslraser
                            vielen Dank für deine Versionen 1.6.6, die funktioniert bei mir wunderbar.

                            Ich habe aber Festgestellt, das bei mir im iot Adapter, z.B. die ...05_Telegram.Telegram_Batterien_Prozentstatus_Wohnung_senden alle in einer Gruppe sind mit (Fensterstatus, Türenstatus , Batterienstatus Volt) hier ist bei allen der gleiche "smartName" verwendet.
                            05_Telegram.Telegram_Temperaturenstatus_Wohnung_senden war richtig hinterlegt und daher gleich in einer eigenen Gruppe.
                            Im Fenster Skript 1.6.6 / Datenpunkte Anlegen ist in Zeile 292 ("smartName": {"de": 'Telegram Batterienstatus Volt ...} eingetragen, das sollte hier vermutlich ("smartName": {"de": 'Telegram Fensterstatus ....} heißen.

                            hier die ganze Zeile


                            ['Geraete_zaehlen.Fenster.'+[etage]+'.05_Telegram.Telegram_Fensterstatus_'+[etage]+'senden', {'name':'Telegram_Fensterstatus'+[etage]+'_senden', 'type':'boolean', 'read':true, 'write':true, 'role':'button', 'def':true, "smartName": {"de": 'Telegram Batterienstatus Volt '+[etage]+' senden',"smartType": "SWITCH"} }],

                            Bei EMAIL stimmt der smartName ebenfalls nicht, kleiner Bug, also nichts wildes. :blush:

                            dslraserD 2 Antworten Letzte Antwort
                            0
                            • Mr-RobotM Mr-Robot

                              @dslraser
                              vielen Dank für deine Versionen 1.6.6, die funktioniert bei mir wunderbar.

                              Ich habe aber Festgestellt, das bei mir im iot Adapter, z.B. die ...05_Telegram.Telegram_Batterien_Prozentstatus_Wohnung_senden alle in einer Gruppe sind mit (Fensterstatus, Türenstatus , Batterienstatus Volt) hier ist bei allen der gleiche "smartName" verwendet.
                              05_Telegram.Telegram_Temperaturenstatus_Wohnung_senden war richtig hinterlegt und daher gleich in einer eigenen Gruppe.
                              Im Fenster Skript 1.6.6 / Datenpunkte Anlegen ist in Zeile 292 ("smartName": {"de": 'Telegram Batterienstatus Volt ...} eingetragen, das sollte hier vermutlich ("smartName": {"de": 'Telegram Fensterstatus ....} heißen.

                              hier die ganze Zeile


                              ['Geraete_zaehlen.Fenster.'+[etage]+'.05_Telegram.Telegram_Fensterstatus_'+[etage]+'senden', {'name':'Telegram_Fensterstatus'+[etage]+'_senden', 'type':'boolean', 'read':true, 'write':true, 'role':'button', 'def':true, "smartName": {"de": 'Telegram Batterienstatus Volt '+[etage]+' senden',"smartType": "SWITCH"} }],

                              Bei EMAIL stimmt der smartName ebenfalls nicht, kleiner Bug, also nichts wildes. :blush:

                              dslraserD Offline
                              dslraserD Offline
                              dslraser
                              Forum Testing Most Active
                              schrieb am zuletzt editiert von
                              #1183

                              @Mr-Robot
                              hast recht, ist mir bisher gar nicht aufgefallen. Schaue ich mir an.

                              1 Antwort Letzte Antwort
                              0
                              • Mr-RobotM Mr-Robot

                                @dslraser
                                vielen Dank für deine Versionen 1.6.6, die funktioniert bei mir wunderbar.

                                Ich habe aber Festgestellt, das bei mir im iot Adapter, z.B. die ...05_Telegram.Telegram_Batterien_Prozentstatus_Wohnung_senden alle in einer Gruppe sind mit (Fensterstatus, Türenstatus , Batterienstatus Volt) hier ist bei allen der gleiche "smartName" verwendet.
                                05_Telegram.Telegram_Temperaturenstatus_Wohnung_senden war richtig hinterlegt und daher gleich in einer eigenen Gruppe.
                                Im Fenster Skript 1.6.6 / Datenpunkte Anlegen ist in Zeile 292 ("smartName": {"de": 'Telegram Batterienstatus Volt ...} eingetragen, das sollte hier vermutlich ("smartName": {"de": 'Telegram Fensterstatus ....} heißen.

                                hier die ganze Zeile


                                ['Geraete_zaehlen.Fenster.'+[etage]+'.05_Telegram.Telegram_Fensterstatus_'+[etage]+'senden', {'name':'Telegram_Fensterstatus'+[etage]+'_senden', 'type':'boolean', 'read':true, 'write':true, 'role':'button', 'def':true, "smartName": {"de": 'Telegram Batterienstatus Volt '+[etage]+' senden',"smartType": "SWITCH"} }],

                                Bei EMAIL stimmt der smartName ebenfalls nicht, kleiner Bug, also nichts wildes. :blush:

                                dslraserD Offline
                                dslraserD Offline
                                dslraser
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #1184

                                @Mr-Robot
                                Ich habe im ersten Beitrag die Version 1.6.7 eingefügt und die SmartNamen bei Telegram und E-Mail korrigiert.

                                Bildschirmfoto 2020-12-23 um 12.29.54.png

                                Bildschirmfoto 2020-12-23 um 12.30.17.png

                                Mr-RobotM 1 Antwort Letzte Antwort
                                0
                                • dslraserD dslraser

                                  @Mr-Robot
                                  Ich habe im ersten Beitrag die Version 1.6.7 eingefügt und die SmartNamen bei Telegram und E-Mail korrigiert.

                                  Bildschirmfoto 2020-12-23 um 12.29.54.png

                                  Bildschirmfoto 2020-12-23 um 12.30.17.png

                                  Mr-RobotM Offline
                                  Mr-RobotM Offline
                                  Mr-Robot
                                  schrieb am zuletzt editiert von Mr-Robot
                                  #1185

                                  @dslraser

                                  Danke / Ver. 1.6.7 funktionieren wunderbar.

                                  Ich habe zusätzlich für mich noch von der "Temperaturen_1-6-7" eine "Feuchtigkeit_1-6-7" erstellt.
                                  Diese nutze ich um die Feuchtigkeit/Humidity Werte nach dem gleichen Schema zu erfassen um mir per Telegram schicken zu können.
                                  Ich lade die Ver. hier einfach als Zip hoch.
                                  Ausgabe getestet unter Telegram (siehe Bild) + im iot Adapater wird der Datenpunkt auch richtig ausgelesen.
                                  Ausgabe per Mail wurde nicht getestet, sollte aber auch funktionieren.


                                  Copy von Post 1: @dslraser
                                  bitte das Blockly auf den eigenen Rechner downloaden und dort mit einem Editor öffnen und den gesamten Inhalt der Textdatei in die Zwischenablage kopieren und anschließend in ein neues leeres Blockly importieren. Nicht direkt im Browser öffnen und kopieren, dann kommt es oft zu Umlaute Fehlern im Blockly.

                                  Hier ist der Blockly Export

                                  Feuchtigkeit_1-6-7.zip


                                  Telegram.jpg
                                  iqontrol.png
                                  Feuchtigkeit_iobroker.jpg

                                  1 Antwort Letzte Antwort
                                  1
                                  • dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #1186

                                    Hier geht es dann weiter wenn es Fragen gibt.

                                    https://forum.iobroker.net/post/549501

                                    1 Antwort Letzte Antwort
                                    -1
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    859

                                    Online

                                    32.4k

                                    Benutzer

                                    81.4k

                                    Themen

                                    1.3m

                                    Beiträge
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Anmelden

                                    • Du hast noch kein Konto? Registrieren

                                    • Anmelden oder registrieren, um zu suchen
                                    • Erster Beitrag
                                      Letzter Beitrag
                                    0
                                    • Home
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe