NEWS
Pioneer AVR Skript
-
Hi zusammen,
ich habe mich mal an einem Adapter getestet und aus dem vorgegebenen Code einen Pioneer Adapter bebaut.
Falls jemand Interesse hat, der kann ihn gerne mal testen. Ich habe ihn unter https://github.com/hash99/ioBroker.pioneer.git eingestellt.
Aber ich bin definitiv noch nicht so erfahren, Adapter zu bauen. Also erwartet nicht zu viel.
-
Hallo,
danke für deine Arbeit!
kannst du den Adapter anpassen, dass man den Port auch wählen kann? Manche reagieren nicht auf 23, sondern auf 8102?
Oder hab ich was übersehen?
Gruß
-
schade, bei meinem vsx510 (slim) scheint es nicht zu funktionieren `
Beim VSX510 ist der Port auch 8102, als Script läuft das ganze auch bei mir, man kann nur keinen festen Lautstärke wert übergeben. Glaube das geht aber bei einigen Modellen nicht.
Gruß
-
Hi, ich schau mal, dass ich den Port die nächsten Tage einbaue.
-
Hi,
vielen Dank Beb0e für Deine Unterstützung, merge ist erfolgt.
–->
Also nun funktioniert auch die Port-Zuweisung!
-
Hallo zusammen,
ich habe seit eben ein kleines Problem, vielleicht hat hier jemand die zündende Idee…
Ich habe einen VSX 828, bei dem ich (bisher erfolgreich) über dieses Script den Status I/0 ausgelesen habe (pioneer.onState), u.a. um davon abhängig einen Subwoofer ein- bzw. auszuschalten.
Ich habe eben die Boxen umgestellt und daher im Pioneer Menü einige Änderungen vorgenommen.
Ob dies ursächlich ist oder nicht, weiß ich nicht.
Seitdem wird der pioneer.onState jedoch nicht mehr aktualisiert und meine ganzen Scripte sind nutzlos
Hat jemand hier eine Idee, woran das liegen könnte?
Ein- und ausschalten sowie andere Befehle werden über das Script angenommen...
Grüße!
Edit:
Problem wurde eben gelöst. Ich bin mir selbst noch unsicher, warum genau.
Aber ich habe die Einstellungen des AVR eben noch einmal in allen möglichen Kombinationen durchprobiert.
Als ich die Einstellungen "Speaker System" auf "Heights" gesetzt habe, ging es auf einmal wieder.
Ich bezweifle eigentlich, dass das irgendwelche Auswirkungen auf das Script etc. hat, bin aber letztendlich einfach froh, dass wieder alles funktioniert.
Guten Rutsch!
-
ich grätsche mal hier rein, habe einen Pioneer VSX-831-B , kann ich da dieses Script ebenfalls verwenden, habe den Onkyo Adapter installiert, oder brauch ich den dann gar nicht?
-
Hi, bin absoluter Neuling .
kann man mit einem solchen Skript auch einen Internetradiosender direkt wählen,
wenn ja, wie.?
Lautstärke und Power funktioniert mit meinem VSX 932 problemlos.
Danke
@MyzerAT
Meiner Meinung nach brauchst du den Adapter nicht,ist bei mir nicht gestartet, der läuft nur auf den neueren Geräten (EISCP protocol) und da wiederum brauchst du das Skript nicht -
habe meinen erst voriges Jahr gekauft, so alt kann der ja noch nicht sein !
Also der Adapter funktioniert, ja nur mit der Lautstärke hab ich mein Problem!
-
Hallo in die Runde
ich hatte mitte letztes Jahr schon mal angefragt ob es möglich ist :Bei meinem VSX 922,
wie setzte ich die Listenings Befehle in IOB und gibt es eine Möglichkeit die Display Infos in IOB sichtbar zu machen ?Und da ich auch gern mal den Tuner bzw. Radio höre - kann ich ihrgendwie die Tasten 0 - 9 belegen ?
Bin noch ein ziehmlicher Neuling in der Sache, habe auch noch ein 2. Script gefunden,
funktioniert aber dann gar nicht. ( via IP-Protokoll )
Der obengenannte Adapter lässt sich nicht installieren. Ich habe nur die Sachen von Stormboy installiert bekommen und das klappt auch alles.Mfg. schroeder1
-
Hallo,
Altes Thema.
Ich habe einen VSX-922 und über iobroker hatte ich bisher einen Adapter, den es auf github gibt installiert. Nach einigen/ständigen Problemen möchte ich die Handvoll Befehle irgendwie selbst im Javascript coden.Ich möchte:
EIN/AUS
Lautstärke
Mute ein/aus
Input-Kanal
über die Kommandos triggern. d.h. eh nur einen kleinen Bruchteil der Möglichkeiten.Kann mir wer sagen, wie ich das an den Receiver schicken muss und wie ich darin die Kommandos interpretieren muss, die auf der Pioneer-Seite zur Verfügung gestellt wurden?
https://www.pioneere...tall/SC-37-RS232.pdfalso irgendwas mit http://"+PORT+":23"+command=XYZ" ???
Grüß
-
@sichreid
Ich habe vor Jahren (für mich) ein Pioneer-Tool für meinen VSX-922 unter VB6 programmiert.Das läuft aktuell noch auf einem alten Windows Tablet. Da das Tablet schon einiges älter ist, könnte ich langsam mal auf was Aktuelles wechseln. Evtl unter iobroker. Welchen Adapter meinst du da und welche Probleme hattest du?
Die Befehle werden per Telnet übermittelt. Der VSX lässt sich über zwei Verbindungen gleichzeitig steuern. Einmal Standard - Port und einmal ein anderer Port, welchen ich gerade nicht im Kopf habe. Die Verbindung bleibt normal die ganze Zeit bestehen. Wenn der VSX Kommunikationsprobleme hatte, hast es geholfen, den Netzstecker für länger als 30 Sekunden zu ziehen.
-
@peterfido
Hallo,
Vielen Dank für die Antwort.
Ich habe den Adapter von hier installiert: https://github.com/stormboy/node-pioneer-avr
Dazu gibt auch das Button-Script von @czahn.
Ich gebe zu, ich habe die ein oder andere Änderung eingebaut (Lautstärkeeingabe in % und ein paar Kleinigkeiten). Das ist jetzt viele Jahre ganz gut gelaufen. Ich verwende eigentlich nur ein paar Standardthemen und habe dies in Routinen in Alexa eingebaut. Wie geschrieben, ist es Jahrelang gut gelaufen. Ich habe mir einen LG TV gekauft und seitdem ich den LGTV-Adapter laufen habe, mag manches nicht mehr und ich bekomme folgende Fehler:host.raspberrypi 2021-05-08 18:38:23.823 info Restart adapter system.adapter.javascript.0 because enabled host.raspberrypi 2021-05-08 18:38:23.822 error instance system.adapter.javascript.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.raspberrypi 2021-05-08 18:38:23.821 error Caught by controller[0]: at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16) host.raspberrypi 2021-05-08 18:38:23.820 error Caught by controller[0]: Error: connect ECONNREFUSED 192.168.0.7:23 javascript.0 2021-05-08 18:38:23.740 error (24358) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
Die 192.168.0.7 ist der Pioneer.
Ich bin nicht sicher, ob es tatsächlich das Script ist, oder weil der Verstärker einfach in der Verbindung zu macht(?) - aber warum? (Ich habe mal den LGTV deaktiviert, das hilft aber nicht, die connection refuses kommen dennoch).
Mittlerweile artet dies dann in eine Endlosschleife mit Neustart des JS-Adapters aus!Ideen?
Du sagtest was von 2 ports? Soll ich einen anderen versuchen? Welchen?
-
@sichreid
Möglich, dass sich bereits ein Gerät auf Port 23 am Pioneer angemeldet hat. Dann dürfte mit nem Telnet- Client keine Verbindung auf dem Port mehr möglich sein. Der andere Port sollte der 8102 sein.Frag den VSX nicht zu schnell ab. Ich hatte eine Pause zwischen den Befehlen eingebaut.
-
@peterfido
Danke für den Tipp, welche Wartezeit wäre angemessen? -
@sichreid
Weiß ich ad hoc nicht. Wenn ich zu komme, sehe ich mir morgen den Quellcode an. Ich würde in 100ms Schritten probieren, bis es stabil läuft. -
@peterfido
Ok, werde mal sowas versuchen.
Vielen Dank! -
Die Verzögerung, wenn ich nach PowerOn alle Werte hole, hatte ich auf 200 ms eingestellt. Ansonsten ist nach jedem Befehl eine Pause von 78 ms drin.
Das Skript habe ich mir angesehen. Auch den "Adapter", welcher sich nicht einfach so pert GitHub-Katze installieren lässt.
Ich werde etwas auf Basis von Node-Red mit den Telnet-Nodes bauen. Das Anfangsgerüst steht und die Werte trudeln alle ein. Das Separieren auf einzelne Datenpunkte erledigt dann ein Function-Node und das Steuern der Befehle kommt danach dran.
Wenn das fertig ist, kann ich das Windows-Tablet gegen ein altes Ipad2 ersetzen. Da heute die Sonne scheint, schalte ich den Rechner nun aus.
Mein Stand:
[ { "id": "643715a7.56ebfc", "type": "tab", "label": "Pioneer", "disabled": false, "info": "" }, { "id": "b47a4fe6.c47dc", "type": "debug", "z": "643715a7.56ebfc", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1230, "y": 60, "wires": [] }, { "id": "7c58f53f.1b9fac", "type": "inject", "z": "643715a7.56ebfc", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 120, "y": 160, "wires": [ [ "79fdd5ab.3a0b3c" ] ] }, { "id": "8171afa2.7d439", "type": "inject", "z": "643715a7.56ebfc", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 120, "y": 220, "wires": [ [ "f8ac3600.47b468" ] ] }, { "id": "79fdd5ab.3a0b3c", "type": "function", "z": "643715a7.56ebfc", "name": "", "func": "msg.payload = 'PF';\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 310, "y": 160, "wires": [ [ "c438e912.8d1e48" ] ] }, { "id": "f8ac3600.47b468", "type": "function", "z": "643715a7.56ebfc", "name": "", "func": "msg.payload = 'PO';\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 310, "y": 220, "wires": [ [ "c438e912.8d1e48" ] ] }, { "id": "67dc95c3.4609cc", "type": "telnet-read", "z": "643715a7.56ebfc", "name": "", "connection": "4cb45c67.1562f4", "x": 810, "y": 160, "wires": [ [ "ac7006c3.aabfe8", "7a0bfe29.84bf2" ] ] }, { "id": "c438e912.8d1e48", "type": "telnet-send", "z": "643715a7.56ebfc", "name": "", "connection": "4cb45c67.1562f4", "x": 590, "y": 160, "wires": [] }, { "id": "ac7006c3.aabfe8", "type": "timeout", "z": "643715a7.56ebfc", "name": "My Timeout", "outtopic": "", "outsafe": "Safe", "outwarning": "Warning", "outunsafe": "Unsafe", "warning": "5", "timer": "10", "repeat": false, "again": true, "x": 930, "y": 40, "wires": [ [] ] }, { "id": "59cc8731.e136d8", "type": "function", "z": "643715a7.56ebfc", "name": "Turnus", "func": "const Abfragen=[\"?P\",\"?AP\",\"?V\",\"?ZV\",\"?M\",\"?TO\",\"?BA\",\"?TR\",\"?F\",\"?FR\",\"?ZS\",\"?L__CLV\",\"?R__CLV\",\"?C__CLV\",\"?SL_CLV\",\"?SR_CLV\",\"?SBLCLV\",\"?SBRCLV\",\"?SW_CLV\",\"?LH_CLV\",\"?RH_CLV\",\"?SPK\",\"?SSF\",\"?IS\",\"?VSB\",\"?VHT\",\"?ATA\",\"?SDA\",\"?SDB\",\"?ATC\",\"?ATD\",\"?ATE\",\"?ATF\",\"?ATG\",\"?ATH\",\"?ATJ\",\"?ATK\",\"?ATL\",\"?ATM\",\"?ATN\",\"?ATO\",\"?ATP\",\"?ATQ\",\"?ATR\",\"?ATS\",\"?ATT\",\"?ATU\",\"?VDP\",\"?ATW\",\"?VWD\",\"?MC\",\"?S\",\"?L\",\"?VTB\",\"?VTD\",\"?VTS\",\"?VTF\",\"?VTR\",\"?VTC\",\"?VTE\",\"?VTG\",\"?VTH\",\"?VTI\",\"?VTJ\",\"?VTK\",\"?VTL\",\"?VTM\",\"?VTN\",\"?VTO\",\"?VTP\",\"?VTQ\",\"?AST\",\"?VST\",\"?ATB\",\"?ILV\",\"?PR\",\"?FR\"];\nvar Pos=flow.get(\"AbfragePos\");\nmsg.payload=Abfragen[Pos];\nPos++;\nif (flow.get(\"PowerOn\")==1 && flow.get(\"PowerOn2\")==1){\n if(Pos>3){\n Pos=0;\n }\n \n}else{\n if(Pos==Abfragen.length){\n Pos=0;\n }\n}\n\nflow.set(\"AbfragePos\",Pos);\nnode.status({text:Pos+\":\"+msg.payload});\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "// Code added here will be run once\n// whenever the node is deployed.\nflow.set(\"AbfragePos\",0);\nflow.set(\"PowerOn\",1);\nflow.set(\"PowerOn2\",1);\n", "finalize": "", "x": 410, "y": 80, "wires": [ [ "c438e912.8d1e48", "3cde6738.a05c18" ] ] }, { "id": "e97a984a.5eabf8", "type": "interval", "z": "643715a7.56ebfc", "name": "interval", "interval": "1", "onstart": false, "msg": "ping", "showstatus": true, "unit": "seconds", "statusformat": "YYYY-MM-D HH:mm:ss", "x": 90, "y": 80, "wires": [ [ "59cc8731.e136d8" ] ] }, { "id": "3cde6738.a05c18", "type": "debug", "z": "643715a7.56ebfc", "name": "", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 610, "y": 80, "wires": [] }, { "id": "7a0bfe29.84bf2", "type": "function", "z": "643715a7.56ebfc", "name": "", "func": "const Pfad = '0_userdata.0.Pioneer.';\n\nmsg.topic='dummy';\nmsg.stateName='dummy';\nmsg.stateRole='value'; \n//msg.stateType= // boolean //number // string\nmsg.stateReadonly=false;\n//msg.stateUnit\n//msg.stateMin\n//msg.stateMax\n\nvar E=msg.payload;\nvar W=0;\nif(E.substring(0,3)==\"PWR\"){ //Power\n W=parseInt(E.substring(3)); \n flow.set(\"PowerOn\",W); \n msg.topic='PowerOn';\n msg.stateName='PowerOn'; \n msg.stateRole='value';\n msg.stateType='boolean';\n if(W==1){\n msg.payload=false; \n }else{\n msg.payload=true;\n }\n \n}\nif(E.substring(0,3)==\"APR\"){ //Power 2. Zone\n W=E.substring(3);\n W=parseInt(E.substring(3)); \n flow.set(\"PowerOn2\",W); \n msg.topic='PowerOnZ2';\n msg.stateName='PowerOnZ2'; \n msg.stateRole='value';\n msg.stateType='boolean';\n if(W==1){\n msg.payload=false; \n }else{\n msg.payload=true;\n } \n}\n\n\nmsg.topic=Pfad+msg.topic;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 1000, "y": 160, "wires": [ [ "d2a16aba.9f9748", "b47a4fe6.c47dc" ] ] }, { "id": "d2a16aba.9f9748", "type": "ioBroker out", "z": "643715a7.56ebfc", "name": "", "topic": "", "ack": "true", "autoCreate": "true", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1220, "y": 160, "wires": [] }, { "id": "4cb45c67.1562f4", "type": "telnet-connection", "z": "", "name": "AVX-922", "address": "192.168.2.51", "port": "8102", "inDelimiter": "", "outDelimiter": "\\r", "timeOut": "1500", "clearOut": "", "openTries": "1" } ]
-
@beboe @schroeder1 @Tom10web
Ich habe mich jetzt auch mal mit dem Thema beschäft. Auch bei mir (VSX-S510) lässt sich die Lautstärke nur ändern, aber nicht auf einen bestimmten Wert setzen.
Aber auch die Input-Belegung ist anders, als im auf github zum Adpater verlinkten Dokument. Das Internet-Radio (Anzeige NETWORK) erreicht ich z.B. über 38FN.Aber ich habe hier entdeckt, dass es wohl zahlreiche unterschiedliche Implementierungen der Befehle gibt.
Dafür konnte ich auch gut sehen, dass, obwohl im Dispaly des VSX-S510 kaum etwas steht, alle Daten die auf einem Bildschirm angezeigt würden, abrufbar sind bzw. der Receiver diese automatisch sendet (Bitrate, Titel, Sendername, ...)
Ich habe hier eine neue Implementierung eines Adapters gefunden, der auch darauf eingeht, dass Geräte offline gehen (weil sie im Standby die Netzwerkverbindung nicht aufrecht erhalten), Timeout-Fehler abfängt und sich automatisch neu verbindet.
Außerdem werden die State mit Key/Value-Paaren belegt, so dass man keine kryptischen Werte eintragen muss sondern sprechende Namen (TV, NETWORK, ...) auswählen kann.
Ich habe den Adapter mal unter https://github.com/Sneak-L8/ioBroker.pioneer_sc_vsx geforkt und versuche ihn nun zu erweitern. Z.B. Anzeige der Internet-Radiodaten oder Push-Buttons für Volumeup/down.