Hauptmenü

Shelly Button1 mit Fhem

Begonnen von Kurt77, 28 Juli 2020, 16:46:42

Vorheriges Thema - Nächstes Thema

TomLee

Bei mir klappts auch nicht mit NDR.2  :)

Kurt77

Zitat von: TomLee am 07 August 2020, 11:02:55
Bei mir klappts auch nicht mit NDR.2  :)
Hallo Thomas,
das ist ja schräg! Hatte auch noch einen anderen Sender ausprobiert, der auch nicht ging. Soeben Bayern5.Plus probiert, ging auch nix, aber dann hat BAYERN.3 funktioniert. Jetzt weiß ich also, dass das Notify i.O. ist. Danke dafür!

Jetzt bin ich gespannt, ob Dir zum Thema "Sprachausgabe Sendername" noch etwas einfällt.

Danke und Gruß,
Kurt

TomLee

solange die Frage aus #48 unbeantwortet bleibt, weshalb die Variable immer leer ist, hab ich keine Idee den Titel vor dem abspielen auszugeben.
Wenn der Player schon spielt und eines der current.*-Reading reinkommt, dann die Sprachansage, das ginge, aber mMn. nix halbes und nichts ganzes.

Kurt77

Zitat von: TomLee am 07 August 2020, 14:17:52
solange die Frage aus #48 unbeantwortet bleibt, weshalb die Variable immer leer ist, hab ich keine Idee den Titel vor dem abspielen auszugeben.
Wenn der Player schon spielt und eines der current.*-Reading reinkommt, dann die Sprachansage, das ginge, aber mMn. nix halbes und nichts ganzes.
Hallo Thomas,
ich habe am Sonos-Device das Attribut event-on-Change auf 1 gesetzt. Seither werden die Sendernamen im Reading currentSender abgelegt.
Hilft das beim Thema "Sprachausgabe"?

Danke und Gruß,
Kurt

Beta-User

"ich habe am Sonos-Device das Attribut event-on-Change auf 1 gesetzt"

Das ist ein weit verbreiteter Irrtum, dass "1" irgendwie eine sinnvolle Angabe in event-on-change-reading wäre. (Rudi hat da jüngst auch was an FHEMWEB gedreht, damit Attribute nicht fälschlicherweise automatisch mit 1 vorbelegt werden). Bitte lösche das Attribut entweder ganz oder mache einen sinnvollen Wert da rein.

@TomLee: Zu #48 fällt mir leider auch nichts ein, außer evtl. dem Versuch, das mit einem Punkt in einen Scalar zu "zwingen":
#####Code######
{my $l = ReadingsVal("Sonos_Wohnzimmer","RadiosList","unknown");;$l =~ s/\|/,/g;;my $lvwodot  .= Each("Sonos_Wohnzimmer", $l);;my $lv = $lvwodot."/";;$lvwodot=~ s/./ /g;;$lvwodot}
#####Ende Code##
(Ich nehme an, im Log steht nichts zielführendes?)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Kurt77

Hallo Beta-User,
Ich meine beobachtet zu haben, dass erst nach dem Setzen von event-on-Change das Reading currentSender regelmäßig gefüllt wurde.

Was wäre denn ein sinnvoller Wert, der da reingehört?

Danke und Gruß,
Kurt

TomLee

Die current.*-Readings aktualisieren sich nur wenn was abgespielt wird, sonst sind sie leer.

Mit der Sprachansage beschäftige ich mich später nochmal, muss noch was arbeiten.

Kurt77

Sorry Thomas,
das habe ich anders beobachtet. correntSender wurde nach einem Neustart von Sonos nach dem Abspielen eines Senders genau auf diesen Sender gesetzt. Nach einem Senderwechsel ist currentSender auf dem "alten" Wert stehen geblieben.

Gruß,
Kurt

Beta-User

"Was wäre denn ein sinnvoller Wert, der da reingehört?"

