Zur besten Antwort gewählt
Dez 14, 2019 - 05:10
Dazu wird ein Skript ausgeführt, das aufgerufen wird sobald eine IMAP Instanz neue Emails vorliegen hat.
Das Skript wird aufgerufen wenn sich Letzte Nachricht ändern sollte
Das Skript selber sieht so aus:
<?php
includeScript(14105); // NEO Push Skript zum Seitenwechsel
function includeScript($scriptID)
{
$s = IPS_GetScript($scriptID);
include($s['ScriptFile']);
}
$remote = "Acer Iconia"; // NEO Remote
$page = "Kamera"; // NEO Remote Seite
$objid = 53360; // IMAP Instanz
$mails = IMAP_GetCachedMails($objid); // Emails auslesen
$last_key = array_key_last($mails); // Key letzte Email
$last_email = $mails[$last_key];
$sender_name = $last_email['SenderName']; // Sender Name
$sender_address = $last_email['SenderAddress']; // Sender Adresse
$subject = $last_email['Subject']; // Betreffzeile
$uid = $last_email['UID']; // Email UID
$last_email_full = IMAP_GetMailEx($objid, $uid); // Gesamte letzte Email auslesen
$search_subject = 'Wichtig'; // Such Filter
$subject_contains_search = strpos($subject, $search_subject); // Suche im Betreff
if($sender_name == 'Max Muster' && $subject_contains_search != false) // Prüfen ob der Absender und Betreff übereinstimmen
{
$tts = 'Es ist eine Email von %s eingegangen mit dem Betreff %s';
$text = sprintf($tts, $sender_name, $subject);
ECHOREMOTE_TextToSpeech(24448, $text); // Ausgabe auf dem Echo Gerät mit der Objekt ID 24448
// Optional Seite in NEO bei Ereignis neu laden bzw. wechseln
// MEDIOLA_PUSH_Sitechange($remote, $page);
}
Sollte die Suche im Betreff erfolgreich sein, wird eine Nachricht auf einem Echo Gerät ausgegeben. Hier kann man dann auch optional eine Echo Routine starten oder in NEO eine Seite ausrufen z.B. einer Kamera.
Statt in dem Betreff der Email kann man auch den vollen Text der Email nach einem Pattern suchen.
Vom Prinzip ist das Vorgehen gleich wenn eine Push Nachricht eingeht, dabei hängt es halt davon ab welcher Push Dienst die Nachricht sendet. Eine SMS auswerten kann man nur mit zusätzlicher Hardware. Bei Bewegung wäre das ein normales Ereignis, da müsste man dann ja nicht auf einen bestimmten String prüfen.
Von
Hallo Fonzo,
ich möchte mich nochmals für Deine Antwort bedanken. Das dargestellte Beispiel ist sehr verständlich und meinen Anwendungsfall kann ich mit ein wenig Ergänzung umsetzten. Eventuell kannst Du mir auch noch eine letzte Frage beantworten:
Kann ich an Alexa auch einen Sprachbefehlt (in Textform) senden welcher dann von einem definierten Echo Show ausgeführt wird?
Danke für die freundliche Unterstützung
Gruß ICS
Von
Was meinst Du denn genau mit einem Sprachbefehl der dann ausgeführt wird? Soll Text vorgelesen werden, ein Gerät geschaltet werden oder eine Routine gestartet werden?
Wenn es darum geht nur etwas vorlesen zu lassen wäre das
ECHOREMOTE_TextToSpeech(12345, $text);
12345 ist die ID der Echo Instanz und $text entspricht dem Text der vorgelesen werden soll.
Wenn es darum geht Befehle die Alexa ausführen soll zu starten musst Du eine Alexa Routine starten.
Wenn die Alexa Routine z.B. "Gute Nacht" heißt dann rufst Du diese auf mit
ECHOREMOTE_StartAlexaRoutine(12345, "Gute Nacht");
12345 ist die ID des Echo Geräts.
Von
Hallo,
ganz konkret gilt es auf einem bestimmten Echo Show Gerät den Sprachbefehl:"Alexa - zeige die Haustür" abzusetzen. Dieser Befehl startet den NEST CAM Skill und gibt für eine halbe Stunde das Bild der Haustürkamera auf dem entsprechenden Echo wieder. Das Ereignis ist somit eine SMS oder Mail und die Aktion ist die Ausgabe von Video bzw. auch Sprache wenn ich die Mail auswerten kann. In der Mail oder SMS wird die erkannte Person namentlich aufgeführt. Es wäre also denkbar die Mail auszuwerten und Alexa sagen zu lassen wer gerade an der Haustür steht.
Danke
Gruß ICS
Von
Das Problem ist das Du Alexa selber nicht auf selbst vorgelesene Texte reagiert und ich selber wüste zur Zeit keine Möglichkeit etwas wie der Sprachbefehl "Alexa - zeige die Haustür" auslöst ohne Sprache auszulösen. Sollte das auf irgendeine Weise funktionieren würde mich das selber brennend interessieren.
Mail auswerten geht (s.o.) hat aber den Nachteil, dass das nicht ganz in Echtzeit ist, da es ja auch braucht bis die Email versendet und dann auch wieder vom Server abgerufen worden ist.
SMS wäre schneller, erfordert aber zusätzliche Hardware, das ist unter SMSWitch beschrieben
https://www.symcon.de/forum/threads/1812-Vorstellung-SMSWitch?highlight=sms+empfangen
Falls die Nest Cam auch ein Webhook triggern könnte, wäre das sicher die schnellste Methode.
Also eine Auswertung und Ansage welche Person von der Tür steht ist sicher möglich, entweder aus der Email oder einer SMS. Ob es auch möglich ist das Bild auf dem Echo aufzurufen ohne einen Sprachbefehl zu übergeben weis ich nicht, mir selber ist zur Zeit zumindest nichts bekannt.
Wenn man mit einer Routine das Kamerabild aufrufen könnte, wäre das ja ein Ansatz, aber auch das wüste ich nicht das dies zur Zeit möglich wäre. Falls Du einen Weg finden solltest das über eine Routine zu lösen würde mich das selber interessieren.
Von
Hallo Fonzo,
nach Weihnachten habe ich ein wenig Zeit. Ich werde mal einfach anfangen ein paar Dinge auszuprobieren und sofern sich daraus eine Lösung ergibt werde ich es hier berichten.
Frohes Fest an alle
Gruß ICS
Neuen Kommentar hinzufügen