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.5k

  • 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.8k 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.
  • SlowmanS Slowman

    @dslraser

    Doch wird/werden korrekt angezeigt. Denke....

    Screenshot_2020-05-11 Telegram Web.png

    Kann man sich den Status zu einer gewissen Zeit auch per Telegram schicken lassen z.B. 20 Uhr

    Und OT: Brauche ich für diese HMIP Drehgriffe eine CCU oder geht das auch direkt am ioBroker?

    NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    schrieb am zuletzt editiert von
    #280

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

    Brauche ich für diese HMIP Drehgriffe eine CCU oder geht das auch direkt am ioBroker?

    Zentrale (CCU, Raspberrymatic, und was es sonst noch so gibt) brauchst du.

    ° Node.js: 20.17.0 NPM: 10.8.2
    ° Proxmox, Ubuntu 22.04.3 LTS
    ° Fixer ---> iob fix

    1 Antwort Letzte Antwort
    1
    • SlowmanS Offline
      SlowmanS Offline
      Slowman
      schrieb am zuletzt editiert von
      #281

      @dslraser

      Stimmt, Danke für die Anpassung!
      Stimmt mit dem "Maulschlüssel kann ich zur einer Zeit ganz einfach dies bewerkstelligen.

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

        @Slowman @Negalein @dirk1962 @falke69 und auch andere User.

        Ich habe das Fensterblockly nochmal verändert/vereinfacht, hoffe ich jedenfalls. Könnt Ihr bitte mal testen. Dazu braucht Ihr Euer bestehendes Blockly oder Eure Datenpunkte nicht löschen, nur stoppen und eins von diesem Post installieren und starten. Es darf immer nur der eigentliche State in der Aufzählung sein, nicht der ganze Kanal, so wie hier:

        Bildschirmfoto 2020-05-12 um 14.29.27.png

        Den Selektor habe ich vereinfacht:
        Bildschirmfoto 2020-05-12 um 14.33.03.png

        Es können verschiedene Sensoren in der gleichen Aufzählung sein, so wie hier: (der Fenster Bad links Is openist ein zigbee, der Rest ist bei mir HMIP gemischt (einfache Sensoren und HMIP Drehgriffe)

        Bildschirmfoto 2020-05-12 um 14.30.15.png

        Ziel: das Blockly soll den Sensor selbst erkennen und sowas wie .STATE, oder .state , oder Ìs openusw. soll automatisch entfernt werden.


        Download ist jetzt im ersten Beitrag zu finden.

        falke69F dirk1962D 2 Antworten Letzte Antwort
        1
        • dslraserD dslraser

          @Slowman @Negalein @dirk1962 @falke69 und auch andere User.

          Ich habe das Fensterblockly nochmal verändert/vereinfacht, hoffe ich jedenfalls. Könnt Ihr bitte mal testen. Dazu braucht Ihr Euer bestehendes Blockly oder Eure Datenpunkte nicht löschen, nur stoppen und eins von diesem Post installieren und starten. Es darf immer nur der eigentliche State in der Aufzählung sein, nicht der ganze Kanal, so wie hier:

          Bildschirmfoto 2020-05-12 um 14.29.27.png

          Den Selektor habe ich vereinfacht:
          Bildschirmfoto 2020-05-12 um 14.33.03.png

          Es können verschiedene Sensoren in der gleichen Aufzählung sein, so wie hier: (der Fenster Bad links Is openist ein zigbee, der Rest ist bei mir HMIP gemischt (einfache Sensoren und HMIP Drehgriffe)

          Bildschirmfoto 2020-05-12 um 14.30.15.png

          Ziel: das Blockly soll den Sensor selbst erkennen und sowas wie .STATE, oder .state , oder Ìs openusw. soll automatisch entfernt werden.


          Download ist jetzt im ersten Beitrag zu finden.

          falke69F Offline
          falke69F Offline
          falke69
          schrieb am zuletzt editiert von
          #283

          @dslraser

          also bei mir geht es ohne Probleme. Habe das mit Mail Benachrichtung verwendet.

          TOP!

          dslraserD 1 Antwort Letzte Antwort
          1
          • falke69F falke69

            @dslraser

            also bei mir geht es ohne Probleme. Habe das mit Mail Benachrichtung verwendet.

            TOP!

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

            @falke69
            Ich bau gerade das Licht Blockly auch so um, geht dann alles etwas einfacher.

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

              @Slowman @Negalein @dirk1962 @falke69 und auch andere User.

              Hier noch das umgebaute Lichtblockly zum testen. Nur noch ein Selektor bei gemischten Lampen.
              Hier HUE Lampen und HMIP Steckdosen gemischt.

              Bildschirmfoto 2020-05-12 um 17.37.53.png

              Selektor bei mir

              Bildschirmfoto 2020-05-12 um 18.30.25.png


              Download ist jetzt im ersten Beitrag zu finden.

              dirk1962D 1 Antwort Letzte Antwort
              3
              • SlowmanS Offline
                SlowmanS Offline
                Slowman
                schrieb am zuletzt editiert von Slowman
                #286

                @dslraser

                Wahnsinn, der Script ist jetzt wirklich was für "Doofe" :clap: Klappt wunderbar, nur Telegramm angepasst und es funzt. Einfach nur genial :+1:

                Einfacher geht es nicht, Licht funktioniert auch ohne Probleme, wird alles erkannt, was man in die Aufzählung gepackt hat!

                1 Antwort Letzte Antwort
                1
                • dslraserD dslraser

                  @falke69
                  Ich bau gerade das Licht Blockly auch so um, geht dann alles etwas einfacher.

                  falke69F Offline
                  falke69F Offline
                  falke69
                  schrieb am zuletzt editiert von
                  #287

                  @dslraser
                  Perfekt! läuft bei mir auch auf Anhieb. :-)

                  1 Antwort Letzte Antwort
                  0
                  • dslraserD dslraser

                    @Slowman @Negalein @dirk1962 @falke69 und auch andere User.

                    Ich habe das Fensterblockly nochmal verändert/vereinfacht, hoffe ich jedenfalls. Könnt Ihr bitte mal testen. Dazu braucht Ihr Euer bestehendes Blockly oder Eure Datenpunkte nicht löschen, nur stoppen und eins von diesem Post installieren und starten. Es darf immer nur der eigentliche State in der Aufzählung sein, nicht der ganze Kanal, so wie hier:

                    Bildschirmfoto 2020-05-12 um 14.29.27.png

                    Den Selektor habe ich vereinfacht:
                    Bildschirmfoto 2020-05-12 um 14.33.03.png

                    Es können verschiedene Sensoren in der gleichen Aufzählung sein, so wie hier: (der Fenster Bad links Is openist ein zigbee, der Rest ist bei mir HMIP gemischt (einfache Sensoren und HMIP Drehgriffe)

                    Bildschirmfoto 2020-05-12 um 14.30.15.png

                    Ziel: das Blockly soll den Sensor selbst erkennen und sowas wie .STATE, oder .state , oder Ìs openusw. soll automatisch entfernt werden.


                    Download ist jetzt im ersten Beitrag zu finden.

                    dirk1962D Offline
                    dirk1962D Offline
                    dirk1962
                    schrieb am zuletzt editiert von dirk1962
                    #288

                    @dslraser
                    Lädst Du gerade eine neue Fenster Version hoch? Alle Fenster Dateien mit Alexa sind leer. :disappointed:

                    NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

                    1 Antwort Letzte Antwort
                    0
                    • dslraserD dslraser

                      @Slowman @Negalein @dirk1962 @falke69 und auch andere User.

                      Hier noch das umgebaute Lichtblockly zum testen. Nur noch ein Selektor bei gemischten Lampen.
                      Hier HUE Lampen und HMIP Steckdosen gemischt.

                      Bildschirmfoto 2020-05-12 um 17.37.53.png

                      Selektor bei mir

                      Bildschirmfoto 2020-05-12 um 18.30.25.png


                      Download ist jetzt im ersten Beitrag zu finden.

                      dirk1962D Offline
                      dirk1962D Offline
                      dirk1962
                      schrieb am zuletzt editiert von
                      #289

                      @dslraser
                      Mit uns kannst Du es ja machen.:grinning: :grinning:
                      Mal eben einen neuen Selektor angelegt und der muss auch noch bei "on" und nicht mehr bei "level" eingetragen werden.
                      Aber wenn man alles richtig geändert hat funktioniert es wie es soll.:+1: :+1:

                      NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

                      dslraserD 1 Antwort Letzte Antwort
                      0
                      • dirk1962D dirk1962

                        @dslraser
                        Mit uns kannst Du es ja machen.:grinning: :grinning:
                        Mal eben einen neuen Selektor angelegt und der muss auch noch bei "on" und nicht mehr bei "level" eingetragen werden.
                        Aber wenn man alles richtig geändert hat funktioniert es wie es soll.:+1: :+1:

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

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

                        Mal eben einen neuen Selektor angelegt und der muss auch noch bei "on" und nicht mehr bei "level" eingetragen werden.

                        Das hat den Grund, das .on ein boolean ist und viele anderen auch.

                        D 1 Antwort Letzte Antwort
                        1
                        • dslraserD dslraser

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

                          Mal eben einen neuen Selektor angelegt und der muss auch noch bei "on" und nicht mehr bei "level" eingetragen werden.

                          Das hat den Grund, das .on ein boolean ist und viele anderen auch.

                          D Offline
                          D Offline
                          DocGame
                          schrieb am zuletzt editiert von
                          #291

                          @dslraser Da ich meine IQontrol-Bedienung etwas "aufpimpen" wollte, bin ich auf deine Scripts gestossen und wollte mit dem FensterScript(Alexa) anfangen. Irgendwie klappt es aber nur halb. Die Datenpunkte werden angelegt. Ich habe meine Fenster und Türkontakte (Xiaomi-Aqara) auf 5 Mi-Hubs verteilt über den Mi-Home Adapter in IoBroker integriert. Am Zigbee-Adapter habe ich zum Testen auch einen dran. Das Zählen scheint zu klappen. Der Namen scheint nur vom Zigbee-Gerät eingelesen zu werden. Was könnte ich falsch machen? (Ausser das die Umlaute noch nicht korrekt sind)
                          Hier einige States und die erzeugte HTML:
                          MiHome:
                          Fenster_Mihome.JPG
                          Zigbee:
                          Fenster_Zigbee.JPG
                          Datenpunkte:
                          Fenster_Zählen.JPG
                          HTML:

                          <!DOCTYPE html><html lang="de"><head><title>Fenster</title><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body><p style="color:#0000FF; font-family:Helvetica; font-weight: bold">Fensterstatus</p> <p style="color:#ff0000; font-family:Helvetica; font-weight: bold">letze Änderung:  13.05.2020 17:22:37 </p> <table border="8" cellspacing="10" cellpadding="20" style="color:black; font-family:Helvetica;background-image: linear-gradient(42deg,transparent,lightblue);"><tr style="color:#0000FF"; font-weight: bold"><td>Fenster-Türen&ensp;&ensp;&ensp;</td><td>Status</td></tr><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>TS Garagentor Oben <td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>TS Garagentor unten <td>geschlossen<tr><td>TS Wohnzimmer hinten links <td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen</table></body>
                          
                          
                          dslraserD 2 Antworten Letzte Antwort
                          0
                          • D DocGame

                            @dslraser Da ich meine IQontrol-Bedienung etwas "aufpimpen" wollte, bin ich auf deine Scripts gestossen und wollte mit dem FensterScript(Alexa) anfangen. Irgendwie klappt es aber nur halb. Die Datenpunkte werden angelegt. Ich habe meine Fenster und Türkontakte (Xiaomi-Aqara) auf 5 Mi-Hubs verteilt über den Mi-Home Adapter in IoBroker integriert. Am Zigbee-Adapter habe ich zum Testen auch einen dran. Das Zählen scheint zu klappen. Der Namen scheint nur vom Zigbee-Gerät eingelesen zu werden. Was könnte ich falsch machen? (Ausser das die Umlaute noch nicht korrekt sind)
                            Hier einige States und die erzeugte HTML:
                            MiHome:
                            Fenster_Mihome.JPG
                            Zigbee:
                            Fenster_Zigbee.JPG
                            Datenpunkte:
                            Fenster_Zählen.JPG
                            HTML:

                            <!DOCTYPE html><html lang="de"><head><title>Fenster</title><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body><p style="color:#0000FF; font-family:Helvetica; font-weight: bold">Fensterstatus</p> <p style="color:#ff0000; font-family:Helvetica; font-weight: bold">letze Änderung:  13.05.2020 17:22:37 </p> <table border="8" cellspacing="10" cellpadding="20" style="color:black; font-family:Helvetica;background-image: linear-gradient(42deg,transparent,lightblue);"><tr style="color:#0000FF"; font-weight: bold"><td>Fenster-Türen&ensp;&ensp;&ensp;</td><td>Status</td></tr><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td><span style="color:#FF0000"> geöffnet </span><tr><td>TS Garagentor Oben <td><span style="color:#FF0000"> geöffnet </span><tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen<tr><td>TS Garagentor unten <td>geschlossen<tr><td>TS Wohnzimmer hinten links <td>geschlossen<tr><td>Sensor unbekannt<td>geschlossen</table></body>
                            
                            
                            dslraserD Offline
                            dslraserD Offline
                            dslraser
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von dslraser
                            #292

                            @DocGame
                            eigentlich habe ich schon darauf gewartet, da ich nicht alle Sensoren habe.
                            Bitte stelle mal einen RAW von einem Sensor der nicht erkannt wird (wahrscheinlich MiHome) hier in Code Tags rein.

                            Zum Umlaute Fehler: Bitte die Download Datei auf den eigenen Rechner laden (rechte Maustaste, speichern unter) und dann mit einem Editor (in UTF-8 eingestellt) öffnen und den Inhalt importieren, nicht direkt aus dem Browser kopieren.

                            D 1 Antwort Letzte Antwort
                            0
                            • dslraserD dslraser

                              @DocGame
                              eigentlich habe ich schon darauf gewartet, da ich nicht alle Sensoren habe.
                              Bitte stelle mal einen RAW von einem Sensor der nicht erkannt wird (wahrscheinlich MiHome) hier in Code Tags rein.

                              Zum Umlaute Fehler: Bitte die Download Datei auf den eigenen Rechner laden (rechte Maustaste, speichern unter) und dann mit einem Editor (in UTF-8 eingestellt) öffnen und den Inhalt importieren, nicht direkt aus dem Browser kopieren.

                              D Offline
                              D Offline
                              DocGame
                              schrieb am zuletzt editiert von DocGame
                              #293

                              @dslraser Das mit UTF8 hab ich schon weiter oben gelesen, wollte aber erst mal schauen ob sonst alles klappt.
                              Hier der Raw von dem State:

                              {
                                "from": "system.adapter.mihome.0",
                                "user": "system.user.admin",
                                "ts": 1567179731251,
                                "common": {
                                  "name": "Is opened",
                                  "role": "state",
                                  "type": "boolean",
                                  "write": false,
                                  "read": true
                                },
                                "native": {},
                                "acl": {
                                  "object": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator",
                                  "state": 1636
                                },
                                "_id": "mihome.0.devices.magnet_158d000237d2a7.state",
                                "type": "state"
                              }
                              
                              dslraserD 1 Antwort Letzte Antwort
                              0
                              • dirk1962D Offline
                                dirk1962D Offline
                                dirk1962
                                schrieb am zuletzt editiert von
                                #294

                                @dslraser
                                Das neue Steckdosen Blockly mit Alexa Ansage und E-Mail sortiert die Steckdosen, die an sind, nicht mehr alphabetisch.

                                NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

                                dslraserD 1 Antwort Letzte Antwort
                                0
                                • D DocGame

                                  @dslraser Das mit UTF8 hab ich schon weiter oben gelesen, wollte aber erst mal schauen ob sonst alles klappt.
                                  Hier der Raw von dem State:

                                  {
                                    "from": "system.adapter.mihome.0",
                                    "user": "system.user.admin",
                                    "ts": 1567179731251,
                                    "common": {
                                      "name": "Is opened",
                                      "role": "state",
                                      "type": "boolean",
                                      "write": false,
                                      "read": true
                                    },
                                    "native": {},
                                    "acl": {
                                      "object": 1636,
                                      "owner": "system.user.admin",
                                      "ownerGroup": "system.group.administrator",
                                      "state": 1636
                                    },
                                    "_id": "mihome.0.devices.magnet_158d000237d2a7.state",
                                    "type": "state"
                                  }
                                  
                                  dslraserD Offline
                                  dslraserD Offline
                                  dslraser
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #295

                                  @DocGame
                                  heißen die state alle nur Is opened(wie willst Du die vernünftig unterscheiden ? Willst Du Dir dafür nicht lieber einen Alias anlegen ? Ich kann das mit rein nehmen, aber dann heißen alle diese Fenster Ìs opened`

                                  Man könnte auch den channel Namen ausgeben lassen....

                                  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...

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

                                    @dslraser

                                    Hallo,

                                    irgendwo habe ich einen Fehler?

                                    Screenshot (2451).png

                                    javascript.0	2020-05-13 18:26:22.280	error	(6672) at processTicksAndRejections (internal/process/task_queues.js:97:5)
                                    javascript.0	2020-05-13 18:26:22.280	error	(6672) at runMicrotasks (<anonymous>)
                                    javascript.0	2020-05-13 18:26:22.280	error	(6672) at C:\Program Files\iobroker\Test\node_modules\standard-as-callback\built\index.js:19:49
                                    javascript.0	2020-05-13 18:26:22.280	error	(6672) at tryCatcher (C:\Program Files\iobroker\Test\node_modules\standard-as-callback\built\utils.js:11:23)
                                    javascript.0	2020-05-13 18:26:22.280	error	(6672) at C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\states\statesInRedis.js:616:17
                                    javascript.0	2020-05-13 18:26:22.280	error	(6672) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1105:17
                                    javascript.0	2020-05-13 18:26:22.279	error	(6672) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1514:17
                                    javascript.0	2020-05-13 18:26:22.279	error	(6672) at prepareScript (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1461:37)
                                    javascript.0	2020-05-13 18:26:22.279	error	(6672) at compile (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1238:28)
                                    javascript.0	2020-05-13 18:26:22.279	error	(6672) at Object.createScript (vm.js:263:10)
                                    javascript.0	2020-05-13 18:26:22.279	error	(6672) at new Script (vm.js:88:7)
                                    javascript.0	2020-05-13 18:26:22.279	error	(6672) SyntaxError: Unexpected token ')'
                                    javascript.0	2020-05-13 18:26:22.279	error	(6672) ^
                                    javascript.0	2020-05-13 18:26:22.279	error	(6672) (function () {if () {clearTimeout(); = null;}})();
                                    javascript.0	2020-05-13 18:26:22.279	error	at script.js.Ansage.Ansage_Anrufer_dslraser:247
                                    javascript.0	2020-05-13 18:26:22.279	error	(6672) script.js.Ansage.Ansage_Anrufer_dslraser compile failed:
                                    javascript.0	2020-05-13 18:26:22.275	info	(6672) Start javascript script.js.Ansage.Ansage_Anrufer_dslraser
                                    

                                    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

                                      Hallo,

                                      irgendwo habe ich einen Fehler?

                                      Screenshot (2451).png

                                      javascript.0	2020-05-13 18:26:22.280	error	(6672) at processTicksAndRejections (internal/process/task_queues.js:97:5)
                                      javascript.0	2020-05-13 18:26:22.280	error	(6672) at runMicrotasks (<anonymous>)
                                      javascript.0	2020-05-13 18:26:22.280	error	(6672) at C:\Program Files\iobroker\Test\node_modules\standard-as-callback\built\index.js:19:49
                                      javascript.0	2020-05-13 18:26:22.280	error	(6672) at tryCatcher (C:\Program Files\iobroker\Test\node_modules\standard-as-callback\built\utils.js:11:23)
                                      javascript.0	2020-05-13 18:26:22.280	error	(6672) at C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\lib\states\statesInRedis.js:616:17
                                      javascript.0	2020-05-13 18:26:22.280	error	(6672) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1105:17
                                      javascript.0	2020-05-13 18:26:22.279	error	(6672) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1514:17
                                      javascript.0	2020-05-13 18:26:22.279	error	(6672) at prepareScript (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1461:37)
                                      javascript.0	2020-05-13 18:26:22.279	error	(6672) at compile (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\main.js:1238:28)
                                      javascript.0	2020-05-13 18:26:22.279	error	(6672) at Object.createScript (vm.js:263:10)
                                      javascript.0	2020-05-13 18:26:22.279	error	(6672) at new Script (vm.js:88:7)
                                      javascript.0	2020-05-13 18:26:22.279	error	(6672) SyntaxError: Unexpected token ')'
                                      javascript.0	2020-05-13 18:26:22.279	error	(6672) ^
                                      javascript.0	2020-05-13 18:26:22.279	error	(6672) (function () {if () {clearTimeout(); = null;}})();
                                      javascript.0	2020-05-13 18:26:22.279	error	at script.js.Ansage.Ansage_Anrufer_dslraser:247
                                      javascript.0	2020-05-13 18:26:22.279	error	(6672) script.js.Ansage.Ansage_Anrufer_dslraser compile failed:
                                      javascript.0	2020-05-13 18:26:22.275	info	(6672) Start javascript script.js.Ansage.Ansage_Anrufer_dslraser
                                      
                                      dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #297

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

                                      irgendwo habe ich einen Fehler?

                                      wann kommt das ?

                                      sigi234S 1 Antwort Letzte Antwort
                                      0
                                      • dslraserD dslraser

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

                                        irgendwo habe ich einen Fehler?

                                        wann kommt das ?

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

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

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

                                        irgendwo habe ich einen Fehler?

                                        wann kommt das ?

                                        Beim Skriptstart

                                        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:

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

                                          irgendwo habe ich einen Fehler?

                                          wann kommt das ?

                                          Beim Skriptstart

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

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

                                          Beim Skriptstart

                                          welche Variante ?

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          387

                                          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