Alexa.sh v4.10 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
blackhole
Beiträge: 2746
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 81 Mal
Danksagung erhalten: 251 Mal
Kontaktdaten:

Alexa.sh v4.10 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von blackhole » 24.01.2019, 12:25

Für CCU3, piVCCU3 und RM gibt es nun ein Paket für das "Lötzimmer-Skript" (Echo remote control) mit jq-Unterstützung, so dass auch Alexa Routinen (automation), Sprachkommandos und viele weitere Dinge einfach aufrufbar und automatisierbar sind. Neben jq wird ebenfalls das für die Zwei-Faktor-Authentifizierung benötigte Utility oathtool mitgeliefert.


Die folgende Anleitung ist für das aktuelle Paket Alexa.sh v4.10 gültig.


alexa.sh, jq und oathtool

Das Paket ist ein übliches .tar.gz-Archiv. Dieses muss auf die CCU3/piVCCU3/RM kopiert werden (nach /usr/local/addons/) und dort entpackt werden. Eine Anleitung hierfür folgt im Abschnitt Installation. In dem Verzeichnis /usr/local/addons/alexa/ ist im Ergebnis dann das Startskript alexa.sh, die Konfigurationsdatei alexa_remote_contol.conf sowie die Utilities jq und oathtool zu finden.

Das "Lötzimmer-Skript" alexa_remote_control.sh wird beim ersten Aufruf von alexa.sh automatisch in das Installationsverzeichnis heruntergeladen, sofern dieses nicht im Installationsverzeichnis vorhanden sein sollte. Die persönliche Überprüfung der Downloadquelle und des "Lötzimmer-Skriptes" kann über folgende Links durchgeführt werden: Lötzimmer-Blog / Lötzimmer-Skript


Installation

Das Paket wird, wie nachfolgend beschrieben, zunächst auf die CCU3 kopiert und erst dort entpackt.
  • Das Paket nicht unter Windows entpacken, hierbei würden die (Linux-)Dateirechte verloren gehen.
  • Die Verwendung des Pfades /usr/local/addons/alexa/ ist im Rahmen dieser Anleitung obligatorisch.
Für den nachfolgenden Punkt 1 kann z.B. WinSCP, für die Punkte 2 und 3 kann z.B. PuTTY verwendet werden.
  1. Das Paket nach /usr/local/addons/ kopieren.
  2. Code: Alles auswählen

    cd /usr/local/addons/
  3. Code: Alles auswählen

    tar xvfz /usr/local/addons/alexa-4.10.tar.gz
Die im Paket beinhalteten Dateien werden auf diesem Weg automatisch nach /usr/local/addons/alexa/ entpackt.
Wichtig ist weiterhin insbesondere auch die korrekte Einrichtung des Cronjobs (siehe Abschnitt "Cookie überprüfen").


Konfiguration

Die nachfolgenden Punkte bitte unbedingt beachten, damit beim Update des Lötzimmer-Skriptes keine Einstellungen verloren gehen.
  • Alle nötigen Einstellungen in der Konfigurationsdatei (alexa_remote_contol.conf) vornehmen.
  • Bitte keine Einstellungen im "Lötzimmer-Skript" (alexa_remote_control.sh) vornehmen.

MFA/2FA - Zwei-Schritt-Verifizierung aktivieren

Ich möchte an dieser Stelle noch die Empfehlung aussprechen, zeitnah auf Amazons 2FA (Zwei-Schritt-Verifizierung) umzusteigen. Cookie-/Auth-Probleme gehören damit der Vergangenheit an.

Alex hat das im Lötzimmer-Blog kurz und knapp aber treffend beschrieben. Das tut nicht weh und ist seitens Amazon (und Lötzimmer-Skript) benutzerfreundlich umgesetzt.

In alexa_remote_contol.conf ist der (lange) von Amazon.de erhaltene MFA-String inkl. Leerzeichen an die entsprechende Stelle einzutragen:

Code: Alles auswählen

