Bei Ankunft Willkommens Sprachausgabe + Radio über Sonos starten

Begonnen von Heggeg, 08 September 2017, 21:58:14

Vorheriges Thema - Nächstes Thema

Heggeg

Hallo zusammen,

ich bin ein ziemlicher Anfänger in Sachen FHEM. Ich habe mir bereits einige Artikel, Tutorials und Beiträge durchgelsen.

Ich möchte nun das FHEM bei Ankunft von Mir oder meiner Freundin eine Sprachausgabe synchron über meine drei Sonos Play:1 die verstreut in der Wohnung stehen ausgibt. Ich habe mir das ganze so vorgestellt das ich mir ein Script baue was sich an der vorhandenen Anwesenheitserkennung bedient welches ich über das PRESENCE Modul realisiert habe. Sobald eine Ankunft von mir oder meiner Freundin erkannt wird sollen alle Sonos Play:1 gruppiert werden.

set Sonos_Controller Groups [Sonos_Bad, Sonos_Buero, Sonos_Wohnzimmer]

Und eine Willkommens Nachricht als Sprachausgabe ausgegeben werden.

set Sonos_Bad Speak 50 de Willkommen Zuhause NamemeinerFreundin

Danach möchte ich das ein Radiosender über alle Sonos Play:1 Lautsprecher gespielt wird. Hierbei dachte ich mir das es am besten sei wen die Play:1er gruppiert bleiben da somit alles synchron zueinander abgespielt wird.

Dabei stellt sich mir nur nun eine Frage, was passiert wen die zweite Person Zuhause ankommt oder womöglich wir beide zeitgleich Zuhause ankommen? Ich möchte vermeiden das sich die Ausgaben überschneiden oder abgebrochen werden.


CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Heggeg

Ich sage mal so der Gipfel der Erotik wären folgende Szenarien:

1. Willkommensnachricht an MICH + Radio an
oder
2. Willkommensnachricht an meine Freundin + Radio an
oder
3. Willkommensnachricht an meine Freundin + Mich + Radio an

Es wäre schön wen FHEM kein Radio an macht wen schon jemand Zuhause ist, sondern nur denjenigen begrüßt der Nachhause gekommen ist.

Gruß,
Heggeg

btw: Schönen Gruß ebenfalls aus Oldenburg!



CoolTux

Na dann lass uns beide doch mal überlegen was wir brauchen.

Anwesenheitserkennung hast Du! Wann wird bei dir erkannt das jemand da ist. Schon am Hoftor, auf der Treppe, schon in der Garage?
Wenn ja brauchen wir also einen zweiten Trigger um eine Sequenz Abfrage zu machen. Zum Beispiel wäre da die Haus oder Wohnungstür gut. Türkontakt.
Wenn Anwesenheit erkannt und die Tür sich öffnet innerhalb von 5 min dann Begrüßung und Musik.

Also weiter, was müssen wir noch wissen?
Abfragen ob eine Sonos Gruppe schon besteht und ob sogar schon Musik spielt.

Also wir brauchen Info von Dir.
list ist ein FHEM Befehl.

list PRESENCEDEVICES

Von beiden.

Da ich Sonos nicht kenne musst du mir sagen welches Reading von welchem Device aus sagt das eine Gruppe schon besteht und welches sagt das Musik schon spielt.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Moin,

ich mache das so ähnlich. Wichtig ist dabei das die Anwesenheitserkennung mehrstufig ist.
Jede Person wird einzeln als anwesend erkannt.
Die Anwesenheit einer beliebigen Person wird erkannt. -> structure der Einzelpersonen.

Neben meiner Eingangstür ist eine Bewegungsmelder.

Die Begrüßung starte ich mit einem DOIF für jede Person wenn die Person erkannt wurde und der Bewegungsmelder triggert.
Bei zwei Personen und einem kurzen Hallo ... braucht man keine spezielle Logik, die Begrüßung erfolgt auch wenn beide gleichzeitig kommen. Bei drei Personen wird dann schon manchmal eine verschluckt.

Ist vielleicht verbesserungswürdig, läuft aber gut.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Hollo

Ich habe Presence pro Person per Bluetooth.
Darüber läuft auch Die "Begrüßung" .
Die Wohnungsmitglieder sind zusätzlich in einer structure Bewohner zusammengefasst.
Die structure steuert den Homestatus und damit auch so was wie "Musik an".
Damit funktioniert das genau wie von Dir gewünscht.