Das ist "von ferne" schwierig zu beantworten. Mein Tipp wäre weiterhin, das einfach zu löschen. Falls du das nicht willst, wäre ".*" vermutlich das, was du dachtest, was die "1" bewirkt. Letzteres (".*") ist mir aber eigentlich zu pauschal, du solltest eher mal im Event-Monitor (mit gesetztem Filter auf das/die Sonos-Geräte) beobachten, ob da (zu) viel passiert, wenn das Attribut ganz gelöscht ist. (Falls dir das irgendwie hilft: ggf. ist es über telnet einfacher, wenn du dort "inform" verwendest: https://fhem.de/commandref_modular.html#inform; wäre nett, wenn du uns eine Rückmeldung dazu gibst, dann können wir (mind. Otto ist auch mit von der Partie) ggf. anderen Screenreader-Nutzern auch entsprechende Tipps geben *Augenzwinker*)

Was die "1" angeht: Vermutlich ist die "schuld", dass du die Änderung des Readinginhalts in "currentSender" gar nicht mitbekommst, weil das dann erst nach einem Browser-Refresh in FHEMWEB abgezeigt wird...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TomLee

#{my $l = '011.FM.-.Non.Stop.60s,1LIVE.diggi..Top.40.Pop.,DASDING.92.5..Euro-Hits.';; my $lvwodot  = Each("Sonos_Wohnzimmer", $l);; my $lv = $lvwodot."/";; $lvwodot =~ s/./i/g;;$lvwodot;;}
iASDING.92.5..Euro-Hits.
#

Und weitere Tests sind alle für mich kurios, es liegt an dem ersetzen $lvwodot =~ s/./ /g.
Jemand eine Erklärung ?


Kurt77

Hallo Beta-User,
Du überforderst mich gleich 2-mal:
- Was soll das Ziel meiner Beobachtung sein? Was bedeutet  in diesem Zusammenhang (zu) viel passiert"?
- Wie verwende ich inform? Probiere ich gerne mal aus, komme aber mit dem event-monitor gut klar.

Danke und Gruß,
Kurt

Beta-User

#71
@TomLee:
Das mit dem Punkt = "alles/beliebiges Zeichen" ist das Problem...

Das hier funktioniert bei mir:
####Code#####
{my $l = '011.FM.-.Non.Stop.60s,1LIVE.diggi..Top.40.Pop.,DASDING.92.5..Euro-Hits.';; my $lvwodot  = Each("ot_dummy", $l);; my $lv = $lvwodot."/";; $lvwodot =~ s/[.]/ /g;;$lvwodot;;}
####End Code#####

----------------------------
@Kurt77
"zu viel" bedeutet, dass ständig die immergleichen Events kommen. Wenn aber nur Events generiert werden, wenn sich die Information wirklich ändert, ist alles ok. Kommen immer mal wieder Status-Updates ohne Änderung, mußt du entscheinden, ob du das so haben willst. (Nur) dafür sind diese event-on...-Attribute da.

Für inform brauchst du einen Telnet-Zugang. Wenn du mit dem Event-Monitor gut klarkommst, kannst du dir das sparen, funktional sollte beides nach meinem Verständnis auf dasselbe rauslaufen: Man bekommt alle Events (ggf. gefiltert).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TomLee

#72
Dann sollte es eigentlich so klappen, das was bisher in {} stand einfach durch den u.a. Code ersetzen:

#{my $l = '011.FM.-.Non.Stop.60s,1LIVE.diggi..Top.40.Pop.,DASDING.92.5..Euro-Hits.';
my $lvwodot  = Each("Sonos_Kueche", $l);
my $lv = $lvwodot."/";
$lvwodot =~ s/[.]/ /g;
fhem ("set Sonos_Kueche speak 15 de es wird $lvwodot abgespielt");
return fhem("sleep 6;set Sonos_Kueche StartRadio /".$lv);}#

Aber: bei mir hängt sich das Sonos-Modul dann auf, kein setter funktioniert mehr, wenn man das zweimal ausführt, nix steht mit verbose 3 im Log. Das war vorher auch schon so, dachte aber das liegt an dem "falschen" ersetzen.
disablen und wieder aktivieren hilft nur oder per Sprache (Sonos-Skil) einmal stoppen.
Nach dem stoppen per Sprache kommen dann plötzlich all die Sprachansagen nacheinander die zuvor hätten ausgeführt.

Probier mal aus Kurt ob das bei dir auch so ist.

Otto kannst du auch mal testen ?

TomLee

#73
Hey Kurt,

denke hab das Problem gefunden, der Befehl StartRadio darf nicht in der Zeit der Sprachansage ausgeführt werden.
Du musst das sleep mindestens so hoch wählen (plus scheinbar noch etwas Puffer) wie die Sprachansage lang ist.

Bei den mit meinen getesteten Sendern (011.FM.-.Non.Stop.60s,1LIVE.diggi..Top.40.Pop.,DASDING.92.5..Euro-Hits.) sind das mindestens 9-10 Sekunden.

Hab das jetzt auch bei mir eingebaut, gefällt mir sehr gut.

Danke auch mal wieder zwischendurch an Beta-User .

Optimal wäre wenn StartRadio erst ausgeführt wird wenn die Sprachansage beendet ist, hab ich erstmal aber keine Idee.

Beta-User

Immer wieder gerne :) .

Gibt es ein Event, wenn die Sprachansage durch ist?

Dann könnte man ein sleep auf Event-Basis verwenden (ja, sowas gibt es)...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors