NEWS
[Vorlage] Denon Skript
-
Hab ich so nie ausprobiert, meiner ist immer am Netz. Bekommst du im log ein Timeout oder host unreach?
Steckdose aus und Script Start:
> javascript.0 2017-08-30 13:50:11.753 info script.js.common.Denon: Connection closed !javascript.0 2017-08-30 13:50:11.753 error script.js.common.Denon: Error: connect EHOSTUNREACH 192.168.178.54:23
javascript.0 2017-08-30 13:50:08.746 info script.js.common.Denon: Connectig… `
Denon im Standby, dann Steckdose AUS, passiert nichts, Scriptwerte quasi eingefroren, zeigt noch "verbunden" an (zwischen 'PWSTANDBY' und 'Anfrage: ZMON' ausgeschaltet):
` > javascript.0 2017-08-30 13:55:04.936 info script.js.common.Denon: Anfrage: ZMONjavascript.0 2017-08-30 13:53:32.882 info script.js.common.Denon: PWSTANDBY
javascript.0 2017-08-30 13:53:32.837 info script.js.common.Denon: ZMOFF
javascript.0 2017-08-30 13:53:32.826 info script.js.common.Denon: Anfrage: ZMOFF
javascript.0 2017-08-30 13:53:19.242 info script.js.common.Denon: Anfrage: MV6.5
javascript.0 2017-08-30 13:53:14.292 info script.js.common.Denon: Anfrage: MV5 `
Ich komme mit meinem workaround gut klar. Solltest du mal Testen mit Stromlos machen, ob alles wie gewünscht läuft. Strom kann ja mal ausfallen.
-
@lobomau: wie sieht denn dein Script dann aus? Hab den Denon auch an einer Fibaro Dose hängen…
Danke dir und Grüße, Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
das Problem bei der Sache ist, das wenn der AVR vom Strom genommen wird, er die Verbindung nicht richtig beendet, wie auch ! Der Client bekommt dies nach einer gewissen Zeit mit, und auch erst wenn vorher etwas gesendet wurde tritt ECONNRESET ein und die Verbindung wird vom Client geschlossen . Mann müsste in diesem Fall ständig versuchen die Verbindung neu herzustellen.
Da die Kommunikation beidseitig Event getriggert ist, kann man auch nicht mir einem Timeout arbeiten…
Mir würde jetzt neben dem ständigen Pingen nur einfallen das man immer einen Status pollt und wenn nach einem Timeout keine Antwort kommt, versucht die Verbindung neu herzustellen
-
@lobomau: wie sieht denn dein Script dann aus? Hab den Denon auch an einer Fibaro Dose hängen…
Danke dir und Grüße, Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk `
Es ist das simpelste Script, dass es gibt. Ein blockly triggert auf Radar IP des Denon. Wenn da start Denon Script, sonst Stop Denon Script.Kann ich gerne danach mal zeigen.
-
Hallo Lucky,
vielen Dank für Dein Script!
Mir sind einige Dinge beim Testen mit einem Denon X4000 aufgefallen:
1. Es gibt einen Schreibfehler bei den Kommandos. "FAVOTITES" sollte vermutlich "FAVORITES" heissen
2. Eine Reaktion auf NSET1 ändert "Denon.System.IP_Adresse" und ist eigentlich nicht notwendig, wenn die IP dort manuell eingetragen wird.
3. Die Displaydaten "NSE0 … NSE8" werden nicht regelmäßig aktualisiert.
4. Teilweise werden mehrere "NESx" in einem empfangenen Datenpaket übertragen. Dann stimmt die Textanzeige nicht mehr. Mitunter werden sogar Antwortkennung "NSE1" und die zugehörigen Daten durch einen Zeilentrenner "zertrennt".
Ich habe das in der beiliegenden Version wie folgt geändert:
-
Alle "FAVOTITES" durch "VAVORITES" ersetzt
-
Reaktion auf "NSET1" deaktiviert (auskommentiert)
-
Eine zusätzliche update2() hinzugefügt, die nur die NESx abruft und über schedule() alle 15 Sekunden aufgerufen wird.
-
Die Empfangenen Datenpakete werden vor der Übergabe an response() in die einzelne Antworten zerlegt und bei Bedarf auch zusammengefügt.
Tschau
-
-
Hallo nochmal,
ich habe eine von mir aktuell genutzte Testview beigelegt.
Damit kann man einige Funktionen direkt "bedienen".
Bei allen Buttons muss noch die IP-Adresse des Denon angepasst werden!
Tschau
Uwe
-
Hi Uweklatt, kannst du noch einen Screen von deinem View beilegen?
Danke und Grüße, Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Hallo Uwe und Willkommen im Forum!
- Alle "FAVOTITES" durch "VAVORITES" ersetzt `
nicht wirklich, oder? :lol:
Viel Spaß im Forum
Gruß
Rainer
- Alle "FAVOTITES" durch "VAVORITES" ersetzt `
-
Wer Rechtschreibfehler findet, darf sie behalten Nein Spaß bei Seite, ich werde es ändern, danke für den Hinweis!
Mit den NSE haben ich bei mir keine Probleme, das sie sich nicht selbst aktualisieren liegt m.e an der neuen Firmware des AVR, denn mit der alten ging es….deshalb hatte ich das Polling für die NSE eingebaut.
Das mit der IP die nochmal direkt vom AVR ausgelesen wird, ist nicht unbedingt notwendig, schadet aber auch nicht... Ansichtssache
-
-
Hallo Thorsten,
@Kueppert:Hi Uweklatt, kannst du noch einen Screen von deinem View beilegen?
Danke und Grüße, Thorsten `
Haben oben noch einen Screenshot eingefügt.Das ist nur zum Test, noch nicht optisch aufbereitet
Tschau
Uwe
-
Die Vorlage funktioniert super, danke!
Hab nur ein Problem mit dem OSD Werten, da wird bei mir nur "init" angezeigt. Kommt auch in den Objects nichts an:
3139_screen_shot_2017-08-31_at_21.48.32.png -
Hallo,
@dietlman:Die Vorlage funktioniert super, danke!
Hab nur ein Problem mit dem OSD Werten, da wird bei mir nur "init" angezeigt. Kommt auch in den Objects nichts an: `
Die Buttons funktionieren auch ohne das Script.Die Statusanzeige aber nicht. Du hat schon das JavaScript am laufen?
Die IP-Adresse des Receivers ist auch in der zuständigen Variablen eingetragen?
Tschau
Uwe
-
Hallo,
@dietlman:Die Vorlage funktioniert super, danke!
Hab nur ein Problem mit dem OSD Werten, da wird bei mir nur "init" angezeigt. Kommt auch in den Objects nichts an: `
Die Buttons funktionieren auch ohne das Script.Die Statusanzeige aber nicht. Du hat schon das JavaScript am laufen?
Die IP-Adresse des Receivers ist auch in der zuständigen Variablen eingetragen?
Tschau
Uwe `
Hi Uwe,ja das Script läuft, sehe auch keine Fehler und die IP ist auch eingetragen so wie oben bescrieben.
LG
Manfred
-
Hallo Manfred,
> ja das Script läuft, sehe auch keine Fehler und die IP ist auch eingetragen so wie oben bescrieben.
Läuft die Anzeige inzwischen?Was für ein Modell (AVR) hast Du?
Was zeigt die Logausgabe des Scriptes an?
Tschau
Uwe
-
Hallo Manfred,
> ja das Script läuft, sehe auch keine Fehler und die IP ist auch eingetragen so wie oben bescrieben.
Läuft die Anzeige inzwischen?Was für ein Modell (AVR) hast Du?
Was zeigt die Logausgabe des Scriptes an?
Tschau
Uwe `
Leider funktioniert die Anzeige noch nicht, Modell AVR-X4100W
Die Ausgabe wenn ich das Script auf debug schalte sieht so aus:
21:03:54.012 [info] javascript.0 Stop script script.js.Denon 21:03:56.076 [info] javascript.0 Start javascript script.js.Denon 21:03:56.077 [warn] javascript.0 script.js.Denon: setForeignState(id=javascript.0.Denon.System.Verbunden, state={"val":false,"ack":false}) - was not executed, while debug mode is active 21:03:56.077 [error] javascript.0 script.js.Denon: ungültige IP Adresse 21:03:56.077 [info] javascript.0 script.js.Denon: registered 40 subscriptions and 0 schedules
mehr sehe ich leider nicht , vielleicht mache ich auch nur irgend etwas falsch beim script
geändert: Code in Code-Tags; Homoran (Mod)
-
Hallo Manfred,
Das Script läuft noch nicht sauber!
Es gibt eine Fehlermeldung zur IP-ADRESSE.
Trag diese noch einmal neu im entsprechenden Objekt ein:
javascript.0/Denon/System/IP_Adresse
stimmt vermutlich nicht!
Tschau
Uwe
-
Die IP Adresse stimmt, auf das Webinterface des Denon komm ich mit 192.168.1.121
wenn ich aber versuche per Telnet drauf zu kommen dann kommt dieser Fehler:
MacBook-Pro-3:~$ telnet 192.168.1.121
Trying 192.168.1.121…
telnet: connect to address 192.168.1.121: Connection refused
keine Ahnung warum das so ist, bilde mir ein ich hab schon mal eine Telnet Verbindung zum receiver erfolgreich hergestellt.
-
so jetzt hab ich meinen Denon mal neu gestartet und jetzt funktioniert das Script, scheinbar ist die Telnet Session irgendwie abgeschmiert.
Danke auf jeden Fall für die Hilfe:
-
Hallo zusammen,
ich habe eine Frage zu dem Punkt: "system_ready". Bei mir bleibt der Punkt immer auf false stehen. Power_on steht auf true, das funktioniert (habe einen Denon1200w)
In dem Zusammenhang, was genau bedeutet folgender Code im Script ab "else if" ? Kommt bei dem Request nicht nur PWON oder PWSTANDBY zurück?? Warum steht hinter dem "==" eine "1" oder "2"?
if (AVR_Response=='PWON'){ if(PW_Request==1){ setState('javascript.0.Denon.System.Power_System',true,akt=true); PW_Request++; } else if(PW_Request==2){ setState('javascript.0.Denon.System.System_Ready',true,akt=true); PW_Request=0;
Danke euch schon mal und Grüße, Thorsten
PS: Wenn ich in den Objekten auf "update" drücke ballert das Script mir im Millisekunden-Takt das log voll und hört nicht mehr auf, Updates abzurufen. Musste es beenden, um die Abfragen zu stoppen.
2700_2017-09-08_16_22_07-iobroker.admin.png