Alles recht simpel strukturiert; es gibt auch "Module" wie Roommate, Homemode etc dafür.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Heggeg

Zitat von: CoolTux am 09 September 2017, 06:57:51
Na dann lass uns beide doch mal überlegen was wir brauchen.

Anwesenheitserkennung hast Du! Wann wird bei dir erkannt das jemand da ist. Schon am Hoftor, auf der Treppe, schon in der Garage?
Wenn ja brauchen wir also einen zweiten Trigger um eine Sequenz Abfrage zu machen. Zum Beispiel wäre da die Haus oder Wohnungstür gut. Türkontakt.
Wenn Anwesenheit erkannt und die Tür sich öffnet innerhalb von 5 min dann Begrüßung und Musik.

Also weiter, was müssen wir noch wissen?
Abfragen ob eine Sonos Gruppe schon besteht und ob sogar schon Musik spielt.

Also wir brauchen Info von Dir.
list ist ein FHEM Befehl.

list PRESENCEDEVICES

Von beiden.

Da ich Sonos nicht kenne musst du mir sagen welches Reading von welchem Device aus sagt das eine Gruppe schon besteht und welches sagt das Musik schon spielt.


Grüße

Hallo zusammen,

also zuersteinmal habe ich für meine Freundin und Mich ein PRESENCE "Objekt" erstellt. Welches durch Fritzbox Mac Prüfung auf absent oder presence gestellt wird. Das ganze habe ich in eine STRUCTURE "Anwesenheit" zusammengefasst. Die STRUCTURE steht solange auf "present" bis beide aus der Wohnung/WLAN sind. Sobald beide PRESENCE Objekte auf "absent" stehen geht auch die STRUCTURE auf "absent". Und sobald einer von uns im WLAN erkannt wird, ändert sich das PRESENCE "Objekt" und die STRUCTURE "Anwesenheit" wieder auf present. Momentan lasse ich uns über die Veränderungen der PRESENCE "Objekte" über Pushbullet benachrichtigen. Die Erkennung für die Ankunft ist auch relativ passend zu dem eigentlichen Eintritt in die Wohnungstür. Und ich habe das ganze so jetzt 4 Wochen laufen und hatte noch keine einzige falsche Meldung, deswegen bin ich auch der Meinung das in meinem Fall keine mehrstufige Prüfung notwendig ist. Zumal habe ich momentan eh noch keine Bewegungsmelder die ich in FHEM einbinden könnte.

Ich wäre schon froh, wen ich vorerst mein oben beschriebenes Szenario so Umgesetzt bekomme. Ich stelle es mir nur Schwierig vor die Erkennung zu realisieren, wenn beide Bewohner Nachhause kommen. Vielleicht bräuchte ich doch sowas wie eine Bluetooth Erkennung, gibt es da Probleme mit iPhones? Meine Freundin hat ein iPhone 6 und ich war schon froh das die Anwesenheitsvergütung über WLAN so gut funktioniert.

Vielen Dank schonmal für eure Antworten.

Gruß Heggeg

Otto123

Warum soll es schwierig sein, euch beide zu erkennen? Das hast Du doch? In irgendeiner Reihenfolge werdet ihr beide erkannt und die Ansage gemacht. Hast Du das einfach schon mal probiert? notify auf Person:present und Ansage.
Gruppieren geht mit set Sonos Groups [] ein Problem dabei ist, dass die Gruppierung Zeit braucht, bevor man mit der Gruppe etwas machen kann. Ich mache nach der Gruppierung erstmal ein sleep 20.
Radio triggern machst Du nicht abhängig von der Einzelperson sondern wenn der Status von der Structure Anwesenheit wechselt. Damit hast Du abgedeckt, dass es keinen Wechsel gibt wenn schon einer da war.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Heggeg

Zitat von: Otto123 am 10 September 2017, 21:48:17
Warum soll es schwierig sein, euch beide zu erkennen? Das hast Du doch? In irgendeiner Reihenfolge werdet ihr beide erkannt und die Ansage gemacht. Hast Du das einfach schon mal probiert? notify auf Person:present und Ansage.
Gruppieren geht mit set Sonos Groups [] ein Problem dabei ist, dass die Gruppierung Zeit braucht, bevor man mit der Gruppe etwas machen kann. Ich mache nach der Gruppierung erstmal ein sleep 20.
Radio triggern machst Du nicht abhängig von der Einzelperson sondern wenn der Status von der Structure Anwesenheit wechselt. Damit hast Du abgedeckt, dass es keinen Wechsel gibt wenn schon einer da war.

