Gehe zu Seite: |vorherige| Erste 2 3 4 5 6 7 8 9 Letzte |nächste|

Raumfeld - 3rd-Party Entwickler

+A -A
Autor
Beitrag
DosiRocker
Stammgast
#251 erstellt: 29. Nov 2014, 10:03
Hallo audio_file,
das sieht ja richtig gut aus und du hast ja auch schon an die Hausautomatisierungsfraktion gedacht
Wenn ich den Code richtig interpretiere, wird der erste Raumfeld Speaker, der gefunden wird zur Wiedergabe verwendet. Kann man da eine UUID oder Raum-, bzw. Renderernamen übergeben, damit ein bestimmter Speaker abspielt.
Bleibt die UUID eigentlich immer gleich?

Ich hoffe Thomas baut dies mit ein
Vielen Dank
Martin
audio_file
Ist häufiger hier
#252 erstellt: 29. Nov 2014, 19:51
Thomas hat die Änderungen schon übernommen! Sehr cool & Danke! Habe noch einen weiteren pull request gemacht, mit dem der CurrentTransportState abgerufen werden kann, so kann in der Anwendung dann getestet werden ob etwas gespielt wird, bevor ein neuer Playbefehl gesendet wird.

Für den Server habe ich ein neues repository rf.wr.py angelegt, und dort auch eine kleine Anleitung hinterlegt, bei der die Änderungen an der library berücksichtigt werden und dann auch zur Verfügung stehen. Der Code ist mittlerweile etwas länger geworden, aber ist eigentlich immer noch sehr simpel.

Die coolste Neuerung seit gestern ist, dass im Player jetzt ein Feld ist, in das beliebige URIs eingetragen werden können, um diese abzuspielen. Dies können URIs sein, die aus dem Raumfeld-System ausgelesen wurden oder irgendwelche Streamadressen von Radiostationen, Podcasts, soundcloud (mit kleinem Trick), youtube converter etc. Habe das gestern ein bisschen getestet und lief eigentlich ganz gut, leider klappt bei den 'rohen' Streamadressen das Anzeigen der Metadaten in den Apps dann nicht und Seeking (z.B. bei Podcasts) ist recht unstabil.

@DosiRocker
Ja richtig, es wird immer das erste Element in devices genommen. Habe mir devices aber noch nicht genauer angeschaut. Bei mir steht offensichtlich automatisch immer der virtuelle Player in devices an erster Stelle, der meine beiden Räume in einem Raum zusammenfasst. Ich selber höre eingetlich immer simultan in beiden Räumen und kann leider nichts dazu sagen... Ich denke, dass eine Ansteuerung über UUID machbar sein sollte, aber dazu müssten Thomas_Raumfeld oder tfeldmann etwas sagen.

Und zur Hausautomation: Habe eine Befehl in der Server eingebaut, der über serveradresse:8080/comehome erreichbar ist. Dieser checkt ob bereits etwas gespielt wird, bevor er einen Standardstream startet, damit werden "Fehlzündungen" vermieden.

Momentan ist es so, dass an ein paar Stellen feste URIs drinstehen, diese müsstet Ihr euch nach belieben anpassen oder erweitern.


[Beitrag von audio_file am 29. Nov 2014, 19:56 bearbeitet]
DosiRocker
Stammgast
#253 erstellt: 29. Nov 2014, 20:34
Super,
dann hoffe ich mal, dass ich demnächst genug Muse und Geduld habe, dies mit meiner FHEM Installation auszutesten. Hatte ja damals schon als Probleme die Library von Thomas auf meinem Cubietruck mit Cubian zu installieren.
Geplant ist auch erstmal nur ein Wecker. Später evt. für weitere Ansagen (Wetter, Temperatur, usw.) und dafür hast du ja auch schon mit deiner Url Eingabe vorgearbeitet
Wenn ich es mir recht überlege kann ich auch das erste gefunden Device nehmen, da morgens alle anderen vom Netz sind

Vielen Dank euch beiden,
Martin
DosiRocker
Stammgast
#254 erstellt: 30. Nov 2014, 10:53
Hallo audio_file,
prinzipiell funktioniert es auf meinem Ubuntu Notebook.
Ich bekomme den Web Player gestartet und wenn ich die Pause Taste drücke stoppt mein Radio1 Stream, Alle anderen Tasten funktionieren nicht, vermutlich, weil ich deine Raumfeld Bibliothek nicht installiert bekommen habe
Ich habe vorher mit

sudo pip uninstall raumfeld

deinstalliert,
Danach

martin@LinuxRocker:~$ sudo pip install git+git://github.com/tilltnet/raumfeld-python
Downloading/unpacking git+git://github.com/tilltnet/raumfeld-python
Cloning git://github.com/tilltnet/raumfeld-python to /tmp/pip-8PbVtc-build
fatal: remote error:
Repository not found.
Complete output from command /usr/bin/git clone -q git://github.com/tilltnet/raumfeld-python /tmp/pip-8PbVtc-build:

----------------------------------------
Cleaning up...
Command /usr/bin/git clone -q git://github.com/tilltnet/raumfeld-python /tmp/pip-8PbVtc-build failed with error code 128 in None
Storing debug log for failure in /home/martin/.pip/pip.log


Ich habe zwar selber schon probiert ob vielleicht eine Pfadangabe nicht stimmt, aber da ich keinen Plan habe, ist es schwierig
Hast du einen Tip?
Dankeschön,
Martin
P.S: kann man eigentlich einen Befehl direkt an den Bottle Webserver übergeben: ala http://musicbox.local:8080/player /pause


[Beitrag von DosiRocker am 30. Nov 2014, 10:55 bearbeitet]
DosiRocker
Stammgast
#255 erstellt: 30. Nov 2014, 14:35
Hallo audio_file,
es lag anscheinend doch am Pfad.

Ich konnte es jetzt auf meinem Cubietruck installieren
:-)
und es scheint zu funktionieren

Mal sehen wie ich vorankomme und ob ich daraus mit FHEM schon einen Wecker basteln kann
Gruß,
Martin
audio_file
Ist häufiger hier
#256 erstellt: 30. Nov 2014, 17:10
Hey DosiRocker,

cool, dass es erstmal funktioniert. Thomas hat meinen zweiten Pull-Request auch angenommen, so das statt dem installieren der Fork nun auch pip install raumfeld ausreichen sollte.

Du kannst über ip.adresse:8080/play, ip.adresse:8080/pause und so weiter die commandos direkt ansteuern. Für meine Bedürfnisse reicht das Ganze erstmal aus, aber wenn Du noch (leicht umzusetzende !) Ideen hast, las mal hören! Ich dachte so, dass vielleicht noch Das Steuern der Lautstärke sinnvoll wäre und über ein weiteres Commando wollte ich das Auslesen der CurrenURI implementieren, dann muss ich dafür nicht noch was anderes aufhaben.

LG
DosiRocker
Stammgast
#257 erstellt: 30. Nov 2014, 17:43
Hi audio_file,
ich brauche nur die Übergabe einer absoluten Lautstärke (damit es keine Überraschungen gibt ) und die Eingabe eriner URL
Naja die Angabe an welchem Renderer ausgegeben werden soll, wäre natürlich auch toll.Im Moment führt es beim Test der Anwendung doch zu einigen Überraschungen/Geschrei, wenn plötzlich der Stream meiner Tochter unterbrochen wird
Es wäre schöner wenn man auch einen TuneIn Radiostream aus Raumfeld starten könnte, damit dann auch das Cover angezeigt wird. Im Moment ist bei der Übergabe einer URL der Coverbildschrim in der Raumfeld App schwarz.

Aber für mich sind die ersten beiden Dinge am Wichstigsten

Gruß und Danke,
Martin
audio_file
Ist häufiger hier
#258 erstellt: 30. Nov 2014, 19:57
Habe gerade mal meine zwei Geräte in jeweils eine eigene Hörzone aufgeteilt und geschaut, wie sich raumfeld.discover() dann so verhält. Die Liste die raumfeld.discover() erzeugt enthält alle Hörzonen. Allerdings ist die Reihenfolge offensichtlich Zufall. @DosiRocker: Das müsste heißen, dass bei Dir die Befehle mal zufällig bei Deiner Tochter und mal bei Dir landen, richtig?

Die einfachste Lösung wäre es, denke ich, die Hörzonen an Hand der UDN zu sortieren, dann sollte das Ergebnis von raumfeld.discover() verlässlich sein, so lange sich die Zusammensetzung der Hörzonen nicht ändert. Eine andere Überlegung wäre, ein Parameter einzubauen, welches das Abgleichen von UDNs erlaubt und dann nur die device ausgibt, die gewünscht ist. Bin mir nicht sicher, welches die bessereLösung ist und wie sie genau zu implementieren wäre!

@DosiRocker Eine feste Lautstärke einzubauen ist nicht schwer. Schau Dir in rfwr.py mal den Block ab Zeile 66 an. Dort wird die Lautstärke auf 50 gesetzt. Dort kannst Du jede Lautstärke eintragen die Du magst. Zeilen die Du nicht brauchst einfach verändern oder auskommentieren. Ich werde langfristig in der Server einbauen, dass die Lautstärke nach dem Muster /volume/60 gesetzt werden kann.
DosiRocker
Stammgast
#259 erstellt: 30. Nov 2014, 21:46
Ich komme heute nicht mehr zum Testen eines einfachen Raumfeld Setups mit nur einer Hörzone. Das muß ich nächste Woche probieren, wenn ich mal alleine bin und nicht in 3 Räumen gestreamt wird.
Im Moment habe ich das Problem, dass anscheinend der "Bottle" Webserver immer wieder abschmiert. Vielleicht bei "fehlerhaften" Befehlen, die nicht zur Hörzone passen?

Das mit der festen Lautstärke habe ich gefunden und kann ich bestimmt anwenden.

Danke,
Martin
audio_file
Ist häufiger hier
#260 erstellt: 30. Nov 2014, 22:24
Falls Du den Server über SSH startest probier mal

nohup python2.7 rfwr.py &


Ansonsten wird er beendet, sobald die SSH Session beendet wird.
DosiRocker
Stammgast
#261 erstellt: 30. Nov 2014, 23:36
Ich denke das wars.

Wie du siehst habe ich keinen Plan
Immer wieder frustrierend

Danke,
Martin
DosiRocker
Stammgast
#262 erstellt: 13. Dez 2014, 11:10
Hallo Till,
ich habe jetzt deine Erweiterung auf meinem Cubietruck installiert und es funktioniert schon mal (Lautsärke, Wechsel Hörzone, Favoriten)
Link zu deiner Anleitung unter:
https://github.com/tilltnet/rf.wr.py

Info für Dummies wie mich:
Ich installiere alles unter SSH und mußte überall "sudo" voranstellen
1 Problem:
Leider wird mein Host nicht als Hörzone angezeigt, alle anderen Renderer/Hörzonen werden aber angezeigt.

Vielen Dank,
Martin
P.S: Im Laufe des WE werde ich dann einen Raumfeld Wecker in mein FHEM einbauen
audio_file
Ist häufiger hier
#263 erstellt: 13. Dez 2014, 19:33
Hey Martin,

cool, dass es bei Dir läuft! Ich habe gerade noch ein update gepusht welches einen rudimentären Pocast Support hinzufügt. Es können jetzt die RSS Feeds von Podcasts hinzugefügt werden und per Klick kann dann die aktuelle Folge des Podcasts in der gewünschten Zone abgespielt werden.

Ja, meine Anleitung ist allgemein gehalten und auf Linux Systeme zugeschitten. Falls der SSH Zugang über den User root erfolgt, sind die 'sudo's dann nicht erforderlich, daher habe ich die nicht mit aufgenommen. Ich habe das Ganze auch schon auf einem Mac und auch unter Windows zum Laufen bekommen, wenn es da Interesse gibt, kann ich dafür auch Anleitungen geben. Ich überlege auf jeden Fall den Installationsprozess mit Hilfe eines Skripts zu vereinfachen, aber das hat gerade nicht die höchste Priorität für mich.

Als Hörzonen tauchen nur die 'Virtual Media Player' auf und das sind eben nur die Hörzonen/ music zones aus der APP. Wozu bräuchtest Du den Host, gesondert? Es wäre bestimmt auch möglich, die Mediaserver Funktion zu nutzen, um gezielt Inhalte abzuspielen, aber dafür weiss ich (noch) nicht genug über das entsprechende UPNP Profil und wie ich die Abspiel (Meta) Informationen zusammengestellt werden müssen. Meinst Du vielleicht sowas?

LG


[Beitrag von audio_file am 13. Dez 2014, 19:34 bearbeitet]
DosiRocker
Stammgast
#264 erstellt: 13. Dez 2014, 20:39
Hey Till,

mein Host ist ein Connector, der sowohl Host ist, als auch eine einzelne Hörzone ("Zentrale") oder in Kombinationen mit einem anderen Renderer eine zusammengelegte Hörzone (Wohnzimmer/Zentrale) bildet. Die kombinierte Hörzone taucht dann auch als "Music Zone" auf.
Nach deiner Erklärung müsste sie aber dann doch eigentlich auch einzeln auftauchen? Komisch, ich werde es beobachten, ist aber auch nicht besonders wichtig!

Ich habe gerade im FHEM Forum gepostet, wo ich die Anwendung für FHEM beschrieben habe.
Fhem Forum

Was sehr witzig/nützlich ist, wenn ich über die Raumfeld APP aus Simfy oder meine eigene Musik starte und dann Add Favorite in deiner Web Applikation drücke, wird auch die aktuelle Musik zugefügt, wo man eigentlich den Link nicht kennt.

Kann man eigentlich mit der URL Methode auch lokale MP3s abspielen? Idee wäre auch Ansagetexte (z.B. Temperaturen, Wetter, usw.) über Raumfeld auszugeben

Gruß und schönes WE,
Martin
audio_file
Ist häufiger hier
#265 erstellt: 14. Dez 2014, 02:56
Achso, jetzt verstehe ich das. Ich habe die Sache mit den Zonen nur so ein bisschen getestet, da ich in der Regel mit einer Hörzone auskomme. Aber ich glaube Du musst jede Hörzone in der App erst einmal 'bespielen', also dort einen Track/Stream einmal angespielt haben, damit die Hörzone tatsächlich erstellt ist. Thomas hat auf github angedeutet, dass er den discover() Prozess vielleicht nochmal überarbeitet, so dass dann bekannt ist, welche Renderer welcher Zone zugeordnet sind. Dann sollte es auch möglich sein, dass 'zonenlose' Renderer mitaufgenommen werden. Also vielleicht tut sich da nochmal was demnächst

Wenn Du in die favorites Datei schaust, kannst Du Dir dort den Aufbau der Links auch nochmal genauer anschauen - falls Dich das interessiert =) zwei Zweilen gehören jeweils zu einem Favoriten (URI + Metadaten). Durch Anpassungen kann man die Links da auch auf andere Ziele auf dem Mediaserver 'umbiegen'. Für mich reicht es in der Praxis allerdings aus, einmal ein Album oder eine Playlist in der App abzuspielen, diese dann in rf.wr zum Favoriten zu machen und dann kann ich jederzeit vom PC aus oder von jedem anderen Gerät das einen Browser hat bzw. HTTP requests senden kann, raumfeld steuern. Da der weberver immer sofort antwortet und nicht auf eine reaktion von raumfeld warten muss, geht es bei mir so meist wesentlich schneller als über die app, mal eben einen Song zu skippen oder so. Das liegt bei mir aber auch daran, dass wenn ich am Rechner bin, nicht immer gleich eine Smart Device parat habe.

Was meinst Du mit lokalen Dateien? Also die Dateien müssen halt immer über ein protkoll im Netzwerk zur Verfügung stehen, das Raumfeld beherrscht. Am Einfachsten wäre es, die Dateien über irgend einen Weg in 'Meine Musik' in Raumfeld zu Verfügung zu stellen (am Besten mit Meta daten, die ein einfaches Gruppieren ermöglichen). Und die Dateien legst Du dann in rf.wr als favoriten fest und kannst Sie dann ja mit /fav/x über die Automation abspielen. Wenn gewünscht kann ich in einer der nächsten Version die Funktion einbauen, dass auf dem Server ein Ordner existiert, dessen Inhalte dann über z.B. die Adresse /files/es_ist_kalt_draußen.mp3 erreichbar wären, dann könnte Raumfeld sich die files direkt von Deinem cubietruck holen
DosiRocker
Stammgast
#266 erstellt: 14. Dez 2014, 10:46

audio_file (Beitrag #265) schrieb:

..
Wenn gewünscht kann ich in einer der nächsten Version die Funktion einbauen, dass auf dem Server ein Ordner existiert, dessen Inhalte dann über z.B. die Adresse /files/es_ist_kalt_draußen.mp3 erreichbar wären, dann könnte Raumfeld sich die files direkt von Deinem cubietruck holen :)


Das wäre natürlich super!

Ich habe es gerade über den Umweg als Musicresource in Raumfeld versucht einzubinden, da muß ich aber noch die MP3s etwas konsolidieren (:D da sind wohl einige korrupte Dateien dabei gewesen, die meine Hörzone zum Absturz gebracht haben).
Ich möchte es ja eigentlich mit dem Text To Speech Module aus FHEM kombinieren, aber das ist dann eine andere Baustelle, da ja dort die mp3 Ansagetexte on the fly erzeugt werden.

P.S: Ich finde es ja fast schade, daß anscheinend kein anderer an dieser Entwicklung Interesse hat. Es sind ja viele Nutzungsvarianten, neben einen Wecker, denkbar -> z.B. Windows Phone Nutzer, Kopplung mit Android Tasker usw.

Gruß,
Martin
zieh-fix
Stammgast
#267 erstellt: 14. Dez 2014, 12:05
Ich bin mit extremer Begeisterung bei euch, und muss sagen ich finde es mega spitze das es endlich die möglichleit gibt RF in ein Smart Home zu integrierten! Leider habe ich aber so was von über haupt keine ahnung von Linux


Werde mich wohl da dringend mal reinarbeiten müssen

Dieses Projekt hat den willson... ding haben Effekt

Veilen Dank für eure Arbeit !!!!
DosiRocker
Stammgast
#268 erstellt: 14. Dez 2014, 12:44

zieh-fix (Beitrag #267) schrieb:
Ich bin mit extremer Begeisterung bei euch, und muss sagen ich finde es mega spitze das es endlich die möglichleit gibt RF in ein Smart Home zu integrierten! Leider habe ich aber so was von über haupt keine ahnung von Linux


wenn ich das schaffe
Ich habe auch eine sehr flache Lernkurve
Ein Raspberry Pi mit Linux ist nicht teuer, nicht aufwendig und es ist alles super dokumentiert. Die Installationsanleitung von Till und Thomas ist auch einfach.

Gruß,
Martin
DosiRocker
Stammgast
#269 erstellt: 14. Dez 2014, 18:56

audio_file (Beitrag #265) schrieb:
Achso, jetzt verstehe ich das. Ich habe die Sache mit den Zonen nur so ein bisschen getestet, da ich in der Regel mit einer Hörzone auskomme. Aber ich glaube Du musst jede Hörzone in der App erst einmal 'bespielen', also dort einen Track/Stream einmal angespielt haben, damit die Hörzone tatsächlich erstellt ist. Thomas hat auf github angedeutet, dass er den discover() Prozess vielleicht nochmal überarbeitet, so dass dann bekannt ist, welche Renderer welcher Zone zugeordnet sind. Dann sollte es auch möglich sein, dass 'zonenlose' Renderer mitaufgenommen werden. Also vielleicht tut sich da nochmal was demnächst
...


Ohjee,
jetzt habe ich es endlich auch kapiert, dann funktioniert mein Vorhaben ja gar nicht, weil alle meine Systeme über Nacht aus sind
Die Tests, die ich gemacht habe, da waren alle Renderer schon mal an
Naja, das mit den Renderern und den Hörzonen habe ich auch noch nie so wirklich begriffen

Mal sehen, ob ich dann morgen verschlafe

Gruß,
Martin
DosiRocker
Stammgast
#270 erstellt: 19. Dez 2014, 09:38
Hallo audio_file,
ich habs jetzt diese Woche mit der Applikation (mit FHEM als Haussteuerung) rumgespielt und prinzipiell funktioniert es, allerdings nur wenn ich die beteiligten Hörzonen über Nacht anlasse. Wenn ich den Strom ausschalteund dann wieder einschalte, muß ich erst in der App durch die Hörzonen klicken damit es funktioniert. Das widerspricht doch etwas dem Smart Home Ansatz

Hast du oder Thomas Feldmann noch eine Idee wie man die Hörzonensteuerung/-auswahl anders gestalten kann, damit es ohne App funktioniert?
Das wäre super, und ich kann euch genre einen meiner Connector 1 zur Verfügung stellen (3-6 Monate).

Gruß,
Martin
thomas_raumfeld
Stammgast
#271 erstellt: 19. Dez 2014, 11:19

DosiRocker (Beitrag #270) schrieb:
Hallo audio_file,
ich habs jetzt diese Woche mit der Applikation (mit FHEM als Haussteuerung) rumgespielt und prinzipiell funktioniert es, allerdings nur wenn ich die beteiligten Hörzonen über Nacht anlasse. Wenn ich den Strom ausschalteund dann wieder einschalte, muß ich erst in der App durch die Hörzonen klicken damit es funktioniert. Das widerspricht doch etwas dem Smart Home Ansatz

Ihr könnt die Zonen über den WebService zusammenbauen. Es gibt dafür das Kommando "connectRoomToZone":


connectRoomToZone

Description

Puts the room with the given roomUDN in the zone with the zoneUDN.
Outputs

XML containing the zone and its children like getZonesJob does.
Optional Parameter

zoneUDN: The udn of the zone to connect the room to. If zone udn is empty, a new zone is created
Optional Parameter

roomUDN: The udn of the room that has to be put into that zone. If empty, all available rooms (rooms that have active renderers) are put into the zone.


z.B:


http://hostip:47365/connectRoomToZone?zoneUDN=uuid:C8BB5907-8A7E-4ABC-A4D5-E76384D67F0E&roomUDN=uuid:78a665e1-707a-4d00-88eb-2bc6cb088a6c

Verbinden den Raum mit der UDN "uuid:78a665e1-707a-4d00-88eb-2bc6cb088a6c" zur Zone "C8BB5907-8A7E-4ABC-A4D5-E76384D67F0E". Die Zonen-UDN könnt Ihr Euch ausdenken, wenn es eine neue Zone sein soll. Die UDNs der Räume und der existierenden Zonen nehmt Ihr aus dem "getZones"-Aufruf.
audio_file
Ist häufiger hier
#272 erstellt: 19. Dez 2014, 14:20
@Thomas_Raumfeld Achso, cool, das werde ich mir vielleicht mal anschauen, aber ist wohl ein funktion, die in python-raumfeld gehört und daher überlasse ich das gerne Thomas (tfeldmann).

Ist es denn so, dass die Räume verloren gehen, wenn die Anlage über Nacht aus ist? Wenn ich meinen Connector kurz aus und an mache sind die Räume noch da, meine ich. @Martin: hat es bei Dir mit dem Wecker nun tatsächlich nicht gefunkt?

Update: @Martin: Oh hatte Dein Post oben gar nicht gelesen! Es geht also nicht mit über Nacht ausschalten Mal sehen... werde mir das Ganze vielleicht im neuen Jahr nochmal anschauen. Mit dem Hinweis von Thomas_Raumfeld scheint ja eine Lösung machbar zu sein!


[Beitrag von audio_file am 19. Dez 2014, 16:51 bearbeitet]
DosiRocker
Stammgast
#273 erstellt: 19. Dez 2014, 17:42

audio_file (Beitrag #272) schrieb:

.. @Martin: hat es bei Dir mit dem Wecker nun tatsächlich nicht gefunkt?

Update: @Martin: Oh hatte Dein Post oben gar nicht gelesen! Es geht also nicht mit über Nacht ausschalten Mal sehen... werde mir das Ganze vielleicht im neuen Jahr nochmal anschauen. Mit dem Hinweis von Thomas_Raumfeld scheint ja eine Lösung machbar zu sein! :)


Hallo Till,
da ich sowieso immer vor dem Wecker wach bin (senile Bettfucht) konnte ich es schön ausprobieren. Immer dann wenn ich mit der Raumfeld App vorher durch die Hörzonen zappe hat er funktioniert, wenn ich es nicht gemacht habe hat er nicht funktioniert. Interessanterweise, waren aber in deiner Web Applikation die beiden eingeschalteten Hörzonen immer zu sehen, allerdings konnte ich sie auch nicht manuell über die Webapplikation einschalten. Auch für die Steuerung mit der Web Applikation mußte ich die Hörzonen in der App vorher durchzappen.

Trotzdem finde ich eure Arbeit super und eröffnet ganz neue Spielereien Meine Familie freut sich schon

@Thomas R.: danke für deine Hilfe und dein Engagment auch im 3rd-Party Entwickler Thread

Gruß und Danke,
Martin
ulilicht2
Ist häufiger hier
#274 erstellt: 30. Dez 2014, 16:13
Hi zusammen,
da ich mittlerweile stolzer Besitzer der Stereo Ms bin geht das hacking los ;-)

Gibt es irgendwo eine Doku über den Webservice, die Endpunkte und die Kommandos?

Grüße
DosiRocker
Stammgast
#275 erstellt: 30. Dez 2014, 19:01
Hallo ulilicht,
ich befürchte da gibt es nur die Beiträge von Thomas R., der hier zum Glück immer mal wieder ein paar Infos einstreut.

Martin
ChriD
Stammgast
#276 erstellt: 30. Dez 2014, 19:50

ulilicht2 (Beitrag #274) schrieb:

Gibt es irgendwo eine Doku über den Webservice, die Endpunkte und die Kommandos?

Grundsätzlich alles Standard UPNP bis auf ein paar Feinheiten
ChriD
Stammgast
#277 erstellt: 09. Jan 2015, 17:28
Frage an thomas_raumfeld
Habt ihr auch ein webReqest für alle Räume? (auch inaktive) Oder bekomme ich nur jene über "getZones" ?
thomas_raumfeld
Stammgast
#278 erstellt: 09. Jan 2015, 19:43

ChriD (Beitrag #277) schrieb:
Habt ihr auch ein webReqest für alle Räume? (auch inaktive) Oder bekomme ich nur jene über "getZones" ?

Unter http://hostip:47365/index fidnest Du alle requests des WebService. getZones listet Dir alle Zonen, Räume und Renderer. was genau möchtest Du machen und welche Informationen benötigst Du dafür?
ChriD
Stammgast
#279 erstellt: 09. Jan 2015, 20:47
Ja ich kenne die Requests und hab sie mir auch alle angesehen.
Aber ich habe hier Räume, die gerade nicht verfügbar sind, nirgends drinnen stehen.
Ich hätte einfach gern eine Liste über ALLE in RF definierten Räume mit deren Einstellungen...
Also einfach gesagt ich möchte die Raumkonfiguration des Controllers bauen... (und nicht die XHTMLs von euch benutzen)
ChriD
Stammgast
#280 erstellt: 10. Jan 2015, 16:54
Hab noch eine Frage an Alle.

Wie kann ich im Linux (OpenSuse bzw. Debian Wheezy) "UPNP aktivieren" ?
Die Linux Distributionen (Oracle VM mit Bridged Network) finden keine UPNP devices

Hat da wer Ahnung?

EDIT: Okay vergesst es!!! Die Firewall war an.. Zumindest im SUSE


[Beitrag von ChriD am 10. Jan 2015, 17:04 bearbeitet]
audio_file
Ist häufiger hier
#281 erstellt: 11. Jan 2015, 03:21
Hey

zum Thema Musikzonen: Ich habe gerade ein neuen Release von rf.wr mit Musikzonenverwaltung und kleinen Verbesserungen auf github gepusht. Ich konnte die Zonenverwaltung nur in meinem begrenzten Setup prüfen und bin mir nicht sicher, ob sie bei Leerzeichen in Raumnamen oder Umlauten und anderen Sonderzeichen noch funktioniert (Über Rückmeldungen dazu wäre ich sehr glücklich! - Update: Leerzeichen gehen, Umlaute nicht!). Abgesehen davon funktioniert das Ganze bei mir zuverlässig. @Martin: Du solltest Deine Problematik nach dem Anschalten in den Griff bekommen, indem Du mit einer Kette Befehlen Zonen erstellst. Z.B. '/new_room/Wohnzimmer' und danach so oft '/add_room/Schlafzimmer' bis, alle Räume in der Zone sind. Da ich auch Thomas python-raumfeld wieder etwas anpassen musste, muss für eine Neuinstallation der gesamte Ablauf, wie auf github beschrieben, durchgespielt werden.

Music Zone Manager

In der Praxis als sehr tauglich erwiesen hat sich mittlerweile der Poddcast Support, endlich komme ich dazu aktuell erscheinende Folgen von Podcasts zu hören!


ChriD (Beitrag #279) schrieb:
Ja ich kenne die Requests und hab sie mir auch alle angesehen.
Aber ich habe hier Räume, die gerade nicht verfügbar sind, nirgends drinnen stehen.
Ich hätte einfach gern eine Liste über ALLE in RF definierten Räume mit deren Einstellungen...
Also einfach gesagt ich möchte die Raumkonfiguration des Controllers bauen... (und nicht die XHTMLs von euch benutzen)


Also ich habe für die Zonenverwaltung die Informationen, die über UPnP (mit python-raumfeld) ausgelesen werden können genutzt, aber nur zusammen mit den den Infos aus /getZones und den Funktionen /ConnectRoomToZone und /dropRoomJob lässt sich daraus was sinnvolles machen. Die "Raumfeld-Räume und Zonen" sind, soweit ich das verstehe, nicht Teil von UPnP und daher tauchen die Räume auch nicht in gupnp-universal-cp etc. auf. Dort werden nur die Zones (als Quasi-Renderer) und die Renderer angezeigt. Daher konnte ich keinen Weg finden ohne /gezZones an die UDNs der Räume zu kommen. Wenn es da einen anderen Weg gibt, wäre ich an dem vllt auch interessiert


[Beitrag von audio_file am 12. Jan 2015, 23:12 bearbeitet]
DosiRocker
Stammgast
#282 erstellt: 11. Jan 2015, 14:31
Hi Till,
das freut mich, dass du daran weiter gearbeitet hast.
Prinzipiell scheint es schon mal zu funktionieren. Was ich einfach noch nicht so wirklich verstehe, ist das Verhalten von Räumen/Zonen/Rendern usw.
Bevor ich die Zone Cube eingeschaltet habe, waren nur die Zonen Annika, FoobarPC und Zentrale/Wohnzimmer an, wobei FoobarPC aktiv war.
Nach dem Einschalten der Cube Zone ging diese aber sofort auf aktiv und ich konnte dort sofort einen Favoriten anspielen, ohne dass ich mit der Raumfeld App aktiv werden musste.
Meine Hörzonen
Leider kann ich jetzt nicht soviel simulieren, wie ich möchte (sonst gibt's Geschrei :D) und den Zustand am Morgen testen

Ich werde sicherlich noch etwas rumspielen und probieren :-)

Dankeschön,
Martin
ChriD
Stammgast
#283 erstellt: 12. Jan 2015, 01:16
Der Host merkt sich die Zonen teilweise... Zumindest ist das bei mir so...
audio_file
Ist häufiger hier
#284 erstellt: 12. Jan 2015, 22:59
Cool zu sehen, dass es auch mit mehr Räumen und Zonen geht ! Danke für den Screenshot! Da kriege ich direkt Lust weitere Renderer anzuschaffen! =)


ChriD (Beitrag #283) schrieb:
Der Host merkt sich die Zonen teilweise... Zumindest ist das bei mir so...

Bei mir ist das meist auch so. Habe dein Eindruck, dass laufene Apps auf irgendwelchen Smartdevices einen Einfluss darauf haben, was an Räumen nach dem Reboot da ist, aber das kann auch ein Fehleindruck sein.


DosiRocker (Beitrag #282) schrieb:

Bevor ich die Zone Cube eingeschaltet habe, waren nur die Zonen Annika, FoobarPC und Zentrale/Wohnzimmer an, wobei FoobarPC aktiv war.
Nach dem Einschalten der Cube Zone ging diese aber sofort auf aktiv und ich konnte dort sofort einen Favoriten anspielen, ohne dass ich mit der Raumfeld App aktiv werden musste.
artin


Die aktive Zone ist lediglich 'aktiv' in dem Sinne, dass alle Playback Befehle in rf.wr sich auf diese zone beziehen und das Räume, dieser Zone hinzugefügt werden können. Ich habe eine neue Version auf github geschoben in der sich rf.wr die 'aktive' zone jetzt merken kann, auch wenn sich die Gesamtkonfiguration verändert. Das geht so lange bis bis die Zone aufgelöst wird, dann springt er automatisch wieder auf zone 0. Die 'aktive zone' wird in einer Datei abgespeichert und ist somit auch nach dem Neutsart von rf.wr noch vorhanden.

Ich habe außerdem einen Befehl eingebaut, der recht hilfreich sein dürfte: Die aktive Zone kann nun auch über:


/zone_name/<Zonenname>
z.B. /zone_name/Wohnzimmer


ausgewählt werden.

Um nun also gezielt eine Zone mit mehreren Räumen zu erstellen und diese im Anschluss zu bespielen, würde ich folgende Befehlskette empfehlen, die unabhängig von der Ausgangskonstellation funktionieren sollte:


/new_zone/Cube
/zone_name/Cube
/add_room/Foobar PC
/add_room/Zentrale
/fav/1


ggf. musst Du noch Lautstärke befehle einbauen - da habe ich noch nicht so viel mit rumgepspielt.
DosiRocker
Stammgast
#285 erstellt: 14. Jan 2015, 00:43
Hallo Till,
willst du mir einfach deine Adresse zusenden, dann schicke dir einen Co1 zum Testen.
Früh schalten sich bei mir die Hörzone Cube und die Hörzone Wohnzimmer, Zentrale ein. Diese sollen nacheinander zeitversetzt einen Favoriten abspielen. Es funktioniert aber immer nur 1 Zone, vermutlich die die den Abend vorher als letzte aktiv war. Ich hatte auch schon gedacht, dass es ein Timing Problem ist, da evtl die Befehle zu schnell gesendet werden. Aber ich denke das kann ich momentan ausschliesen.
Ich muss mir dies am WE nochmal ansehen, aber das Testen ist nicht einfach.
Gruss
Martin
P.S. eigentlich will ich ja gar keine neuen Hoerzonen erstellen, sondern nur auf die Vorhandenen abspielen.
ChriD
Stammgast
#286 erstellt: 14. Jan 2015, 02:42
Hallo,

Kann mir jemand erklären (am besten einer von den RFJungs) wie man die AVTransportUri Encoded?
Ich finde da nicht wirklich eine logische Erkläreung. Teile davon sind double encoded(z.B. der Playlist Name).
Warum? Ich mein ich kann mir das schon vorstellen. Ihr speichert euch die Playlistnamen schon mit den Encodeden werten ab. Beim ecoden der
gesamten AVTransportUri werden sie dann aber doppelt encoded... (aber nur der Name, der Pfad nicht)

Dann schaut das so aus...

dlna-playcontainer://uuid%3aed3bd3db-17b1-4dbe-82df-5201c78e632c?sid=urn%3aupnp-org%3aserviceId%3aContentDirectory&cid=0%2FPlaylists%2FMyPlaylists%2FTest%2520%25282%2529&md=0


und das wäre die container id

0/Playlists/MyPlaylists/Test (2)

wobei "Test (2)" doppelt encoded ist und der pfad ("0/Playlists/MyPlaylists/") nicht


Ist jetzt irgendwie doof.. was muss ich jetzt doppel encoden in der containerid und was nicht?


[Beitrag von ChriD am 14. Jan 2015, 02:47 bearbeitet]
thomas_raumfeld
Stammgast
#287 erstellt: 14. Jan 2015, 11:50

ChriD (Beitrag #279) schrieb:
Ja ich kenne die Requests und hab sie mir auch alle angesehen.
Aber ich habe hier Räume, die gerade nicht verfügbar sind, nirgends drinnen stehen.
Ich hätte einfach gern eine Liste über ALLE in RF definierten Räume mit deren Einstellungen...
Also einfach gesagt ich möchte die Raumkonfiguration des Controllers bauen... (und nicht die XHTMLs von euch benutzen)

In dem xml ist zumindest die Information drin, dass es noch mehr Räume gibt. Wenn Du alle konfigurierten Räume haben willst, musst Du die Preferences verwenden. Der ConfigService hat einen call "GetPreferences". Dort übergibst Du einen base64 encodierten RSA-Public key mit dem die Preferences verschlüsselt werden. Der Output sind die verschlüsselten Prefs base64 codiert.

Wenn Du die Prefs wieder zurückschreiben willst, holst Du Dir mit "GetPublicKey" den Key des Config-Service und sendest ihm damit verschlüsselt die neuen Prefs.


$ echo "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FER292cTFFNG82am1oNlRTT3hWeU4yUDgyUApjT0w2TE02aC9vRGpQSkhGOHY3NCtoSlhkSUpHREw4ZUdkZE5LWENqNTJZSkpIMDFzQ1d2OWpTTUE2M2kvUkpBCjVYcXFmVVRJODNqL2MzRG9oSFR1dS85elBPb3lucGtNYWJYM0xTNjhMTC9wMFFURmFoRDI0S3UzVEE5ZUFtWEEKR1M1dXkyUkFlM1BNakRxRnB3SURBUUFCCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo=" | base64 -D
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGovq1E4o6jmh6TSOxVyN2P82P
cOL6LM6h/oDjPJHF8v74+hJXdIJGDL8eGddNKXCj52YJJH01sCWv9jSMA63i/RJA
5XqqfUTI83j/c3DohHTuu/9zPOoynpkMabX3LS68LL/p0QTFahD24Ku3TA9eAmXA
GS5uy2RAe3PMjDqFpwIDAQAB
-----END PUBLIC KEY-----




ChriD (Beitrag #286) schrieb:
Kann mir jemand erklären (am besten einer von den RFJungs) wie man die AVTransportUri Encoded?

guck mal in das Dokument "DLNA Networked Device Interoperability Guidelines: Architectures and Protocols", PDF Seite 247. "7.3.82 MM DLNA PlayContainer URI":


The cds-udn, service-id-val, object-id-val, sort-val, object-index-val, and max-depth- val tokens must be URI-escaped according to [44].


So sieht es bei uns in der Android App aus:


StringBuilder b = new StringBuilder("dlna-playcontainer://");

b.append(encode(deviceUDN));

b.append("?sid=");
b.append(encode(serviceID));

b.append("&cid=");
b.append(encode(containerID));

b.append("&md=0");

if (this.firstItemID != null)
{
b.append("&fid=");
b.append(encode(firstItemID));

b.append("&fii=");
b.append(this.firstItemIndex);
}
else if (this.firstItemIndex >= 0)
{
b.append("&fii=");
b.append(this.firstItemIndex);
}

if (this.searchQuery != null && !this.searchQuery.isEmpty())
{
b.append("&sq=");
b.append(encode(searchQuery.toString()));
}

if (this.sortCriteria != null && !this.sortCriteria.isEmpty())
{
b.append("&sc=");
b.append(encode(sortCriteria.toString()));
}

return b.toString();


Das doppelte Encoden findet statt, weil die ID des Containers schon encoded ist. Das was Du als Namen des Containers ansiehst (fett) ist Teil seiner ID: 0/Playlists/MyPlaylists/Test%20%282%29.
ChriD
Stammgast
#288 erstellt: 14. Jan 2015, 17:23
Danke thomas_raumfeld!
Das hilft mir weiter!

Das mit dem encoden muss ich mir mal genauer durchlesen.
Ich glaub ich verwechsle hier URI und URL encoding?
(URL ist eine spezifischere URI und ist anders zu encoden?)

Denn die container ID ist ja eigentlich ein queryPart und in queryParts bei URL's dürfen alle "/" escaped bzw. encoded werden was aber bei der AVTransportUri dann nicht stimmt, da hier bei der containerId dei "/"nicht encoded werden (bei der pfadangabe?) (cid=0/Playlist/...)nicht encoded sind

Naja das werd ich auch noch rausfinden
DosiRocker
Stammgast
#289 erstellt: 16. Jan 2015, 08:58
Hallo Till,
seit 3 Tagen funktioniert jetzt mein FHEM Wecker Setup (allerdings läuft es bei mir noch mit deinen vorletzen Änderungen).
Keine Ahnung, warum es Mo und Di nicht funktioniert hat. Ich werde es weiter beobachten.
Als nächstes werde ich testen, ob ich lokal gespeicherte MP3s abspielen kann und weiter mit der Hörzonensteuerung durch FHEM spielen.

Dankeschön,
Martin.


[Beitrag von DosiRocker am 16. Jan 2015, 08:58 bearbeitet]
maierp
Ist häufiger hier
#290 erstellt: 16. Jan 2015, 20:09
Hey Thomas und Till,
echt cool dieses Library-Projekt! Genau sowas habe ich gesucht :)

Ich habe versucht mir die Liste aller Zonen auszugeben, aber leider schlägt die discover() Funktion fehl, weil ich in manchen Raumnamen und Zonennamen Umlaute habe:


Traceback (most recent call last):
File "test.py", line 4, in <module>
devices = raumfeld.discover(timeout=1, retries=1)
File "/opt/raumfeld/python-raumfeld/raumfeld/__init__.py", line 60, in discover
devices = [RaumfeldDevice(location) for location in locations]
File "/opt/raumfeld/python-raumfeld/raumfeld/__init__.py", line 83, in __init__
self.friendly_name = str(next(d.device.friendlyName()))
UnicodeEncodeError: 'ascii' codec can't encode character u'xfc' in position 1: ordinal not in range(128)


Da gibt es Probleme mit dem Umwandeln von UTF-8 nach ASCII oder Unicode oder in der anderen Richtung. Nur habe ich gerade keine Idee, wo genau es fehlschlägt. :)

Hat da jemand einen Tipp?
Patrick
maierp
Ist häufiger hier
#291 erstellt: 16. Jan 2015, 21:50
Hi,
nachdem ich nun nicht mehr das Objekt "SimpleXMLElement" aus pysimplesoap hernehme, sondern "xml.dom.minidom" direkt, um den friendlyName etc. zu bekommen funktioniert es auch mit Umlauten und kann mit meinen ganzen Geräten testen.

Ich habe festgestellt, dass wenn ein Gerät neu dazukommt (also mit Strom versorgt wird) dass dann das discover() manchmal nicht alle Geräte zurückliefert. Nach einem erneuten Aufruf werden dann alle Geräte zurück gegeben.

Wäre es eine Idee für das discover() den Webservice request "getZones" von Raumfeld zu nutzen?

Greets und ein schönes Wochenende
Patrick
audio_file
Ist häufiger hier
#292 erstellt: 17. Jan 2015, 03:05

DosiRocker (Beitrag #289) schrieb:

seit 3 Tagen funktioniert jetzt mein FHEM Wecker Setup (allerdings läuft es bei mir noch mit deinen vorletzen Änderungen).

Hey cool! Wenn es läuft würde ich Dir empfehlen erstmal bei der Version zu bleiben, es kommt bald ein Update, dass sich dann wieder lohnt. Das Zone Management habe ih bereits mit einem Non-Raumfeld UPnP Renderer getestet und ich habe mir auch vorhin neue Raumfeld Hardware bestellt so dass ich Deinen Connector1 nicht brauchen sollte, aber danke für das Angebot!


DosiRocker (Beitrag #285) schrieb:

P.S. eigentlich will ich ja gar keine neuen Hoerzonen erstellen, sondern nur auf die Vorhandenen abspielen.


Wenn Du zu erst die Zone erstellst und aktivierst, kannst Du sicher sein, dass die gewünschte Zone auch existiert und danach aktiv ist - egal wie die Konfiguration vorher aussieht.


maierp (Beitrag #290) schrieb:
Hey Thomas und Till,
Ich habe versucht mir die Liste aller Zonen auszugeben, aber leider schlägt die discover() Funktion fehl, weil ich in manchen Raumnamen und Zonennamen Umlaute habe:


Cool, dass es einen weiteren Interessenten mit Bastelwille gibt Das Problem mit den Umlauten kann ich bestätigen, habe damit an anderer Stelle auch Probleme. Ich glaube das Problem auf libary ebene lässt sich lösen, wenn Du in der __init__,py aus


str(next(d.device.friendlyName()))



unicode(next(d.device.friendlyName()))

machst, habe das bei mir gerade geändert und es scheint zu funktionieren.


maierp (Beitrag #291) schrieb:

Wäre es eine Idee für das discover() den Webservice request "getZones" von Raumfeld zu nutzen?

Das wäre auf jeden Fall sinnvoll, ich habe das für meine Remote so gelöst, dass ich die Räume und deren Zonenzugehörigkeiten aus den library values generiere. Über getZones kommt man dann an die Room UDNs und unassigned rooms. Zudem prüfe ich die Ausgabe von getZones auf Veränderungen und löse dann eine Erneuerung der RaumfeldDevices aus, wenn sich irgendwas an der Raumkonfiguration geändert hat (Der aktuelle Code auf github hat das so noch nicht implementiert! ). Ich denke, dass dieses Verhalten für die lib auch sinnvoll wäre!

LG
thomas_raumfeld
Stammgast
#293 erstellt: 17. Jan 2015, 11:55

audio_file (Beitrag #292) schrieb:
Zudem prüfe ich die Ausgabe von getZones auf Veränderungen und löse dann eine Erneuerung der RaumfeldDevices aus, wenn sich irgendwas an der Raumkonfiguration geändert hat (Der aktuelle Code auf github hat das so noch nicht implementiert! ).

Ich habe jetzt den Code auf Github nicht genauer angeschaut, aber Du weisst, dass getZones und getDevices als Longpoll funktionieren? D.h. Du bekommst im Header eine UpdateID der Seite und sendest diese beim nächsten Request mit. Der Request stallt dann so lange, bis sich die Zonenconfig wieder ändert, dann kommt die Antwort mit der neuen UpdateID zurück, die Du wieder im Header mitsendest.
maierp
Ist häufiger hier
#294 erstellt: 17. Jan 2015, 15:11
Hi,
leider kenne ich mich nicht mit Python aus. Ansonsten würde ich gerne da recht viel Zeit reinstecken.
Aber ich schaue mir das trotzdem mal weiter an und versuche in Python etwas gebacken zu bekommen

Momentan wird ja über die Bibliothek bei jedem "discover" erneut nachgefragt, was es gibt. Hier würde ich gerne die Bibliothek so anpassen, dass sie sich wie von Thomas (RF) geschrieben auch per longpoll die updates gleich mitbekommt, wenn sich was ändert.
Hier könnte dann der Benutzer sich auch eine callback-Funktion registrieren, um die Änderung zu bekommen. Dafür müsste das dann mit Threads programmiert werden.

Vielleicht habe ich ja heute oder Morgen etwas Zeit um mit Python und Threading etwas genauer anzuschauen um hier etwas zu realisieren.

Aber alles nur Vorschläge, die nicht in die Library von Thomas übernommen werden müssen

Greets
Patrick
DosiRocker
Stammgast
#295 erstellt: 17. Jan 2015, 15:32
Ich kann mich nur als Tester zur Verfügung stellen

Also wenn ihr was Neues habt immer her damit

Martin
maierp
Ist häufiger hier
#296 erstellt: 17. Jan 2015, 23:00
Sooo,
bin gerade dabei mir Python anzueignen ;) und habe auch schon paar Zeilen Code geschrieben um die Ausgabe des "getZones" Requests zu verarbeiten und auszugeben.

Dabei ist mir aufgefallen, dass entweder ein Raum ganz "alleine" da stehen kann (in den "unassignedRooms") oder aber der Raum als einziger in einer Zone ist.

@Thomas (RF): was ist denn da Benutzertechnisch denn der Unterschied? in der RF-App werden beide Fälle ja gleich angezeigt. Für mich als Programmierer wäre es einfacher und "stimmiger" wenn ein Raum aus einer Zone mit mehreren Räumen herausgenommen wird, dass er dann selber wieder eine Zone erstellt in der er existiert (und nicht einfach so als "unassigned" herrumschwirrt). :)

@Thomas (RF): ist es eigentlich richtig, dass ein Raum auch mehrere Geräte also Renderer haben kann? Denn in der App kann man ja in der Raumconfig weitere Geräte hinzufügen. Das habe ich noch nie getestet. Wie verhält sich dann das Ganze auch bezüglich Lautstärke etc?

Weiterhin habe ich mir gedacht, dass die lib die folgenden Funktionen bieten könnte:


getZones(): liefert eine Liste von Zonen-Objekten <Zone[]>

<Zone>.getRooms(): liefert eine Liste von Räumen in der Zone <Room[]>
<Zone>.addRoom(<UDN>): fügt den Raum mit der <UDN> der Zone hinzu
<Zone>.removeRoom(<UDN>): entfernt den Raum mit der <UDN> aus der Zone
--Dann die ganzen schon in der lib geschriebenen Funktionen:
<Zone>.play()
<Zone>.pause()
<Zone>.play(...): verschiedene Ausprägungen, um angegebene Inhalte abzuspielen
<Zone>.mute(<bool>)
<Zone>.toggleMute()
<Zone>.Volume
etc.

<Room>.UDN: UDN des Raumes <String>
<Room>.Name: Name des Raumes <String>
<Room>.getRenderer(): liefert eine Liste der Renderer in dem Raum <Renderer[]>
--Das gleiche wie auch bei der Zone (play pause etc.)

<Renderer>.Name: Name des Renderers <String>
<Renderer>.UDN: UDN des Renderers <String>

getRoom(<String>): liefert eine Liste der Räume, deren Name oder UDN den angegebenen String enthalten <Room[]>


Die Liste oben ist jetzt einfach nur mal ein Teil, was mir gerade einfällt.

Was denkt ihr? Vor allem Thomas und Till?

Greets
Patrick
quadrophoeniX
Inventar
#297 erstellt: 18. Jan 2015, 15:44
Komplett ohne Kenntnisse des Codes, aber bei Raumfeld ist es ja so gelöst, dass es die physikalischen Player (in der Konfiguration “Speaker“ genannt - ich vermute, dies stellt den “unassigned room“ dar) Räume (welche fix aus mehreren Speakern bestehen können) und zuletzt Zonen gibt, welche sich per app dynamisch verwalten lassen. Als Spieler wählst du aus der (RF) App somit tatsächlich immer nur “Räume“ aus, die Player siehst du nur in den Systemeinstellungen. Bei UPnP CPs siehst du hingegen alle existierenden UPnP Komponenten und somit folgerichtig physikalischen Renderer, den Raum, den er (zu meist allein) bildet und die Zone. Zumindest war es damals mit plug Player so, als ich noch viel mit externen CPs und Renderern experimentierte.


[Beitrag von quadrophoeniX am 18. Jan 2015, 15:50 bearbeitet]
thomas_raumfeld
Stammgast
#298 erstellt: 18. Jan 2015, 17:08

maierp (Beitrag #296) schrieb:
@Thomas (RF): was ist denn da Benutzertechnisch denn der Unterschied? in der RF-App werden beide Fälle ja gleich angezeigt. Für mich als Programmierer wäre es einfacher und "stimmiger" wenn ein Raum aus einer Zone mit mehreren Räumen herausgenommen wird, dass er dann selber wieder eine Zone erstellt in der er existiert (und nicht einfach so als "unassigned" herrumschwirrt). :)

Eine "echte" Zone kostet auf dem Host Ressourcen (Ram, CPU-Power). Deswegen gibt es "unassigned rooms". Die App erstellt daraus intern "virtuelle Zonen" (mit gewürfelten UUIDs), die also nur der App bekannt sind. Damit kann man die Zonendialoge ganz normal verwenden, unabhängig ob es die Zone wirklich gibt oder nicht. Will man dann in so einer virtuellen Zone etwas abspielen, muss man erst mit addRoomToZone eine Zone auf dem Host erstellen und kann erst danach dort etwas abspielen.


maierp (Beitrag #296) schrieb:
@Thomas (RF): ist es eigentlich richtig, dass ein Raum auch mehrere Geräte also Renderer haben kann? Denn in der App kann man ja in der Raumconfig weitere Geräte hinzufügen. Das habe ich noch nie getestet. Wie verhält sich dann das Ganze auch bezüglich Lautstärke etc?

Ja das geht. Unter Einstellungen -> Raumkonfiguration -> Raum X kann man mit "Abspielgerät hinzufügen" einen Renderer einem Raum hinzufügen. Die Lautstärkeeinstellung wirkt sich dann immer auf beide Renderer aus. Das funktioniert gut bei zwei gleichartigen Renderern (2x One S jeweils als L und R konfiguriert). Wenn man unterschiedliche Renderer hat, muss man ggf. die zueinander relative Lautstärke anpassen, dafür gibt es aber noch keine GUI, man kann das nur auf der Commandline genau einstellen.


maierp (Beitrag #296) schrieb:
Die Liste oben ist jetzt einfach nur mal ein Teil, was mir gerade einfällt. Was denkt ihr?

Ich glaube für Hausautomation ist wichtig sich die Räume anhand des Names zu wählen (Zonen-UDNs können sich ändern).
maierp
Ist häufiger hier
#299 erstellt: 18. Jan 2015, 21:12
Hi,
kleines Update für heute:
Ich habe mir Python etwas angeeignet und mal Testcode geschrieben, der die beiden Raumfeld Web-Services "getZones" und "listDevices" in eine Objektorientierte Struktur bringt und ausgeben kann.

Als nächstes möchte ich mich daran machen einen Thread zu implementieren, der die Veränderungen der Devices und Zonen mit der LongPoll Methode erkennt und die nötigen Änderungen vornimmt.


thomas_raumfeld (Beitrag #298) schrieb:
Ich glaube für Hausautomation ist wichtig sich die Räume anhand des Names zu wählen (Zonen-UDNs können sich ändern).

Ja, das sehe ich genauso. Doch ich sehe diese lib erstmal als Werkzeug für einen Web-Service, den dann die Hausautomatisierungsleute verwenden können. Also genau die Erweiterung der bestehenden Lib von Thomas Feldmann.

Greets und guten Start in die Woche
Patrick
maierp
Ist häufiger hier
#300 erstellt: 19. Jan 2015, 13:12
@Thomas (RF):Wenn ich die Zonen und die Devices über den Webservice parse, dann habe ich festgestellt dass die Zonennamen manchmal nicht stimmen (zumindest interpretiere ich das so). Zum Beispiel hatte ich gestern eine Zone mit 2 Raumen (Küche, Arbeitszimmer). Heute ist das Gerät im Arbeitszimmer aus, wird auch nicht in der Zone gelistet, aber "listDevices" gibt mir als Zonennamen immernoch "Küche, Arbeitszimmer" aus. Ist das so gewollt, oder ist der Name nur nicht aktuell?

Und noch eine Frage: wie kann ich möglichst einfach die IP des Hostes finden?

Greets
Patrick


[Beitrag von maierp am 19. Jan 2015, 14:04 bearbeitet]
ChriD
Stammgast
#301 erstellt: 19. Jan 2015, 15:59

maierp (Beitrag #300) schrieb:

Und noch eine Frage: wie kann ich möglichst einfach die IP des Hostes finden?

ich suche mir hier einfach über den friendlyName ("Raumfeld ConfigDevice") der UPNP Geräte das Raumfeld ConfigDevice.(Und dort die IP über die PresentationUrl)
Ich denke das ist immer am HOST. (Früher hab ich mir die IP des MediaServer geholt für die HOST IP. Auch über den friendlyName des jeweiligen UPNP devices)
Was besseres hab ich auch nicht gefunden
Suche:
Gehe zu Seite: |vorherige| Erste 2 3 4 5 6 7 8 9 Letzte |nächste|
Das könnte Dich auch interessieren:
Raumfeld - 3rd-Party Applikation - Raumwiese
ChriD am 03.04.2013  –  Letzte Antwort am 20.01.2021  –  303 Beiträge
Raumfeld - 3rd-Party Applikation - Raumbruecke
ChriD am 10.10.2013  –  Letzte Antwort am 09.02.2015  –  37 Beiträge
Raumfeld - 3rd-Party Applikation - RAUMServer
ChriD am 09.02.2015  –  Letzte Antwort am 03.01.2021  –  422 Beiträge
Raumfeld - 3rd-Party Applikation - PyRaumfeld Python Library
maierp am 28.02.2015  –  Letzte Antwort am 14.06.2015  –  3 Beiträge
Raumfeld - 3rd-Party Applikation - node-red-contrib-raumfeld
Alex9779 am 07.02.2018  –  Letzte Antwort am 02.12.2018  –  4 Beiträge
Raumfeld für mehrere User
Johannes_Mxx am 25.06.2014  –  Letzte Antwort am 25.06.2014  –  7 Beiträge
Raumfeld Connector vs. Raumfeld Connector²
Mogalle am 02.06.2017  –  Letzte Antwort am 06.06.2017  –  5 Beiträge
Raumfeld-Boxen im W-Lan betreiben
Blauesocke am 20.07.2012  –  Letzte Antwort am 12.08.2012  –  5 Beiträge
Raumfeld Mac App: Raumbar (Open Source Projekt)
ulilicht2 am 22.01.2021  –  Letzte Antwort am 13.08.2022  –  6 Beiträge
Wer hat Raumfeld Speaker L Boxen?
wentom1 am 20.05.2012  –  Letzte Antwort am 09.02.2016  –  65 Beiträge

Anzeige

Aktuelle Aktion

Partner Widget schließen

  • beyerdynamic Logo
  • DALI Logo
  • SAMSUNG Logo
  • TCL Logo

Forumsstatistik Widget schließen

  • Registrierte Mitglieder925.721 ( Heute: 3 )
  • Neuestes Mitgliedharry_kleinmann
  • Gesamtzahl an Themen1.551.058
  • Gesamtzahl an Beiträgen21.537.015

Hersteller in diesem Thread Widget schließen