NEWS
Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML
Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML
-
Alles klar. Ich danke dir schon mal für deine Mühe.
-
Alles klar. Ich danke dir schon mal für deine Mühe.
@dominik-f
hier in dieser Funktion sind Sortierungen, dort mußt Du dann nur die Reihenfolge tauschen. (denke ich jedenfalls, nicht getestet, da nicht aktiv bei mir)
diese Funktion aufklappen und dann ganz unten wird sortiert

Die Nachrichten, die versendet werden, werden extra sortiert, das ist in dieser Funktion

Schreibe mal ob Du es selbst hinbekommst.
-
@dominik-f
hier in dieser Funktion sind Sortierungen, dort mußt Du dann nur die Reihenfolge tauschen. (denke ich jedenfalls, nicht getestet, da nicht aktiv bei mir)
diese Funktion aufklappen und dann ganz unten wird sortiert

Die Nachrichten, die versendet werden, werden extra sortiert, das ist in dieser Funktion

Schreibe mal ob Du es selbst hinbekommst.
-
Hallo zusammen,
ich habe hier nun auch die tolle Skriptsammlung gefunden - topp!
Nur habe ich jetzt nach dem Anlegen das Problem, dass die Aliasse nicht stimmen.Mein Zigbee Sensor ist boolean und gibt false/true aus, nach umbauen habe ich auch einen Inhalt im Alias:

Allerdings wird nichts gezählt:

Wo kann ich denn festlegen, dass er quasi gekippt/geöffnet auswerten soll?
Funktionen sind entsprechend angelegt.
RAW:
{ "type": "state", "common": { "name": "Schlafzimmer", "type": "boolean", "read": true, "write": false, "role": "window.value", "alias": { "id": "zigbee.0.00158d0008330c20.opened" }, "desc": "per Script erstellt", "min": 0, "max": 1, "unit": "", "states": { "false": "geschlossen", "true": "geöffnet" } }, "native": {}, "_id": "alias.0.Fenster.Schlafzimmer_Fenster", "acl": { "object": 1636, "state": 1636, "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1661693101291 } -
Hallo zusammen,
ich habe hier nun auch die tolle Skriptsammlung gefunden - topp!
Nur habe ich jetzt nach dem Anlegen das Problem, dass die Aliasse nicht stimmen.Mein Zigbee Sensor ist boolean und gibt false/true aus, nach umbauen habe ich auch einen Inhalt im Alias:

Allerdings wird nichts gezählt:

Wo kann ich denn festlegen, dass er quasi gekippt/geöffnet auswerten soll?
Funktionen sind entsprechend angelegt.
RAW:
{ "type": "state", "common": { "name": "Schlafzimmer", "type": "boolean", "read": true, "write": false, "role": "window.value", "alias": { "id": "zigbee.0.00158d0008330c20.opened" }, "desc": "per Script erstellt", "min": 0, "max": 1, "unit": "", "states": { "false": "geschlossen", "true": "geöffnet" } }, "native": {}, "_id": "alias.0.Fenster.Schlafzimmer_Fenster", "acl": { "object": 1636, "state": 1636, "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1661693101291 }Ich würde anfangs nicht so viel im RAW rumfummeln und einfach true/false lassen. Das Skript erkennt dann selbstständig, dass ein Fenster bei true offen ist und bei false geschlossen.
Hier ein Beispiel RAW von einem Fenster:
{ "common": { "alias": { "id": "zigbee.0.00158d0003d4185b.opened" }, "name": "Schlafzimmer Fenster_Links", "role": "state", "type": "boolean", "read": true, "write": false }, "native": {}, "type": "state", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1640284648447, "_id": "alias.0.OG_Schlafzimmer.Fenster Links.opened", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } -
Ich würde anfangs nicht so viel im RAW rumfummeln und einfach true/false lassen. Das Skript erkennt dann selbstständig, dass ein Fenster bei true offen ist und bei false geschlossen.
Hier ein Beispiel RAW von einem Fenster:
{ "common": { "alias": { "id": "zigbee.0.00158d0003d4185b.opened" }, "name": "Schlafzimmer Fenster_Links", "role": "state", "type": "boolean", "read": true, "write": false }, "native": {}, "type": "state", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1640284648447, "_id": "alias.0.OG_Schlafzimmer.Fenster Links.opened", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }@dominik-f funktioniert auch, aber das Skript zählt dennoch nichts:



Wo könnte der Fehler noch liegen?
-
@dominik-f funktioniert auch, aber das Skript zählt dennoch nichts:



Wo könnte der Fehler noch liegen?
in den meisten Fällen ist es liegt es am Alias, das da irgendwas nicht passt.
Eventuell n Tippfehler beim Selektor bzw. der Funktion?
Ich bin mir nicht sicher, eventuell musst du einmal ein Fenster öffnen und schließen damit das Skript richtig funktioniert, dass hab ich bei anderen auch schon so gesehen. -
in den meisten Fällen ist es liegt es am Alias, das da irgendwas nicht passt.
Eventuell n Tippfehler beim Selektor bzw. der Funktion?
Ich bin mir nicht sicher, eventuell musst du einmal ein Fenster öffnen und schließen damit das Skript richtig funktioniert, dass hab ich bei anderen auch schon so gesehen.@fir3drag0n
admin und js Instanz mal neu gestartet ? Wenn man alias erstellt oder ändert ist das oft nötig.
Aber Achtung, admin nur neustarten, nicht stoppen, sonst sperrst Du Dich selbst aus.Edit: nimm den alias manager (Dein RAW vom alias ist boolean, hat aber min und max ?)
-
@fir3drag0n
admin und js Instanz mal neu gestartet ? Wenn man alias erstellt oder ändert ist das oft nötig.
Aber Achtung, admin nur neustarten, nicht stoppen, sonst sperrst Du Dich selbst aus.Edit: nimm den alias manager (Dein RAW vom alias ist boolean, hat aber min und max ?)
@dslraser Machst du bei Wiki bei IQontrol noch irgendwann ein Update deiner Listen? Super wäre z. Bsp. Steckdosen und Licht bei Replacement regex \baus\b und \ban\b zu verwenden. Bei mir wir bei Gartenhaus das aus ersetzt. Bei den Rollladen musst du bei 100% anfangen und nicht mit 0%.
Gruß//Lucky
-
@dslraser Machst du bei Wiki bei IQontrol noch irgendwann ein Update deiner Listen? Super wäre z. Bsp. Steckdosen und Licht bei Replacement regex \baus\b und \ban\b zu verwenden. Bei mir wir bei Gartenhaus das aus ersetzt. Bei den Rollladen musst du bei 100% anfangen und nicht mit 0%.
Gruß//Lucky
@lucky_esa sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:
@dslraser Machst du bei Wiki bei IQontrol noch irgendwann ein Update deiner Listen? Super wäre z. Bsp. Steckdosen und Licht bei Replacement regex \baus\b und \ban\b zu verwenden. Bei mir wir bei Gartenhaus das aus ersetzt. Bei den Rollladen musst du bei 100% anfangen und nicht mit 0%.
Gruß//Lucky
Dieses Wiki stammt noch aus der „Anfangszeit“, als die Listen in iQontrol direkt möglich wurden. Im laufe der Zeit wurde da noch sehr viel verändert, deshalb veralten solche Wikis tatsächlich immer sehr schnell.
Ich müsste dafür mal Lust und Zeit haben, aber hey, an den Wikis kann Jeder schreiben und posten, vielleicht hast Du ja Lust ? -
@lucky_esa sagte in Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML:
@dslraser Machst du bei Wiki bei IQontrol noch irgendwann ein Update deiner Listen? Super wäre z. Bsp. Steckdosen und Licht bei Replacement regex \baus\b und \ban\b zu verwenden. Bei mir wir bei Gartenhaus das aus ersetzt. Bei den Rollladen musst du bei 100% anfangen und nicht mit 0%.
Gruß//Lucky
Dieses Wiki stammt noch aus der „Anfangszeit“, als die Listen in iQontrol direkt möglich wurden. Im laufe der Zeit wurde da noch sehr viel verändert, deshalb veralten solche Wikis tatsächlich immer sehr schnell.
Ich müsste dafür mal Lust und Zeit haben, aber hey, an den Wikis kann Jeder schreiben und posten, vielleicht hast Du ja Lust ?Kann man dein Script irgendwie so ändern, dass die angezeigten Namen sich ändern?
So sieht es momentan aus:

Ich hätte es gerne so:
Licht Küchenzeile eingeschaltet
Habe nur noch nicht gefunden, wo man sowas ändern kann.
Zum Hintergrund:
Ich nutze KNX und keine Aliase, da sich beim KNX nichts ändern kann.
-
Kann man dein Script irgendwie so ändern, dass die angezeigten Namen sich ändern?
So sieht es momentan aus:

Ich hätte es gerne so:
Licht Küchenzeile eingeschaltet
Habe nur noch nicht gefunden, wo man sowas ändern kann.
Zum Hintergrund:
Ich nutze KNX und keine Aliase, da sich beim KNX nichts ändern kann.
@quorle
irgendwie ist Dein ganzes Bild komisch ?
In der Überschrift hast Du offene Fenster und Türen und in der Meldung geht es um Licht. Eine Formatierung fehlt komplett ? (Zeilenumbrüche)
Wegen den Namen…das ist genau der Grund aliase zu verwenden, weil Du dann die Namen selbst festlegen kannst. -
@quorle
irgendwie ist Dein ganzes Bild komisch ?
In der Überschrift hast Du offene Fenster und Türen und in der Meldung geht es um Licht. Eine Formatierung fehlt komplett ? (Zeilenumbrüche)
Wegen den Namen…das ist genau der Grund aliase zu verwenden, weil Du dann die Namen selbst festlegen kannst.Momentan nutze ich das zum Test, deshalb stimmt von den Beschriftungen noch nichts.
Naja, aber Aliase anzulegen für Teilnehmer, die sich nie ändern? Selbst wenn beim KNX etwas kaputt geht und gewechselt wird, bleibt alles beim alten.
Und über 1300 Datenpunkte anlegen, nur um andere Bezeichnungen zu haben und dann doppelte Datenpunkte zu haben, wäre etwas zu viel.Dachte man könnte hier mittels JavaScript filtern und ändern.
-
Momentan nutze ich das zum Test, deshalb stimmt von den Beschriftungen noch nichts.
Naja, aber Aliase anzulegen für Teilnehmer, die sich nie ändern? Selbst wenn beim KNX etwas kaputt geht und gewechselt wird, bleibt alles beim alten.
Und über 1300 Datenpunkte anlegen, nur um andere Bezeichnungen zu haben und dann doppelte Datenpunkte zu haben, wäre etwas zu viel.Dachte man könnte hier mittels JavaScript filtern und ändern.
@quorle
1300 Datenpunkte ? (ich habe kein knx)
Brauchst Du für diese Listen/Anzeigen denn tatsächlich 1300 Datenpunkte ?
Ich habe ein Einfamilienhaus und z.B. Licht/Fenster/Türen/Heizung/Rollos usw. über verschiedene Adapter und bestimmt keine 1300 alias. (nie gezählt, aber wie gesagt, ich habe kein knx) -
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).
Für die Erstellung der Datenpunkte nutze ich diese Funktion.

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

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

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)
dann erscheinen die hier

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

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

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_aliasDas ist dann auch gleich der Selektor im jeweiligen Blockly

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

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)

-
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

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

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

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

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


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)

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