Gruß Otto

Ganz wunderbare Antwort von dir. Magst du mir noch sagen wie ich die Befehle (set Sonos Groups[] , sleep 20 etc.) absetze? Ich hab leider noch nicht so viel Erfahrung mit FHEM.

Vielen Dank.

Gruß,
Heggeg

CoolTux

Zitat von: Heggeg am 10 September 2017, 23:27:44
Ganz wunderbare Antwort von dir. Magst du mir noch sagen wie ich die Befehle (set Sonos Groups[] , sleep 20 etc.) absetze? Ich hab leider noch nicht so viel Erfahrung mit FHEM.

Vielen Dank.

Gruß,
Heggeg

Ich finde wir sollten da Schrittweise vorgehen.
Lösen wir doch ersteinmal Dein Problem der Unwissenheit.

https://forum.fhem.de/index.php/topic,41693.0.html

https://forum.fhem.de/index.php/topic,19621.0.html



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DeeSPe

Zitat von: Heggeg am 09 September 2017, 00:57:57
Ich sage mal so der Gipfel der Erotik wären folgende Szenarien:

1. Willkommensnachricht an MICH + Radio an
oder
2. Willkommensnachricht an meine Freundin + Radio an
oder
3. Willkommensnachricht an meine Freundin + Mich + Radio an

Es wäre schön wen FHEM kein Radio an macht wen schon jemand Zuhause ist, sondern nur denjenigen begrüßt der Nachhause gekommen ist.

Gruß,
Heggeg

btw: Schönen Gruß ebenfalls aus Oldenburg!

HOMEMODE macht genau (auch) das.
Nach Schließen der Eingangstür(en) kommt bei mir eine Begrüßung der Ankommenden.
Etwas später geht dann der favorisierende Radiosender des letzten Eintreffenden an, sofern nicht schon etwas läuft.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Otto123

Moin Heggeg,

was genau meinst Du mit wie ... absetzen? Die Beschreibung des Befehlssyntax findest Du immer in der Doku, der commandref. Oder meinst Du mit welchem Modul?
Hier ein Beispiel wie ich am Morgen mein Radio vorbereite, weil ich keine Lust auf 1 min Werbung bei Start des Streams habe:
define a40 at *05:50:00 set Sonos Groups [Sonos_Bad, Sonos_BadWanne, Sonos_Kueche];;sleep 20;;set Sonos_Bad GroupMute 1;;sleep 5;;set Sonos_Bad,Sonos_BadWanne,Sonos_Kueche Volume 15;;set Sonos_Bad StartRadio Radio%20PSR%20102.9%20(Pop)


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Heggeg

Zitat von: DeeSPe am 11 September 2017, 09:07:26
HOMEMODE macht genau (auch) das.
Nach Schließen der Eingangstür(en) kommt bei mir eine Begrüßung der Ankommenden.
Etwas später geht dann der favorisierende Radiosender des letzten Eintreffenden an, sofern nicht schon etwas läuft.

Gruß
Dan

Ich habe mich jetzt rangesetzt und meine beiden PRESENCE Devices umbenannt und nutze diese nur noch um den Anwesenheitsstatus der Handys von meiner Freundin und Mir zu pflegen.  Bei uns ist es so ist das Handy im WLAN sind wir auch immer in der Wohnung sprich Zuhause. Als nächstes habe ich zwei ROOMMATE Devices "Bewohner1" und "Bewohner2" angelegt und beiden jeweils die Handys als rr_presenceDevices eingetragen. Soweit so gut, funktioniert auch alles so wie es soll. Die beiden ROOMMATE Devices habe danach als RESIDENTS "Bewohner" zusammengefasst. Die Stati von dem RESIDENTS Device werden nun auch entsprechend der ROOMMATE Devices geändert. Das umfangreiche HOMEMODE Modul habe ich mir angeschaut und Grundlegend als Device "Zuhause" in meiner FHEM Instanz erstellt.
Das Device läuft auf den ersten Blick auch Ordnungsgemäß, sobald alle aus der Wohnung sind wird das Device vom Typ HOMEMODE auf armaway gestellt.

Wie kann ich nun mit meinem Vorhaben fortfahren? Nun muss ich dem HOMEMODE Device ja irgendwie mitteilen das er bei Ankunft einer Person über die Sonos Lautsprecher die Willkommensnachricht abspielen soll mit set Sonos_Bad Speak 50 de Willkommen Zuhause NAMEXYZ Und darauffolgend prüfen soll ob Radio/Musik lief und wen keine Radio/Musik lief einen festen Radio stream starten soll. Vor dem ganzen Szenario soll am besten noch sichergestellt werden das alle Lautsprecher mit gruppiert worden sind. set Sonos_Controller Groups [Sonos_Bad, Sonos_Buero, Sonos_Wohnzimmer]

Ihr könnnt sicherlich helfen oder?


Otto123

Ich mache die erste Aufgabe relativ simpel:
define di_Bewohner1Hallo DOIF ([Bewohner1:"present"]) (set Sonos_Bad Speak 50 de Willkommen Zuhause Bewohner1)

Eigentlich langt ein notify. Ich nehme DOIF deshalb, weil ich weitere Bedingungen abfrage bzw. die Ausgabe durch einen Bewegungsmelder getriggert wird.

Die Gruppierung würde ich an Deiner Stelle vorbereiten, z.B. wenn ihr beide das Haus verlassen habt.

Das starten des Streams wolltest Du abhängig davon machen ob schon einer da ist, diese Bedingung ist m.E. einfacher als Sonos abzufragen ob was läuft. Wenn der andere schläft willst Du ihn doch nicht mit lauter Musik wecken :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

DeeSPe

Zitat von: Heggeg am 11 September 2017, 20:17:21
Ich habe mich jetzt rangesetzt und meine beiden PRESENCE Devices umbenannt und nutze diese nur noch um den Anwesenheitsstatus der Handys von meiner Freundin und Mir zu pflegen.  Bei uns ist es so ist das Handy im WLAN sind wir auch immer in der Wohnung sprich Zuhause. Als nächstes habe ich zwei ROOMMATE Devices "Bewohner1" und "Bewohner2" angelegt und beiden jeweils die Handys als rr_presenceDevices eingetragen. Soweit so gut, funktioniert auch alles so wie es soll. Die beiden ROOMMATE Devices habe danach als RESIDENTS "Bewohner" zusammengefasst. Die Stati von dem RESIDENTS Device werden nun auch entsprechend der ROOMMATE Devices geändert. Das umfangreiche HOMEMODE Modul habe ich mir angeschaut und Grundlegend als Device "Zuhause" in meiner FHEM Instanz erstellt.
Das Device läuft auf den ersten Blick auch Ordnungsgemäß, sobald alle aus der Wohnung sind wird das Device vom Typ HOMEMODE auf armaway gestellt.

Wie kann ich nun mit meinem Vorhaben fortfahren? Nun muss ich dem HOMEMODE Device ja irgendwie mitteilen das er bei Ankunft einer Person über die Sonos Lautsprecher die Willkommensnachricht abspielen soll mit set Sonos_Bad Speak 50 de Willkommen Zuhause NAMEXYZ Und darauffolgend prüfen soll ob Radio/Musik lief und wen keine Radio/Musik lief einen festen Radio stream starten soll. Vor dem ganzen Szenario soll am besten noch sichergestellt werden das alle Lautsprecher mit gruppiert worden sind. set Sonos_Controller Groups [Sonos_Bad, Sonos_Buero, Sonos_Wohnzimmer]

Ihr könnnt sicherlich helfen oder?

Bei der Benutzung von HOMEMODE brauchst Du die "rr_presenceDevices" nicht pflegen.
Im Namen des/der PRESENCE Devices muss nur der Name vom RESIDENT enthalten sein und dann erfolgt über HOMEMODE die Zuweisung automatisch.

Schau mal in diesem Beitrag und suche nach "HomeCMDcontactDoormainClosed". Dort findest Du ein Beispiel für die mögliche Begrüßung.

Bei mir sind die Sonos standardmäßig immer gruppiert. Nur bei Bedarf wird der ein oder andere manuell aus der Gruppe entfernt. Ein notify stellt sicher dass die Sonos nach Wiederkehren des Stroms (abschaltbare Steckdosen) auch wieder gruppiert werden.
Meinen RESIDENTS habe ich noch ein userattr namens "favRadio" mitgegeben und entsprechend wird dieses dann beim Einschalten des für den jeweiligen RESIDENT richtigen Radiosenders ausgewertet.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe