Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
wie Ihr in einem ähnlichen Post lesen könnt, möchte SAT Radio nur über den AVR und STB hören also ohne TV. Da aber alles gemeinsam über HDMI CEC An oder Aus geht, also beim starten der STB oder des AVR geht auch der TV an, suche ich eine Möglichkeit den nur den TV gezielt auszuschalten oder zuminsdest den Bildschirm auszuschalten (Ecomode). Da ich den Philips TV über Jointspace steure hab ich auch hier gepost.
Ich frage mich daher ob es möglich über den AVR (Denon) mit diesem Plugin und dem HS4 gezielt nur den TV über HDMI CEC auszuschalten? Leider hab ich bisher bei meinen Recherchen über HDMI CEC nicht herausgefunden ob man z.B. dem AVR sagen kann dass er nur ein bestimmtes Gerät ein- oder ausschalten soll.
ich hatte ein Plugin geschrieben für den Denon (siehe separater Post). Mein X3000 macht dann nur seinen Teil an. Mein Fernseher (Samsung) bleibt aus. Umgekehrt hatte ich das über HDMI so eingestellt, dass der Denon angeht wenn der Fernseher eingeschaltet wird. Das ist aber im Samsung in den Einstellungen festzulegen. Geht auch so, dass der AVR nicht mit angeht. Selbst in diesem Fall ist es so, dass wenn ich den AVR nachträglich einschalte, dass der Ton vom Fernseher an den AVR übergeben wird.
@Orion: hab dir gerade mal eine Issue auf Github eingestellt, bei mir gibt es aktuell Probleme im sh Threading durch das Plugin Ich habe das Problem, dass ich mit meinem Python 3.4 beim Abbruch mit STRG-C im Debugmodus von sh.py folgende Meldung - ausgelöst durch das Denon Plugin - kriege:
2016-04-02 09:10:33,227 INFO Main Thread: denon, still alive -- smarthome.py:stop:386
Exception ignored in:
Traceback (most recent call last):
File "/usr/local/python3/lib/python3.4/threading.py", line 1294, in shutdown
t.join()
File "/usr/local/python3/lib/python3.4/threading.py", line 1060, in join
self.wait_for_tstate_lock()
File "/usr/local/python3/lib/python3.4/threading.py", line 1076, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
File "/volume1/python/smarthome/bin/smarthome.py", line 390, in stop
exit()
File "/usr/local/python3/lib/python3.4/_sitebuiltins.py", line 26, in __call
raise SystemExit(code)
SystemExit: None
Ich vermute, dass es Probleme mit dem Beenden des Threads für das Plugin gibt, muss aber selber nochmals genauer analysieren. Denke das hat irgendwie mit dem Lock zu tun, dass Du setzt.
@Orion: aktuell kriege ich beim Senden einer Streaming URL folgendes (SOAP Body ebenfalls anbei). Ideen? Muss ich den 8080er erst irgendwie aktivieren? Früher hatte das aber alles wunderbar funktioniert.. Kenne leider die ganzen Services und URLs von Denon noch nicht so gut, wie jetzt von AVM... Auf welcher Doku baust Du auf?
2016-04-09 10:56:45,287 DEBUG Main <?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
<InstanceID>0</InstanceID>
<CurrentURI>http://www.radiodenon.com/pls/pls14570.m3u</CurrentURI>
<CurrentURIMetaData></CurrentURIMetaData>
</u:SetAVTransportURI>
</s:Body>
</s:Envelope>
-- __init__.py:_upnp_set_uri:343
2016-04-09 10:56:45,290 WARNING Main Problem fetching http://192.168.178.29:8080/AVTransport/ctrl: 400 Bad Request -- tools.py:fetch_url:90
PS: Verwende die aktuellste Version v 0.6 aus dem GIT, da die davor hier das Thread Lock nicht aufgelöst hat, da es 2mal gesetzt wurde...
OK, die Doku ist beim Denon einProblem, das ging nur mit Reverse Engineering. Es gibt nur eine beschränkte Beschreibung der Seriell Protokolls, das auch auf dem Telnet Interface des Denon drauf ist. Hierzu gibt es auch ein Plugin, allerdings ist dieses Interface nur für einen Teilnehmer möglich (bei Telnet klar) und die Verbindung ist instabil. Also viel Wireshark verwendet. Und ich hatte mit mal ein Paar UPNP Tools geschrieben (ist auch bei mir auf Github) um die UPNP Schnittstellen und Services von Mediageräten zu finden. BTW: Da wir auch ganz viel auf der AVM Seite der FB sichtbar. Ich hatte das mal als Alternative zum TR064 Protokoll zum Ausbau des FB Plugins angefangen. Aber das hattest Du ja dankenswerter Weise übernommen.
Der aktuelle Fehler kann dadurch entstanden sein, dass ich die Webrequests wie beim HUE Plugin gewünscht von einer lokalen Implementierung auf die von Tools.py zur verfügung gestellten Lösung umgestellt habe. Vielleicht ist mir dort ein Fehler reingerutscht. Ich hatte nur die ersten Schritte bei mir getestet. Ich glaube aber, dass ich weis, woran es liegen kann. Hier muß ich die Tools.py noch etwas aufbohren. Wahrscheinlich ist die Umsetzung von Headers noch nicht drin.
Als Alternative zu tools.py kann man ja auch die requests Bibliothek nutzen. Ist ganz schön, weiss aber nicht, ob die beim standard python mit dabei ist und wenn nicht, wie man die sinnvollerweise zu smarthome.py dazubekommt. Deine Meinung ?
OK, das mit der tools.py ist eine grössere Sache. Meine Erweiterung bislang ist OK, deckt nicht alles ab. Wenn ich weiter mache, verliere ich die Kompatibilität und das Restsystem nutzt die auch. Aus meiner Sicht wäre die requests Bibliothek langfristig die richtige Variante.
Aktuelle soweit behoben v0.63 aus dem Repo sollte es tun.
@Orion: ich habe für AVM ja auch "requests" genommen. Fand die Bibliothek ansich super und war bei mir sowohl unter Synology als auch unter dem "standard" Python Installer für Windows glaube ich dabei. Fand auch das Handling recht angenehm. Und auch keiner der bisherigen Tester hatte da größer Probleme (außer einem, der updaten musste)
Bin daher gerne dabei das als Standard für uns zu etablieren. Kann nur nicht viel zur Performance im Vergleich zu einer mehr "low level" Implementierung sagen. Ich hatte kurzzeitig schon überlegt, das Denon Plugin mit Requests gleich als nächstes Projekt neu zu schreiben, kann aber leider auch nicht alles machen. Steuerbar müsste ja noch deutlich mehr sein. Über das Abhören der App bzw die Web-GUI müsste man doch gut auslesen können. Ich dachte auch schon Datenblätter direkt von Denon gefunden zu haben.
Im Grunde hatte ich das so gemacht. Da über ein Befehl (der auch implementiert ist) im Grunde (fast) der gesamte Telnet Umfang emuliert werden kann ist der Umfang von AVRX3000_PROTOCOL(10.2.0)_V01.pdf (findest Du im Internet oder melde Dich, wenn Du das brauchst) bedienbar.
Jetzt kommt das aber: die Weboberfläche verwendet das nicht direkt, sondern andere Elemente. Teilweise gleiche Inhalte mit verschiedenen Bezeichnen (es gibt mal Zone 0, mal heißt diese Main Zone usw.). Nicht gerade freundlich. Auch die Stati kann man nicht mehr alle Abfragen (Höhen und Tiefen kann man setzen, aber nicht über diese Schnittstelle auslesen). Zumindest habe ich das bislang nicht geschafft.
Sofern request bei smarthome.py Einzug hält, dann würde ich den heutigen Stand noch auf requests umstellen. Habe ich schon an andere Stelle verwendet, sehe keine Performance Probleme. Mich Tiefer in die UPNP Thematik einzuarbeiten oder die SOAP Themen noch weiter zu nutzen, dazu habe ich keine Zeit, Du kannst aber gerne dort weitermachen.
Für mich ist wahrscheinlich dann das AVRX4000_PROTOCOL(10.3.0)_V01.zip interessant.. Zumindest ein Ansatz. Ich diskutiere auf Gitter mal das Thema "Requests". Den Core darauf umstellen weiß ich aber nicht.. Würde nur die Entscheidung als Standard "verwenden oder nicht verwenden" sinnvoll sehen. Grundlegend ist im Plugin aber irgendwo auch frei. Aber für Core Plugins wäre es ne gute Sache..
Ich bohre im Plugin gerne dann Features auf, die ich selber benötige. Bei den AVM Geräten ging es darüber hinaus, einmal reicht aber
Ich würde auch nur das Thema requests als Standard sehen. Den core umzustellen eher nicht. Wichtig ist, wie ein Neunutzer sinnvoll aus dem Repo die Installation machen kann, ohne dass er etwas vergisst oder lange Listen durcharbeiten muss.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar