NEWS
Fenster und andere Geräte zählen opt. Alexa Ansagen
-
@dirk1962
ich habe jetzt bei mir alle relevanten Geräte auf Alias umgestellt. Jetzt kann/muss man sich zwischen Pest und Cholera entscheiden....
Es geht mir speziell um die Temperaturen und die Batterien als Volt.Speak kann Zahlen mit Punkt oder Komma ansagen, wenn man die Ausgabe richtig baut.
SSML kann nur mit Kommas umgehen und kann keine Zahlen mit Punkt ansagen (ist ja eigentlich Text)Hier mal zum testen eine Ansage. Dort ist ein Wert mit Komma und einer mit Punkt. Wenn Du diesen Satz mal bei speak einfügst, erfolgt die Ansage korrekt, selbst die ssml Zeichen werden ignoriert.
Der gleiche Satz in den ssml DP vom Alexa2 Adapter geht dann eben nur korrekt bei dem Komma Wert.
Jetzt stehe ich gerade vor der Entscheidung, nur noch speak zu verwenden. (auch wegen der 250 Zeichen Geschichte)
Man kann die Temperaturen und auch die Volt Anzeigen direkt mit Komma im Alias anzeigen/erstellen (als Text und nicht als Zahl, wenn der Original DP read only ist), dann könnte man auch die Batterien absteigend/aufsteigend nach Volt in den Tabellen sortieren, das geht mit dem Punkt wiederum nicht. Aliase mit Komma lassen sich dann wiederum nicht iot als einzelnes Gerät nutzen, dort wird es als Zahl mit Punkt benötigt....
Lange Rede kurzer Sinn, wenn es nur um die Anzeige / Ansage der vom Blockly erstellten Ansagen geht, dann gefällt mir speak mit Komma Werten zum sortieren besser.
Hier mal gekürzte Scripte zum Alias erstellen
Hier noch für Batterien Volt mit Komma als Text
Ich überlege alles mit speak zu machen und ssml ganz raus zu werfen, was meinst Du ?
-
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
@dirk1962
ich habe jetzt bei mir alle relevanten Geräte auf Alias umgestellt. Jetzt kann/muss man sich zwischen Pest und Cholera entscheiden....
Es geht mir speziell um die Temperaturen und die Batterien als Volt.Da ich kein Veganer bin, ist es Rinderwahn oder Schweinepest .
speak: Die Ansage einer einzelnen Temperatur braucht man nicht wirklich und bei den Batterien macht es eh keinen Sinn.
Wenn Du nur noch speak oder ssml verwendest, würde das Blockly schlanker und damit auch für leistungsschwächere Rechner besser nutzbar. Speak bietet mehr Möglichkeiten und ist meiner Meinung nach die richtige Entscheidung.Alias: Bei den Temperaturen sind es bei mir 12 Aliase gewesen, bei den Batterien wären es 55 und insgesamt ca. 120. Das ist schon eine Menge Arbeit.
Wenn man einen Aktor hinzufügt, muss man im Moment nur das richtige Gewerk eintragen und das wars. Mit Alias muss man jedesmal einen neuen Alias anlegen, was auch mehr Arbeit ist.
Wer die Arbeit nicht machen will, nutzt eben das alte Blocky. Ich denke meine Einstellung dazu kennst Du.Du musst Dich für eine Version entscheiden. Am besten für die, die für Dich am einfachsten zu pflegen ist und die Entscheidung sollte dann endgültig sein. Ich weiß nicht, wie viele User Dein Blockly nutzen, aber es werden schon einige sein. Die müssen jetzt noch einmal eine Menge umstellen und Zeit investieren. Wenn die Umstellung Sinn macht, okay.
-
@dirk1962
Der Sinn vom Alias ist folgender (und es wird immer alles gefunden, mit dem Namen den man selbst über alias erstellt, und dieser wird auch angesagt)In der Funktion
getParentName
über alias:
In der Funktion
getParentName
ohne Alias
(und es wird längst nicht jeder Hersteller erkannt) -
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Ich überlege alles mit speak zu machen und ssml ganz raus zu werfen, was meinst Du ?
-
@dslraser
Alias hat bestimmt Vorteile, ich wollte nur auf den Aufwand aufmerksam machen. Meine Java Kenntnisse sind gleich Null, was Du da programmierst sind für mich böhmische Dörfer.
Hoffentlich antworten Dir auch noch andere User, dann bekommst Du von mehreren Feedback. @sigi234 hat schon einen eindeutigen Kommentar abgegeben. -
Das aktuelle Blockly ist im ersten Beitrag. Die Beschreibungen dazu sind teilweise aktualisiert, der Rest der Beschreibung kommt noch (nicht mehr heute...)
Dieses Blockly funktioniert nur noch über alias und speak. (kein ssml mehr) -
Hallo @dslraser,
habe alle Aliase angelegt und das Blockly funktioniert soweit, super Arbeit von Dir.
Ein paar kleine Anmerkungen habe ich noch.
Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.
Der Einleitungssatz für die Alexa2.0.Instanz Türen steht auf Fenster. Ich habe es bei mir geändert, falls Du nochmal ein Update einstellst, kannst Du es für alle ändern.
Bei Fenster und Türen habe ich sowohl HM als auch HMIP Kontakte. Die HM-Kontakte werden in den html-Tabellen nicht angezeigt und auch nicht bei der Alexa Ansage berücksichtigt. Da muss ich noch auf Deine Erklärung im ersten Post warten.
Alle Ansagen funktionieren perfekt und auch der E-Mail Versand ist okay. Telegram nutze ich nicht.
Es sieht so aus, als ob Du kurz vor Vollendung dieses Projektes bist.
Vielen Dank für Deine Arbeit und Hilfsbereitschaft. -
@dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.
Ja, in der Tat, die gibt es nicht (würde aber gehen). Meine Ansage der Batterien dauerte dann Minuten, braucht man die Ansage ?
Der Einleitungssatz für die Alexa2.0.Instanz Türen steht auf Fenster.
wird geändert (war in beiden Instanzen falsch)
Bei Fenster und Türen habe ich sowohl HM als auch HMIP Kontakte. Die HM-Kontakte werden in den html-Tabellen nicht angezeigt und auch nicht bei der Alexa Ansage berücksichtigt. Da muss ich noch auf Deine Erklärung im ersten Post warten.
bei den Fenstern und Türen werden nur die states ausgewertet, also nur
geschlossen
gekippt
geöffnetDiese müssen im Alias auch so heißen
// so für Drehgriffe: states = {0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'}; //oder so für "normale Fensterkontakte mit auf-zu: states = {0: 'geschlossen', 1: 'geöffnet'}; //oder so, wenn true-false ausgegeben wird states = {false: 'geschlossen', true: 'geöffnet'};
Hier mal so ein alias RAW von einem einfachen Sensor
{ "type": "state", "common": { "def": "CLOSED", "type": "number", "read": true, "write": false, "min": 0, "max": 1, "states": { "0": "geschlossen", "1": "geöffnet" }, "unit": " ", "role": "window.value", "name": "Badezimmer Fenster links", "alias": { "id": "hm-rpc.0.0xxxxx.1.STATE" } }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1593204497556, "_id": "alias.0.Fenster.Badezimmer_Fenster_links", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Hier mal so ein alias RAW von einem Drehgriff
{ "type": "state", "common": { "def": "CLOSED", "type": "number", "read": true, "write": false, "min": 0, "max": 2, "states": { "0": "geschlossen", "1": "gekippt", "2": "geöffnet" }, "role": "window.value", "name": "Keller Sauna Fenster links", "alias": { "id": "hm-rpc.0.xxxxxC.1.STATE" }, "unit": " " }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1593250239446, "_id": "alias.0.Fenster.Keller_Sauna_Fenster_links", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Sensoren mit true und false habe ich nicht...
EDIT: sind Deine alias so eingerichtet ? (oder im Blockly ist noch was falsch...?)
-
@dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
@dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.
Ja, in der Tat, die gibt es nicht (würde aber gehen). Meine Ansage der Batterien dauerte dann Minuten, braucht man die Ansage ?
Du hast völlig Recht. Bei "Batterien-voll_leer" sagt Alexa nur "alle Batterien sind voll", bei der Volt Ansage würde sie alle Werte ansagen. Das macht absolut keinen Sinn.
Die HM-Fenster Kontakte geben die states "true - false" aus, die HMIP-Kontakte 0 und 1.
Bei den Türen habe ich nur HM-Kontakte, beim Erzeugen der Aliase habe ich es so eingestellt:
Den richtige state habe ich rausgenommen. Es werden keine Kontakte angezeigt.Muss ich, wenn ich HM und HMIP habe so einstellen? Habe keine Drehgriffe.
EDIT: mit dem alten Blockly hat es funktioniert, sonst hättest Du eine Rückmeldung von mir bekommen.
-
@dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Muss ich, wenn ich HM und HMIP habe so einstellen? Habe keine Drehgriffe.
immer nur einen state angeben (bei Dir ist nur einer auskommentiert und zwei sind aktiv).
Wenn Du den alias schon hast, kannst Du auch den RAW bearbeiten.
Schau mal in den Beitrag über Deinem, den habe ich noch editiert.Eigentlich/wahrscheinlich müßte so ein alias RAW mitt true und false so aussehen, oder ??? Also auch vom Typ boolean und nicht number, oder ?
{ "type": "state", "common": { "type": "boolean", "read": true, "write": false, "states": { "false": "geschlossen", "true": "geöffnet" }, "unit": " ", "role": "window.value", "name": "Badezimmer Fenster links", "alias": { "id": "hm-rpc.0.xxxxx.1.STATE" } }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1593204497556, "_id": "alias.0.Fenster.Badezimmer_Fenster_links", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@dslraser
Dein Blockly ist okay, der Fehler saß vor dem Computer .
Immer nur ein state angeben ist logisch, wenn man Ahnung davon hat oder es einem Ahnungslosen erklärt wird.
Vielen Dank. -
@dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:
Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.
Gibt es da jetzt auch. (viel Spaß beim zuhören , nur damit Niemand mehr fragt warum es da keine Ansage gibt)
Der Einleitungssatz für die Alexa2.0.Instanz Türen steht auf Fenster.
Habe ich korrigiert.
Das aktuelle Blockly habe ich eben hochgeladen. Nun will ich noch ein wenig an der "Anleitung" schreiben...., dann war es das erstmal, hoffentlich
-
Im zweiten Beitrag befindet sich nun ein aktuelles Blockly zur Anrufer Ansage (optional mit Telegram oder E-Mail Benachrichtigung) Das Blockly ist auch auf speak umgestellt.
-
Ich habe im ersten Beitrag eine Vorlage zum Alias erstellen eingefügt. Damit ist es möglich, alle seine Alias auf einmal zu erstellen.
-
@dslraser
Eine super Erleichterung für alle, die in Zukunft das Blockly nutzen. -
-
@dirk1962 wie sieht denn ein original RAW aus ?
Und bitte pack das mal in Code Tags. damit (</>) -
RAW vom HM Fensterkontakt
"from": "system.adapter.hm-rega.0", "user": "system.user.admin", "ts": 1587220966307, "common": { "name": "Küchenfenster.STATE", "type": "boolean", "role": "value.window", "def": false, "read": true, "write": false }, "native": { "CONTROL": "DOOR_SENSOR.STATE", "ID": "STATE", "TYPE": "BOOL", "UNIT": "", "FLAGS": 1, "OPERATIONS": 5, "TAB_ORDER": 0, "DEFAULT": false, "MAX": true, "MIN": false }, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "hm-rpc.0.OEQ1979135.1.STATE", "type": "state" }
Alias vom HM Fensterkontakt?
//2 x Fenstersensoren //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', 'number', 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', 'number',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
-
@dirk1962
müßte dann wahrscheinlich boolean anstatt number sein//2 x Fenstersensoren //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'})
EDIT: sag mal Bescheid ob das funktioniert
-
@dslraser
Die HM-Kontakte werden mit Deiner Einstellung korrekt erkannt und angezeigt. Habe alle Geräte in das Alias Script eingetragen, die alten Aliase gelöscht, JS-Adapter neu gestartet und den Admin neu geladen. E-Mail, Alexa Ansage und html-Tabellen sind so wie es sein soll. War eine Menge Arbeit, aber jetzt hat man alles übersichtlich in einer Datei.
Mal sehen, ob Dein Projekt jetzt abgeschlossen ist oder ob Dir noch was Neues einfällt.
Anrufer Ansage mit speak funktioniert bei mir auch.
Super Arbeit und vielen Dank.