ich hab die Scripte von philipp erfolgreich eingebunden - zumindest das Empfangen der Stausmeldungen vom DENON (2309, per Seriell-USB-Adapter und SILEX an IPS angebunden).
Offensichtlich habe ich aber den Umgang mit dem System zum Senden von Befehlen an den DENON noch nicht verstanden.
Was habe ich bereits gemacht:
1x Serialport-Instanz für den DENON eingerichtet (COM6)
1x Cutter-Instanz mit übergeordneter Instanz "DENON serial COM6) eingerichtet
1x Register-Variable mit übergeordneter Instanz „Cutter“ angelegt, Zielscript ist DENON_Status
beide Scripte von Philipp im ersten Post innerhalb der Kategorie „DENON“ angelegt: 1x DENON_Status und 1x DENON_Functions,
nun habe ich innerhalb der Kategorie DENON ein Testscript angelegt mit folgendem Code:
wenn ich das Scrip in der IPS-Konsole ausführe bekomme ich folgende Fehlermeldung:
Fatal error: Call to undefined function includeNamedScript() in [Denon est] on line 2
was mache ich falsch? -> die ID „31198“ ist die von der Kategorie „DENON“, sollte das nicht eher die serielle Schnittstelle (COM6) sein (hab ich natürlich probiert, gibt noch mehr Fehler)?
die ID muss korrekterweise die ID des I/O Portes sein. Also bei dir die ID des seriellen Portes.
Aber genau das ist auch das Problem. Das Functions Script ist für einen ClientSocket geschrieben, und nicht für den seriellen Port.
Das siehst Du im Functionsscript an den ganzen Befehlen welche mit CSCK_ beginnen. Wenn du diese Befehle durch die Befehlssyntax für den Seriellen Port ersetzt, sollte es klappen.
kurze Rückmeldung: es funktioniert tadellos, hab „CSCK“ in den Functions gegen „COMPort“ getauscht und schon läuft’s
…Mal wieder ein Erfolgserlebnis für mich als Neueinsteiger.
Kann es sein, dass Du noch nicht alle Funktionen/Events eingebaut hast? Ich hab gestern vergebnich nach den QuickSelect-Funktionen (QUICK1 - QUICK3) gesucht und nicht gefunden.
Ich versuche mal, das in die Scripts mit einzubauen, befürchte aber dass mein know-How noch nicht ausreichend ist (für die Functions reicht’s gerade noch aber bei den Status schaue ich „wie ein Schwein ins Uhrwerk“)
nachdem ich meine serielle Anbindung des 2309 auf Eis gelegt habe (z.B. die Volume-Steuerung war einfach nicht praktikabel), habe ich das Thema nun erneut aufgenommen um jetzt einen 3311 anzubinden. Die Grundfuktionen klappen aauch perfekt. Allerdings habe ich regelmässig Fehler im Log:
IPS-Err-PHP 2011-04-03 14:55:45.495 Notice: Undefined variable: value
Error in Script C:\IP-Symcon\scripts\17630.ips.php on Line 184
10 in IPSLogger.ips.php (call IPSLogger_Out)
20 in IPSLogger_PhpErrorHandler.ips.php (call IPSLogger_Err)
184 in 17630.ips.php (call IPSLogger_PhpErrorHandler)
Offensichtlich liegt das daran, dass der 3311 eine Reihe neuer 3-stelliger Events sendet (Beispiel: „NSE“, Request Onscreen Display Information List, Quelle: Protokoll-Doku 3311) - das war bei meinem 2309 nicht relevant (da wäre das nur beim iPod der Fall gewesen, hab ich nicht). Da ich PHP-Seitig noch nicht so richtig fit bin, kannst Du mir Tipps geben, wie die neuen Events und Informationen in Dein Script eingebaut werden können?
Immer locker bleiben, ich werd’s noch veröffentlichen. Ich hab die Funktionenn nur sehr hektisch und kaum dokumentiert ins Script geschmiert dass das niemendem zugemutet werden kann. Es sind auch noch nicht alle Funktionen drin, schon gar nicht getestet. Wird also noch dauern.
Beiden alten Receivern gab und gibt es diese Version doch weiterhin.
Der Wert wird ja mit unterschiedlichen Paramtern geliefrt und wird auch in einer anderen Variablen gespeichert. Von daher können doch beide parallel im Script bleiben. Dadurch bleibt es universell nutzbar.
Derzeit arbeit ich an meinem ersten echten Modul („Viessmann Heizungssteuerung“, senden und empfangen geht schon ;)).
Im Vergleich dazu dürfte ein „AV Receiver“-Modul einfacher sein, aber - wie Philip schon schrieb - die liebe Zeit.
Angedacht sind jedenfalls:
Ein AV-Modul für Denon, Pioneer und Marantz (also AVR mit offengelegter COM/Socket Kommunikation) welches Statusvariablen inkl. Interaktion (Quellenwahl, Lautstärke setzen, etc.) bieten soll.
ich habs mal für beide AVR-Varianten eingebaut. Bei mir funktioniert es, vielleicht kann das jemand mit einem AVR3809 o.Ä. testen und mir Feedback geben: