Alexa Sprachausgabe über Nodered aus angesprochenem Echo

Hallo liebe Community,

vielleicht könnt ihr mir weiterhelfen.
Eigentlich läuft meine komplette Automatisierung von HA über Nodered.
Bis jetzt konnte ich dort auch eigentlich alles umsetzen.
Auch den Fall, mit dem ich aktuell (bzw. seit längerem) Probleme habe.
Und zwar möchte ich eine Sprachausgabe genau von dem Echo Gerät bekommen, dass ich anspreche.
Dies hat auch mal funktioniert, allerdings ist die ursprüngliche Node „node-red-contrib-alexa-cakebaked“ seit über 4 Jahren nicht mehr aktualisiert worden, funktioniert nicht mehr (zumindest auf eine Event zu lauschen) und ich habe noch keine Alternative gefunden.

Da wie oben beschrieben, aktuell alles in Nodered stattfindet, würde ich da auch gerne bei bleiben.
Hat vielleicht jemand von euch eine zündende Idee?

Besten Dank im Voraus
Benno

Hast du es mal mit dem Fork versucht?

Hallo Caplio,

vielen Dank. Das es da einen Fork gibt hatte ich tatsächlich nicht auf dem Schirm.
Bin gerade dabei das Modul neu einzurichten. Aber irgendwie will er mir nichts für die Authentifizierung in den konfigurierten Path schreiben.
Hast Du da vielleicht auch einen Tipp?
Versuche aktuell „/config/nodered/echo“
Angelegt habe ich das leere Verzeichnis, aber es wird nicht befüllt nach der Authentifizierung über den Webseite.
An den Nodes bekomme ich dann die Meldung „no csrf found“

Bei mir klappt es damit:

/homeassistant/node-red/auth.txt

In Node-RED habe ich zum Testen, Melden und Refreshen das hier:

1 „Gefällt mir“

Hallo Schorsch,

vielen Dank.
Hab mir die alten Einstellungen wieder geladen und zumindest läuft es erstmal wieder.
Könntest Du mal bitte prüfen, ob bei Dir denn auch der Command DeviceActivity richtig funktioniert?

Eigentlich sollte er beim Debuggen den GeräteID von dem Geräte mitgeben, dass angesprochen wurde?
Bei mir funktioniert bei dem Command nichts mehr.
Eigentlich sollte es meiner Meinung nach ein Eventtrigger sein.
Macht bei mir aber auch keinen Unterschied, wenn ich „Events“ auf „On“ setze.

Müsste so funktionieren:

image


  • komt aber nix. :worried:
    eine „sanfte“ Neu-Authentifizierung will mir nicht gelingen.
  • einen Hard Reset der Authentifizierungsdatei möchte ich, ehrlich gesagt, nicht machen
  • bin froh, dass es läuft
  • it’s a running system
1 „Gefällt mir“

Danke dir Schorsch, genau so habe ich es gemeint.
Und bei mir hatte es damals mal funktioniert.
Dann aber irgendwann nicht mehr.
War halt sehr angenehm. So komnte man die ID vom angesprochnen Gerät auslesen und dann an dieses die Ausgabe machen.

Aber dann brauche ich da nicht weiter rumprobieren.

Besten Dank nochmal

Ein Wunder ist geschehen . . . . . ich kann seh’n.

Habe mich nochmal damit beschäftigt und einen anderen Weg verfolgt. Dazu habe ich einen Template-Sensor erzeugt.

      - name: Last Alexa
        unique_id: last_alexa
        state: >
          {# Holt die entity_id des Alexa-Geräts, dessen Attribut 'last_called' auf True steht #}
          {{ states.media_player
             | selectattr('entity_id', 'search', 'media_player..*echo|dot')
             | selectattr('attributes.last_called', 'eq', True)
             | map(attribute='entity_id')
             | first
             | default('none')
          }}
  • Sieht toll aus - klappt aber nicht.
  • Während der Versuche habe ich im Debug-Fenster bemerkt, dass sich an anderer Stelle was tut.
  • habe die Stelle aufgesucht und bin bei dem Flow mit dem 1.Versuch (von gestern) gelandet.
  • image

Da war die Überraschung gross:

Warum? Keine Ahnung!
Der Template Sensor kann eigentlich nichts damit zu tun haben. :thinking:

Das Einzige, was ich im Zusammenhang mit Alexa heute gemacht habe, ist ein Neuladen der Alexa-Integration, weil eine Timer-Anzeige auf dem Dashboard nicht mehr funktionierte.

Wenn man nur den Namen haben möchte, kann der Debug Node entsprechend angepasst werden.

Das Selektieren dürfte dann auch kein Problem mehr sein.


Edit - Sonntag 0:50 Uhr:

  • So, der Template-Sensor hat doch was damit zu tun.
  • Habe ihn entfernt - neu gestartet - Device Activity funzt nicht mehr
  • wieder eingefügt - funzt wieder. :blush:

So sieht der Sensor unter „template:“ aus

template:
  - sensor:
      - name: "Hichi Energie"
        unique_id: "hichi_energie"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_sml_total_in')) | round(3) }}
            
      - name: "Hichi Power"
        unique_id: "hichi_power"
        unit_of_measurement: 'W'
        device_class: "power"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_sml_power_curr')) | round(3) }}
            
      - name: Last Alexa
        unique_id: last_alexa
        state: >
          {# Holt die entity_id des Alexa-Geräts, dessen Attribut 'last_called' auf True steht #}
          {{ states.media_player
             | selectattr('entity_id', 'search', 'media_player..*echo|dot')
             | selectattr('attributes.last_called', 'eq', True)
             | map(attribute='entity_id')
             | first
             | default('none')
          }}            

1 „Gefällt mir“

Hallo Schorsch,

das liest sich ja erstmal gut und gibt mir neue Hoffnung, dass ich das auch hinbekomme! :grinning:

Also, wenn ich das richtig verstehe, nutzt Du die Integration von Alexa Media Player und/oder Alexa Devices?
image
image

Und diese Templates hat dann einen Einfluss auf das Verhalten der Listening Node von " node-red-contrib-alexa-remote2-applestrudel"?

Klingt spannend, auch wenn ich es noch nicht so wirklich durchschaue. :thinking:

Was ich Dir allerdings sagen kann ist, dass Du die Switch Node eigentlich nicht brauchst. Denn der Knoten gibt Dir ja auch die DeviceSerialNumber aus und die kannst Du nutzen, um die Ausgabe auf dem betreffenden Gerät zu machen.
Sollte das eigentlich noch in meinen Flows haben.
Schaue gleich mal nach…

… so da hab ich´s

Wenn Du eine neue Alexa Routine auswählst, werden ja deine Echo Geräte angezeigt.
Drückst Du auf das Listensymbol daneben, wird dir die Device ID angezeigt:

und diese kannst Du auch mit dem payload übergeben:

Korrekt!

Das war nur ein „Hüftschuss“ zur Illustration. :wink:

Zurzeit habe ich o.g. Funktionen (noch) nicht produktiv im Einsatz.
Habe das Ganze nur aus sportlichem Ehrgeiz verfolgt.

Bin mal gespannt ob der Template-Sensor bei dir etwas bewirkt.
Der Zusammenhang ist auch mir (noch) unklar.

So, hab den Template Sensor hinzugefügt und leider keine Änderung auf der Node.
Hab auch die Authentifizierung bei Amazon noch einmal komplett durchgespielt (bekomme nun auch die Auth Datei abgelegt)
Aber die „Device Activity“-Node will immer noch nichts ausspucken!

Tja, da werde ich wohl noch ein bisschen rumprobieren müssen.
Vielleicht gibt es ja für mich dann auch noch irgendwann den „AHA“-Moment.

Danke dir auf jeden Fall.

Ich kann nur mit dem Kopf schütteln!

Auch bei mir ist jetzt ein Wunder geschehen.

Die „Device Activity“ Funktion ist auf einmal auch bei mir da. :thinking: :flushed: :joy:

War jetzt 1-2 Stunden nicht am Rechner, arbeite gerade an einer alternativen Lösung und schwups, auf einmal bekomme ich eine Ausgabe von der Debug Node die an der Activity Node hängt!

Sehr seltsam!

Jedenfalls werde ich die alternative Lösung auch noch umsetzen, für den Fall das die Device Activity Funktion mal wieder zickt.

Freut mich, dass es jetzt auch bei dir funktioniert.
Möge es so bleiben.

1 „Gefällt mir“

Hallo Schorsch,

habe die Alternative nun fertig gebastelt und muss sagen, dass sie bis jetzt sehr stabil läuft.
Hab nun unter Verwendung des Last Alexa Sensors und einer Zuweisung der jeweiligen ID zum entsprechenden Alexa Geräte (ähnlich deinem Beispiel oben mit der Switch Node) eine Subflow Node erstellt, die mir immer die ID des angesprochenen Gerätes zurückliefert.

GetAddressedEchoID Subflow Node:

Nochmals vielen Dank für die Hilfe

2 „Gefällt mir“

Habe ich gerne gemacht, bin ja dabei auch (etwas) schlauer geworden.

Sieht gut aus, dein flow. :muscle:

1 „Gefällt mir“