Der Echo Show 5

Jetzt in der Vor-Weinachtszeit haut Amazon ja gerne seine eigenen Geräte zu einem Spotpreis raus und ich liebäugelte schon etwas länger mit dem Echo Show 5, sprich Alexa mit Display.

Es gibt schon einige Vorteile gegenüber der reinen Voice-Version, mein größtes Anliegen war die Einbindung meiner Kameras, so dass ich mir diese auf dem Echo Show anschauen kann.

Ich verwende überwiegend billige China Kameras (WansView, 0815 und co.) die Teilweise mit ONVIF angesteuert werden, teilweise per RTSP.
Als Kamerazentrale verwende ich die Synology Surveillance Station.
Ich habe hier eine Lizenz für aktuell 6 Kameras und habe auch meine Kameras dort angebunden.

Es gibt einen Skill + Dienst, der genau das bietet: Monocle Cam
Ich führe nun mal nicht aus, wie man sich dort registriert und Kameras hinzufügt, dass ist sehr gut dokumentiert muss man sagen, quasi Idiotensicher!

Mit dem Dienst hatte ich nur ein Problem, dass er sich auf dem Interface *:443 krallen will.
Ich habe versucht das Gateway auf meinem Primären Raspi 4 zu installieren, funktionierte nur nicht, da Port 443 (HTTPS) bereits durch mein Nextcloud gesperrt ist.
Es gibt (aktuell!) keine Möglichkeit, dass ganze auf eine IP Adresse zu mappen, also musste ich mir für den zweck wieder einen alten Raspberry Pi 3b aus dem Keller ausgraben und aufsetzten … soweit so gut, über den separaten Pi läuft es einwandfrei.
Richtig eingerichtet, kann man sich via “Alexa, zeige den Parkplatz” sich eine entsprechende Kamera anzeigen lassen.

Daneben bietet er eine reihe weitere Vorzüge, wie ein Webbrowser (sogar Firefox oder der Amazon Browser Silk) mit dem man auf Youtube oder ähnliches zugreifen kann, dass sind aber m.M. nach nur Spielerein. Google und Amazon sollen sich mal bitte fertig streiten, dass es eine vernünftige YouTube App für den Echo gibt, dann können wir darüber reden.

Unser Echo Show steht in der Küche und wir verwenden sehr oft die Timer Funktion, diese wird im Display angezeigt, also kein Fragen mehr, wie lange geht der Time noch.

Ein weiteres gutes Feature ist, mit Alexa zu kochen.
Ich finde das ein gelungenes Highlight des Echo Shows, einmal ein Rezept gestartet, wird dieses von Alexa vorgelesen und mit einem “Alexa, weiter” springt er zum nächsten Schritt, somit brauch man mit dreckigen Fingern nicht am Touch-Screen rum wursteln.

Alles im allen bin ich sehr zufrieden mit dem Alexa Show 5, die Displaygröße ist ausreichend und sonstige Alexa Features sind auch vorhanden.

Benachrichtigung Alarmanlage Auslöser

Ich habe heute noch eine kleine Optimierung bzw. Zusatz zu meiner Alarmanlage dazu programmiert.

Das ursprüngliche Script, welches ich hierzu abgewandelt habe, bezieht sich eigentlich auf die Rauchmelder um per Push den ausgelösten Rauchmelder als Information zu erhalten. Das Script habe ich wieder einmal im Homematic-Forum gefunden.

Schritt 1: Gewerk anlegen und überprüfen
Für das Script ist es nötig, alle zu prüfenden Fenster / Türkontakte in ein Gewerk zu packen, in meinem Fall Alarmanlage.

Mit folgendem Script (in der CCU -> Programme -> Skript testen), muss das Gewerk überprüft werden, als Ergebnis muss der Gewerkname ausgegeben werden.
Wenn das nicht der Fall ist muss das Gewerk gelöscht werden, die CCU neu starten, Gewerk wieder anlegen, Skript ausführen.
var sec = (dom.GetObject(ID_FUNCTIONS)).Get("Alarmanlage");
WriteLine(sec);

Schritt 2: Kontakte zuordnen
Natürlich müssen dem neuen Gewerk nun auch die Fenster -und Türkontakte zugewiesen werden, die der Alarmanlage zugeordnet sind, ggf. alle verfügbaren Kontakte.
Ich gehe hier aber nun nicht weiter darauf ein, wie das funktioniert 😉

Schritt 3: Systemvariablen
Es gibt eine Pflicht variable, die benötigt wird um später das Benachrichtigungsprogramm zu triggern, in meinem Fall als Variablentyp “Alarm” um das auch in der CCU entsprechend zu signalisieren.

Systemvariable “Alarmanlage ausgelöst” als Alarm

