NodeRed - Lichtschaltung mit Fehler via Alexa Sprachbefehl

j.winterstein

New member
Moin werte Community,

ich versuche mich mal Etappenweise in die Programmierung meines Smart Home Projektes einzuarbeiten.

Das ein,- und ausschalten von einfachen Lampen bzw. Steckdosen über die Spracheingabe mit Alexa ist erst einmal
nicht das Problem.

Screen1.png

Das was ich als Problem habe ist das ich mit ein und dem selben Sprachbefehl ein Licht "ein,- und ausschalten"
Ergo wenn ich sage "Alexa, Licht an", kann ich mit dem selben Befehl das Licht aber auch wieder ausschalten und
genau das möchte ich verhindern.

Kann mir jemand verraten wie man das richtig gestaltet, damit definitiv nicht mit einem Sprachbefehl das selbe
Gerät EIN und AUS schalten kann?


Gruß Jörg
 
Hi Jörg,

Ich kenne diesen Node nicht. Könntest du den Alexanode "Licht ein" (3x1.7?) nicht direkt mit dem Change Node "an" verbinden? Für den Befehl "Licht aus" müsstest du einen neuen Alexanode erstellen der an den entsprechenden Sprachbefehl gekoppelt ist. Exemplarisch in etwa so-->

Screenshot 2024-12-05 200300.png

Speziell zu deinem Node gibts hier ne ganz gute Anleitung --> https://docs.cb-net.co.uk/en/development/
 
Moin...

@elvito Sorry wollte noch gestern spät am Abend antworten, habe es dann leider doch nicht mehr geschafft.

Diese Notes gehören zu "Node-RED Smart Home Control" und sind quasi der aktuelle Ersatz von "Alexa Local"...
man vergibt einen Gerätenamen und bestimmt die Funktion dazu.

Nach Deinem Vorschlag müsste ich also soweit ich es verstehe zum Licht an und ausschalten zwei separate Geräte anlegen?
Oder habe ich da jetzt einen Gedankenfehler?

Oder kann man dann mit einem "EIN" und einem "AUS Schalter" mehrere verschiedene Lichter steuern?
 
Hi,

ich hab das mit den Alexasprachbefehlen vor längerem mal für meine Kinder eingerichtet, als die noch kleiner waren. Wir nutzen das aber schon lange nicht mehr. Ich glaube, daß ich damals custom skills für jede einzelne Aktion (Zimmer 1 Licht an, Zimmer 1 Licht aus... usw.) bei Alexa angelegt habe. --> https://developer.amazon.com/de-DE/...t/tutorials/den-ersten-alexa-skill-entwickeln

Wenn der skill ausgelöst wurde konnte man das in Node Red abgreifen und dann damit eine beliebige Aktion ausführen. Ich hab damals nicht das "smart home control" verwendet, sondern irgendeinen anderen Node. Das dürfte aber ziemlich ähnlich sein.

Zeig mal die config von dem Alexanode und die debug Ausgaben für die befehle "licht an" und "licht aus"
 
Zuletzt bearbeitet:
Ich habe mal ein paar Screens gemacht...
Zum erfassen der Debug Node habe ich den Endpunkt "Set Value" gegen "Value" ausgetauscht,
was ja aber den selben Inhalt hat und auch das selbe Ergebnis produziert.

Zu dem "Smart Home Control"...
ich habe einiges ausprobiert und konnte mit anderen Lösungen,
keine Geräte mit der Alexa finden was hier unkompliziert ging.

Es gäbe ja eine Bezahlvariante, die ich aber auf Grund der Cloudlösung nicht möchte.
Mir wäre es deutlich lieber wenn ich gänzlich auf eine externe Lösung verzichten könnte,
doch leider fehlt mir dazu das Wissen und auch der richtige Ansatz wonach ich suchen müsste.

Achja, ich habe auf dem RasPi noch den Iobroker laufen...
kann man damit Blockly so eine Lösung schaffen?
 