MFA_SECRET='XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX'
Dort wird nicht die (eher kurze) Ausgabe von /usr/local/addons/oathtool -b --totp (...) eingetragen.

Der diesbezüglich eigentlich nur erklärende Punkt 5 zum "Update 2019-07-08" im Lötzimmer-Blog wird wohl des öfteren missverstanden ("Base32 string is invalid"-Problem).


Sprachausgabe (TTS)

Ein einfaches Beispiel in HM-Script, ausgehend von einer Systemvariablen "TTS Echo" (diese muss in der CCU3 angelegt werden, Typ Zeichenkette) in welcher der auszugebende Text abgelegt wird und einem Amazon Echo namens "Flur" auf welchem die Sprachausgabe erfolgen soll:

Code: Alles auswählen

! Sprachausgabe auf Echo Flur
! -----------------------------------------------------------------------------------------------------------------------
string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("TTS Echo").Value();
system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Flur' -e speak:'" #message.ToUTF8() #"' &");

Flüstern (TTS) via SSML

Ein einfaches Beispiel in HM-Script, ausgehend von einer Systemvariablen "TTS Echo Whisper" (diese muss in der CCU3 angelegt werden, Typ Zeichenkette) in welcher der auszugebende Text abgelegt wird und einem Amazon Echo namens "Bibliothek" auf welchem die Sprachausgabe im Flüstermodus erfolgen soll:

Code: Alles auswählen

! Sprachausgabe (Flüstern) auf Echo Bibliothek
! -----------------------------------------------------------------------------------------------------------------------
string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("TTS Echo Whisper").Value();
system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Bibliothek' -e speak:'<speak><amazon:effect name=\"whispered\">" #message.ToUTF8() #"</amazon:effect></speak>' &");

Hans, Marlene & Vicky (TTS) via SSML

Nachfolgend einfache Beispiele in HM-Script, ausgehend von den Systemvariablen "TTS Echo Hans", "TTS Echo Marlene" und "TTS Echo Vicki" (diese müssen in der CCU3, angelegt werden, Typ Zeichenkette) in welchen der auszugebende Text abgelegt wird und einem Amazon Echo namens "Bibliothek" auf welchem die Sprachausgabe mit der Stimme von "Hans", "Marlene" oder eben "Vicki" erfolgt:

Code: Alles auswählen

! Sprachausgabe (Hans) auf Echo Bibliothek
! -----------------------------------------------------------------------------------------------------------------------
string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("TTS Echo Hans").Value();
system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Bibliothek' -e speak:'<speak><voice name=\"Hans\">" #message.ToUTF8() #"</voice></speak>' &");

Code: Alles auswählen

! Sprachausgabe (Marlene) auf Echo Bibliothek
! -----------------------------------------------------------------------------------------------------------------------
string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("TTS Echo Marlene").Value();
system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Bibliothek' -e speak:'<speak><voice name=\"Marlene\">" #message.ToUTF8() #"</voice></speak>' &");

Code: Alles auswählen

! Sprachausgabe (Vicki) auf Echo Bibliothek
! -----------------------------------------------------------------------------------------------------------------------
string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("TTS Echo Vicki").Value();
system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Bibliothek' -e speak:'<speak><voice name=\"Vicki\">" #message.ToUTF8() #"</voice></speak>' &");

Individuelle Laustärken bei Sprachausgaben (pro Raum/pro Echo/pro Ansage)

Mittels eines kleinen Tweaks lassen sich individuelle Laustärken bei Sprachausgaben (pro Raum/pro Echo/pro Ansage) realisieren. Hierfür kann in der Datei /usr/local/addons/alexa/alexa_remote_contol.conf nachfolgende Einstellung wie folgt auskommentiert werden.

Code: Alles auswählen

# SPEAKVOL='50'
Ein einfaches Beispiel in HM-Script, ausgehend von einer Systemvariablen "TTS Echo" (diese muss in der CCU3 angelegt werden, Typ Zeichenkette) in welcher der auszugebende Text abgelegt wird und einem Amazon Echo namens "Hallenbad" auf welchem die Sprachausgabe mit individueller Lautstärkeangabe erfolgen soll:

