Online Radio mit Squezebox schaltet automatisch ab
-
- Beiträge: 237
- Registriert: 31. Jan 2022 06:35
Online Radio mit Squezebox schaltet automatisch ab
Ich verwende OH 4.1 auf Windows mit der Squeezebox App um Online Radio zu hören. Dies funktioniert soweit aber hat ein Problem. Wenn ich den Radiosender wechsle kommt die Ansage "Tune In" welche für ca. 3s läuft. Danach wird jedoch der Radiosender nicht abgespielt weil die Squeezbox in OH von PLAY auf PAUSE wechselt.
Wenn ich dann nochmals manuell auf PLAY drücke wird der Radiosender abgespielt. Was ich jedoch nicht hinbekomme ist dass es nach der Ansage "Tune In" nicht auf PAUSE wechselt sondern auf PLAY weiterläuft damit dann der Sender auch abgespielt wird.
Hat jemand eine Lösung zu diesem Problem?
Danke
Wenn ich dann nochmals manuell auf PLAY drücke wird der Radiosender abgespielt. Was ich jedoch nicht hinbekomme ist dass es nach der Ansage "Tune In" nicht auf PAUSE wechselt sondern auf PLAY weiterläuft damit dann der Sender auch abgespielt wird.
Hat jemand eine Lösung zu diesem Problem?
Danke
- udo1toni
- Beiträge: 14147
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Online Radio mit Squezebox schaltet automatisch ab
Geschieht das auch, wenn Du den Wechsel direkt in der App vornimmst?
Wenn Du "Squeezebox App" schreibst, meinst Du mutmaßlich Squeezelite-X? Und Du nutzt direkt die Soundkarte des Windows PC?
Wenn Du "Squeezebox App" schreibst, meinst Du mutmaßlich Squeezelite-X? Und Du nutzt direkt die Soundkarte des Windows PC?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 119
- Registriert: 7. Jan 2020 19:36
Re: Online Radio mit Squezebox schaltet automatisch ab
ich benutze schon lange das squeezebox binding unter openhabian und stelle das auch immer wieder mal fest.
eigenartig dass es nicht immer passiert, und wenn es dann bei einem senderwechsel mal vorkommt ich einfach nochmal auf einen anderen wechsle und wieder zurück dann geht es oft auch dort wieder problemlos. ist für mich also nicht reproduzierbar woher / warum das ab und zu vorkommt, aber nachdem es selten passiert hab ich mir auch nie weiter gedanken darum gemacht.
eigenartig dass es nicht immer passiert, und wenn es dann bei einem senderwechsel mal vorkommt ich einfach nochmal auf einen anderen wechsle und wieder zurück dann geht es oft auch dort wieder problemlos. ist für mich also nicht reproduzierbar woher / warum das ab und zu vorkommt, aber nachdem es selten passiert hab ich mir auch nie weiter gedanken darum gemacht.
-
- Beiträge: 237
- Registriert: 31. Jan 2022 06:35
Re: Online Radio mit Squezebox schaltet automatisch ab
Dies geschiet schon in der Squeezelite-X app wie ich gerade gesehen habe - also weniger ein OH Problem
Ich kann bestätigen dass dies auch nicht immer passiert aber es ist schon lästig da man dann nochmals PLAY drücken muss bzw. nie weiss wann es passiert.
Da müsste es doch eine Möglichkeit geben um dies in OH zu umgehen?
Ich kann bestätigen dass dies auch nicht immer passiert aber es ist schon lästig da man dann nochmals PLAY drücken muss bzw. nie weiss wann es passiert.
Da müsste es doch eine Möglichkeit geben um dies in OH zu umgehen?
-
- Beiträge: 119
- Registriert: 7. Jan 2020 19:36
Re: Online Radio mit Squezebox schaltet automatisch ab
das komische ist dass das immer nur bei sendern über tune-in passiert. zumindest scheint mir das so weil ich höre dann immer noch die werbung "this is tune-in" - und dann bleibt es ruhig.
es scheint mir dass wenn ich einen anderen favoriten wähle schaltet der player immer von play auf pause und sofort wieder von pause auf play (unter 1 sekunde). manchmal fehlt der zweite befehl dann im log und darum bleibt er dann auch pausiert.
ich überlege ob ich einfach eine kleine funktion dazu hänge: immer nach dem wählen eines neuen favoriten nach 2 sekunden checken ob er auf play steht, sonst play-command senden - als notlösung.
es scheint mir dass wenn ich einen anderen favoriten wähle schaltet der player immer von play auf pause und sofort wieder von pause auf play (unter 1 sekunde). manchmal fehlt der zweite befehl dann im log und darum bleibt er dann auch pausiert.
ich überlege ob ich einfach eine kleine funktion dazu hänge: immer nach dem wählen eines neuen favoriten nach 2 sekunden checken ob er auf play steht, sonst play-command senden - als notlösung.
-
- Beiträge: 119
- Registriert: 7. Jan 2020 19:36
Re: Online Radio mit Squezebox schaltet automatisch ab
... gerade wieder passiert, aber fürchte das mit meiner 2-sekunden überlegung wird dann auch nichts:
das sind diesmal fast 30 sekunden bis er auf pause schaltet, obwohl ich nur kurz die werbung "this is tune-in" gehört hab. ich hab keine idee dazu.
Code: Alles auswählen
2024-05-21 07:30:05.406 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'iSbPlayer_Funktionen' received command PLAY
2024-05-21 07:30:05.411 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'iSbPlayer_Funktionen' predicted to become PLAY
2024-05-21 07:30:05.413 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iSbPlayer_Funktionen' changed from PAUSE to PLAY
2024-05-21 07:30:05.419 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'iSbPlayer_Laut' received command 90
2024-05-21 07:30:05.421 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'iSbPlayer_Laut' predicted to become 90
2024-05-21 07:30:05.430 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iSbPlayer_AusEin' changed from OFF to ON
2024-05-21 07:30:32.623 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iSbPlayer_Funktionen' changed from PLAY to PAUSE
- udo1toni
- Beiträge: 14147
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Online Radio mit Squezebox schaltet automatisch ab
Hier geht es ja in erster Linie um einen Workaround, egal, wie schmutzig der vielleicht ist.
Mein Ansatz dazu wäre also, nach dem Detektieren des Senderwechsels einen Timer zu starten (z.B. 60 Sekunden)
Wird nun ein Wechsel des Betriebs von PLAY zu PAUSE detektiert, muss openHAB nur nachschauen, ob der Timer noch läuft. Ist das der Fall, so sendet openHAB den PLAY Befehl. Ungefähr so:
Ist aber nur graue Theorie
Mein Ansatz dazu wäre also, nach dem Detektieren des Senderwechsels einen Timer zu starten (z.B. 60 Sekunden)
Wird nun ein Wechsel des Betriebs von PLAY zu PAUSE detektiert, muss openHAB nur nachschauen, ob der Timer noch läuft. Ist das der Fall, so sendet openHAB den PLAY Befehl. Ungefähr so:
Code: Alles auswählen
var Timer tSBChange = null
rule "erkenne Senderwechsel"
when
Item iSbPlayer_AusEin changed to ON
then
tSBChange?.cancel
tSBChange = createTimer(now.plusSeconds(60),[|
tSBChange = null
])
end
rule "erkenne Pause"
when
Item iSbPlayer_Funktionen changed from PLAY to PAUSE
then
if(tSBChange !== null)
iSbPlayer_Funktionen.sendCommand(PLAY)
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 119
- Registriert: 7. Jan 2020 19:36
Re: Online Radio mit Squezebox schaltet automatisch ab
erst mal dir udo1toni vielen dank für deine unglaublich vielen tips und hilfestellungen die ich stets gern aufmerksam verfolge.
ich selber verwende dsl gar nicht. klar könnte ich trotzdem deinen tip ausprobieren jedoch hab ich gestern schon (unter habapp) erst mal ganz simpel einen kleinen zusatz gemacht dass ich immmer beim start und beim sender umschalten nach ein paar sekunden checke ob der player auf pause steht um dann nochmal ein play command zu senden. bis jetzt kein problem mehr gehabt, aber ob es daran lag oder einfach nur im moment funktioniert keine ahnung. ich werd wohl noch eine benachrichtigung einfügen damit ich sehe ob bzw wie oft dieser workaround zum einsatz kommt und den dann ev versuchen zu verfeinern.
nachdem ich dieses phänomen bereits früher erkannt hab sind bei mir eh nur sehr wenige sender über tune-in gestreamt. darum hab ich das problem zum glück nur selten. ev kann ja norick auch ein feedback geben ob dieser lösungsansatz in die richtige richtung führt.
ich selber verwende dsl gar nicht. klar könnte ich trotzdem deinen tip ausprobieren jedoch hab ich gestern schon (unter habapp) erst mal ganz simpel einen kleinen zusatz gemacht dass ich immmer beim start und beim sender umschalten nach ein paar sekunden checke ob der player auf pause steht um dann nochmal ein play command zu senden. bis jetzt kein problem mehr gehabt, aber ob es daran lag oder einfach nur im moment funktioniert keine ahnung. ich werd wohl noch eine benachrichtigung einfügen damit ich sehe ob bzw wie oft dieser workaround zum einsatz kommt und den dann ev versuchen zu verfeinern.
nachdem ich dieses phänomen bereits früher erkannt hab sind bei mir eh nur sehr wenige sender über tune-in gestreamt. darum hab ich das problem zum glück nur selten. ev kann ja norick auch ein feedback geben ob dieser lösungsansatz in die richtige richtung führt.
-
- Beiträge: 119
- Registriert: 7. Jan 2020 19:36
Re: Online Radio mit Squezebox schaltet automatisch ab
ich hab mir jetzt was gebastelt das scheint zu funktionieren. ich weiß nicht ob es jemandem hilft weil ich alles mit habapp mache aber so sieht mein code aus:
kurz dazu als info
- ich checke immer ob das item nur auf PAUSE wechselt oder ob es dazu auch ein kommano erhält - dann wäre die pause nämlich gewünscht und soll auch bleiben
- selbst wenn es ohne kommando auf PAUSE wechselt kann das gewünschtes verhalten sein, zb wenn der player ausgeschaltet wird oder auch wenn ein senderwechsel statt findet
Code: Alles auswählen
def __init__(self):
'''
Verhalten des Item iSbPlayer_Funktionen beim
- Einschalten:
item_command: PLAY
item_changed: from "PAUSE" to "PLAY"
- MANCHMAL (anscheinend nur bei Streams über Tune-In)
item_changed: from "PLAY" to "PAUSE"
(wechselt nach manuellem "PLAY" manchmal trotzdem mehrfach wieder zurück auf "PAUSE")
- Senderwechsel
item_changed: from "PLAY" to "PAUSE"
item_changed: from "PAUSE" to "PLAY"
- Ausschalten
item_changed: from "PLAY" to "PAUSE"
- Beabsichtigt schalten auf "PAUSE"
item_command: PAUSE
item_changed: from "PLAY" to "PAUSE"
- Beabsichtigt wieder zurückschalten auf "PLAY"
item_command: PLAY
item_changed: from "PAUSE" to "PLAY"
'''
super().__init__()
self.log = logging.getLogger("My_HABApp")
self.is_command = False
self.countdown = self.run.countdown(3, self.fkt_item_changed_body)
fkt_item = OpenhabItem.get_item('iSbPlayer_Funktionen')
fkt_item.listen_event(self.fkt_item_command, ItemCommandEventFilter(value='PAUSE'))
fkt_item.listen_event(self.fkt_item_changed, ItemStateChangedEventFilter(value='PAUSE'))
def fkt_item_command(self, event=None):
'''
Wenn PAUSE als Kommando geschickt wird dann ist diese Pause auch bewusst gewollt,
das Nächste erkannte changed nach PAUSE wird dann nicht beachtet
'''
self.log.debug('Squeeze fkt_item_command: PAUSE')
self.is_command = True
def fkt_item_changed_body(self):
'''
x Sekunden nachdem das Item iSbPlayer_Funktionen auf PAUSE gewechselt ist
checken ob der Player wieder auf PLAY steht, sonst Kommando neu senden
'''
self.log.debug('Squeeze fkt_item_changed_body now check ....')
if SwitchItem.get_item('iSbPlayer_AusEin').is_off():
self.log.debug('Squeeze changed to PAUSE because Player is OFF')
return
if not OpenhabItem.get_item('iSbPlayer_Funktionen') == 'PLAY':
msg = 'Squeeze Player auf PAUSE - schalte wieder auf PLAY'
self.log.warning(msg)
self.oh.send_command('iSignalMsgStefan', msg)
self.oh.send_command('iSbPlayer_Funktionen', 'PLAY')
def fkt_item_changed(self, event=None):
'''
Wenn das Item iSbPlayer_Funktionen nach PAUSE changed dann checken ob es
Absicht war oder wegen des Tune-in Problems passiert ist
'''
if self.is_command:
self.log.debug('Squeeze fkt_item_changed is intended')
self.is_command = False
return
self.log.debug('Squeeze item iSbPlayer_Funktionen changed to PAUSE, start timer')
self.countdown.reset()
- ich checke immer ob das item nur auf PAUSE wechselt oder ob es dazu auch ein kommano erhält - dann wäre die pause nämlich gewünscht und soll auch bleiben
- selbst wenn es ohne kommando auf PAUSE wechselt kann das gewünschtes verhalten sein, zb wenn der player ausgeschaltet wird oder auch wenn ein senderwechsel statt findet
-
- Beiträge: 237
- Registriert: 31. Jan 2022 06:35
Re: Online Radio mit Squezebox schaltet automatisch ab
Ich werde den Vorschlag mittels eines Timers so übernehmen und bei mir testen ob es dann läuft. Ich melde mich nach dem (erfolgreichen) Test dann nochmals.
Schon mal danke für die guten Tips und Hinweise!
Schon mal danke für die guten Tips und Hinweise!