-
Unter 05_Telegram befindet sich ein Button und ein Schalter.

-
Unter 06_E-Mail befindet sich ein Button und ein Schalter.

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:
Alle Blockly Exporte sind/kommen in den zweiten Beitrag. Bilder und Videos in den dritten Beitrag
-
Hallo dslraser,
ich wollte mal fragen ob es sehr aufwendig für dich wäre die Möglichkeit einzufügen Signal oder Telegram zu verwenden.
Ich habe mir den Signal Adapter installiert und nutze ihn schon für backitup.VG Sandro
-
Hallo dslraser,
ich wollte mal fragen ob es sehr aufwendig für dich wäre die Möglichkeit einzufügen Signal oder Telegram zu verwenden.
Ich habe mir den Signal Adapter installiert und nutze ihn schon für backitup.VG Sandro
@sandro_gera
Ich kenne diesen Messenger und den Adapter nicht (musste ich eben erstmal googeln)
Keine Ahnung ob das schwierig wäre
-
@dslraser
Danke für deine sehr schöne Arbeit
Ich habe das Fenster-Script auch perfekt am laufenAber leider bin ich irgendwie zu blöd dein Script umzuschreiben das es mit den Türen funktioniert
Kannst du mir evtl. dein Script von den Türen zur Verfügung stellen
Danke im Voraus
Gruß
Marcel -
@dslraser
Danke für deine sehr schöne Arbeit
Ich habe das Fenster-Script auch perfekt am laufenAber leider bin ich irgendwie zu blöd dein Script umzuschreiben das es mit den Türen funktioniert
Kannst du mir evtl. dein Script von den Türen zur Verfügung stellen
Danke im Voraus
Gruß
Marceldas Script findest du genau da, wo du auch das für die Fenster gefunden hast.
https://forum.iobroker.net/topic/40424/alexa-ansagen-i-telegram-i-email-i-alias-i-visu-i-html/2
-
das Script findest du genau da, wo du auch das für die Fenster gefunden hast.
https://forum.iobroker.net/topic/40424/alexa-ansagen-i-telegram-i-email-i-alias-i-visu-i-html/2