Anhänge

  • Screen  2024-12-06 (5).png
    Screen 2024-12-06 (5).png
    9,9 KB · Aufrufe: 3
  • Screen  2024-12-06 (4).png
    Screen 2024-12-06 (4).png
    15 KB · Aufrufe: 3
  • Screen  2024-12-06 (3).png
    Screen 2024-12-06 (3).png
    13,3 KB · Aufrufe: 1
  • Screen  2024-12-06 (2).png
    Screen 2024-12-06 (2).png
    28 KB · Aufrufe: 3
  • Screen  2024-12-06 (1).png
    Screen 2024-12-06 (1).png
    35,3 KB · Aufrufe: 3
Kannst du bei dem debug Node mal alles anzeigen lassen? Dazu in der config des debug Node auf "komplettes Nachrichten-Objekt" umstellen und häng den debug Node direkt an den Alexa Node. Dann bitte die Ausgabe für "Licht an" und "Licht aus"

Screenshot 2024-12-06 185457.png
 
Ich habe einmal einige Varianten durchgespielt...
angefangen damit das ich nur die Eingangsnode mit einer Debug verknüpft habe.
Ergebnis bei "Licht an und aus" ist "on" und "off"

Dann die Eingangsnote mit dem Endpunkt.
Einschalten per Sprache ja... aus nur über ein Inject.

Mit dem Switch taucht das Problem auf.
Keine Ahnung warum, aber ich habe ja 2 Schaltpunkte "on" und "off" und wenn ich die Debug nur an den "on" hänge kommt trotzdem auch ein "off" an. Korrigiere mich bitte, das darf doch nicht sein... oder?
 

Anhänge

  • Screen  2024-12-06 (6).png
    Screen 2024-12-06 (6).png
    29,5 KB · Aufrufe: 2
Die weiteren Test ergaben...
egal wie man einen "Switch" oder ein "Change" mit einbaut... nur mit diesen Nodes geht es nicht.

Ich habe jetzt mal Deinen Vorschlag genommen und das funktioniert einwandfrei, auch wenn das wie ich finde keine elegante Lösung ist.
 
Solange es funktioniert is es egal ob es hässlich ist

Dein switch schaut auf msg.payload.PowerState... das finde ich bei deiner debug Ausgabe gar nicht.

Bei dir ändert sich aber was in msg.payload mit einem boolschen Wert (true/false). Der switch sollte auch auf boolsche Werte umgestellt werden. Du hast eingestellt: Wenn msg.payload.PowerState dem Inhalt von msg.on entspricht dann geh zu Ausgang 1 und wenn msg.payload.PowerState dem Inhalt von msg.off enstpricht dann geh auf Ausgang 2.

Das musst du so abändern -->
Screenshot 2024-12-06 204419.png
Ich check bei deinem screenshot nicht ganz ob der Wert bei msg.extraInfo.payload oder msg.payload kommt. Ich denke msg.extraInfo.payload stimmt. Am besten du kopierst den Pfad direkt aus der debug Ausgabe, dann vermeidet man automatisch Tippfehler.

Probier das mal so und häng debug direkt dahinter. Dann müsstest du für Licht an bzw aus jeweils auf Ausgang 1 bzw. 2 eine Nachricht kriegen. Von da sollte es kein Problem sein weiter zu machen.

Mir ist grade noch aufgefallen, daß du am Ende ja sowieso boolsche Werte brauchst. Du kannst den change Node einfach weglassen.
 
Zuletzt bearbeitet:
Ich werde das nochmal so testen...
Das Problem war bis vorhin noch das es dem Switch völlig egal war, was ich gesagt habe.
War das Licht schon an und ich habe den Befehl "Licht an" gegeben, ging das Licht einfach aus und anders herum das selbe.
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Neueste Beiträge

Letzte Anleitungen

Statistik des Forums

Themen
5.912
Beiträge
57.731
Mitglieder
5.870
Neuestes Mitglied
kicknick
Zurück
Oben