Code: Alles auswählen

! Sprachausgabe auf Echo Hallenbad (Lautstärke 70)
! -----------------------------------------------------------------------------------------------------------------------
string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("TTS Echo").Value();
system.Exec("export SPEAKVOL='70';/usr/local/addons/alexa/alexa.sh -d 'Hallenbad' -e speak:'" #message.ToUTF8() #"' &");
Das dient wirklich nur als Beispiel. Man kann das natürlich weiter verfeinern und dynamisieren, in dem man den (oben fest angegeben) Namen des Echos/der Lausprechergruppe und die (oben fest angebene) Lautstärke auch noch in Systemvariablen der CCU auslagert und somit die komplette Sprachausgabe mit einem einzigen Mini-HM-Script realisieren kann.

Alternativ kann man das Beispiel natürlich auch einfach so wie es ist nutzen und mehrere WebUI-Programme anlegen, die dann Sprachausgaben auf unterschiedlichen Echos mit individueller Lautstärken ausgeben.


Geräusche aus der Sound-Library

Ein einfaches Beispiel in HM-Script, für die Ausgabe eines Türklingel-Sounds auf einem Amazon Echo namens "Wintergarten":

Code: Alles auswählen

! Soundausgabe auf Echo Wintergarten
! -----------------------------------------------------------------------------------------------------------------------
system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Wintergarten' -e sound:'amzn_sfx_doorbell_01' &");

Nachfolgend eine Liste mit Namen weiterer Sounds, die mit der Befehloption "sound" abspielbar sind.

Code: Alles auswählen

air_horn_03
bell_02
camera_01
christmas_05
clock_01
boing_01
boing_03
buzzers_pistols_01
futuristic_10
horror_10
squeaky_12
zap_01
amzn_sfx_cat_meow_1x_01
amzn_sfx_church_bell_1x_02
amzn_sfx_crowd_applause_01
amzn_sfx_dog_med_bark_1x_02
amzn_sfx_doorbell_01
amzn_sfx_doorbell_chime_01
amzn_sfx_doorbell_chime_02
amzn_sfx_trumpet_bugle_04
amzn_sfx_large_crowd_cheer_01
amzn_sfx_lion_roar_02
amzn_sfx_rooster_crow_01
amzn_sfx_scifi_alarm_01
amzn_sfx_scifi_alarm_04
amzn_sfx_scifi_engines_on_02
amzn_sfx_scifi_sheilds_up_01
amzn_sfx_wolf_howl_02

Alle anderen Geräusche aus der Sound-Library von Amazon können mit der der Befehloption "speak" via SSML abgespielt werden. Nachfolgend ein entsprechendes Beispiel in HM-Script, für die Ausgabe eines Sounds auf einem Amazon Echo namens "Wintergarten":

Code: Alles auswählen

! Soundausgabe via SSML auf Echo Wintergarten
! -----------------------------------------------------------------------------------------------------------------------
system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Wintergarten' -e speak:'<audio src=\"soundbank://soundlibrary/musical/amzn_sfx_trumpet_bugle_03\"/>' &");

Alexa-Routinen starten

Ein einfaches Beispiel in HM-Script, für den Start einer Alexa-Routine, ausgehend von einer Systemvariablen "Routine" (diese muss in der CCU3 angelegt werden, Typ Zeichenkette) in welcher der Name der auszuführenden Alexa-Routine abgelegt wird:

Code: Alles auswählen

