NEWS
[Vorlage] Denon Skript
-
HI Zusammen,
möchte kurz mein Skript für einen Denon AVR 1100 vorstellen.
Ich bin kein Programmierer habe es mir nur zusammenkopiert. Darum entschuldigt evtl. unsaubere stellen im Quellcode. Es funktioniert bei mir aber gut! Für Verbesserungsvorschläge freue ich mich aber.
Was für mich wichtig war sind die Steuerung meiner Internetfavoriten.
! ````
createState('Denon.DenonMainV', 25); // Main Volume
createState('Denon.DenonZoneV', 35); // Zone 2 Volume
createState('Denon.DenonCommand', 0); // Sontige Commandos
createState('Denon.DenonFav', 0); // mein Comando
! var DenonLink = 'http://192.168.2.2/goform/formiPhoneAppDirect.xml?'; // IP des AVR
var DenonDown = 'http://192.168.2.2/goform/formiPhoneAppDirect.xml?NS91'; // Curser Down
var DenonFav = 'http://192.168.2.2/goform/formiPhoneAppDirect.xml?SIFAVORITES'; // Favorites
var DenonEnter= 'http://192.168.2.2/goform/formiPhoneAppDirect.xml?NS94'; // Enter
! function warten(Wartezeit)
{
Wartezeit *= 1000; // Umrechnung in Millisekunden
var eDate = null;
var MilliSekZeit = 0;
var SysDatumJetzt = new Date();
var SysDatumJetztMilli = SysDatumJetzt.getTime();
! do {
eDate = new Date();
MilliSekZeit = eDate.getTime();
}
while ((MilliSekZeit-SysDatumJetztMilli) < Wartezeit);
}
! on({id: "javascript.0.Denon.DenonMainV", valNe: true}, function(obj) {
var Volume = getState("javascript.0.Denon.DenonMainV").val; // Wert aus Slider
var url = DenonLink +"MV" + Volume;
exec('wget -q -O /dev/null ' + url);
// log("URL Aufruf: " + url); // dient nur zur Kontrolle im Log bei Bedarf
});
! on({id: "javascript.0.Denon.DenonZoneV", valNe: true}, function(obj) {
var Volume = getState("javascript.0.Denon.DenonZoneV").val; // Wert aus Slider
var url = DenonLink +"Z2" + Volume;
exec('wget -q -O /dev/null ' + url);
// log("URL Aufruf: " + url); // dient nur zur Kontrolle im Log bei Bedarf
});on({id: "javascript.0.Denon.DenonCommand", valNe: true}, function(obj) {
var Command = getState("javascript.0.Denon.DenonCommand").val; // Commando übernehmen
var url = DenonLink + Command;
exec('wget -q -O /dev/null ' + url);
// log("URL Aufruf: " + url); // dient nur zur Kontrolle im Log bei Bedarf
});on({id: "javascript.0.Denon.DenonFav", valNe: true}, function(obj) {
var Command = getState("javascript.0.Denon.DenonFav").val; // Commando übernehmen
exec('wget -q -O /dev/null ' + DenonFav);
for (var i = 0; i <= Command; i++){
exec('wget -q -O /dev/null ' + DenonDown);
warten(1);
}
exec('wget -q -O /dev/null ' + DenonEnter);
});! ````
So sieht es dann aus.
Gruß
Christian
-
Hallo Christian,
danke für das Script. Weis jemand, wer diesen Adapter begonnen hat?
https://github.com/khst60/iobroker.denon
Helle
-
Oh, es wäre schön, wenn es mit einem Denon-Adapter losgeht. Ich hatte seinerzeit den Adapter im CCU.IO geschrieben. Ich hatte dort auf den Onkyo-Adapter für die Verbindung zum Receiver aufgebaut. Leider ist der iobroker-Onkyo-Adapter ganz anders aufgebaut und ich weiß deshalb nicht, wie ich die Verbindung herstellen kann. Wenn hier jemand den Anfang macht kann ich gerne bei der Umsetzung (Variablenarten und -typen) unterstützen.
-
Ja das wäre cool wenn es den bald gibt. Im Quellcode steht schon eine email Adresse aber ich kann ausser testen nicht helfen. Ich wüsste nicht mal wie ich den Adapter installieren sollte.
Gesendet von meinem SM-G920F mit Tapatalk
-
Hallo DENON-Freunde,
habe manuell den Inhalt von GIT nach "C:\ioBroker\node_modules\iobroker.denon" kopiert und anschließend "iobroker upload denon" gestartet. Leider läuft das auf den folgenden Fehler.
C:\ioBroker>node node_modules/iobroker.js-controller/iobroker.js upload denon got C:/ioBroker/node_modules/iobroker.denon/admin upload [0] denon.admin C:/ioBroker/node_modules/iobroker.denon/admin/index.html index.html text/html Cannot find io-package.json in C:/ioBroker/node_modules/iobroker.denon module.js:427 throw err; ^ SyntaxError: C:\ioBroker\node_modules\iobroker.denon\io-package.json: Unexpected token : at Object.parse (native) at Object.Module._extensions..json (module.js:424:27) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Upload.uploadAdapter (C:\ioBroker\node_modules\iobroker.js-controller\lib\setup\setupUpload.js:186:23) at C:\ioBroker\node_modules\iobroker.js-controller\lib\setup.js:740:48 at Upload.upgradeAdapterObjects (C:\ioBroker\node_modules\iobroker.js-controller\lib\setup\setupUpload.js:403:13) at C:\ioBroker\node_modules\iobroker.js-controller\lib\setup.js:739:44
Die io-package.json liegt an der richtigen Stelle. Hat jemande eine Idee?
Gruß Helle
-
Hallo,
genau das gleiche suche ich für auch.
Habe IO Broker am laufen und den gleichen Deneon AV Receiver.
Wie kann ich das jetzt am einfachsten das ganze bei mir einbinden - sorry bin in dem Gebiet noch nicht so erfahren - aber würde mich über Untersützung freuen.
-
Hallo jonnyb,
drei Möglichkeiten hast Du:
1. Das Javascript Script von Christian verwenden und Deine Daten eintragen
2. Auf den ioBroker DENON-Adapter warten. Es auf Trello schon eingetragen mit vier Likes
3. FHEM-Adapter nutzen, wenn FHEM-Installation vorhanden ist (nicht für Anfänger geeignet)
Nutze noch Variante drei und warte auf zwei.
Gruß
Helle
-
Hallo akamia,
danke für Deine schnelle Antwort.
Variante 2 scheidet aus, warten kann ich nicht mehr Aber ich hoffe es kommt trotzdem bald.
Variante 3 lasse ich auch mal sein, FHEM ist nicht installiert
Variante 1 hört sich "einfach" an, meine Daten habe ich natürlich schon eingetragen aber jetzt fehlt noch der entscheidende Schritt. Wie geht es weiter? :roll:
Ich habe das Script im ioBroker.admin unter Skripte hinzugefügt und abgespeichert.
Wie kann ich das jetzt am Beispiel mit dem Lautstärke Slider am besten ansprechen?
Ich führe im VIS den Slider hinzu und wähle dann bei der ObjectID das Script aus? Aber dann fehlt doch noch was?
Danke.
-
Hallo DENON-Freunde,
habe manuell den Inhalt von GIT nach "C:\ioBroker\node_modules\iobroker.denon" kopiert und anschließend "iobroker upload denon" gestartet. Leider läuft das auf den folgenden Fehler.
C:\ioBroker>node node_modules/iobroker.js-controller/iobroker.js upload denon got C:/ioBroker/node_modules/iobroker.denon/admin upload [0] denon.admin C:/ioBroker/node_modules/iobroker.denon/admin/index.html index.html text/html Cannot find io-package.json in C:/ioBroker/node_modules/iobroker.denon module.js:427 throw err; ^ SyntaxError: C:\ioBroker\node_modules\iobroker.denon\io-package.json: Unexpected token : at Object.parse (native) at Object.Module._extensions..json (module.js:424:27) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Upload.uploadAdapter (C:\ioBroker\node_modules\iobroker.js-controller\lib\setup\setupUpload.js:186:23) at C:\ioBroker\node_modules\iobroker.js-controller\lib\setup.js:740:48 at Upload.upgradeAdapterObjects (C:\ioBroker\node_modules\iobroker.js-controller\lib\setup\setupUpload.js:403:13) at C:\ioBroker\node_modules\iobroker.js-controller\lib\setup.js:739:44
Die io-package.json liegt an der richtigen Stelle. Hat jemande eine Idee?
Gruß Helle `
Die io-package.json ist nicht richtig, es fehlt eine {. (vor "_id":"mute")
Hiermit sollte es gehen, wenn alles überkopiert wird.
! ````
{
! "common": {
! "name": "denon",
! "version": "0.0.1",
! "title": "Denon Adapter",
! "desc": "Javascript/Node.js based Denon adapter",
! "platform": "Javascript/Node.js",
! "mode": "daemon",
! "icon": "denon.png",
! "loglevel": "debug",
! "keywords": ["denon"],
! "main": "denon.js",
! "nondeletable": true,
! "type": "hardware",
! "authors": ["karl-heinz steffens karl-heinz.steffens@web.de"],
! "license": "MIT",
! "readme": "",
! "extIcon": ""
! },
!
! "native": {
! "host": "192.168.178.99"
! },
!
! "objects": [
! ],
!
! "instanceObjects": [
! {
! "_id": "power",
! "type": "state",
! "common": {
! "name": "Power state",
! "type": "boolean",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR power state boolean"
! },
! "native": {}
! },
! {
! "_id": "power2",
! "type": "state",
! "common": {
! "name": "Power state zone 2",
! "type": "boolean",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR power state zone 2 boolean"
! },
! "native": {}
! },
{
"_id": "mute",
! "type": "state",
! "common": {
! "name": "Mute",
! "type": "boolean",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR mute state boolean"
! },
! "native": {}
! },
! {
! "_id": "mute2",
! "type": "state",
! "common": {
! "name": "Mute zone 2",
! "type": "boolean",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR mute state zone 2 boolean"
! },
! "native": {}
! },
! {
! "_id": "denonPower",
! "type": "state",
! "common": {
! "name": "Denon-AVR power state",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR power state"
! },
! "native": {}
! },
! {
! "_id": "denonPower2",
! "type": "state",
! "common": {
! "name": "Denon-AVR power state zone 2",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR power state zone 2"
! },
! "native": {}
! },
! {
! "_id": "denonInput",
! "type": "state",
! "common": {
! "name": "Denon-AVR input select",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR input select"
! },
! "native": {}
! },
! {
! "_id": "denonInput2",
! "type": "state",
! "common": {
! "name": "Denon-AVR input select zone 2",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR input select zone 2"
! },
! "native": {}
! },
! {
! "_id": "denonMute",
! "type": "state",
! "common": {
! "name": "Denon-AVR mute",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR mute"
! },
! "native": {}
! },
! {
! "_id": "denonMute2",
! "type": "state",
! "common": {
! "name": "Denon-AVR mute zone 2",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR mute zone 2"
! },
! "native": {}
! },
! {
! "_id": "denonVolume",
! "type": "state",
! "common": {
! "name": "Denon-AVR volume",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR volume"
! },
! "native": {}
! },
! {
! "_id": "denonVolume2",
! "type": "state",
! "common": {
! "name": "Denon-AVR volume zone 2",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR volume zone 2"
! },
! "native": {}
! },
! {
! "_id": "denonSound",
! "type": "state",
! "common": {
! "name": "Denon-AVR sound mode",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR sound mode"
! },
! "native": {}
! },
! {
! "_id": "denonSound2",
! "type": "state",
! "common": {
! "name": "Denon-AVR sound mode zone 2",
! "type": "string",
! "role": "message",
! "read": true,
! "write": true,
! "desc": "Denon-AVR sound mode zone 2"
! },
! "native": {}
! }
! ]
! }/karl-heinz.steffens@web.deam besten den Adapter über:
(sudo) npm install https://github.com/khst60/iobroker.denon/tarball/master --production
im iobroker Verzeichnis installieren, dann werden auch eingebundene nodjs Module mit installiert. Gruß Klaus
-
Ich hatte seinerzeit den Denon-Adapter für CCU.IO geschrieben. Leider fehlt mir immer noch die Unterstützung, wie ich bei iobroker eine Verbindung zum Denon aufbaue. Ich habe mir aber inzwischen über den UPNP-Adapter geholfen. Wenn mein Telefon klingelt setzte ich hierüber den Denon auf Mute und nachher wieder zurück. Klappt zuverlässig.
Gesendet von iPhone mit Tapatalk
-
Hallo Klaus,
Du Adlerauge. Danke für den Hinweis. Lässt sich jetzt einwandfrei installieren. Testen werde ich am Wochenende. Meine Familie schläft schon.
Gruß
Helle
-
Hallo DENON-Freunde,
der DENON-Adapter funktioniert mit seinen Grundfunktionen. Auch die Volume-Slider für Main und Zone2 arbeiten gut. Power 2 geht, allerdings werden bei Main Power alle drei Zonen ein bzw. ausgeschaltet.
Da Telnet nur eine Verbindung akzeptiert, musste ich die FHEM DENON "defines" deaktivieren. Sonst kommt keine Verbindung zustande und das LOG wird zugespamt.
Muss mich jetzt bei diesem Adapter zwischen IOB und FHEM entscheiden. Der FHEM-Adapter von RAMAN unterstützt fast alle >1.000 Befehle über alle vier Zonen. So fällt die Entscheidung wohl jetzt erst einmal leicht.
@jonnyb: Vielleicht reichen Dir die Grundfunktionen für den Anfang?
@BlueEssi: Ich habe Deinen CCU.IO Adapter sehr gerne benutzt. Hat gut funktioniert. Ldittmar hat in Trello geschrieben "Wurde vor einem Jahr begonnen… Scheint ein "Waisenkind" zu sein. - Vielleicht kann es einer übernehmen und weiterentwickeln?" Momentan sehe ich nur Dich. Mein JavaScript steht noch in den Kinderschuhen "Hello World". Würde Dich aber gerne unterstützen. Vielleicht nutzen uns auch die Perl-Scripte etwas.
Da fällt mir noch eine vierte Variante ein:
http://blue-pc.net/2013/12/28/denon-av- … p-steuern/
Über das Web-Interface ab den X-Geräten. Z.B.: "http://192.168.xxx.yyy/goform/formiPhon … ?Z2SAT/CBL" schaltet den Eingang in Zone2 auf den Sat-Receiver um.
Gruß
akamia
-
Hallo akamia,
ich habe mich fleißig mit dem Skript von HomeChristian auseinander gesetzt und das mehr oder weniger nachgestellt.
Nutze dafür fleißig die "'http://192.168.2.2/goform/formiPhoneAppDirect.xml?" Aufrufe und es funktionioert (Logo, Volume Slider, …) wunderbar.
Was jetzt noch fehlt sind die Rückinfo´s wie:
-
Status Main Zone an/aus
-
Status Zone1 an/aus
-
Source Main Zone
-
Soruce Zone1
-
...
Steht als XML zur Verfügung, aber da scheitert es gerade einen Wert aus dem XML abzugreifen. Aber ist ja langes Wochenende....
Gruß
JonnyB
-
-
Hi,
ich habe es bei mir korrigiert und ein Pull-Request an den Entwickler gestellt. Es wurde schon 1 Jahr nicht dran gearbeitet. Die Installation funktioniert jetzt über diesen Link: https://github.com/ldittmar81/iobroker.denon
Grüße,
ldittmar
-
Moin, ich habe ein eigenes Skript für Denon AVRs geschrieben,das ich AVR X4000er X6000er und X7000er getestet habe. Unterstützt Request Response und Evets vom AVR. Implementiert sind alle gängigen Funktion für alle Zonen, sowie Quellenwahl OSD Informationen,allgemeine Steuerung
und Lautstärken.
Ich werde es morgen Abend hier Posten
-
Hi Lucky,
ich bin schon sehr gespannt was da kommt!
VG JonnyB
-
so, bisschen spät geworden..
kurze Beschreibung:
1. bitte die IP eures AVR oben eintragen (ja das mach ich irgendwann noch schöner)
2. beim AVR muss die Netzwerksteuerung aktiv sein, und auf statische IP einstellen
3. ein kontinuirliches pollen ist nicht erforderlich da der AVR selbst Events sendet sobald sich etwas ändert
4. mit den State "UPDATE" können die aktuellen zustände beim AVR abgefragt werden
5. die Tuner_Control ist noch nicht ganz fertig, kommt aber die tage
6. das Skript sollte bei allen Geräten der X Serie funktionieren, Protokol Refferenz ist von 2015
6. wer Fehler findet darf sie behalten, mich aber drauf hinweisen
EDIT: kleine Erweiterungen und Bugfix gemacht
!!!!!!!!Aktuelle Version im Post vom 29.08.2017, 19:54 !!!!!!
-
hat schon jemand mein Skript getestet ?
mich würde mal interssieren ob es ansatzweise auch mit Geräten die nicht aus der X Serie sind funktioniert. z.b. AVR3313 usw
-
Kommt am WE.
-
Hi Lucky,
ich habe Dein Script mit meinem Denon AVR-X4200W getestet!
In ioBroker werden unter der Registerkarte Objekte die aktuellen Zustände des Receivers angezeit!
Es ist leider NICHT möglich Zustände zu ändern, wie z.B. Mute.
Im Log zum Skrip ist folgendes sichtbar:
javascript.0 script.js.common.Denon: MUON
javascript.0 script.js.common.Denon: error: Error: write after end
<u>Hinweis:</u>
Ich habe gemäß Hinweis von akamia die Ansteuerung über http probiert und das funktioniert, wie z.B.:
http://<av ip-adresse="">/goform/formiPhoneAppMute.xml?1+MuteOn
http://<av ip-adresse="">/goform/formiPhoneAppMute.xml?1+MuteOff
http://<av ip-adresse="">/goform/formiPhoneAppVolume.xml?1+ <db wert/meist/negativ/z.b./-30="">VG
HolSon</db></av></av></av>