Seite 1 von 1
Squeezebox über Rules steuern
Verfasst: 23. Aug 2019 17:27
von OliverCJ
Hallo zusammen,
da ich in der Familie der Radio-Hörer bin und meine Frau eher den TV für die Hintergrundberieselung anmacht, habe ich mir überlegt, ich könnte ja bei Heimkehr (also meiner) und Abwesenheit meiner Frau automatisch die Squeezebox im Wohnzimmer starten und los dudeln lassen...
Dafür habe ich mir die folgende Rule überlegt:
Code: Alles auswählen
rule "Musik fuer Olli"
when
Item Olli_Handy changed from OFF to ON
then
if(Matzi_Handy.state == OFF) {
sendCommand(SBT_Wohnzimmer_Power, ON)
createTimer(now.plusSeconds(3)) [| sendCommand(SBT_Wohnzimmer_Play, play) ]
}
end
Das funktioniert auch soweit, dass die SBT angeschaltet wird, sobald ich nach Hause komme und meine Frau noch nicht da ist. Andersrum bleibt sie (die SBT) aus, wenn sie (meine Frau) schon zu Hause ist.
Aber der virtuelle Klick auf "Play" scheint nicht zu funktionieren... die 3 Sek Verzögerung habe ich mal eingebaut, damit die SBT auch ein wenig Zeit hat, nach dem Einschalten zu reagieren...
Ich nutze nur das Squeezebox Binding, habe aber jetzt gesehen, dass es auch noch ein Action dazu gibt. Brauche ich das???
Ich möchte halt das Control ansprechen...
Vielleicht hat ja jemand ne Idee... Danke!!!
Viele Grüße
Oliver
Re: Squeezebox über Rules steuern
Verfasst: 24. Aug 2019 08:37
von udo1toni
Ich gehe davon aus, dass Du OH2.x mit dem Squeezebox Binding 2 nutzt. Dein Problem ist nicht das Fehlen der Actions, sondern dass Du veersuchst, eine Variable zu übergeben. In Wirklichkeit willst Du einen String senden.
Ich mache ja immer gerne Werbung für Methoden statt Actions, also auch hier. Nutze doch bitte statt
lieber
und entsprehend statt
lieber
wobei man allerdings erst mal klären müsste, welchen Befehl das Player Item nun wirklich benötigt. Das kannst Du aber leicht über die events.log und ein Player Item in der UI herausfinden. Schau einfach nach, welchen Befehl (exakte Schreibweise) openHAB beim Klick auf das Play-Symbol schickt.
Re: Squeezebox über Rules steuern
Verfasst: 24. Aug 2019 11:34
von OliverCJ
Hallo Udo,
vielen Dank, das werde ich mir mal anschauen!
Mit Logs habe noch nicht so viel gearbeitet. Auch da schau ich mal rein, was eigentlich passiert, wenn ich im Control auf die "Play-Taste" klicke
Kannst Du vielleicht noch kurz erklären, wo die Unterschiede und Vorteile "Deiner" Methoden gegenüber meiner Lösung liegen?
Funktioniert hat der Power-Befehl bei mir ja auch...
Danke und ein schönes Wochenende!
Oliver
Nachtrag: habe gerade gesehen, das der play Befehl im Log klein geschrieben ist. Hat das Auswirkungen?
Re: Squeezebox über Rules steuern
Verfasst: 25. Aug 2019 22:20
von udo1toni
Der Unterschied zwischen der Methode und der Action ist, dass die Action ausschließlich Strings als Parameter erlaubt. Das geht normalerweise trotzdem gut, weil openHAB "errät", was Du eigentlich willst (also den Namen des Items, statt des Items selbt. Beim wert, den Du übergibst, gibt es oft eine Methode .toString, die openHAB automatisch verwendet.
Es gibt aber eine Situation, wo das schife geht, nämlich, wenn Du mit Primitives arbeitest. Auc hwenn Du nicht weißt, was ein Primitive ist, wirst Du es früher oder später einsetzen, ohne das zu ahnen. Da ein Primitive kein Objekt ist, gibt es kein .toString und die Action scheitert.
Groß/Kleinschreibung ist in openHAB extrem wichtig, und zwar für jeden einzelnen Buchstaben. Es gibt Stellen, wo es keine Rolle spielt, aber man sollte sich nicht darauf verlassen. Umgekehrt gilt natürlich das selbe, wenn man nicht genau weiß, dass die Groß/Kleinschreibung eine Rolle spielt, solte man nicht identische Namen nur mit unterschiedlicher Groß/Kleinschreibung verwenden...
Re: Squeezebox über Rules steuern
Verfasst: 7. Okt 2020 19:17
von Galadriel13
Hallo OliverCJ,
kannst du mir bitte die Konfiguration für die Squeezebox posten (items, things, rules, sitemap).
Es gibt schon einige Anleitungen, jedoch läuft das bei mir dennoch nicht.
https://www.openhab.org/addons/bindings/squeezebox/
Besten Dank!
Re: Squeezebox über Rules steuern
Verfasst: 7. Okt 2020 21:53
von OliverCJ
Servus!
Das kann ich gerne tun. Zunächst aber mal die Frage: Du hast auch wirklich einen Squeezebox Server bzw den Logitech Media Server laufen? Oder hast Du vielleicht nur die letzte Version vom Radio, die etwas anders funktioniert?
Also bei mir läuft der QLMS auf einem QNAP NAS. In den Things sieht das dann so aus:
Code: Alles auswählen
Bridge squeezebox:squeezeboxserver:myserver @ "Frankenstraße" [ipAddress="192.168.178.11", webport=9001, cliport=9090]
{
Thing squeezeboxplayer SBR_Schlafzimmer "Squeezebox Radio" @ "Schlafzimmer" [mac="00:04:20:28:f7:1f"]
Thing squeezeboxplayer SBT_Wohnzimmer "Squeezebox Touch" @ "Wohnzimmer" [mac="00:04:20:22:ec:bc"]
}
Ganz wichtig - es wird hier immer wieder betont - ist die Groß. und Kleinschreibung. Aus irgendeinem Grund hatte ich eine der MAC-Adressen am Anfang nicht per C&P eingefügt, sondern abgetippt und dabei die Buchstaben GROß geschrieben... hat nicht funktioniert. Erst als ich darauf gekommen war und das geändert habe, ließ sich das SBR bedienen...
Die Items dazu:
Code: Alles auswählen
Group gSqueezeboxRadio
"Squeezebox"
<mediacontrol>
(gSchlafzimmer)
Switch SBR_Schlafzimmer_Power
"Squeezebox Radio"
<switch>
(gSqueezeboxRadio)
{channel="squeezebox:squeezeboxplayer:myserver:SBR_Schlafzimmer:power"}
Dimmer SBR_Schlafzimmer_Volume
"Lautstärke"
<soundvolume>
(gSqueezeboxRadio)
{channel="squeezebox:squeezeboxplayer:myserver:SBR_Schlafzimmer:volume"}
Switch SBR_Schlafzimmer_Mute
"Lautlos"
<soundvolume_mute>
(gSqueezeboxRadio)
{channel="squeezebox:squeezeboxplayer:myserver:SBR_Schlafzimmer:mute"}
Image SBR_Schlafzimmer_Cover
"aktuelles Cover"
<none>
(gSqueezeboxRadio)
{channel="squeezebox:squeezeboxplayer:myserver:SBR_Schlafzimmer:coverartdata"}
Player SBR_Schlafzimmer_Play
"Play"
<mediacontrol>
(gSqueezeboxRadio)
{channel="squeezebox:squeezeboxplayer:myserver:SBR_Schlafzimmer:control"}
Mehr habe ich da noch gar nicht angelegt, aber das Prinzip dürfte klar sein. Die weiteren Channels ergeben sich aus der Doku.
Die Sitemap:
Code: Alles auswählen
Frame label="Mediasteuerung" {
Switch item=SBR_Schlafzimmer_Power
Slider item=SBR_Schlafzimmer_Volume icon="soundvolume" label="Lautstärke" visibility=[SBR_Schlafzimmer_Power == ON]
Switch item=SBR_Schlafzimmer_Mute icon="soundvolume_mute" label="Mute" visibility=[SBR_Schlafzimmer_Power == ON]
Default item=SBR_Schlafzimmer_Play icon="mediacontrol" visibility=[SBR_Schlafzimmer_Power == ON]
Image item=SBR_Schlafzimmer_Cover visibility=[SBR_Schlafzimmer_Power == ON]
}
Rules habe ich dafür keine.
Die SBT im Wohnzimmer hatte ich damals zwar mit angelegt, die wird aber eigentlich komplett über einen Harmony Hub mit Harmony Elite bedient. Der Hub wiederum ist ebenfall ins OH2 über das entsprechende Binding integriert, so dass ich im Wohnzimmer das komplette Multimedia Equipment sowohl über die Elite bedienen kann (was eigentlich allen im Haus lieber ist), als auch über OH2. Da gibt es dann tatsächlich eine einzige Rule: Starte die Aktion "Radio", wenn ich nach Hause komme und sonst niemand anwesend ist.
So, hoffe das hilft. Gute Nacht!
Re: Squeezebox über Rules steuern
Verfasst: 7. Okt 2020 22:44
von Galadriel13
Hallo OliverCJ,
vielen Dank für die promte Rückinfo.
Ich sage mal so, ich habe eine Squeezebox (X-R001).
Unter
https://mysqueezebox.com/appgallery hab eich mein Radio gelistet und kann dies über die Oberfläche auch steuern.
Also denke ich, dass der Server läuft.
Dann habe ich in openHAB das Binding "SqueezeBox Binding" installiert.
Unter Things habe ich einen SqueezeBoy Player und einen SqueezeBox Server installiert (beide zeigen allerdings "Offline - Bridge_Offline" an.
Warum, weiss ich nicht:
NAME: "SqueezeBox Player"
BRIDGE SELECTION: SqueezeBox Server - squeezebox:squeezeboxserver:50cc1934
MAC-Adresse: ist die MAC-Adresse des Radios
LOCATION: keine Eingabe
NOTIFICATION TIMEOUT: 20
NOTIFICATION SOUND VOLUME: keine Eingabe
Fraglich ist, waum der Player und der Server offline ist.
Muss ich abgesehen von openHAB noch etwas auf dem Raspberry Pi konfigurieren/installieren?
Danke dir!
Gutes Nächtle.
Re: Squeezebox über Rules steuern
Verfasst: 8. Okt 2020 06:09
von OliverCJ
Nein, das funktioniert leider nicht. Bei dir läuft eben kein Squeezebox Server. Dein Radio ist lediglich mit dem Webdienst verbunden.
Leider hat Logitech die Geräte damals, nach der Übernahme von Slimdevices, ziemlich runter gewirtschaftet und dann sterben lassen. Ein letzter Versuch, dem ganzen noch mal Leben einzuhauchen war, sich von dem komplexen Konstrukt mit eigenem Server abzuwenden und eben nur noch auf den Webdienst mysqueezebox.com zu setzen.
Dafür gab es das SBR dann mit der neuen internen Bezeichnung x-r001 und einer neuen Firmware, die zwar gut mit dem Webdienst funktioniert, aber mit dem lms nicht mehr klarkommt.
Es gibt im Web Anleitungen, wie man die Firmware downgraden kann. Dann könntest du auf einem Rechner, der dauerhaft an ist (oder auch nicht) den Logitech Media Server (lms) installieren und dein Radio damit verbinden. Und dann funktioniert das auch mit dem Binding und den Einstellungen, so wie von mir beschrieben...
Gesendet von meinem SM-N975F mit Tapatalk
Re: Squeezebox über Rules steuern
Verfasst: 8. Okt 2020 08:07
von Galadriel13
Danke, dann wird das nicht so einfach wie gedacht.
Ich werde erst einmal davon absehen.
Schönen Tag dir.