! Alexa-Routine starten
! -----------------------------------------------------------------------------------------------------------------------
string routine = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Routine").Value();
system.Exec("/usr/local/addons/alexa/alexa.sh -e automation:'" #" " #routine #"' &");

Sprachbefehl (in Textform)

Nachfolgend ein einfaches Beispiel in HM-Script, ausgehend von einer Systemvariablen "Sprachbefehl" (diese muss in der CCU3 angelegt werden, Typ Zeichenkette), in welcher der Sprachbefehl (in Textform) abgelegt wird und einem Amazon Echo namens "Wohnzimmer" an welchem der Sprachbefehl übegeben wird.

Code: Alles auswählen

! Sprachbefehl in Textform an Echo Wohnzimmer übermitteln
! -----------------------------------------------------------------------------------------------------------------------
string textcmd = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Sprachbefehl").Value();
system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Wohnzimmer' -e textcommand:'" #textcmd.ToUTF8() #"' &");
Der Sprachfehl (in Textform) wird von dem Echo-Device genau so verarbeitet, als hätte man diesen per Sprache übermittelt, wobei man das Aktivierungswort einfach weg lässt, da der anzusprechende Echo ja bereits mit dem Parameter "-d" übergeben wird. Die zugehörge Sytemvariable ("Sprachbefehl") füttert man demzufolge mit allem, was man ansonsten einem Echo, dem Aktivierungswort nachfolgend, sagen würde.

Nachfolgend ein paar einfache Beispiele:
  • Lautstärke 5
  • Spiele Einslive
  • Spiele Hardrock
  • Lautstärke 10
  • Spiele Topsongs von Metallica
  • Spiele Whiskey in the jar
  • Lautstärke 3
  • Spiele Jingle Bells
  • Pause
  • Erzähle einen Witz
  • Wie wird das Wetter
  • Wie spät ist es
  • Wie ist die Temperatur
  • Sprich mir nach: Es hat geklingelt
  • Sprich mir nach: Die Waschmaschine ist fertig
  • Sprich mir nach: Die Hütte brennt
  • Licht einschalten
  • Fernseher einschalten
  • Starte Netflix
  • Starte Fire TV

Cookie überprüfen

Die Option --check-cookie überprüft regelmäßig z.B. via crontab das Cookie und die Devicelist und erneuert diese im Bedarfsfall automtisch und zuverlässig. Im Falle eines abgelaufenen Cookies werden sowohl das Cookie als auch die Devicelist erneuert. Datum und Uhrzeit werden in diesem Fall in einer (anzulegenden) Systemvariablen "TTS Cookie" (Typ Zeichenkette) dokumentiert.

Beispiel für einen einfachen crontab-Eintrag in /usr/local/crontabs/root (Prüfung einmal pro Stunde):

Code: Alles auswählen

33 * * * * /usr/local/addons/alexa/alexa.sh --check-cookie.sh > /dev/null
Crond durchstarten:

Code: Alles auswählen

/etc/init.d/S98crond restart
Abschließende Kontrolle mittels:

Code: Alles auswählen

crontab -l

Cookie erneuern

Die Option --renew-cookie erneuert ohne weitere Überprüfung das Cookie und die Devicelist. Diese option ist für den manuellen Aufruf bei Bedarf gedacht. Datum und Uhrzeit werden ebenfalls in der Systemvariablen "TTS Cookie" dokumentiert (vgl. Abschnitt Cookie überprüfen).

Der Aufruf in der Shell erfolgt mittels:

Code: Alles auswählen

/usr/local/addons/alexa/alexa.sh --renew-cookie
Alternativ, der gleiche Aufruf per HM-Script:

Code: Alles auswählen

! Renew Alexa cookie
! -----------------------------------------------------------------------------------------------------------------------
system.Exec("/usr/local/addons/alexa/alexa.sh --renew-cookie &");

Devicelist erneuern

Wurde ein Echo-Device im Amazon-Konto umbenannt, hinzugefügt oder gelöscht, muss eine neue Devicelist erstellt werden. Das gilt auch für Änderungen von Multiroom-Gruppen. Die Erstellung einer neuen Devicelist kann einfach durch Aufruf der Option --renew-devicelist erfolgen. Diese Option veranlasst das Skript ausschließlich die Devicelist zu erneuern und ist für den manuellen Aufruf bei Bedarf gedacht.

Der Aufruf in der Shell erfolgt mittels:

Code: Alles auswählen

/usr/local/addons/alexa/alexa.sh --renew-devicelist
Alternativ, der gleiche Aufruf per HM-Script:

Code: Alles auswählen

! Renew Alexa device list
! -----------------------------------------------------------------------------------------------------------------------
system.Exec("/usr/local/addons/alexa/alexa.sh --renew-devicelist &");

Temporäre Alexa-Dateien erneuern

Die Option --renew-tmpfiles löscht ohne weitere Überprüfung alle temporären Alexa.sh-Files (/tmp/.alexa.*) und erneuert im gleichen Zuge sowohl Cookie als auch die Devicelist. Das Skript ist für den manuellen Aufruf bei Bedarf gedacht. Datum und Uhrzeit werden ebenfalls in der Systemvariablen "TTS Cookie" dokumentiert (vgl. Abschnitt Cookie überprüfen).

Der Aufruf in der Shell erfolgt mittels:

Code: Alles auswählen

/usr/local/addons/alexa/alexa.sh --renew-tmpfiles
Alternativ, der gleiche Aufruf per HM-Script:

Code: Alles auswählen

! Renew temporary Alexa files
! -----------------------------------------------------------------------------------------------------------------------
system.Exec("/usr/local/addons/alexa/alexa.sh --renew-tmpfiles &");

Get last Alexa

Die Option --get-lastalexa füllt eine (anzulegende) Sysvar "TTS Lastalexa" (Typ Zeichenkette) mit dem Namen des Echo-Gerätes, welches zuletzt einen Sprachbefhel entgegen genommen hat. Das Skript kann wie folgt per WebUI-Programm (HM-Skript) aufgerufen werden:

Code: Alles auswählen

! Get last Echo devive
! -----------------------------------------------------------------------------------------------------------------------
system.Exec("/usr/local/addons/alexa/alexa.sh --get-lastalexa &");

Get last command

Die Option --get-lastcommand füllt eine (anzulegende) Sysvar "TTS Lastcommand" (Typ Zeichenkette) mit dem zuletzt erkannten Sprachbefehl. Das Skript kann wie folgt per WebUI-Programm (HM-Skript) aufgerufen werden:

Code: Alles auswählen

! Get last Alexa command
! -----------------------------------------------------------------------------------------------------------------------
system.Exec("/usr/local/addons/alexa/alexa.sh --get-lastcommand &");

Get last Alexa + last command

Die Option --get-lastalexacmd ist als Alternative zu --get-lastalexa angedacht und füllt eine (anzulegende) Sysvar "TTS Lastalexa" (Typ Zeichenkette) mit dem Namen des Echo-Gerätes, welches zuletzt einen Sprachbefhel entgegen genommen hat und dem entsprechenden Sprachbefehl. Das Skript kann wie folgt per WebUI-Programm (HM-Skript) aufgerufen werden:

Code: Alles auswählen

! Get last Echo device + Alexa command
! -----------------------------------------------------------------------------------------------------------------------
system.Exec("/usr/local/addons/alexa/alexa.sh --get-lastalexacmd &");

Überprüfen des Lötzimmer-Skripts auf Aktualität

Eine Überprüfung der Aktualität des Skripts alexa_remote_control.sh kann mittels der Option --check-erc, wie folgt in der Shell erfolgen:

Code: Alles auswählen

/usr/local/addons/alexa/alexa.sh --check-erc

Update des Lötzimmer-Skripts

Vor dem Update können und sollten alle Neuerungen/Änderungen im Lötzimmer-Blog und im Lötzimmer-Skript nachgelesen und kontrolliert werden. Im Zweifelsfall einfach hier im Thread oder per PN nachfragen. Das Update des Skripts alexa_remote_control.sh kann anschließend, mittels der Option --update-erc, wie folgt in der Shell erfolgen:

Code: Alles auswählen

/usr/local/addons/alexa/alexa.sh --update-erc

Update des Alexa.sh-Paketes

Für ein Update der Alexa.sh-Installation, empfehle ich die Konfigurationsdatei alexa.conf zu sichern, das Verzeichnis /usr/local/addons/alexa/ zu löschen und das Paket laut Abschnitt "Installation" neu zu installieren. Die Einstellungen aus der gesicherten Konfigurationsdatei alexa.conf können abschließend 1:1 übernommen werden. Das aktuelle Cookie und die Device-List bleiben unberührt. Selbst erstellte Programme müssen nicht angepasst werden.


Fehleranalyse

Klappt etwas nicht, bitte neben einer aussagekräftigen Fehlerbeschreibung, immer auch die Ausgaben nachfolgender Shell-Befehle mitteilen:

Code: Alles auswählen

ls -la /tmp/.alexa*

Code: Alles auswählen

ls -la /usr/local/addons/

Code: Alles auswählen

ls -la /usr/local/addons/alexa/

Code: Alles auswählen

/usr/local/addons/alexa/alexa.sh --check-cookie

Code: Alles auswählen

crontab -l

Backup

Alle zugehörigen Dateien unter /usr/local/addons/alexa/ sowie die angepasste Crontab sind ohne weiteres Zutun Bestandteil des System-Backups der CCU3/piVCCU3.


Verteiler

Falls das kostenlos erhältliche Paket für jemanden von Interesse sein sollte, einfach hier im Thread nachfragen oder eine PN an mich richten. Bitte in jedem Fall angeben welche Zentrale verwendet wird (CCU3/piVCCU3/RM) und welche Firmware-Version installiert ist. Die Antwort-PN bitte innerhalb von 24 Stunden abholen.
Zuletzt geändert von blackhole am 14.07.2021, 15:30, insgesamt 280-mal geändert.

Benutzeravatar
blackhole
Beiträge: 2746
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 81 Mal
Danksagung erhalten: 251 Mal
Kontaktdaten:

Alexa.sh v4.10 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von blackhole » 25.01.2019, 08:25

Addendum für Alexa.sh v4.10


Alexa in the Shell

Alle Optionen des "Lötzimmer-Skriptes" werden transparent von alexa.sh an alexa_remote_control.sh übergeben:

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh -h
/usr/local/addons/alexa/alexa.sh [-d <device>|ALL] -e <pause|play|next|prev|fwd|rwd|shuffle|repeat|vol:<0-100>> |
          -b [list|<"AA:BB:CC:DD:EE:FF">] | -q | -n | -r <"station name"|stationid> |
          -s <trackID|'Artist' 'Album'> | -t <ASIN> | -u <seedID> | -v <queueID> | -w <playlistId> |
          -i | -p | -P | -S | -a | -m <multiroom_device> [device_1 .. device_X] | -lastalexa | -lastcommand | -z | -l | -h

   -e : run command, additional SEQUENCECMDs:
        weather,traffic,flashbriefing,goodmorning,singasong,tellstory,
        speak:'<text/ssml>',automation:'<routine name>',sound:<soundeffect_name>,
        textcommand:'<anything you would otherwise say to Alexa>'
   -b : connect/disconnect/list bluetooth device
   -q : query queue
   -n : query notifications
   -r : play tunein radio
   -s : play library track/library album
   -t : play Prime playlist
   -u : play Prime station
   -v : play Prime historical queue
   -w : play library playlist
   -i : list imported library tracks
   -p : list purchased library tracks
   -P : list Prime playlists
   -S : list Prime stations
   -a : list available devices
   -m : delete multiroom and/or create new multiroom containing devices
   -lastalexa : print device that received the last voice command
   -lastcommand : print last voice command or last voice command of specific device
   -z : print current volume level
   -login : Logs in, without further command
   -l : logoff
   -h : help

Die Optionen --alexa-help, --check-cookie, --check-erc etc. werden herausgefiltert und als Funktionen von alexa.sh ausgeführt:

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh --alexa-help
Alexa.sh v4.04 - Created by blackhole
Usage: /usr/local/addons/alexa/alexa.sh [options...]
   --alexa-help       : Print this help screen
   --check-cookie     : Check Alexa cookie and device list
   --renew-cookie     : Renew Alexa cookie
   --renew-devicelist : Renew Alexa device list
   --renew-tmpfiles   : Renew all temporary Alexa files
   --get-lastalexa    : Get last Alexa
   --get-lastcommand  : Get last command
   --get-lastalexacmd : Get last Alexa + last command
   --check-erc        : Check Echo remote control script
   --update-erc       : Update Echo remote control script

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh --check-cookie
the following devices exist in your account:
(...)

Cookie is good - nothing to do.
Same date and time found in CCU system variable - nothing to do.

Cookie file: 20.06.2021 20:33 Uhr
Device list: 22.06.2021 09:38 Uhr

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh --renew-cookie
cookie does not exist. logging in ...
device list does not exist. downloading ...
(...)

Cookie is good - nothing to do.
Push date and time or error message to CCU system variable.

Cookie file: 22.06.2021 10:00 Uhr
Device list: 22.06.2021 10:00 Uhr

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh --renew-devicelist
device list does not exist. downloading ...
(...)

Cookie is good - nothing to do.
Same date and time found in CCU system variable - nothing to do.

Cookie file: 22.06.2021 10:00 Uhr
Device list: 22.06.2021 10:06 Uhr

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh --get-lastalexa
Bibliothek

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh --get-lastcommand
pause

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh --get-lastalexacmd
Bibliothek: pause

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh --check-erc
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 47437  100 47437    0     0   277k      0 --:--:-- --:--:-- --:--:--  277k

Echo remote control script is up to date.

Code: Alles auswählen

# /usr/local/addons/alexa/alexa.sh --update-erc
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 47437  100 47437    0     0   216k      0 --:--:-- --:--:-- --:--:--  217k

Echo remote control update finished.
Zuletzt geändert von blackhole am 20.07.2021, 12:52, insgesamt 14-mal geändert.

Benutzeravatar
arrisun
Beiträge: 179
Registriert: 19.01.2016, 18:43
Wohnort: Köln
Hat sich bedankt: 8 Mal

Re: Cool: Alexa meldet aktiv wichtige Statusmeldungen

Beitrag von arrisun » 26.01.2019, 23:11

Sehr interessant, werde ich mal ausprobieren
Liebe Grüße
Andy

Das Verhältnis zwischen meiner Frau und mir lässt sich ungefähr so beschreiben: Ordnungsamt trifft auf Wanderzirkus


!!! Arbeiten am 230V Netz, bzw.an 230V Geräten nur von Fachleuten durchführen lassen !!!


193 Kanäle in 66 Geräten und 45 CUxD-Kanäle in 3 CUxD-Geräten

Timichino
Beiträge: 30
Registriert: 07.01.2017, 19:19
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: Cool: Alexa meldet aktiv wichtige Statusmeldungen

Beitrag von Timichino » 22.02.2019, 23:30

Moin,
Ich nutze den Thread einfach mal.
Hab bis gestern die Skripte von Xel benutzt.
Nun habe ich heute die aktuelle Rasperrymatic aufgespielt und mir das neueste Skript von Ende Januar von Lötzimmer geholt (ein paar neue Features sind dazu gekommen).

Nun habe ich das Problem, wenn ich über Shell (Ich nutze die integrierte Eingabeaufforderung von Winscp) die Liste aller Geräte anzeigen will, bekomme ich nun nur "file not found" zurück.

Falls wer das aktuelle Lötzimmer Skript mit jq und Config auf dem Raspberry bereitstellen könnte, wäre ich euch sehr dankbar :)

