Ich bekomme immer mal wieder bei/nach Neustarts den Fehler, dass die Aktion notify.alexa_media_last_called unbekannt sei.
Aber im Grunde laufen die Automationen mit den Aktion dann problemlos.
Weiß man da was? Timingproblem oder sowas?
(Aktuelles HA auf Raspi 4.)
Logger:
homeassistant.components.automation.akkuabfrage
Quelle: helpers/script.py:2067
Integration: Automation (Dokumentation, Probleme)
Erstmals aufgetreten: 22. Juni 2025 um 18:51:24 (1 Vorkommnis)
Zuletzt protokolliert: 22. Juni 2025 um 18:51:24
Akkuabfrage: Error executing script. Service not found for call_service at pos 3: Action notify.alexa_media_last_called not found
by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
Ok, der Workaround basiert auf dem Media_Player Attribut previous_volume.
Mir ist aufgefallen, dass das immer auf null steht. Man konnte es über die Developer Tools setzen, es ging aber immer sofort wieder auf null, wenn der entsprechende Echo mit dem Triggerwort adressiert wurde.
Also Vorgehensweise:
Beim HA Start mit etwas Delay (warten, bis sich alles eingerüttelt hat) das Attribut previous_volume aller Echos auf 1 setzen
das Attribut überwachen und sobald eines auf null geht, den Namen des Echos in einen input_text helper last_called_echo schreiben und wieder previous_volume aller Echos (sicherheitshalber) auf 1 setzen.
Das Attribut lässt sich nur mit einem kleinen Python Script überschreiben. Simon hat dazu mal ein Video gemacht. Bitte da schauen, wie das Script eingerichtet wird.
Ich habe die Liste der Echos 2x hard-coded drin. Das geht vielleicht eleganter mit einer Liste nur oder gar dynamisch, war mir aber nicht so wichtig. Keep it simple.
Anwendungsbeispiel:
Abfrage der Radon-Konzentration über einen beliebigen Echo. Das Script wird von Alexa gestartet, die Ausgabe der Antwort erfolgt auf dem adressierten Echo.
script_query_radon_level:
description: query radon level
sequence:
- action: notify.alexa_media
data:
target: '{{ states(''input_text.last_called_echo'') }}'
data:
type: tts
message: Die Radonkonzentration beträgt {{ states('sensor.fb_ba_f6_15_1f_bc_radon_concentration')
}} Becquerel pro Kubikmeter
mode: single
Das Script muss unter Settings für Sprachassistenten (hier Alexa) zugänglich gemacht werden. Dann kann es aus einer Alexa Routine über SmartHome → Szenen ausgewählt und angesprochent werden.
Ich habe Nabu Casa. Kann sein, dass das dafür erforderlich ist.
Hier drüben hat jemand (guardiansbs) Änderungen vorgeschlagen, die Sinn machen:
I made a couple of changes to help the automation ignore the false results when triggered by the Alexa integration periodically polling the devices. I changed the ‘mode’ to ‘single’ with ‘max_exceeded: silent’ and put a 5 second delay in the automation (after recording last_called_echo) to keep the automation busy to ignore the spurious integration initiated invocations.
Es geht weiter mit Verbesserungen.
Drüben auf github hat User dpgh947 vorgeschlagen, statt vorhandene Attribute zu missbrauchen ein neues Attribut zu schaffen und mit set_state zu setzen. Dieses künstliche Attribut verschwindet wieder, wenn der Echo gerufen wird. Ich habe das Attribut ghost genannt und die Automation sieht nun so aus:
@ R2D2: So habe ich es auch umgesetzt nachdem der last_call von AMP immer wieder mal verschwunden ist. Klappt recht gut und bei mir auch deutlich schneller.
Wie ein paar cm weiter oben geschrieben, habe ich auf dem Dashboard einen Schalter, mit dem ich die Methode der last_called-Bestimmung umschalten kann.
Der Schalter steht bei mir meist auf der ghost-attribute Methode, weil die 1-2 Sekunden schneller antwortet.
Ich habe aber eben mal auf die Media-Player Variante umgeschaltet und die funktioniert auch noch.