NEWS
NAD T778 AVR Steuerung Telnet HTTP
-
Hallo zusammen!
Bisher habe ich immer soweit alles hier und bei anderen Gruppen gefunden, um meine Ideen und Projekte zu verwirklichen.
Jetzt scheitere ich allerdings an meinen AVR (Audio-Video-Receiver). Dieser ist ein NAD T778 und hat leider noch keinen fertigen Adapter.
Der NAD ist über HTTP befehle steuerbar, z.b. wenn ich "http://192.168.188.52:11000/Status" eingebe, bekomme ich darüber eine XML zurück geliefert.
Dieser befehl gibt mir z.b. die aktuelle Lautstärke, den state(play,stop,pause) und das Bild vom gerade abgespielten Lied zurück.Der Knackpunkt an der Sache ist aber, dass die Steuerung über den Port 11000 über HTTP nur den "BlueOS Bluesound" Teil bedient, also den integrierten Mediaplayer.
Dafür hat freundlicherweise auch @Uwe1958 einen Adapter bereit gestellt! Danke nochmal dafür!Jetzt würde ich aber auch gerne den AVR Teil bedienen wollen und dies ist anscheinend nur über Telnet möglich.
Mittels Putty oder der Windows CMD kann ich problemlos den AVR Ein-/Ausschalten, Lautstärke verändern, Quelle umschalten etc.
Nun probiere ich aber schon eine ganze Weile und bemühe das Internet rauf und runter, um dies mittels Blockly umzusetzen.Ich Nutze dafür den "exec" Baustein und habe folgenden Text eingegeben:
Telnet 192.168.188.52 && Main.Power?Putty liefert dann den Aktuellen Zustand "Main.Power=Off" oder "Main.Power=On" zurück.
In Blockly bekomme ich es aber leider nicht hin, da vermutlich die "Syntax" im Exec-Baustein falsch ist.Wäre schon wenn sich jemand findet, der sich mit Telnet auskennt und mir helfen kann.
Vielleicht geht dies ja auch zusätzlich über HTTP, aber dazu habe ich leider auch nichts gefunden.Unter dem link und dann auf Smarthome Integration finden sich die Beschreibung/Protokoll.
So sieht mein Blockly aus:
Und das Log dazu:
-
So neue Erkenntnis:
Bei mir läuft IoBroker als Docker-Container auf Unraid.
Also habe ich einfach mal probiert die Telnet Verbindung über die Shell von Unraid auszuführen. Ging einwandfrei, wie auch schon zuvor bei Putty.
Danach habe ich das gleiche auf der Shell vom IoBroker-Docker-Container ausgeführt.
Hier bekam ich aber die Meldung, dass er den Telnet Befehl nicht kennt.Hier habe ich mich schon gefreut, dass es wahrscheinlich nur an den fehlenden Paket im Container lag.
Also schnell Telnet nachinstalliert und wieder in der Shell probiert.
Diesmal geht der Befehl!Also wieder in das Blockly rein und dort probiert, aber Fehlanzeige, immer noch keine Rückmeldung.
Ich habe auch probiert in den Exec-Baustein erstmal nur "Telnet 192168.188.52" auszuführen und verzögert danach einen zweiten Exec-Baustein mit den eigentlichen Befehl. Aber es kommt einfach keine einzige Rückmeldung.
Ich habe im Internet noch eine Syntax zum pingen gefunden, die ich dann einfach mal spaßeshalber eingegeben habe.
"ping -c 1 192.168.188.52"Das hat auf anhieb funktioniert, und ich bekam die Rückmeldung sowohl im Log als auch im Datenpunkt "testtrigger_ausgabe"angezeigt.
Und jetzt bin ich wieder an den punkt angelangt, wo ich glaube, dass die Syntax zu den Telnet Befehl nicht stimmt.
Denn wenn ich bei den obigen Beispiel mit "ping -c 1 192.168.188.52" das "-c 1" weglasse, geht auch dieser Befehl nicht mehr.
Und ich frage mich warum? Denn in Putty oder CMD gebe ich ja auch nur "ping 192.168.188.52" ein und es funktioniert.Woher weiß ich und wo kann ich nachlesen, dass ich in diesem fall den Zusatz benötige. Denn dadurch kann ich auch evtl. ableiten was ich bei Telnet falsch mache!
Gruß Pierre
-
@sidm Hi, es gibt einen Python Adapter mit den commandos:
https://github.com/joopert/nad_receiver
Daraus kannst Du Dir doch ein Blockly bauen.supported commands with supported operators for the RS232 interface main_volume [ +, -, =, ? ] main_mute [ +, -, =, ? ] main_power [ +, -, =, ? ] main_listeningmode [ +, - ] main_version [ ? ] main_dimmer [ +, -, =, ? ] main_ir [ = ] main_source [ +, -, =, ? ] main_sleep [ +, - ] tuner_fm_preset [ +, -, =, ? ] tuner_band [ +, -, =, ? ] tuner_am_frequency [ +, - ] tuner_am_preset [ +, -, =, ? ] tuner_fm_mute [ +, -, =, ? ] tuner_fm_frequency [ +, - ]
RS232 und Telnet Befehle sollen identisch sein.
Das -c 1 ( also -count 1) beim Ping bedeute übrigen nur ein Echo Paket senden
Gruß
Rookie50 -
Hallo Rookie50! Danke für deine Rückmeldung!
Den Link kenne ich, und es sind auch die Befehle die ich nutze.
Ich habe mit der Großartigen Hilfe von jemanden mittlerweile meinen NAD in IoBroker einbinden können, allerdings mit Javascript und nicht mit Blockly.
Blockly hat einfach nicht funktioniert.Das Skript ist im groben fertig und funktioniert! Allerdings möchte ich noch ein paar weitere Datenpunkte hinzufügen die der NAD da hergibt. Außerdem noch ein wenig Ordnung bei der Erstellung der Datenpunkte schaffen.
Wenn es dann fertig ist und der eigentliche Programmierer dem zustimmt, würde ich es hier mit zur Verfügung stellen!
Gruß SidM