Xel66
Beiträge: 9657
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 130 Mal
Danksagung erhalten: 635 Mal

Re: Cool: Alexa meldet aktiv wichtige Statusmeldungen

Beitrag von Xel66 » 23.02.2019, 06:41

Timichino hat geschrieben:
22.02.2019, 23:30
"file not found"
Die Beschreibung ist ein wenig mager. Hast Du das Script auf der CCU installiert? Sind die Cookies aktuell oder zurückkopiert? Die Meldung besagt eigentlich, dass eine Datei nicht gefunden wurde. Hast Du das Shellscript umbenannt oder beim Aufruf einen Tippfehler drin? Ein Screenshot wäre aussagekräftiger.

Gruß Xel66
-------------------------------------------------------------------------------------------
343 Kanäle in 118 Geräten und 264 CUxD-Kanäle in 33 CUxD-Geräten:
282 Programme, 246 Systemvariablen und 144 Direktverknüpfungen,
RaspberryMatic Version 3.55.10.20210213 + Testsystem: CCU2 2.53.27
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Timichino
Beiträge: 30
Registriert: 07.01.2017, 19:19
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: Cool: Alexa meldet aktiv wichtige Statusmeldungen

Beitrag von Timichino » 23.02.2019, 22:52

Hi,
ich habe den Inhalt der Datei mit dem neuesten Code ausgetauscht und dann die Datei neu hochgeladen:
2019-02-23 22_49_05-Clipboard.png
Als cookie habe ich mir mit Firefox einen Cookie erstellt und benutze den, da ich bei abgeschalteten Javascript auf alexa.amazon.com auf einer weißen Seite lande und nicht weitergeleitet werde.

Grüße

Timichino
Beiträge: 30
Registriert: 07.01.2017, 19:19
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: Cool: Alexa meldet aktiv wichtige Statusmeldungen

Beitrag von Timichino » 23.02.2019, 23:11

Hi,
habs nochmal probiert:
Hier nochmal eine Schrittweise Durchführung:

Seite von Lötzimmer aufmachen und mit "Speichern unter" auf dem Rechner speichern.
Anschließend Logininformationen hinterlegen und auf den Raspi hochladen \usr\local\addons\echo\ (ich benutze WinSCP)

Dort dann dem Eigentümer, der Gruppe und Andere das Recht "X" geben.

Dann unter \temp\ die Datei (falls vorhanden) .alexa.cookie löschen.

Über die eingebaute Eingabeaufforderung in WinSCP den Befehl: " ./alexa_remote_control_plain.sh -a" ausführen.

Falls der Login nicht funktioniert,
Chrome öffnen, Javascript deaktivieren und dann die Cookies der gesamten Zeit löschen.

Anschließend an alexa.amazon.com und/oder alexa.amazon.de anmelden, dass Captcha lösen. Ohne Javascript landet ihr auf einer Blank-Page.
Danach wieder den Shell-Befehl über die WinSCP Eingabeaufforderung eingeben.

Danach hat es funktioniert.

Benutzeravatar
blackhole
Beiträge: 2746
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 81 Mal
Danksagung erhalten: 251 Mal
Kontaktdaten:

Re: Cool: Alexa meldet aktiv wichtige Statusmeldungen

Beitrag von blackhole » 02.03.2019, 22:27

Ich habe ein neues Paket mit angepasstem Skript in der aktuellen Version 0.12a von Lötzimmer inkl. jq für die CCU3 gepackt.

Mehr Infos sind hier zu finden.

nex
Beiträge: 10
Registriert: 01.03.2019, 17:53
Hat sich bedankt: 3 Mal

Re: Cool: Alexa meldet aktiv wichtige Statusmeldungen

Beitrag von nex » 05.03.2019, 14:36

Wird dafür wirklich schon die neue Firmware 3.43.15 benötigt? Bin aktuell noch bei 3.41.11

Benutzeravatar
blackhole
Beiträge: 2746
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 81 Mal
Danksagung erhalten: 251 Mal
Kontaktdaten:

Re: Cool: Alexa meldet aktiv wichtige Statusmeldungen

Beitrag von blackhole » 06.03.2019, 10:30

Das Problem "schlecht gewordener Cookie" und "inkonsistente Device-List" ist nun ebenfalls abgefrühstückt.

Genauere Infos sind hier zu finden.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“