[GELÖST] currentSender bei Sonos-Box setzen

Begonnen von juemuc, 17 Dezember 2016, 16:01:17

Vorheriges Thema - Nächstes Thema

juemuc

Hallo,

nachdem ich hier schon viele tolle Ideen gefunden habe, die ich umsetzen konnte, benötige ich Eure Hilfe. Ich lese aus einer Sonos Box den "currentSender" aus und lege diese Info in einer eigenen dummy-Gerät ab. Dies funktioniert bestens. Wenn ich allerdings diesen Wert wieder an die Box übergeben will (nachdem diese z.B. ohne Strom war), funktioniert es nicht. Hier mein Coding:

define letzter_currentSender dummy
attr letzter_currentSender room Bad
define letzter_currentSender_Notify notify Sonos_Bad:currentSender.* { my $s = ReadingsVal("Sonos_Bad", "currentSender", "ANTENNE%201");; fhem("set letzter_currentSender $s") }
attr letzter_currentSender_Notify room Bad
define Sonos_Bad_Appeared_Notify notify Sonos_Bad:presence:.appeared { if (ReadingsVal("Sonos_Bad", "currentSender", "") eq "") { fhem ("set Sonos_Bad StartFavourite letzter_currentSender NoStart") } }
attr Sonos_Bad_Appeared_Notify room Bad

Ich habe auch schon folgende Varianten ausprobiert:
"letzter_currentSender"
value("letzter_currentSender")

Alles ohne erfolgt. Wo liegt mein Fehler?

Viele Grüße

juemuc
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

viegener

ICh denke es wäre schön, wenn Du code-tags evrwenden würdest - das hilft bei der Lesbarkeit.

Ich denke eines der Problem ist, dass due zwar den text letzter_currentSender im 2. Notify übergibst aber eigentlich den status des Devices auslesen willst, wie im ersten notify und dann diesen wert im set verwenden.

Also so etwas wie
define Sonos_Bad_Appeared_Notify notify Sonos_Bad:presence:.appeared {my $s = (ReadingsVal("letzter_currentSender", "state", "ANTENNE%201");;   if ((ReadingsVal("Sonos_Bad", "currentSender", "") eq "") { fhem ("set Sonos_Bad StartFavourite  $s NoStart") } }

Wobei ich das jetzt nicht getestet habe
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Puschel74

#2
ZitatICh denke es wäre schön, wenn Du code-tags evrwenden würdest
Also wieder mein angepinnter Beitrag nicht gelesen  >:(

@juemuc
Warum nicht?
Was muss ich am Titel
ZitatBitte unbedingt vor Eurem ersten Post hier lesen.
ändern das Anfänger den Beitrag auch sehen/lesen?
Bitte nicht böse sein aber ich frag das eigentlich recht häufig nach und bekomme nie eine Antwort - abgesehen davon das der Beitrag nicht gelesen (oder verstanden) wird.
Zu schwer geschrieben?
Zuviel an Infos?
Was kann ich verbessern?
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

juemuc

@Puschel74
Ich habe nicht nur die Beträge für Anfänger gelesen sondern auch einige Stunden schon mit der Recherche. Ich hatte gehofft es richtig umgesetzt zu haben. Wie setze ich code-tags ein?

Ich bin kein Programmierer und versuche durch Anpassung von gefundenen code-schnipsel meine Wünsche umzusetzen. Ich ändere gerne die Darstellung, wenn es mir einer erklärt.

@viegener
Ich werde es später mal versuchen umzusetzen. Danke für den Tipp.

Viele Grüße
juemuc
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

#4
Hallo viegener,

leider funktioniert es so nicht. Ich habe es wie folgt umgesetzt:

# letzter-currentSender als dummy definieren
define letzter_currentSender dummy

# currentSender aus Sonos-Box auslesen und unter letzter_currentSender ablegen
define letzter_currentSender_Notify notify Sonos_Bad:currentSender.* { my $s = ReadingsVal("Sonos_Bad", "currentSender", "ANTENNE%201");; fhem("set letzter_currentSender $s") }

#wenn die Box wieder Strom hat, soll der Inhalt aus letzter_currentSender in das Feld currentSender übergeben werden
define Sonos_Bad_Appeared_Notify notify Sonos_Bad:presence:.appeared { if (ReadingsVal("Sonos_Bad", "currentSender", "") eq "") { my $s = ReadingsVal("letzter_currentSender", "state", "ANTENNE%201");; fhem ("set Sonos_Bad StartFavourite $s NoStart") } }


Wenn ich $s durch ANTENNE%201 ersetze, funktioniert es problemlos. Hier wird "Antenne 1" sofort zur Verfügung gestellt. 

@puschel74
Ich hoffe ich habe es nun besser gemacht :-)

Viele Grüße
juemuc
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

viegener

Ich kann nur vermuten, dass es vielleicht am fehlenden rul encoding liegt?

was steht denn in state vom dummy?

was kommt zurück, wenn Du folgendes eingibst:
{ return ReadingsVal("letzter_currentSender", "state", "ANTENNE%201") }
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

juemuc

#6
Zitat von: viegener am 18 Dezember 2016, 15:54:53
Ich kann nur vermuten, dass es vielleicht am fehlenden rul encoding liegt?

was steht denn in state vom dummy?

was kommt zurück, wenn Du folgendes eingibst:
{ return ReadingsVal("letzter_currentSender", "state", "ANTENNE%201") }

Ich glaube ich habe den Fehler gefunden. Der Inhalt von currentSender ist nicht identisch mit dem Inhalt der Favoriten. Damit kann es auch nicht funktionieren. Ich muss nun nach einem neuen Weg suchen um mein Ziel zu erreichen. Danke für Deine Unterstützung.

Viele Grüße
juemuc
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

viegener

Du kannst ja die Favoriten nach Deinem Geschmack benennen, damit sollte das doch gehen, oder?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

juemuc

Zitat von: viegener am 18 Dezember 2016, 16:40:49
Du kannst ja die Favoriten nach Deinem Geschmack benennen, damit sollte das doch gehen, oder?

Im Prinzip ja. Allerdings müsste ich dann eine Zuordnung zwischen den Sendern und den Favoriten hinterlegen (wegen der Leerzeichen). Einfacher wäre es wohl, wenn ich alle Einstellungen sichern könnte und diese dann wiederherstelle. Habe aber noch keine Idee, wie ich dies umsetzen kann.

Viele Grüße
juemuc
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

viegener

Oder die Leerzeichen einfach durch %20 ersetzen?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können