Wenn man das ganze noch per App abrufen möchte oder in der CCU anzeigen lassen möchte, kann man den Auslöser auch noch in eine Zeichenkette ausgeben lassen

Systemvariable “Alarmkontakt” als Zeichenkette

Schritt 4: Alarm-Programm
Nun wird ein neues Programm benötigt, mit dem die Alarm-Variable auf ausgelöst gesetzt wird, als Auslöser werden hier alle Fenster -und Türkontakte definiert.

Klicken zum vergrößern

Unten ist noch ein Script eingebettet, dass wie folgt aussieht:
dom.GetObject('Alarmkontakt').State("");
string list;
list="";

Schritt 5: Benachrichtigungsprogramm
Nun brauch man noch das Programm, welches die Benachrichtigung raushaut auf den Kanälen, die man haben möchte, in meinem Fall ist das pocketControl.

Klicken zum vergrößern

Script zu Erkennung, welcher Kontakt ausgelöst hat:
var sec = (dom.GetObject(ID_FUNCTIONS)).Get("Alarmanlage");
string i;
string list;
list="";
foreach(i,sec.EnumUsedIDs())
{
var item=dom.GetObject(i);
if(item.IsTypeOf(OT_CHANNEL))
{
var dev=dom.GetObject(item.Device());
if( (dev.HssType()=="HmIP-SWDM") || (dev.HssType()=="HM-Sec-SCo") || (dev.HssType()=="HMIP-SWDO") )
{
var state=item.DPByHssDP("STATE");
if(state.Value())
{
list=list+dev.Name();
}
if(state1.Value())
{
list=list+dev.Name();
}
}
}
}
dom.GetObject('Alarmkontakt').State(list);

Script für pocketControl-Push
string PushText = "Die Alarmanlage wurde durch "#list#" ausgelöst!";dom.GetObject('pocketControlPushMessage').State(PushText);

Natürlich kann man hier auch jede andere Benachrichtigungsart verwenden.
Die verschiedenen Arten sind m.M. nach sehr gut in der Anleitung für das ursprüngliche Script beschrieben.
Das Ergebnis sieht dann wie folgt aus:

Alarmanlage mit Homematic und Alexa

Da ich nun alle Fenster und Türen mit Fensterkontakten bzw. Türkontakten ausgestattet habe, kann ich das als Grundlage für den Bau für eine Alarmanlage nutzen.

Zuerst habe ich mir überlegt, wie ich den Alarmsignalton realisieren kann, da kam ich zuerst auf die Rauchmelder, da diese die Option für einen Einbruchsalarm haben.
Da dachte ich mir dann, ist eigentlich doof, da darunter die Batterielaufzeit leidet und die Dinger dafür zu teuer sind.
Die Homematic Alarmsirene ist mir auch zu teuer, da habe ich andere Prioritäten.
Dann kam ich auf die unnütz rumliegende Alexa.
Diese könnte man ja ins Schlafzimmer stellen, Mikrofon deaktivieren und dann hätte man etwas, um den Alarm auszugeben.
Diese Idee hatte mich dann überzeugt.

Nun habe ich das ganze wie folgt realisiert:
Ich habe einen weiteren bottle-Server gestartet, der die Routinen in Alexa ansteuert.
In Alexa habe ich eine Routine angelegt, die einfach nur mehrmals sagt “Alarm! Alarm! Alarm! Die Alarmanlage wurde ausgelöst”
Dann habe ich das mal getestet und die Zeit gemessen, wie lang die Routine brauch, um das Abzuarbeiten, da ich das min. 2 mal ausführen will, ich kam auf etwa 1 Minute 20.


(Bild in Groß)

Nun geht es an das Homematic-Programm, das sieht dann wie folgt aus:


(Bild in Groß)

Was tut das Programm?
Also in erster Linie sind die Fenster und Türkontakte der Auslöser des Programms.
Die Alexa soll als Sirene primär genutzt werden, funktioniert natürlich nur, wenn ich Online bin, deshalb habe ich via CUxD-Ping noch eine Abfrage drin, bin ich Online oder nicht?
Ich pinge hier die 8.8.8.8, denke mal es ist unwahrscheinlich dass dieser DNS-Server von Google mal tot ist .
Wenn also CUxD-Ping-Internet ein ist, soll die Alexa routine "alarmanlage" ausgelöst werden.
Als Backup für den Offline Fall (wie gestern Abend, Danke Vodafone) sollen dann doch die Rauchmelder ausgelöst werden.
Wenn wir abwesend sind, geht eine Push-Benachrichtigung an mein Handy.
Ich denke aber, dass ich mal noch versuche, hier einen Anruf über die Fritz!Box zu triggern, ist noch in Arbeit und wird ein eigener Blogeintrag, wenn das mal geschafft ist.

Ich denke, dass ist eine wunderbare Umsetzung der Alarmanlage.