Plugin ‚avdevice‘ Konfiguration
Im folgenden sind etwaige Anforderungen und unterstützte Hardware beschrieben. Danach folgt die Beschreibung, wie das Plugin avdevice konfiguriert wird. Außerdem ist im folgenden beschrieben, wie das Plugin in den Item Definitionen genutzt werden kann. [1]
Es handelt sich bei diesem Plugin um ein interface Plugin.
ACHTUNG: Dieses Plugin ist als deprecated gekennzeichnet. Es wird empfohlen auf eine Nachfolgelösung umzusteigen.
Beschreibung
Steuerung eines AV Gerätes über TCP/IP oder RS232 Schnittstelle. Das Plugin unterstützt eine Vielzahl von AV-Geräten und wurde mit folgenden Geräten getestet: - Pioneer AV Receiver < 2016 - Denon AV Receiver > 2016 - Epson Projektor < 2010 - Oppo UHD Player Zu diesen Geräten gibt es eigene neue Plugins, die auf dem SmartDevice Framework aufbauen.
Anforderungen
pyserial Python Modul
Minimum SmartHomeNG Version: 1.6
Konfiguration
Im folgenden ist beschrieben, wie das Plugin avdevice konfiguriert wird. Außerdem ist im folgenden beschrieben, wie das Plugin in den Item Definitionen genutzt werden kann.
Parameter
Das Plugin verfügt über folgende Parameter, die in der Datei ../etc/plugin.yaml
konfiguriert werden:
autoreconnect
Automatischer Versuch, sich mit dem Gerät zu verbinden, wenn keine Rückmeldung kommt oder die Verbindung verloren wurde. Dies sollte nicht notwendig sein, da das Plugin ohnehin bei jedem neuen Senden eines Befehls einen Verbindungsaufbauversuch startet.
Datentyp: bool
Standardwert: False
depend0_power0
Wenn das dependson Item abgeschaltet ist, werden alle Poweritems ebenfalls auf 0 gesetzt. Das ist dann relevant, wenn beispielsweise das Gerät eingeschaltet ist, die Steckdose aber ausgeschaltet wird. Durch Aktivieren dieser Funktion werden automatisch die Poweritems auf 0 gesetzt.
Datentyp: bool
Standardwert: False
depend0_volume0
Wenn das dependson Item abgeschaltet ist, werden alle Volume Items ebenfalls auf 0 gesetzt. Das ist dann relevant, wenn beispielsweise das Gerät eingeschaltet ist, die Steckdose aber ausgeschaltet wird. Durch Aktivieren dieser Funktion werden automatisch die Poweritems auf 0 gesetzt.
Datentyp: bool
Standardwert: False
dependson_item
Wenn das angegebene Item den angegebenen Wert erhält, werden die Befehle gesendet, ansonsten nicht. Das ist insbesondere dann sinnvoll, wenn das Gerät an einer schaltbaren Steckdose hängt.
Datentyp: str
dependson_value
Wenn das angegebene Item den angegebenen Wert erhält, werden die Befehle gesendet, ansonsten nicht. Das ist insbesondere dann sinnvoll, wenn das Gerät an einer schaltbaren Steckdose hängt.
Datentyp: bool
Standardwert: True
errorresponse
Standard Fehlermeldungen des Geräts, bei Pioneer beispielsweise ein ‚E‘ gefolgt von einer Nummer. Werden diese Antworten hier nicht angegeben, werden Rückmeldungen unter Umständen deutlich langsamer verarbeitet, aber voraussichtlich trotzdem erkannt.
Datentyp: str
Standardwert: E02,E04,E06
forcebuffer
Wenn aus irgendeinem Grund die Antworten nicht gepuffert werden sollen, können hier dennoch Antworten definiert werden, die sehr wohl gepuffert werden. Dies ist besonders wichtig bei Informationen, die schnell hintereinander gesendet werden bzw. wechseln wie Künstler, Musiktitel, Radiostation, etc. Der Defaultwert ist für Pioneer Receiver empfohlen.
Datentyp: str
Standardwert: GEH01020,GEH04022,GEH05024,R
ignoreresponse
Das Plugin ignoriert Antworten die mit den hier angegebenen Werten starten, beispielsweise Rückmeldungen für die Menünavigation, etc. Der Defaultwert ist für Pioneer Receiver empfohlen.
Datentyp: str
Standardwert: RGB,RGC,RGD,GBH,GHH,VTA,AUA,AUB
inputignoredisplay
Die LCD Anzeige auf dem Gerät wird mitunter sehr häufig aktualisiert, zB bei einem scrollenden Text bei Songtiteln. Um ein ständiges Update und dadurch Konflikte mit tatsächlich relevanten Rückmeldungen zu vermeiden, können hier Source Typen hinterlegt werden. Internet Radio, LAN Streaming, etc. werden empfohlen. Für Pioneer-Receiver werden empfohlen: 26,38,40,41,44,17,02,48,0
Datentyp: str
lineending_response
Zeichnfolge am Ende einer Antwort
Datentyp: str
Standardwert: rn
lineending_send
Zeichenfolge zum Beenden des Kommandos (z.B. Zeilenende)
Datentyp: str
Standardwert: r
model
Name des Geräts. Es ist notwendig, eine Text-Datei mit dem hier angegebenen Dateinamen (Endung txt) im Pluginunterordner models
anzulegen. Der Aufbau dieser Datei wird im user_doc detailliert beschrieben.
Datentyp: str
reconnectretries
Anzahl der Verbindungsversuche bei Verbindungsproblemen. Das ist insbesondere bei TCP Verbindungen von Geräten relevant, die an schaltbaren Steckdosen hängen, da diese oftmals 30-40 Sekunden zum Hochfahren benötigen.
Datentyp: int
Standardwert: 13
resendwait
Angabe der Pause zwischen Resend Versuchen in Sekunden
Datentyp: float
Standardwert: 1.0
resetonerror
Zurücksetzen des Items auf den vorigen Wert, wenn kein Update durchgeführt werden konnte, zB das Setzen der Lautstärke in einer abgeschalteten Zone. Sobald das dependson Item ausgeschaltet wird oder mehrere Verbindungs- und Sendeversuche fehlgeschlagen sind, wird das Item zurückgesetzt, damit keine falschen Werte in der Visu angezeigt werden.
Datentyp: bool
Standardwert: False
responsebuffer
Schnell hintereinander empfangene Werte werden bei einer negativen Attributangabe im Puffer gespeichert und gemeinsam verarbeitet. Der Standardwert sollte dafür sorgen, dass keine Antworten verloren gehen. Einige Receiver antworten unter Umständen immer zuerst mit der Angabe zum auf dem Display gezeigten Wert. Der Puffer sorgt dafür, dass auch eine nachfolgende Rückmeldung evaluiert wird.
Datentyp: int
Standardwert: 5
rs232_baudrate
Beim Nutzen einer RS232 Schnittstelle ist die benötigte Baudrate anzugeben.
Datentyp: int
Standardwert: 9600
rs232_port
Beim Nutzen einer RS232 Schnittstelle (empfohlen!) ist die serielle Schnittstelle anzugeben.
Datentyp: str
rs232_timeout
Beim Nutzen einer RS232 Schnittstelle kann ein Timeout zum Lesen und Schreiben definiert werden.
Datentyp: float
Standardwert: 0.1
secondstokeep
Dauer in Sekunden, wie lange ein Kommando, das nicht erfolgreich war in einem Zwischenspeicher aufbewahrt werden soll. Dies ist besonders bei TCP Verbindungen mit Geräten an schaltbaren Steckdosen relevant, da diese ofmals 30-40 Sekunden zum Hochfahren benötigen.
Datentyp: int
Standardwert: 50
sendretries
Dieser Wert definiert, wie oft bei einer falschen Antwort versucht werden soll, den Befehl nochmals zu senden.
Datentyp: int
Standardwert: 10
statusquery
Verbindet sich das Plugin, werden die Werte automatisch abgefragt, auch wenn kein Depend=Init im Item angegeben ist. Sollen nur Items abgefragt werden, bei denen das depend-Attribut auf init gesetzt ist, sollte dieser Wert auf False gestellt werden.
Datentyp: bool
Standardwert: True
tcp_ip
Beim Nutzen der TCP Verbindungen ist die IP Adresse des Endgeräts anzugeben.
Datentyp: ip
Standardwert: 0.0.0.0
tcp_port
Beim Nutzen der TCP Verbindungen ist der Port anzugeben, auf dem das Gerät Verbindungen zulässt. Für Denon: 23, für Pioneer: 8002.
Datentyp: int
Standardwert: 23
tcp_timeout
Beim Nutzen der TCP Verbindungen kann ein Timeout angegeben werden.
Datentyp: int
Standardwert: 1
update_exclude
Caller, bei denen kein Itemupdate vollzogen werden soll. Dies ist hilfreich, um beispielsweise mittels on_change Items abhängig von einem anderen Item zu aktualisieren, ohne dass die Updatefunktion des Plugins getriggert wird (z.B. für play/stop/pause). Es können mehrere durch Komma getrennte Einträge definiert werden.
Datentyp: str
Item Attribute
Das Plugin unterstützt folgende Item Attribute, die in den Dateien im Verzeichnis ../items
verwendet werden:
avdevice
Das Attribut muss mit dem Kommando ergänzt werden, das in der Text Datei im Ordner models hinterlegt ist, zB power oder volume Außerdem gibt es zwei spezielle Parameter, die bei Bedarf eingesetzt werden können: - avdevice: statusupdate: Dieses Item wird genutzt, um eine komplette Statusabfrage durchzuführen. Es werden alle Query-Kommandos an das Gerät geschickt, was vor allem nach dem Einschalten einer geschaltenen Steckdose relevant ist. - avdevice: reload: Dieses Item wird genutzt, um die Textkonfiguration neu zu laden. Dadurch werden das Kommando-File im models Ordner sowie die Dateien im translations Ordner neu gelesen. So ist ein Ausbessern von Befehlen ohne Plugin-Neustart möglich.
Datentyp: str
avdevice_depend
Hier wird der Funktionsname ohne Zonenbezug eingefügt, von dem das Aktualisieren des Items abhängig sein soll. Der Bass des Verstärkers lässt sich beispielsweise nur ändern, wenn Tone aktiviert ist. tone = True
führt dazu, dass das Item nur geändert wird, wenn die Bedingung erfüllt ist. Mehrere Bedingungen werden als oder
interpretiert. Eine genauere Beschreibung ist in den user_doc zu finden.
Datentyp: list(str)
avdevice_init
Über dieses Attribut lässt sich ein anderes Item auf einen bestimmten Wert setzen, sobald das Plugin sich mit dem Gerät verbindet. Der Wert muss bereits als avdevice-Attribut bei einem anderen Item hinterlegt sein.
Datentyp: str
avdevice_speakers
Soll zwischen Lautsprecher A, B und AB umgeschaltet werden, bietet es sich an, dies über dieses Attribut zu definieren. Als Wert muss hier der zu sendende Wert angegeben werden.
Datentyp: str
avdevice_zone0
Das Attribut muss mit dem Kommando ergänzt werden, das in der Text Datei für Zone 0 hinterlegt ist, zB power oder volume.
Datentyp: str
avdevice_zone0_depend
Hier wird der Funktionsname für Zone 0 eingefügt, von dem das Aktualisieren des Items abhängig sein soll. Der Bass des Verstärkers lässt sich beispielsweise nur ändern, wenn Tone aktiviert ist. tone = True
führt dazu, dass das Item nur geändert wird, wenn die Bedingung erfüllt ist. Mehrere Bedingungen werden als oder
interpretiert.
Datentyp: list(str)
avdevice_zone0_init
Über dieses Attribut lässt sich ein anderes Item in Zone 0 auf einen bestimmten Wert setzen, sobald das Plugin sich mit dem Gerät verbindet. Der Wert muss bereits als avdevice-Attribut bei einem anderen Item hinterlegt sein.
Datentyp: str
avdevice_zone0_speakers
Soll in Zone 0 zwischen Lautsprecher A, B und AB umgeschaltet werden, bietet es sich an, dies über dieses Attribut zu definieren. Als Wert muss hier der zu sendende Wert angegeben werden.
Datentyp: str
avdevice_zone1
Das Attribut muss mit dem Kommando ergänzt werden, das in der Text Datei für Zone 1 hinterlegt ist, zB power oder volume
Datentyp: str
avdevice_zone1_depend
Hier wird der Funktionsname für Zone 1 eingefügt, von dem das Aktualisieren des Items abhängig sein soll. Der Bass des Verstärkers lässt sich beispielsweise nur ändern, wenn Tone aktiviert ist. tone = True
führt dazu, dass das Item nur geändert wird, wenn die Bedingung erfüllt ist. Mehrere Bedingungen werden als oder
interpretiert.
Datentyp: list(str)
avdevice_zone1_init
Über dieses Attribut lässt sich ein anderes Item in Zone 1 auf einen bestimmten Wert setzen, sobald das Plugin sich mit dem Gerät verbindet. Der Wert muss bereits als avdevice-Attribut bei einem anderen Item hinterlegt sein.
Datentyp: str
avdevice_zone1_speakers
Soll in Zone 1 zwischen Lautsprecher A, B und AB umgeschaltet werden, bietet es sich an, dies über dieses Attribut zu definieren. Als Wert muss hier der zu sendende Wert angegeben werden.
Datentyp: str
avdevice_zone2
Das Attribut muss mit dem Kommando ergänzt werden, das in der Text Datei für Zone 2 hinterlegt ist, zB power oder volume
Datentyp: str
avdevice_zone2_depend
Hier wird der Funktionsname für Zone 2 eingefügt, von dem das Aktualisieren des Items abhängig sein soll. Der Bass des Verstärkers lässt sich beispielsweise nur ändern, wenn Tone aktiviert ist. tone = True
führt dazu, dass das Item nur geändert wird, wenn die Bedingung erfüllt ist. Mehrere Bedingungen werden als oder
interpretiert.
Datentyp: list(str)
avdevice_zone2_init
Über dieses Attribut lässt sich ein anderes Item in Zone 2 auf einen bestimmten Wert setzen, sobald das Plugin sich mit dem Gerät verbindet. Der Wert muss bereits als avdevice-Attribut bei einem anderen Item hinterlegt sein.
Datentyp: str
avdevice_zone2_speakers
Soll in Zone 2 zwischen Lautsprecher A, B und AB umgeschaltet werden, bietet es sich an, dies über dieses Attribut zu definieren. Als Wert muss hier der zu sendende Wert angegeben werden.
Datentyp: str
avdevice_zone3
Das Attribut muss mit dem Kommando ergänzt werden, das in der Text Datei für Zone 3 hinterlegt ist, zB power oder volume
Datentyp: str
avdevice_zone3_depend
Hier wird der Funktionsname für Zone 3 eingefügt, von dem das Aktualisieren des Items abhängig sein soll. Der Bass des Verstärkers lässt sich beispielsweise nur ändern, wenn Tone aktiviert ist. tone = True
führt dazu, dass das Item nur geändert wird, wenn die Bedingung erfüllt ist. Mehrere Bedingungen werden als oder
interpretiert.
Datentyp: list(str)
avdevice_zone3_init
Über dieses Attribut lässt sich ein anderes Item in Zone 3 auf einen bestimmten Wert setzen, sobald das Plugin sich mit dem Gerät verbindet. Der Wert muss bereits als avdevice-Attribut bei einem anderen Item hinterlegt sein.
Datentyp: str
avdevice_zone3_speakers
Soll in Zone 3 zwischen Lautsprecher A, B und AB umgeschaltet werden, bietet es sich an, dies über dieses Attribut zu definieren. Als Wert muss hier der zu sendende Wert angegeben werden.
Datentyp: str
avdevice_zone4
Das Attribut muss mit dem Kommando ergänzt werden, das in der Text Datei für Zone 4 hinterlegt ist, zB power oder volume
Datentyp: str
avdevice_zone4_depend
Hier wird der Funktionsname für Zone 4 eingefügt, von dem das Aktualisieren des Items abhängig sein soll. Der Bass des Verstärkers lässt sich beispielsweise nur ändern, wenn Tone aktiviert ist. tone = True
führt dazu, dass das Item nur geändert wird, wenn die Bedingung erfüllt ist. Mehrere Bedingungen werden als oder
interpretiert.
Datentyp: list(str)
avdevice_zone4_init
Über dieses Attribut lässt sich ein anderes Item in Zone 4 auf einen bestimmten Wert setzen, sobald das Plugin sich mit dem Gerät verbindet. Der Wert muss bereits als avdevice-Attribut bei einem anderen Item hinterlegt sein.
Datentyp: str
avdevice_zone4_speakers
Soll in Zone 4 zwischen Lautsprecher A, B und AB umgeschaltet werden, bietet es sich an, dies über dieses Attribut zu definieren. Als Wert muss hier der zu sendende Wert angegeben werden.
Datentyp: str
Logik Parameter
Das Plugin verfügt über folgende Parameter, die in der Datei ../etc/logic.yaml
konfiguriert werden:
Keine Logik Parameter in den Metadaten beschrieben - Bitte in der README nachsehen (siehe Fußnote)
Plugin Functions
Das Plugin verfügt über folgende öffentliche Funktionen, die z.B. in Logiken aufgerufen werden können.
Keine