Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    209

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

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

Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML

Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
alexaansageblocklyfensteriqontroljarvisjavascripttür-fenster-kontakt
524 Posts 40 Posters 120.8k Views 57 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    wrote on last edited by dslraser
    #1
    Versionen 1.8.1
    zuletzt aktualisiert am Dezember 2021
    Typ Blockly mit JavaScript Funktionen
    verwendete Adapter je nach dem was im Blockly aktiviert ist
    verwendete Geräte verschieden - gemischt
    Ursprung war hier
    Version 1.8.1 hier
    Zusatzblockly zur Anruferansage klick hier

    Hallo Zusammen.
    Da mir der ursprüngliche Forum Thread zu lang geworden ist und sich der Funktionsumfang des Blockly immer wieder verändert hat erstelle ich hier einen neuen Beitrag. Diese "Anleitung" möchte ich hiermit auch auf den aktuellen Stand bringen und somit die Anwendung erleichtern.

    Ich stelle hier meine Blockly's 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. Ebenfalls werden diverse Listen als Text oder HTML Ausgaben zur Verfügung gestellt.
    Das gesamte Blockly nutzt "alias". Alle anderen benötigten Datenpunkte erstellt oder 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.

    Meine verwendeten Adapter sind:

    • Alexa2 Adapter
    • iot Adapter
    • Javascript Adapter
    • Telegram Adapter (optional)
    • E-Mail Adapter (optional)
    • iQontrol (optional)
    • jarvis (optional)
    • alias-manager (optional)

    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)
    • Alexa, schick mir den Status der Batterien(Fenster/Türen/Lampen/ Bewegungsmelder usw.---entweder auf Telegram oder per E-Mail, oder auf beides)

    Welche Frage in welcher Formulierung gestellt wird bestimmt Ihr natürlich selbst, da dies über eine Routine in der Alexa App gesteuert werden kann. 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, das 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.

    SmartGeräte und SmartNamen 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).

    01_Speicherort.png

    Für die Erstellung der Datenpunkte nutze ich diese Funktion.

    03_Funktion_Datenpunkte_anlegen.png

    Für diese Funktion muß die Option "Erlaube das Kommando "setObject" im Javascript Adapter erlaubt sein.

    02_JS_Adapter_Einstellung.png

    Im Blockly muß dann noch eine "Etage" eingestellt werden.
    Mit den "Etagen" wäre es dann möglich z.B. seine Fenster, oder auch alle anderen Geräte, in mehreren Blocklys zu verwenden, also das Blockly einmal installieren für Fenster/Erdgeschoss und ein zweites Blockly dann z.B. für Fenster/Keller.

    04_Etage.png

    Hier muß dann eingestellt werden was verwendet werden soll. (wenn Fenster_verwenden auf falsch gestellt wird, werden alle vom Blockly angelegten Datenpunkte wieder gelöscht. Das gleiche gilt für die anderen Optionen, wenn diese auf falsch gestellt werden, dann werden die dazu gehörigen Datenpunkte gar nicht erst angelegt, oder wieder gelöscht.)

    05_Blockly_Grundeinstellungen.png

    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 im 2. Beitrag]
    (https://forum.iobroker.net/post/549502).
    Eine weitere Möglichkeit zum alias erstellen ist der relativ neue Adapter alias-manager von @s-bormann (https://github.com/sbormann/ioBroker.alias-manager#readme)
    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. Aufzählungen sind im ioBroker hier zu finden (Haken rein setzen bei Aufzählungen)

    06_Aufzählung_einstellen.png

    dann erscheinen die hier

    07_Aufzählung_einstellen.png

    Bei den Aufzälungen/Funktionen dann hier auf das + klicken

    08_Funktionen.png

    danach dann runter scrollen und dann auf das + bei Benutzerdefinierte Gruppe klicken

    09_benutzerdefinierte Gruppe.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
    rssi_alias

    Das ist dann auch gleich der Selektor im jeweiligen Blockly

    10_Selektor.png

    Wenn alle Blocklys benutzt werden sieht das in den ioBroker Objekten so aus:

    11_Geräte zählen.png

    Am Beispiel Fenster erstellt das Blockly nach dem ersten Start diese Datenpunktstruktur: (wenn alle Schalter im Blockly auf wahr stehen und die "Etage" Haus heißt, bei mit unter 0_userdata.0)

    12_Datenpunktstruktur.png

    • Unter 01_Anzeigen_und_Listen sieht es so aus, wobei die Unterpunkte 11/12/13 selbst mit Smileys befüllt/überschrieben werden können. Auf meinem Mac geht das z.B. mit der rechten Maustaste in das Feld klicken und den Emoji auswählen, bei Windows weiß ich es nicht)

    • Die Datenpunkte 1-5 sind (denke ich) Selbsterklärend.

    • In 06 sind alle "aktiven" Geräten als Textliste.

    • In 07 ist die gesamte Liste inkl. Zustand als Text.

    • In 08 sind alle Geräte inklusive Zustand (+ Emoji wenn eingestellt) als HTML Liste.

    • In 09 sind alle "aktiven" Geräte (gekippt oder geöffnet + Emoji wenn eingestellt)

    • In 10 ist eine formartierte Liste für den Telegram/Email Versand, ebenfalls mit Emoji
      Bildschirmfoto 2021-06-23 um 17.50.27.png

    • Unter 02_Trigger_und_Schalter sieht es so aus. Hier lassen sich verschiedene Dinge für die HTML Ausgabe Listen umschalten.
      14_Trigger_und_Schalter.png

    • Unter 02_Trigger_und_Schalter kann es auch so aussehen. Mit den zwei zusätzlichen Datenpunkten lässt sich z.B. in der HTML Überschrift der Status an/abschalten, oder auch für iQontrol Nutzer direkt in der Tabelle Geräte schalten (bei Licht und Steckdosen, andere Geräte lassen sich ja nicht schalten)
      Bildschirmfoto 2021-02-20 um 18.55.23.png

    • Unter 03_HTML_Daten befinden sich zwei Unterordner.

    • Unter 01_HTML_Hell_Dunkel_Festeinstellung kann nichts verändert werden. Dort sind alle Datenpunkte für die HTML Listen enthalten. Diese Ansichten können dann mit den Datenpunkten aus 02_Trigger_und_Schalter umgetellt werden. Dazu später noch mehr, insbesondere wenn man iQontrol nutzen möchte.
      15_HTML_Daten.png

    • In 02_HTML_Eigene_Einstellungen sieht es dann so aus. Dort können alle Datenpunkte für die HTML Anzeigen selbst eingestellt werden. Beim ersten Aufruf dieser Anzeige werden die Datenpunkte mit "Standardwerten" gefüllt und können dann überschrieben werden.
      16_eigene_html.png
      17_eigene_html.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)
      1606936309509-20201202_200704.gif

    • Unter 04_Alexa
      befindet sich ein Button der für die später noch einzurichtende Routine in der Alexa App gebraucht wird. Der Button funktioniert nur wenn er per Sprache ausgelöst wurde. Wenn also per Hand der Button betätigt wird erfolgt keine Ansage, oder nur Zufällig auf den gerade zuletzt genutzten ECHO.
      18_Alexa.png

    • Unter 05_Telegram befindet sich ein Button und ein Schalter.
      19_Telegram.png

    • Unter 06_E-Mail befindet sich ein Button und ein Schalter.
      20_EMAIL.png

    Der Button in 05 und 06 kann verwendet werden um den aktuellen Status bzw. aktive Geräte als Liste zu senden.

    Der Schalter aktiviert/deaktiviert den "Direktversand" dieser Listen. Das könnte man z.B. bei Abwesenheit einschalten lassen, dann wird bei jeder Änderung, z.B. wenn eine Tür geöffnet/geschlossen wird eine Liste versendet.

    Im Spoiler noch einige wichtige Dinge für die Alexa Ansage und den iot Adapter:


    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.

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

    1593522360683-2020-06-30-15.03.38.jpg

    ein neues Gerät (oder mehrere) wurde gefunden

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

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

    1593522621510-2020-06-30-15.04.55.jpg

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

    Alle Blockly Exporte sind/kommen in den zweiten Beitrag. Bilder und Videos in den dritten Beitrag

    dslraserD sigi234S A H 6 Replies Last reply
    15
    • dslraserD dslraser
      Versionen 1.8.1
      zuletzt aktualisiert am Dezember 2021
      Typ Blockly mit JavaScript Funktionen
      verwendete Adapter je nach dem was im Blockly aktiviert ist
      verwendete Geräte verschieden - gemischt
      Ursprung war hier
      Version 1.8.1 hier
      Zusatzblockly zur Anruferansage klick hier

      Hallo Zusammen.
      Da mir der ursprüngliche Forum Thread zu lang geworden ist und sich der Funktionsumfang des Blockly immer wieder verändert hat erstelle ich hier einen neuen Beitrag. Diese "Anleitung" möchte ich hiermit auch auf den aktuellen Stand bringen und somit die Anwendung erleichtern.

      Ich stelle hier meine Blockly's 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. Ebenfalls werden diverse Listen als Text oder HTML Ausgaben zur Verfügung gestellt.
      Das gesamte Blockly nutzt "alias". Alle anderen benötigten Datenpunkte erstellt oder 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.

      Meine verwendeten Adapter sind:

      • Alexa2 Adapter
      • iot Adapter
      • Javascript Adapter
      • Telegram Adapter (optional)
      • E-Mail Adapter (optional)
      • iQontrol (optional)
      • jarvis (optional)
      • alias-manager (optional)

      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)
      • Alexa, schick mir den Status der Batterien(Fenster/Türen/Lampen/ Bewegungsmelder usw.---entweder auf Telegram oder per E-Mail, oder auf beides)

      Welche Frage in welcher Formulierung gestellt wird bestimmt Ihr natürlich selbst, da dies über eine Routine in der Alexa App gesteuert werden kann. 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, das 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.

      SmartGeräte und SmartNamen 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).

      01_Speicherort.png

      Für die Erstellung der Datenpunkte nutze ich diese Funktion.

      03_Funktion_Datenpunkte_anlegen.png

      Für diese Funktion muß die Option "Erlaube das Kommando "setObject" im Javascript Adapter erlaubt sein.

      02_JS_Adapter_Einstellung.png

      Im Blockly muß dann noch eine "Etage" eingestellt werden.
      Mit den "Etagen" wäre es dann möglich z.B. seine Fenster, oder auch alle anderen Geräte, in mehreren Blocklys zu verwenden, also das Blockly einmal installieren für Fenster/Erdgeschoss und ein zweites Blockly dann z.B. für Fenster/Keller.

      04_Etage.png

      Hier muß dann eingestellt werden was verwendet werden soll. (wenn Fenster_verwenden auf falsch gestellt wird, werden alle vom Blockly angelegten Datenpunkte wieder gelöscht. Das gleiche gilt für die anderen Optionen, wenn diese auf falsch gestellt werden, dann werden die dazu gehörigen Datenpunkte gar nicht erst angelegt, oder wieder gelöscht.)

      05_Blockly_Grundeinstellungen.png

      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 im 2. Beitrag]
      (https://forum.iobroker.net/post/549502).
      Eine weitere Möglichkeit zum alias erstellen ist der relativ neue Adapter alias-manager von @s-bormann (https://github.com/sbormann/ioBroker.alias-manager#readme)
      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. Aufzählungen sind im ioBroker hier zu finden (Haken rein setzen bei Aufzählungen)

      06_Aufzählung_einstellen.png

      dann erscheinen die hier

      07_Aufzählung_einstellen.png

      Bei den Aufzälungen/Funktionen dann hier auf das + klicken

      08_Funktionen.png

      danach dann runter scrollen und dann auf das + bei Benutzerdefinierte Gruppe klicken

      09_benutzerdefinierte Gruppe.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
      rssi_alias

      Das ist dann auch gleich der Selektor im jeweiligen Blockly

      10_Selektor.png

      Wenn alle Blocklys benutzt werden sieht das in den ioBroker Objekten so aus:

      11_Geräte zählen.png

      Am Beispiel Fenster erstellt das Blockly nach dem ersten Start diese Datenpunktstruktur: (wenn alle Schalter im Blockly auf wahr stehen und die "Etage" Haus heißt, bei mit unter 0_userdata.0)

      12_Datenpunktstruktur.png

      • Unter 01_Anzeigen_und_Listen sieht es so aus, wobei die Unterpunkte 11/12/13 selbst mit Smileys befüllt/überschrieben werden können. Auf meinem Mac geht das z.B. mit der rechten Maustaste in das Feld klicken und den Emoji auswählen, bei Windows weiß ich es nicht)

      • Die Datenpunkte 1-5 sind (denke ich) Selbsterklärend.

      • In 06 sind alle "aktiven" Geräten als Textliste.

      • In 07 ist die gesamte Liste inkl. Zustand als Text.

      • In 08 sind alle Geräte inklusive Zustand (+ Emoji wenn eingestellt) als HTML Liste.

      • In 09 sind alle "aktiven" Geräte (gekippt oder geöffnet + Emoji wenn eingestellt)

      • In 10 ist eine formartierte Liste für den Telegram/Email Versand, ebenfalls mit Emoji
        Bildschirmfoto 2021-06-23 um 17.50.27.png

      • Unter 02_Trigger_und_Schalter sieht es so aus. Hier lassen sich verschiedene Dinge für die HTML Ausgabe Listen umschalten.
        14_Trigger_und_Schalter.png

      • Unter 02_Trigger_und_Schalter kann es auch so aussehen. Mit den zwei zusätzlichen Datenpunkten lässt sich z.B. in der HTML Überschrift der Status an/abschalten, oder auch für iQontrol Nutzer direkt in der Tabelle Geräte schalten (bei Licht und Steckdosen, andere Geräte lassen sich ja nicht schalten)
        Bildschirmfoto 2021-02-20 um 18.55.23.png

      • Unter 03_HTML_Daten befinden sich zwei Unterordner.

      • Unter 01_HTML_Hell_Dunkel_Festeinstellung kann nichts verändert werden. Dort sind alle Datenpunkte für die HTML Listen enthalten. Diese Ansichten können dann mit den Datenpunkten aus 02_Trigger_und_Schalter umgetellt werden. Dazu später noch mehr, insbesondere wenn man iQontrol nutzen möchte.
        15_HTML_Daten.png

      • In 02_HTML_Eigene_Einstellungen sieht es dann so aus. Dort können alle Datenpunkte für die HTML Anzeigen selbst eingestellt werden. Beim ersten Aufruf dieser Anzeige werden die Datenpunkte mit "Standardwerten" gefüllt und können dann überschrieben werden.
        16_eigene_html.png
        17_eigene_html.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)
        1606936309509-20201202_200704.gif

      • Unter 04_Alexa
        befindet sich ein Button der für die später noch einzurichtende Routine in der Alexa App gebraucht wird. Der Button funktioniert nur wenn er per Sprache ausgelöst wurde. Wenn also per Hand der Button betätigt wird erfolgt keine Ansage, oder nur Zufällig auf den gerade zuletzt genutzten ECHO.
        18_Alexa.png

      • Unter 05_Telegram befindet sich ein Button und ein Schalter.
        19_Telegram.png

      • Unter 06_E-Mail befindet sich ein Button und ein Schalter.
        20_EMAIL.png

      Der Button in 05 und 06 kann verwendet werden um den aktuellen Status bzw. aktive Geräte als Liste zu senden.

      Der Schalter aktiviert/deaktiviert den "Direktversand" dieser Listen. Das könnte man z.B. bei Abwesenheit einschalten lassen, dann wird bei jeder Änderung, z.B. wenn eine Tür geöffnet/geschlossen wird eine Liste versendet.

      Im Spoiler noch einige wichtige Dinge für die Alexa Ansage und den iot Adapter:


      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.

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

      1593522360683-2020-06-30-15.03.38.jpg

      ein neues Gerät (oder mehrere) wurde gefunden

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

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

      1593522621510-2020-06-30-15.04.55.jpg

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

      Alle Blockly Exporte sind/kommen in den zweiten Beitrag. Bilder und Videos in den dritten Beitrag

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      wrote on last edited by dslraser
      #2


      https://github.com/sbormann/ioBroker.alias-manager


      Im Beispielvideo werden die eigenen Alias ab Zeile 271 eingefügt, also ab dem ersten createAlias. In der Vorlage habe ich jeweils zwei meiner verwendeten Geräte als Beispiel eingefügt.
      Video Beispiel:
      alias_per_script_erstellen.m4v

      /**************************************************************
      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)
      
      
      



      Bitte das Blockly auf den eigenen Rechner downloaden und dort mit einem "richtigen" 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.

      Fenster_1_8_1.zip

      Tueren_1_8_1.zip

      Licht_1_8_1.zip

      Temperaturen_1_8_1.zip

      Bewegungsmelder_1_8_1.zip

      Luftfeuchtigkeit_1_8_1.zip

      Steckdosen_1_8_1.zip

      Batterien_Prozent_1_8_1.zip

      Batterien_voll_leer_lowbat_1_8_1.zip

      Batterien_Volt_1_8_1.zip

      RSSI_1_8_1.zip

      Mein iQontrol View für alle Geräte

      2021-04-28_iqontrol_0_selected_views.json.zip

      Screenshot_20210428-091122_Chrome.jpg

      Zusatzblockly zur Anruferansage, Beschreibung folgt. Ursprung ist von hier


      Bitte das Blockly auf den eigenen Rechner downloaden und dort mit einem "richtigen" 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.

      Bildschirmfoto 2021-04-28 um 19.40.31.png

      Zwei ECHOS können zur Ansage ausgewählt werden. Wer nur einen ECHO braucht, einfach entsprechend deaktivieren.

      Bildschirmfoto 2021-04-28 um 19.50.51.png

      Bildschirmfoto 2021-04-29 um 21.56.13.png

      meine iQontrol Anwendung dafür

      Bildschirmfoto 2021-04-28 um 20.05.11.png

      Alexa_Anruferansage_Telegram_EMAIL_1.0.0.zip

      dslraserD L H 3 Replies Last reply
      4
      • dslraserD dslraser


        https://github.com/sbormann/ioBroker.alias-manager


        Im Beispielvideo werden die eigenen Alias ab Zeile 271 eingefügt, also ab dem ersten createAlias. In der Vorlage habe ich jeweils zwei meiner verwendeten Geräte als Beispiel eingefügt.
        Video Beispiel:
        alias_per_script_erstellen.m4v

        /**************************************************************
        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)
        
        
        



        Bitte das Blockly auf den eigenen Rechner downloaden und dort mit einem "richtigen" 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.

        Fenster_1_8_1.zip

        Tueren_1_8_1.zip

        Licht_1_8_1.zip

        Temperaturen_1_8_1.zip

        Bewegungsmelder_1_8_1.zip

        Luftfeuchtigkeit_1_8_1.zip

        Steckdosen_1_8_1.zip

        Batterien_Prozent_1_8_1.zip

        Batterien_voll_leer_lowbat_1_8_1.zip

        Batterien_Volt_1_8_1.zip

        RSSI_1_8_1.zip

        Mein iQontrol View für alle Geräte

        2021-04-28_iqontrol_0_selected_views.json.zip

        Screenshot_20210428-091122_Chrome.jpg

        Zusatzblockly zur Anruferansage, Beschreibung folgt. Ursprung ist von hier


        Bitte das Blockly auf den eigenen Rechner downloaden und dort mit einem "richtigen" 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.

        Bildschirmfoto 2021-04-28 um 19.40.31.png

        Zwei ECHOS können zur Ansage ausgewählt werden. Wer nur einen ECHO braucht, einfach entsprechend deaktivieren.

        Bildschirmfoto 2021-04-28 um 19.50.51.png

        Bildschirmfoto 2021-04-29 um 21.56.13.png

        meine iQontrol Anwendung dafür

        Bildschirmfoto 2021-04-28 um 20.05.11.png

        Alexa_Anruferansage_Telegram_EMAIL_1.0.0.zip

        dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        wrote on last edited by dslraser
        #3

        Bilder und Videos
        von:

        • jarvis
        • iQontrol
        • Telegram
        • EMAIL


        jarvis custom html bei mir am Handy

        Screenshot_20210105-154554_Chrome.jpg

        Screenshot_20210105-155227_Chrome.jpg

        Screenshot_20210105-154633_Chrome.jpg

        Screenshot_20210105-154651_Chrome.jpg

        Screenshot_20210105-154734_Chrome.jpg

        Screenshot_20210105-154756_Chrome.jpg

        Screenshot_20210105-155349_Chrome.jpg


        iQontrol Hauptmenü Ansicht bei mir am Handy

        Screenshot_20210105-155629_Chrome.jpg

        Klick auf das rechte Symbol öffnet/schließt die Kachel

        Screenshot_20210105-155903_Chrome.jpg

        Klick auf das linke Symbol ändert die Ansicht der Farben. Dunkel=Festeinstellung.

        Screenshot_20210105-155903_Chrome.jpg

        Hell = weiß / schwarz Festeinstelunng.

        Screenshot_20210105-155935_Chrome.jpg

        weiß / blau Beispiel = eigene HTML
        Diese Ansicht kann komplett an die eigenen Wünsche über die Datenpunkte angepasst werden, ohne im Blockly was verändern zu müssen.

        Screenshot_20210105-155958_Chrome.jpg

        Ansicht aus iQontrol. Damit (mit einem Klick) lasse ich mir die Listen z.B. über Telegram senden, geht aber auch per Sprache: Alexa, schick mir den Fensterstatus. (oder welchen auch immer. Auch alle nacheinander in einer Rutsche senden geht mit einem kleinen Zusatzblockly)

        Screenshot_20210105-162151_Chrome.jpg


        Screenshot_20210105-160550_Telegram.jpg

        Screenshot_20210105-160708_Telegram.jpg

        Screenshot_20210105-160800_Telegram.jpg

        Screenshot_20210105-195105_Telegram.jpg

        Screenshot_20210105-161012_Telegram.jpg

        Screenshot_20210105-161057_Telegram.jpg

        Screenshot_20210105-161140_Telegram.jpg

        sigi234S 1 Reply Last reply
        0
        • dslraserD dslraser
          Versionen 1.8.1
          zuletzt aktualisiert am Dezember 2021
          Typ Blockly mit JavaScript Funktionen
          verwendete Adapter je nach dem was im Blockly aktiviert ist
          verwendete Geräte verschieden - gemischt
          Ursprung war hier
          Version 1.8.1 hier
          Zusatzblockly zur Anruferansage klick hier

          Hallo Zusammen.
          Da mir der ursprüngliche Forum Thread zu lang geworden ist und sich der Funktionsumfang des Blockly immer wieder verändert hat erstelle ich hier einen neuen Beitrag. Diese "Anleitung" möchte ich hiermit auch auf den aktuellen Stand bringen und somit die Anwendung erleichtern.

          Ich stelle hier meine Blockly's 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. Ebenfalls werden diverse Listen als Text oder HTML Ausgaben zur Verfügung gestellt.
          Das gesamte Blockly nutzt "alias". Alle anderen benötigten Datenpunkte erstellt oder 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.

          Meine verwendeten Adapter sind:

          • Alexa2 Adapter
          • iot Adapter
          • Javascript Adapter
          • Telegram Adapter (optional)
          • E-Mail Adapter (optional)
          • iQontrol (optional)
          • jarvis (optional)
          • alias-manager (optional)

          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)
          • Alexa, schick mir den Status der Batterien(Fenster/Türen/Lampen/ Bewegungsmelder usw.---entweder auf Telegram oder per E-Mail, oder auf beides)

          Welche Frage in welcher Formulierung gestellt wird bestimmt Ihr natürlich selbst, da dies über eine Routine in der Alexa App gesteuert werden kann. 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, das 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.

          SmartGeräte und SmartNamen 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).

          01_Speicherort.png

          Für die Erstellung der Datenpunkte nutze ich diese Funktion.

          03_Funktion_Datenpunkte_anlegen.png

          Für diese Funktion muß die Option "Erlaube das Kommando "setObject" im Javascript Adapter erlaubt sein.

          02_JS_Adapter_Einstellung.png

          Im Blockly muß dann noch eine "Etage" eingestellt werden.
          Mit den "Etagen" wäre es dann möglich z.B. seine Fenster, oder auch alle anderen Geräte, in mehreren Blocklys zu verwenden, also das Blockly einmal installieren für Fenster/Erdgeschoss und ein zweites Blockly dann z.B. für Fenster/Keller.

          04_Etage.png

          Hier muß dann eingestellt werden was verwendet werden soll. (wenn Fenster_verwenden auf falsch gestellt wird, werden alle vom Blockly angelegten Datenpunkte wieder gelöscht. Das gleiche gilt für die anderen Optionen, wenn diese auf falsch gestellt werden, dann werden die dazu gehörigen Datenpunkte gar nicht erst angelegt, oder wieder gelöscht.)

          05_Blockly_Grundeinstellungen.png

          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 im 2. Beitrag]
          (https://forum.iobroker.net/post/549502).
          Eine weitere Möglichkeit zum alias erstellen ist der relativ neue Adapter alias-manager von @s-bormann (https://github.com/sbormann/ioBroker.alias-manager#readme)
          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. Aufzählungen sind im ioBroker hier zu finden (Haken rein setzen bei Aufzählungen)

          06_Aufzählung_einstellen.png

          dann erscheinen die hier

          07_Aufzählung_einstellen.png

          Bei den Aufzälungen/Funktionen dann hier auf das + klicken

          08_Funktionen.png

          danach dann runter scrollen und dann auf das + bei Benutzerdefinierte Gruppe klicken

          09_benutzerdefinierte Gruppe.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
          rssi_alias

          Das ist dann auch gleich der Selektor im jeweiligen Blockly

          10_Selektor.png

          Wenn alle Blocklys benutzt werden sieht das in den ioBroker Objekten so aus:

          11_Geräte zählen.png

          Am Beispiel Fenster erstellt das Blockly nach dem ersten Start diese Datenpunktstruktur: (wenn alle Schalter im Blockly auf wahr stehen und die "Etage" Haus heißt, bei mit unter 0_userdata.0)

          12_Datenpunktstruktur.png

          • Unter 01_Anzeigen_und_Listen sieht es so aus, wobei die Unterpunkte 11/12/13 selbst mit Smileys befüllt/überschrieben werden können. Auf meinem Mac geht das z.B. mit der rechten Maustaste in das Feld klicken und den Emoji auswählen, bei Windows weiß ich es nicht)

          • Die Datenpunkte 1-5 sind (denke ich) Selbsterklärend.

          • In 06 sind alle "aktiven" Geräten als Textliste.

          • In 07 ist die gesamte Liste inkl. Zustand als Text.

          • In 08 sind alle Geräte inklusive Zustand (+ Emoji wenn eingestellt) als HTML Liste.

          • In 09 sind alle "aktiven" Geräte (gekippt oder geöffnet + Emoji wenn eingestellt)

          • In 10 ist eine formartierte Liste für den Telegram/Email Versand, ebenfalls mit Emoji
            Bildschirmfoto 2021-06-23 um 17.50.27.png

          • Unter 02_Trigger_und_Schalter sieht es so aus. Hier lassen sich verschiedene Dinge für die HTML Ausgabe Listen umschalten.
            14_Trigger_und_Schalter.png

          • Unter 02_Trigger_und_Schalter kann es auch so aussehen. Mit den zwei zusätzlichen Datenpunkten lässt sich z.B. in der HTML Überschrift der Status an/abschalten, oder auch für iQontrol Nutzer direkt in der Tabelle Geräte schalten (bei Licht und Steckdosen, andere Geräte lassen sich ja nicht schalten)
            Bildschirmfoto 2021-02-20 um 18.55.23.png

          • Unter 03_HTML_Daten befinden sich zwei Unterordner.

          • Unter 01_HTML_Hell_Dunkel_Festeinstellung kann nichts verändert werden. Dort sind alle Datenpunkte für die HTML Listen enthalten. Diese Ansichten können dann mit den Datenpunkten aus 02_Trigger_und_Schalter umgetellt werden. Dazu später noch mehr, insbesondere wenn man iQontrol nutzen möchte.
            15_HTML_Daten.png

          • In 02_HTML_Eigene_Einstellungen sieht es dann so aus. Dort können alle Datenpunkte für die HTML Anzeigen selbst eingestellt werden. Beim ersten Aufruf dieser Anzeige werden die Datenpunkte mit "Standardwerten" gefüllt und können dann überschrieben werden.
            16_eigene_html.png
            17_eigene_html.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)
            1606936309509-20201202_200704.gif

          • Unter 04_Alexa
            befindet sich ein Button der für die später noch einzurichtende Routine in der Alexa App gebraucht wird. Der Button funktioniert nur wenn er per Sprache ausgelöst wurde. Wenn also per Hand der Button betätigt wird erfolgt keine Ansage, oder nur Zufällig auf den gerade zuletzt genutzten ECHO.
            18_Alexa.png

          • Unter 05_Telegram befindet sich ein Button und ein Schalter.
            19_Telegram.png

          • Unter 06_E-Mail befindet sich ein Button und ein Schalter.
            20_EMAIL.png

          Der Button in 05 und 06 kann verwendet werden um den aktuellen Status bzw. aktive Geräte als Liste zu senden.

          Der Schalter aktiviert/deaktiviert den "Direktversand" dieser Listen. Das könnte man z.B. bei Abwesenheit einschalten lassen, dann wird bei jeder Änderung, z.B. wenn eine Tür geöffnet/geschlossen wird eine Liste versendet.

          Im Spoiler noch einige wichtige Dinge für die Alexa Ansage und den iot Adapter:


          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.

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

          1593522360683-2020-06-30-15.03.38.jpg

          ein neues Gerät (oder mehrere) wurde gefunden

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

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

          1593522621510-2020-06-30-15.04.55.jpg

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

          Alle Blockly Exporte sind/kommen in den zweiten Beitrag. Bilder und Videos in den dritten Beitrag

          sigi234S Online
          sigi234S Online
          sigi234
          Forum Testing Most Active
          wrote on last edited by
          #4

          @dslraser sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

          wenn gewünscht (optional) jarvis

          Ja bitte! 👍

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

          I 1 Reply Last reply
          0
          • sigi234S sigi234

            @dslraser sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

            wenn gewünscht (optional) jarvis

            Ja bitte! 👍

            I Offline
            I Offline
            Idefix01
            wrote on last edited by
            #5

            @dslraser

            Nachdem ich eine alte Version von diesem Script (alles in einem) noch hatte, habe ich nun die neuen Scripte eingerichtet. Ich besitze mehrere Echo Geräte und habe nun folgende Probleme:

            1. Ein Echo Geräte läuft über ein völlig anderen Amazon Account aber trotzdem erfolgt die Ansage auch auf diesem Echo wenn ich es über die App starte.
            2. Ein Abruf funktioniert momentan nur per Alexa App über Geräte aber nicht über den iobroker/Objekte und dann Punkt 4 Alexa Button.

            Mail sowie Telegram funktioniert über den iobroker Button einwandfrei.

            Kann es sein das ich erst Routinen einrichten muss für die jeweiligen Ansagen? Wie kann ich einen speziellen Echo für die Ansage zuweisen?

            dslraserD 1 Reply Last reply
            0
            • I Idefix01

              @dslraser

              Nachdem ich eine alte Version von diesem Script (alles in einem) noch hatte, habe ich nun die neuen Scripte eingerichtet. Ich besitze mehrere Echo Geräte und habe nun folgende Probleme:

              1. Ein Echo Geräte läuft über ein völlig anderen Amazon Account aber trotzdem erfolgt die Ansage auch auf diesem Echo wenn ich es über die App starte.
              2. Ein Abruf funktioniert momentan nur per Alexa App über Geräte aber nicht über den iobroker/Objekte und dann Punkt 4 Alexa Button.

              Mail sowie Telegram funktioniert über den iobroker Button einwandfrei.

              Kann es sein das ich erst Routinen einrichten muss für die jeweiligen Ansagen? Wie kann ich einen speziellen Echo für die Ansage zuweisen?

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              wrote on last edited by
              #6

              @Idefix01 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

              Kann es sein das ich erst Routinen einrichten muss für die jeweiligen Ansagen? Wie kann ich einen speziellen Echo für die Ansage zuweisen?

              Das sollte alle Deine "Probleme lösen", da die Datenpunkte jetzt woanders sind und auch die SmartNamen anders heißen. Solltest Du die alten Datenpunkte noch haben, dann lösche die erstmal. Dann schaue im iot nach, ob alle SmartGeräte der neuen Struktur da sind. Dann noch neue Geräte in der Amazon App suchen und Deinen Routinen wieder zuordnen.
              Auch zwei Alexa Instanzen sind noch im Blockly, kann ich nur nicht probieren, weil ich nur eine Instanz habe.

              I 1 Reply Last reply
              0
              • dslraserD dslraser

                @Idefix01 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                Kann es sein das ich erst Routinen einrichten muss für die jeweiligen Ansagen? Wie kann ich einen speziellen Echo für die Ansage zuweisen?

                Das sollte alle Deine "Probleme lösen", da die Datenpunkte jetzt woanders sind und auch die SmartNamen anders heißen. Solltest Du die alten Datenpunkte noch haben, dann lösche die erstmal. Dann schaue im iot nach, ob alle SmartGeräte der neuen Struktur da sind. Dann noch neue Geräte in der Amazon App suchen und Deinen Routinen wieder zuordnen.
                Auch zwei Alexa Instanzen sind noch im Blockly, kann ich nur nicht probieren, weil ich nur eine Instanz habe.

                I Offline
                I Offline
                Idefix01
                wrote on last edited by
                #7

                @dslraser
                Kann ich eine Alexa Instanz davon deaktivieren oder wird diese benötigt?

                dslraserD 1 Reply Last reply
                0
                • I Idefix01

                  @dslraser
                  Kann ich eine Alexa Instanz davon deaktivieren oder wird diese benötigt?

                  dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  wrote on last edited by
                  #8

                  @Idefix01 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                  @dslraser
                  Kann ich eine Alexa Instanz davon deaktivieren oder wird diese benötigt?

                  verstehe ich jetzt nicht, ich denke Du hast zwei ?
                  Wenn Du alles richtig eingerichtet hast, dann wird die Anfrage immer am angesprochenen ECHO beantwortet.
                  (Nicht über die App anfragen, bzw. übers Handy anfragen, die haben keinen speak Datenpunkt und können somit nicht antworten). Den Button von Hand auslösen bringt auch nix, bzw. falsche Ergebnise.
                  Routine einrichten, den Button da zuordnen und dann einen richtigen ECHO fragen.

                  I 1 Reply Last reply
                  0
                  • dslraserD dslraser

                    @Idefix01 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                    @dslraser
                    Kann ich eine Alexa Instanz davon deaktivieren oder wird diese benötigt?

                    verstehe ich jetzt nicht, ich denke Du hast zwei ?
                    Wenn Du alles richtig eingerichtet hast, dann wird die Anfrage immer am angesprochenen ECHO beantwortet.
                    (Nicht über die App anfragen, bzw. übers Handy anfragen, die haben keinen speak Datenpunkt und können somit nicht antworten). Den Button von Hand auslösen bringt auch nix, bzw. falsche Ergebnise.
                    Routine einrichten, den Button da zuordnen und dann einen richtigen ECHO fragen.

                    I Offline
                    I Offline
                    Idefix01
                    wrote on last edited by Idefix01
                    #9

                    @dslraser

                    Die Routinen habe ich alle soweit eingerichtet. Wenn ich ein Echo anspreche funktioniert die Ansage auch soweit.

                    Aber in der alten Version war die Möglichkeit noch über Button das ganze aufzurufen.
                    Hintergrund ist folgender: Ich habe in der Vis mir eine Button Seite eingerichtet wo ich die jeweiligen Stände abfragen konnte, einmal als Ansage und einmal als Telegram.
                    Telegram funktioniert der Button soweit, aber für die Alexa Ansage der Button funktioniert nicht mehr.

                    Bei Batterie Prozent sagt er 1 Batterie fast leer, Flur Sensor %

                    batprozent.png

                    dslraserD 1 Reply Last reply
                    0
                    • I Idefix01

                      @dslraser

                      Die Routinen habe ich alle soweit eingerichtet. Wenn ich ein Echo anspreche funktioniert die Ansage auch soweit.

                      Aber in der alten Version war die Möglichkeit noch über Button das ganze aufzurufen.
                      Hintergrund ist folgender: Ich habe in der Vis mir eine Button Seite eingerichtet wo ich die jeweiligen Stände abfragen konnte, einmal als Ansage und einmal als Telegram.
                      Telegram funktioniert der Button soweit, aber für die Alexa Ansage der Button funktioniert nicht mehr.

                      Bei Batterie Prozent sagt er 1 Batterie fast leer, Flur Sensor %

                      batprozent.png

                      dslraserD Offline
                      dslraserD Offline
                      dslraser
                      Forum Testing Most Active
                      wrote on last edited by
                      #10

                      @Idefix01 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                      Aber in der alten Version war die Möglichkeit noch über Button das ganze aufzurufen.
                      Hintergrund ist folgender: Ich habe in der Vis mir eine Button Seite eingerichtet wo ich die jeweiligen Stände abfragen konnte, einmal als Ansage und einmal als Telegram.
                      Telegram funktioniert der Button soweit, aber für die Alexa Ansage der Button funktioniert nicht mehr.

                      In welcher Version soll das gewesen sein ?
                      Hast Du das vielleicht in einem anderem Blockly selbst gemacht ?
                      Der Button in meinen Blockly diente, soweit ich mich erinnern kann, immer nur zum auslösen über die Routine.

                      I 1 Reply Last reply
                      0
                      • dslraserD dslraser

                        @Idefix01 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                        Aber in der alten Version war die Möglichkeit noch über Button das ganze aufzurufen.
                        Hintergrund ist folgender: Ich habe in der Vis mir eine Button Seite eingerichtet wo ich die jeweiligen Stände abfragen konnte, einmal als Ansage und einmal als Telegram.
                        Telegram funktioniert der Button soweit, aber für die Alexa Ansage der Button funktioniert nicht mehr.

                        In welcher Version soll das gewesen sein ?
                        Hast Du das vielleicht in einem anderem Blockly selbst gemacht ?
                        Der Button in meinen Blockly diente, soweit ich mich erinnern kann, immer nur zum auslösen über die Routine.

                        I Offline
                        I Offline
                        Idefix01
                        wrote on last edited by
                        #11

                        @dslraser

                        Danke Dir. Das war Version 1.0, aber ich habe soeben entdeckt das es da noch eine Erweiterung als Script gab damit man über den Button auch eine Ansage erhält.
                        Vielen Dank für die schnelle Hilfe

                        dslraserD 1 Reply Last reply
                        0
                        • I Idefix01

                          @dslraser

                          Danke Dir. Das war Version 1.0, aber ich habe soeben entdeckt das es da noch eine Erweiterung als Script gab damit man über den Button auch eine Ansage erhält.
                          Vielen Dank für die schnelle Hilfe

                          dslraserD Offline
                          dslraserD Offline
                          dslraser
                          Forum Testing Most Active
                          wrote on last edited by
                          #12

                          @Idefix01 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                          @dslraser

                          Danke Dir. Das war Version 1.0, aber ich habe soeben entdeckt das es da noch eine Erweiterung als Script gab damit man über den Button auch eine Ansage erhält.
                          Vielen Dank für die schnelle Hilfe

                          ja, ich habe auch nochmal nachgesehen und hatte noch im Hinterkopf das mal jemand danach gefragt hatte. Ich wußte nur nicht mehr wer und wann das war, aber das warst Du. Du hattest Dir was zusätzlich eingerichtet.😉

                          Das war hier
                          https://forum.iobroker.net/post/460554

                          I 1 Reply Last reply
                          0
                          • dslraserD dslraser

                            @Idefix01 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                            @dslraser

                            Danke Dir. Das war Version 1.0, aber ich habe soeben entdeckt das es da noch eine Erweiterung als Script gab damit man über den Button auch eine Ansage erhält.
                            Vielen Dank für die schnelle Hilfe

                            ja, ich habe auch nochmal nachgesehen und hatte noch im Hinterkopf das mal jemand danach gefragt hatte. Ich wußte nur nicht mehr wer und wann das war, aber das warst Du. Du hattest Dir was zusätzlich eingerichtet.😉

                            Das war hier
                            https://forum.iobroker.net/post/460554

                            I Offline
                            I Offline
                            Idefix01
                            wrote on last edited by Idefix01
                            #13

                            @dslraser

                            Genau deswegen hatte ich es auch so schnell wieder gefunden 😊

                            Nur Prozent funktioniert irgendwie nicht so. Er sagt bei meinem Hue Sensor nur an: "Flur Sensor %" und ein Handy meldet er gar nicht.

                            Bat-Prozent.png
                            Bat-Prozent1.png

                            dslraserD 1 Reply Last reply
                            0
                            • I Idefix01

                              @dslraser

                              Genau deswegen hatte ich es auch so schnell wieder gefunden 😊

                              Nur Prozent funktioniert irgendwie nicht so. Er sagt bei meinem Hue Sensor nur an: "Flur Sensor %" und ein Handy meldet er gar nicht.

                              Bat-Prozent.png
                              Bat-Prozent1.png

                              dslraserD Offline
                              dslraserD Offline
                              dslraser
                              Forum Testing Most Active
                              wrote on last edited by dslraser
                              #14

                              @Idefix01
                              Zeige mir mal einen RAW (vom alias) von einem wo es nicht funktioniert.

                              Edit: warum sind die so ?

                              Screenshot_20210105-212621_Chrome.jpg

                              I 1 Reply Last reply
                              0
                              • dslraserD dslraser

                                @Idefix01
                                Zeige mir mal einen RAW (vom alias) von einem wo es nicht funktioniert.

                                Edit: warum sind die so ?

                                Screenshot_20210105-212621_Chrome.jpg

                                I Offline
                                I Offline
                                Idefix01
                                wrote on last edited by
                                #15

                                @dslraser

                                meinst du das?

                                createAlias('javascript.0.akkustand.handy-sandra'/*handy-sandra*/, 'Batterien_Prozent.handy-sandra', undefined, 'batterien_prozent_alias', 'number', undefined, undefined, 'Handy Sandra', 'state', 'per Script erstellt', undefined, undefined, 'Prozent', undefined)
                                createAlias('javascript.0.akkustand.handy-soeren'/*handy-soeren*/, 'Batterien_Prozent.handy-soeren', undefined, 'batterien_prozent_alias', 'number', undefined, undefined, 'Handy Sören', 'state', 'per Script erstellt', undefined, undefined, 'Prozent', undefined)
                                createAlias('fullybrowser.0.192_168_178_37.Info.batteryLevel'/*Haussteuerung Tablet*/, 'Batterien_Prozent.Haussteuerung_Tablet', undefined, 'batterien_prozent_alias', 'number', undefined, undefined, 'Haussteuerung Tablet', 'value', 'per Script erstellt', undefined, undefined, 'Prozent', undefined)
                                createAlias('hue.0.Sensor_Flurlicht.battery'/*Flur Sensor*/, 'Batterien_Prozent.Flur_Sensor', undefined, 'batterien_prozent_alias', 'number', undefined, undefined, 'Flur Sensor', 'config', 'per Script erstellt', undefined, undefined, 'Prozent', undefined)
                                
                                Bei Flur Sensor kommt nur Ansage: "Flur Sensor %" und Handy Sören kommt gar nicht
                                
                                dslraserD 1 Reply Last reply
                                0
                                • I Idefix01

                                  @dslraser

                                  meinst du das?

                                  createAlias('javascript.0.akkustand.handy-sandra'/*handy-sandra*/, 'Batterien_Prozent.handy-sandra', undefined, 'batterien_prozent_alias', 'number', undefined, undefined, 'Handy Sandra', 'state', 'per Script erstellt', undefined, undefined, 'Prozent', undefined)
                                  createAlias('javascript.0.akkustand.handy-soeren'/*handy-soeren*/, 'Batterien_Prozent.handy-soeren', undefined, 'batterien_prozent_alias', 'number', undefined, undefined, 'Handy Sören', 'state', 'per Script erstellt', undefined, undefined, 'Prozent', undefined)
                                  createAlias('fullybrowser.0.192_168_178_37.Info.batteryLevel'/*Haussteuerung Tablet*/, 'Batterien_Prozent.Haussteuerung_Tablet', undefined, 'batterien_prozent_alias', 'number', undefined, undefined, 'Haussteuerung Tablet', 'value', 'per Script erstellt', undefined, undefined, 'Prozent', undefined)
                                  createAlias('hue.0.Sensor_Flurlicht.battery'/*Flur Sensor*/, 'Batterien_Prozent.Flur_Sensor', undefined, 'batterien_prozent_alias', 'number', undefined, undefined, 'Flur Sensor', 'config', 'per Script erstellt', undefined, undefined, 'Prozent', undefined)
                                  
                                  Bei Flur Sensor kommt nur Ansage: "Flur Sensor %" und Handy Sören kommt gar nicht
                                  
                                  dslraserD Offline
                                  dslraserD Offline
                                  dslraser
                                  Forum Testing Most Active
                                  wrote on last edited by
                                  #16

                                  @Idefix01 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                                  meinst du das?

                                  nee, sowas

                                  Screenshot_20210105-222236_Chrome.jpg

                                  1 Reply Last reply
                                  0
                                  • dslraserD dslraser

                                    Bilder und Videos
                                    von:

                                    • jarvis
                                    • iQontrol
                                    • Telegram
                                    • EMAIL


                                    jarvis custom html bei mir am Handy

                                    Screenshot_20210105-154554_Chrome.jpg

                                    Screenshot_20210105-155227_Chrome.jpg

                                    Screenshot_20210105-154633_Chrome.jpg

                                    Screenshot_20210105-154651_Chrome.jpg

                                    Screenshot_20210105-154734_Chrome.jpg

                                    Screenshot_20210105-154756_Chrome.jpg

                                    Screenshot_20210105-155349_Chrome.jpg


                                    iQontrol Hauptmenü Ansicht bei mir am Handy

                                    Screenshot_20210105-155629_Chrome.jpg

                                    Klick auf das rechte Symbol öffnet/schließt die Kachel

                                    Screenshot_20210105-155903_Chrome.jpg

                                    Klick auf das linke Symbol ändert die Ansicht der Farben. Dunkel=Festeinstellung.

                                    Screenshot_20210105-155903_Chrome.jpg

                                    Hell = weiß / schwarz Festeinstelunng.

                                    Screenshot_20210105-155935_Chrome.jpg

                                    weiß / blau Beispiel = eigene HTML
                                    Diese Ansicht kann komplett an die eigenen Wünsche über die Datenpunkte angepasst werden, ohne im Blockly was verändern zu müssen.

                                    Screenshot_20210105-155958_Chrome.jpg

                                    Ansicht aus iQontrol. Damit (mit einem Klick) lasse ich mir die Listen z.B. über Telegram senden, geht aber auch per Sprache: Alexa, schick mir den Fensterstatus. (oder welchen auch immer. Auch alle nacheinander in einer Rutsche senden geht mit einem kleinen Zusatzblockly)

                                    Screenshot_20210105-162151_Chrome.jpg


                                    Screenshot_20210105-160550_Telegram.jpg

                                    Screenshot_20210105-160708_Telegram.jpg

                                    Screenshot_20210105-160800_Telegram.jpg

                                    Screenshot_20210105-195105_Telegram.jpg

                                    Screenshot_20210105-161012_Telegram.jpg

                                    Screenshot_20210105-161057_Telegram.jpg

                                    Screenshot_20210105-161140_Telegram.jpg

                                    sigi234S Online
                                    sigi234S Online
                                    sigi234
                                    Forum Testing Most Active
                                    wrote on last edited by
                                    #17

                                    @dslraser sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                                    jarvis

                                    Wie in Jarvis einbinden?

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

                                    dslraserD 2 Replies Last reply
                                    0
                                    • sigi234S sigi234

                                      @dslraser sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                                      jarvis

                                      Wie in Jarvis einbinden?

                                      dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      wrote on last edited by dslraser
                                      #18

                                      @sigi234 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                                      Wie in Jarvis einbinden?

                                      einfach einen der beiden html Datenpunkte in jarvis als custom html auswählen, je nachdem welche Tabelle Du anzeigen möchtest.

                                      Edit:(ich muß noch die Zeit und die Lust für den Rest der "Anleitung" finden, die ist noch nicht fertig)

                                      1 Reply Last reply
                                      1
                                      • sigi234S sigi234

                                        @dslraser sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                                        jarvis

                                        Wie in Jarvis einbinden?

                                        dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        wrote on last edited by dslraser
                                        #19

                                        @sigi234 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                                        Wie in Jarvis einbinden?

                                        Gerät hinzufügen

                                        Bildschirmfoto 2021-01-06 um 09.12.09.png

                                        Bildschirmfoto 2021-01-06 um 09.14.11.png

                                        Bildschirmfoto 2021-01-06 um 09.03.14.png

                                        bei mir unter Sonstige

                                        Bildschirmfoto 2021-01-06 um 09.03.31.png

                                        Bildschirmfoto 2021-01-06 um 09.03.57.png

                                        Bildschirmfoto 2021-01-06 um 09.04.31.png

                                        8 oder 9 auswählen

                                        Bildschirmfoto 2021-01-06 um 09.06.12.png

                                        bei mir 8

                                        Bildschirmfoto 2021-01-06 um 09.10.10.png

                                        sigi234S 1 Reply Last reply
                                        1
                                        • dslraserD dslraser

                                          @sigi234 sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:

                                          Wie in Jarvis einbinden?

                                          Gerät hinzufügen

                                          Bildschirmfoto 2021-01-06 um 09.12.09.png

                                          Bildschirmfoto 2021-01-06 um 09.14.11.png

                                          Bildschirmfoto 2021-01-06 um 09.03.14.png

                                          bei mir unter Sonstige

                                          Bildschirmfoto 2021-01-06 um 09.03.31.png

                                          Bildschirmfoto 2021-01-06 um 09.03.57.png

                                          Bildschirmfoto 2021-01-06 um 09.04.31.png

                                          8 oder 9 auswählen

                                          Bildschirmfoto 2021-01-06 um 09.06.12.png

                                          bei mir 8

                                          Bildschirmfoto 2021-01-06 um 09.10.10.png

                                          sigi234S Online
                                          sigi234S Online
                                          sigi234
                                          Forum Testing Most Active
                                          wrote on last edited by
                                          #20

                                          @dslraser

                                          Danke, bin schon dabei. Muss noch testen wie ich alle gleich Groß bekomme.

                                          Screenshot (3041).png

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

                                          dslraserD 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          105

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe