Neues Thread für Denon Plugin Entwicklung
Thread zur Entwicklung des Plugins: https://knx-user-forum.de/smarthome-...tml#post366986
Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - Entwicklung Plugin mit mehreren IP Verbindungen
Einklappen
X
-
*shame*
Anderes Thema bitte :-)Zitat von mknx Beitrag anzeigenwar doch nicht so schwer :-).
Äääh ..... ja ..... *shame* ...... Problem erkannt und gelöst ....Zitat von mknx Beitrag anzeigenDenke ich auch, da gibt es wohl ein Problem mit der Item-Struktur.
Danke für die Hilfe. Bei weiteren Problemen werde ich ein Denon Thread aufmachen.
Einen Kommentar schreiben:
-
war doch nicht so schwer :-). Ich kann auf Anhieb keinen Fehler erkennen, der die Aktualisierung verhindert.Zitat von Foxi352 Beitrag anzeigen
Denke ich auch, da gibt es wohl ein Problem mit der Item-Struktur.Zitat von Foxi352 Beitrag anzeigenIch denke es hat was damit zu tun:
Bis bald
Marcus
Einen Kommentar schreiben:
-
https://github.com/Foxi352/plugin.de...er/__init__.pyZitat von mknx Beitrag anzeigencode auf github -> Hilfe :-)
Edit:
Ich denke es hat was damit zu tun:
Wenn ich über die VISU ein/aus schalte:
-> 2014-01-07 23:13:51,139 DEBUG Main Item EG.Stube.Denon.Power = False via Visu 192.168.80.173:55631 None -- item.py:__update:363
Wenn ein Status über das Denon reinkommt:
-> 2014-01-07 23:13:51,214 DEBUG Main Item Denon_Stube.Power = False via Denon 192.168.80.138 None -- item.py:__update:363
Da fehlt das "EG.Stube." davor ? Deshalb updated sich wahrscheinlich die VISU nicht ?
Einen Kommentar schreiben:
-
*Seuftz* .... Ok dann werd ich mit dem Denon für heute aufhören und die nächsten Stunden damit verbringen mit in dieses &%(/ç git einzuarbeiten :-(Zitat von mknx Beitrag anzeigencode auf github -> Hilfe :-)
Bis hierhin hab ich schon mal rausgefunden: https://github.com/Foxi352/plugin.denon
git config --global user.name und git config --global user.email sind auf meinem rpi gesetzt.
Jetzt muss ich nur noch rausfinden wie ich die Datei raufladen kann .... Ich verseh nicht dass GIT soviel komplizierter als SVN muss *sigh* ...
Einen Kommentar schreiben:
-
Hallo Serge,
du hast recht. Hatte sowas mal im Forum gelesen und deshalb nicht weiter gemacht. Habe gerade mal getetestet und meiner blubbert auch munter drauf los.
Gruß,
David
Einen Kommentar schreiben:
-
Nein, das ist nicht generell so.Zitat von JuMi2006 Beitrag anzeigen@Marcus/Robert:
Steht "{}" in der item.conf generell für value? Wenn nicht, wo machst Du das im Code von Squeezebox dass Du da den Wert des items übergibst?
Bis bald
Marcus
Einen Kommentar schreiben:
-
Dafür ja das dict in dem man die Befehle zerlegt und mappt. Das haben wir gerade beim EnOcean Plugin so gemacht und ein neues Gerät war mit 3 Zeilen Code eingefügt, hier könnte man das genauso machen...hab mich allerdings aus Zeitmangel noch nicht intensiv damit beschäftigt. Ich muss mich noch über meinen neuen Subwoofer (Harman Kardon HKTS 220) ärgern.
@Marcus/Robert:
Steht "{}" in der item.conf generell für value? Wenn nicht, wo machst Du das im Code von Squeezebox dass Du da den Wert des items übergibst?
Einen Kommentar schreiben:
-
@DK178: Danke, werd mir das mal anschauen. Allerdings beendet mein 1912 die Verbindung nicht. Und ich erhalte andauernd Statusmeldungen. Auch wenn ich Power, Volume, Source e.t.c. per Fernsteuerung ändere bekomme ich Rückmeldung. Eine Auswertung ist also ein Muss in diesem Fall :-)
@JuMi2006: Werd dir das morgen schicken
@mknx: Werd mir das mit dem Git mal anschauen. Bisher habe ich nur mit SVN gearbeitet, und das ist gelinde gesagt wesentlich einfacher :-) Verstärker ansteuern ist kein Problem mehr inzwischen. Aber mit den Rückmeldungen tue ich mich schwer... Habe mehrere Plugin Sources durchgekaut, werd aber nicht Klug daraus.
Ich habe in der Visu ein basic.switch das ich bei Rückmeldung ansteuern will. item ist EG.Stube.Denon.Power
Ich bekomme jetzt per found_terminator ein PWON vom Verstärker gesendet. Wie setze ich das oben genannte Item denn jetzt auf 1, True oder was auch immer damit die VISU das anzeigt ?
Hiiiiiilfe :-)
Einen Kommentar schreiben:
-
Hallo allerseits,
ich habe am Wochenende ebenfalls ein Denon-Plugin gebaut. Anbei findet ihr den Code. Das ganze basiert auf dem Russound-Plugin. Das kann gerne weiter entwickelt werden. Rückmeldungen gehen noch nicht.
Allerdings weiß ich noch nicht in wie weit man das braucht. Der Denon (ich habe einen 3313) schließt ja immer wieder die Verbindung und sendet nur auf aktive Anfrage.
Ich nutze aktuell Einschalten, Quellenwahl und Lautstärke. Denke Rückmeldungen werden eher in einer Visu gebraucht. Ich nutze das ganze eher in Szenen und Logiken.
Gruß,
DavidAngehängte Dateien
Einen Kommentar schreiben:
-
Hallo Serge,
herzlich Willkommen in der Entwickler-Gemeinde.
Lade Deinen Code doch schon mal in Dein Github Repository. Je eher, desto besser.
Schau Dir bei Gelegenheit auch mal https://github.com/mknx/smarthome/bl.../dev/README.md an.
Man kann beliebig viele Instanzen eines Plugins starten, das macht keinen großen Unterschied zu der unten genannten Variante. Solange das Plugin die run-Methode verlässt, reserviert sie auch keinen eigenen Thread. Nur wenn in der run-Methode eine Endlos-Schleife drin ist, wird ein separater Thread allokiert. Das ist z.B. bei Plugins notwendig die mit einer seriellen Schnittstelle kommunizieren.
Das lib.connection Modul zentralisiert und vereinfacht den Netzwerk-Zugriff und fasst ihn in dem Haupt-Thread zusammen.
Für die zweite Lösungsmöglichkeit kann ich Dir das mpd-Plugin empfehlen, dort kann man in einem Plugin-Instanz beliebig viele Connections bewerkstelligen.
Streng genommen, 'forkt' das Plugin separate Instanzen für die einzelnen Verbindungen. Aber sieh Dir den Code einfach mal an, der ist relativ übersichtlich.
Bis bald
Marcus
Einen Kommentar schreiben:
-
Im Code habe ich es auch nicht gefunden ... aber sieh mal hier:
https://knx-user-forum.de/324651-post34.html
Kannst Du mir dennoch Dein Sekeleton schicken ?
Einen Kommentar schreiben:
-
Eben. Genau das wollte ich damit sagen.Zitat von JuMi2006 Beitrag anzeigenKann man auch so machen, dann machen Sie in der plugin.conf aber gar keinen Sinn.
Richtig. Deshalb meine Bedenken. 3 x plugin sind 3 threads. Aber villeicht kann man das gleiche in einem thread, d.h. mit einem gestarteten Plugin machen FALLS man mit der lib.connection mehrere connections managen kann ...Zitat von JuMi2006 Beitrag anzeigenDas wären ja Threads die permanent laufen.
Da bin ich mir nicht so sicher. Ich glaube wie gesagt nur die <playerid> wird ersetzt, und zwar hier:Zitat von JuMi2006 Beitrag anzeigenDa irrst Du
. Sieh dir mal die Doku dazu an:
Der Rest von der Zeile, also z.B. "button volup" wird 1:1 gesendet denn dass sind die offiziellen Squeezebox CLI Kommandos. Natürlich wird {} noch durch das Bool oder den Wert ersetzt.Code:def _resolv_full_cmd(self, item, attr): # check if PlayerID wildcard is used if '<playerid>' in item.conf[attr]: # try to get from parent object parent_item = item.return_parent() if (parent_item is not None) and ('squeezebox_playerid' in parent_item.conf) and self._check_mac(parent_item.conf['squeezebox_playerid']): item.conf[attr] = item.conf[attr].replace( '<playerid>', parent_item.conf['squeezebox_playerid']) else: logger.warning( "squeezebox: could not resolve playerid for {0} from parent item {1}".format(item, parent_item)) return None return item.conf[attr]
Ist aber an sich auch egal, hat ja nichts mir unserem Denon zu tun ...
Werd mal anfangen mit einfach einem DENON und der host= in der plugins.conf. Falls das mal fertig ist kann man es ja immer noch umändern.
Bis bald
Einen Kommentar schreiben:


Einen Kommentar schreiben: