Sprachbefehl per openHAB an Chromecast übermitteln

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

andohb
Beiträge: 3
Registriert: 11. Jan 2019 21:22

Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von andohb »

Hallo,
ich möchte gern folgenden Usecase Umsetzen:

openHab sendet an den Google Chromcast einen Befehl, den ich sonst nur per Spracheingabe ausführen kann.
z.B.
"OK Google - wie wird das Wetter heute" oder noch wichtiger
"OK Google - spiel Radio PSR in der Küche"

Das soll dann per Sonoff Tastendruck los gehen - das bekomme ich aber hin.

lösst sich das irgendwie umsetzen?

eiGelbGeek
Beiträge: 226
Registriert: 11. Aug 2019 06:39
Answers: 4

Re: Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von eiGelbGeek »

Irgendwie verstehe ich das Problem nicht ganz ;-)

Ich fasse mal zusammen was ich aus deinen Text interpretiere .... :mrgreen:

Google Home nimmt die Sprachbefehle entgegen und soll das Musik zum Chromecast schicken?

Was hat der Sonoff Schalter damit zutun?

Google Home in openhab eingebunden?

https://www.openhab.org/docs/ecosystem/ ... assistant/

Chromcast Binding installiert?

https://www.openhab.org/addons/bindings ... st-binding

Schon eine Rule oder Items dafür erstellt?


Edit: Wo ich jetzt noch mal gelesen habe... Die Sprachbefehle funktionieren und du willst das auch über einen Sonoff Taster ausführen ... ohne Spracheingabe?

Wenn dem so ist muss du nur das Chromecast Binding installieren und dann kannst du über eine Rule alles steuern....

andohb
Beiträge: 3
Registriert: 11. Jan 2019 21:22

Re: Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von andohb »

Hallo eiGelbGeek,
das mit dem Sonoff ist tatsächlich nur Infozugabe.

Ich habe den ChromeCast (=Google Home) schon eingebunden und kann den auch ansprechen

Chromecast Binding ist installiert

chromecast.things

Code: Alles auswählen

chromecast:audio:GEWohnzimmer	    [ ipAddress="192.168.xx.xx" ] 
So bekomme ich eine Sprachausgabe über eine Rule zum Chromecast

Code: Alles auswählen

playSound("chromecast:audio:GEWohnzimmer", "doorbell.mp3")
Nun möchte ich das was ich sonst über einen Sprachbefehl an den ChromeCast sende als "openHAB Befehl" absetzen.
Anwendungsbeispiel ist der Besagte Befehl "OK Google - spiel Radio PSR in der Küche".
(Küche ist übrigens ein Audiocast)

hier finde ich keine Möglichkeit eine Anweisung zu senden
https://www.openhab.org/addons/bindings/chromecast/

eiGelbGeek
Beiträge: 226
Registriert: 11. Aug 2019 06:39
Answers: 4

Re: Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von eiGelbGeek »

Ja dann must du doch nur eine Rule schreiben die mit dem Chromecast Binding spricht oder täusche ich mich da jetzt?

Beispielhaft mal hier eine extreme vereinfachte Rule ;-)

Code: Alles auswählen

rule"Chromecast - Play Radiostream"
when
  Item Play_Radio_Switch changed from OFF to ON
then
  playStream("chromecast:audio:GEWohnzimmer","http://URL_FÜR_DEINEN/stream.mp3")
end

eiGelbGeek
Beiträge: 226
Registriert: 11. Aug 2019 06:39
Answers: 4

Re: Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von eiGelbGeek »

Was natürlich auch geht und sicherlich sinnvoller ist.....
Bildschirmfoto 2019-10-13 um 01.44.29.png
playuri ein Item (String) zuweisen und dann dem Item die URL übergeben.

Code: Alles auswählen

rule"Chromecast - Play Radiostream"
when
  Item Play_Radio_Switch changed from OFF to ON
then
  PLAYURI_ITEM.sendCommand("http://URL_FÜR_DEINEN/stream.mp3")
end
Das ganze kannst du natürlich mit einen Switch Case versehen ... dann haste gleich mehrere Sender ;-)

Code: Alles auswählen

rule "Radiostream umschalten"
when
    Item Play_Radio_NUMBER_ITEM changed
then
  switch (Play_Radio_NUMBER_ITEM.state){
    case 1: {
      PLAYURI_ITEM.sendCommand("http://URL_FÜR_DEINEN/stream1.mp3")
      Play_Radio_NUMBER_ITEM.postUpdate(0)
    }
    case 2: {
      PLAYURI_ITEM.sendCommand("http://URL_FÜR_DEINEN/stream2.mp3")
      Play_Radio_NUMBER_ITEM.postUpdate(0)
    }
    case 3: {
      PLAYURI_ITEM.sendCommand("http://URL_FÜR_DEINEN/stream3.mp3")
      Play_Radio_NUMBER_ITEM.postUpdate(0)
    }
    case 4: {
      PLAYURI_ITEM.sendCommand("http://URL_FÜR_DEINEN/stream4.mp3")
      Play_Radio_NUMBER_ITEM.postUpdate(0)
    }
  }
end
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

andohb
Beiträge: 3
Registriert: 11. Jan 2019 21:22

Re: Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von andohb »

OK. Das mit dem Radio geht auf diesem Weg. Das habe ich hin bekommen und damit schon mal ein Thema erschlagen.

Ich hatte aber eben im Sinn einen beliebigen Sprachbefehl an den Chromecast zu senden. Von daher ist das Radio Beispiel sicher nicht das Beste gewesen.

Als anderes Beispiel für diese Problemstellung:
Der Sprachbefehl "Brauche ich morgen einen Regenschirm?" - soll per openHAB an den Chromecast gesendet werden und der soll antworten.

Benutzeravatar
Steinspiel
Beiträge: 394
Registriert: 28. Dez 2019 08:49
Answers: 2

Re: Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von Steinspiel »

Moin,

Der Thread ist zwar schon etwas älter, aber es ist genau das wobei ich im Moment nicht weiterkomme...
Mein Ziel ist auch:
- einen Sprachbefehl an "GoogleHome mini" schicken (ok googel, wie spät ist es) und "GoogleHome mini" antwortet darauf
- zu einem bestimmten Zeitpunkt per Rules einen Radiostream auf "GoogleHome mini" abspielen.

-openHAB Cloud ist installiert, konfiguriert und funkioniert -> kann mit der GoogleHome App oder per Sprache openHAB Items steuern.
-Chromecast Binding ist installiert und hat alle meine Chromecast Geräte erkannt.Soweit so gut...
Zum testen habe ich erstmal nur einen "GogleHome mini" in PAPER UI als Things eingefügt und von dort nur die Channels "Fernbedienung" (Player) und "Lautstärke" (Dimmer) als Items in PAPER UI übernommen.

Der "GogleHome mini" hat übrigends in der Fritz!Box eine feste IP Adresse und ist in PAPER UI/Inbox/System als Audioausgang angegeben
Mit "VS Code" habe ich dann eine extra Item Datei für diese Geräte erstellt

Code: Alles auswählen

Dimmer   Mini_LautstRke "mini_laut_leise"               {channel="chromecast:chromecast:ed035dda9f43c54d5666655f69931c54:volume"}
Player   Mini_Fernbedienung "mini_player"               {channel="chromecast:chromecast:ed035dda9f43c54d5666655f69931c54:control"}
Aber das war es dann auch schon! In PAPER UI ist kein Thing "Chromecast" o.ä. zu sehen. Ich weiß nicht wo ich die Daten für ein "Chromecast Thing" herbekommen soll (lt. Chromecast Doku brauche ich auch ne Port Adresse) um es in einer Regel wie diese hier zu benutzen!

Code: Alles auswählen

rule "GHmini_test"  
when 
	Time cron "* * 6 ? * * *"
then
	CHROMECAST ??? -> "ok googel, wie spät ist es"
   end
Habe ich da völlig was übersehen oder missverstanden, geht das überhaupt?

Ach ja, weil ich so gar nicht weiter gekommen bin habe ich "Mary Text-to-Speech" installiert ("Google Cloud Text-to-Speech" schien mir zu kompliziert zu ein), damit kann ich Sound und Sprache (TTS) auf den "GoogleHome mini" ausgeben, aber das hat ja wohl nichts mit Chromecast zu tun, oder?

Code: Alles auswählen

rule "tts_test"  
when Time cron "* * 6 ? * * *"
then   
	say("es ist sechs uhr")
	playSound("doorbell.mp3")
end
bis dann, Steinspiel

Timtam
Beiträge: 40
Registriert: 20. Jan 2020 15:51

Re: Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von Timtam »

Hallo,

ich habe keinen Chromecast und kann mich daher auch irren, aber vom reinen Durchlesen des Chromecast Bindings sieht es nicht so aus, als könnte man dem Chromecast direkt Textbefehle zuschicken. Es scheint generell nicht der Fall zu sein, dass man dem Google Assistant Sprachbefehle in Textform füttern kann. Das einzige, was tatsächlich zu gehen scheint, ist die Wiedergabe einer beliebigen URL, aber das ist nichts, was dir hier helfen würde.

Alles, was dir da bleibt, ist deine Befehle, ob du heute einen Regenschirm brauchst, selbst zu implementieren. Ich beispielsweise bekomme jeden Morgen vor der Arbeit eine Nachricht auf alle Handies (ich habe keine Smart Speaker, über die ich es vorlesen lassen könnte), wie hoch die Regenwahrscheinlichkeit ist und ob ich also einen Schirm einpacken sollte. Dafür kannst du diverse Wetter-Bindings verwenden, wie bspw. dieses:
https://www.openhab.org/addons/bindings/weather1/

Das ganze direkt von Google abwickeln zu lassen scheint mir bislang unmöglich. Hat vermutlich auch etwas mit Absicherung zutun. Es braucht eine gewisse Weile, bis ein Mensch einen Sprachbefehl formuliert und ausgesprochen hat, ein Computer könnte den Chromecast aber mit Millionen Anfragen pro Sekunde beschießen. Nicht das es dafür keine Lösungen gäbe, aber ich vermute, Google sah so eine Funktionalität einfach als unnötig an und bietet daher am Chromecast gar keine API dafür.

MfG.

Timtam

Benutzeravatar
Steinspiel
Beiträge: 394
Registriert: 28. Dez 2019 08:49
Answers: 2

Re: Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von Steinspiel »

Moin,
Timtam hat geschrieben: 20. Jan 2020 22:12 ich habe keinen Chromecast und kann mich daher auch irren, aber vom reinen Durchlesen des Chromecast Bindings sieht es nicht so aus, als könnte man dem Chromecast direkt Textbefehle zuschicken.
[...]
Jut, das verstehe ich! Wenn man es sich noch mal genau durchliest dann hat "andohb" es auch nicht geschafft einen dieser Sprachbefehle in Textform von einer Regel aus an GooglHome Assistent zu schicken. Vielleicht hast Du ja Recht mit Deiner Vermutung das es ein Sicherheitsding ist das das nicht funktioniert.

Bleibt mein Chromecast Problem: durch das Chromecast Binding sehe ich ja alle meine Chromecast Geräte. Wie gestalte ich die Regel das ein Sound oder eine URL auf ein bestimmtes Gerät ausgegeben wird, wie z.B. den Mini wo ich die Geräte ID ja habe aber auch zig Channels und ich weiß nicht welchen ich wie nehmen soll und die die ich probiert habe funktionieren nicht.:-(

Ich konnte bisher nichts dazu finden deshalb würde mir ein kleines Beispiel reichen... ;-)
bis dann, Steinspiel

Timtam
Beiträge: 40
Registriert: 20. Jan 2020 15:51

Re: Sprachbefehl per openHAB an Chromecast übermitteln

Beitrag von Timtam »

Das scheint tatsächlich recht einfach zu sein. Ich habe es kurz gegooglet und das hier gefunden:
https://community.openhab.org/t/chromec ... room/39994

Kurz zusammengefasst:
1. Ein Thing mit deinem Google Home anlegen. Das dürfte dann ja ein chromecast:audio Thing sein.
2. Wiedergabe einer beliebigen URL funktioniert dann in einer Rule simpel wie folgt:

Code: Alles auswählen

playStream("chromecast:audio:hier_beliebigen_namen_des_things_einfuegen","http://st01.dlf.de/dlf/01/128/mp3/stream.mp3") // spielt scheinbar Deutschlandfunk ab, es kann aber natuerlich auch jede andere URL eingetragen werden
als ersten Parameter einfach den Namen deines Google Home eintragen. Angeblich solls das schon gewesen sein... :).

Antworten