Zitat von tbi
Ankündigung
Einklappen
Keine Ankündigung bisher.
IP-Telegramm für Onkyo
Einklappen
X
-
Hi Udo,
mach Dir keinen Stress. Ich weiß schon, wo nun noch ein Problem ist, namlich den Block der Zeichen, die gelesen werden, in die Zeilen zu spitten, ..
Das kann ich aber alleine machen. Dazu unterhalten sich einfach zwei Bausteine untereinander. Wichtig war zu sehen wie es jetzt geht, also wie der Onkyo sich genau verhält. Das ist nun klar.
Ich versuche heute noch einen neuen Baustein zu Bauen, aber das wird sicher erst spät was, wenn es heute überhaupt klappt.
Viele Grüsse
Tbi
Kommentar
-
Ja, aber im Code ist für Gesamt Power ja schon PWR00 bzw. PWR01 drin.
Also MZ -> Power -> 0 oder 1 sollte schon gehen.
Die Frage ist: sind das genug Stati.
Grundsätzlich:
Du must zwei Ebenen im HS unterscheiden/trennen.
Die Status Infos und die Aktionen/Befehle.
Auf der rechten Seite des Bausteins kommen immer die Status Infos raus und deshalb werden da immer nur Status GAs verbunden.
Dort darf nie eine Befehls GA für den selben Satus sein, sonst kommt es zu einer Schleife. Dort konnen Befehle für andere Geräte sein aber nicht für den Onkyo.
Schau Dir das Excel von Onkyo nochmal an und schaue welche Befehle willst Du und welche Status infos willst Du haben. Alle Status Infos sollten da in XML verpackt werden. Da sind Zahlen oder Text möglich.
Je nachdem was man besser händeln kann oder will.
Tbi
Kommentar
-
Zitat von patricia Beitrag anzeigenkannst du mir das erklären ?
Volumen: Onkyo Befehl --> MZ - Volumen -Wert und dann welcher XML dann gesendet werden soll.
woher hast du das MZ ?was bedeutet das ?
Die Abkürzungen kann man schon so lassen im XML.
Wenn man dann mal einen anderen Verstärker, kauft muß man dann an der Auswertung nichts ändern.
Alle Verstärker haben eine Haupt Zone und dann Zone 2, Zone 3, Zone 3, ...
Gruß Tbi
Kommentar
-
so sehen die Statis im Code ausCode:###################################### ### Alles für Haupt Zone auswerten ### ###################################### if data.startswith('ZM'): ##print "Startwith ZM" ## Power Status der Main Zone auswerten if re.findall(r"ZM(ON)$", recline): self.Z2 = re.findall(r"ZM(ON)$", recline) ##print "Main Zone hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<ZM><Power>" +'1'+ "</Power></ZM>") elif re.findall(r"ZM(OFF)$", recline): self.Z2 = re.findall(r"ZM(OFF)$", recline) ##print "Main Zone hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<ZM><Power>" +'0'+ "</Power></ZM>") elif data.startswith('MVL'): ##print "Startwith MVL" if re.findall(r"[B]MVL([0-6][0-9a-fA-F][/B])$", recline): self.Z2 = re.findall(r"MVL([0-6][0-9a-fA-F])$", recline) ##print "[B]Main Zone hat Wert [/B]" + long(binascii.unhexlify(self.Z2[0]),16) + '\n' self.sendout(1,"[B]<ZM><Volumen>" + long(binascii.unhexlify(self.Z2[0]),16) + "</Volumen></ZM>[/B]") elif data.startswith('SI'): ##print "Startwith SI" if re.findall(r"SI(CD|DVD|TV|TUNER|SAT/CBL|GAME|AUX1|AUX2|BD|IRADIO|MPLAY|NET|USB/IPOD)$", recline): self.Z2 = re.findall(r"SI(CD|DVD|TV|TUNER|SAT/CBL|GAME|AUX1|AUX2|BD|IRADIO|MPLAY|NET|USB/IPOD)$", recline) ##print "Main Zone hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<ZM><Source>" +self.Z2[0]+ "</Source></ZM>") elif data.startswith('MS'): ##print "Startwith MS" if re.findall(r"MS(.*?)$", recline): self.Z2 = re.findall(r"MS(.*?)$", recline) print "Main Zone hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<ZM><Sound>" + self.Z2[0] + "</Sound></ZM>") elif data.startswith('MU'): ##print "Startwith MU" if re.findall(r"MU(ON)$", recline): self.Z2 = re.findall(r"MU(ON)$", recline) ##print "Main Zone hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<ZM><Mute>" +'1'+ "</Mute></ZM>") elif re.findall(r"MU(OFF)$", recline): self.Z2 = re.findall(r"MU(OFF)$", recline) ##print "Main Zone hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<ZM><Mute>" +'0'+ "</Mute></ZM>") elif data.startswith('PWR'): ##print "Startwith PWR" if re.findall(r"PWR(01)$", recline): self.Z2 = re.findall(r"PWR(01)$", recline) ##print "Main Zone hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<ALL><Power>" +'1'+ "</Power></ALL>") elif re.findall(r"PWR(00)$", recline): self.Z2 = re.findall(r"PW(00)$", recline) ##print "Main Zone hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<ALL><Power>" +'0'+ "</Power></ALL>") ################################## ### Alles für Zone 2 auswerten ### ################################## elif data.startswith('Z2MU'): ##print "Startwith Z2MU" if re.findall(r"Z2MU(ON)$", recline): self.Z2 = re.findall(r"Z2MU(ON)$", recline) ##print "Zone2 hat Wert " + self.Z2[0] + '\n'# self.sendout(1,"<Z2><Mute>" +'1'+ "</Mute></Z2>") elif re.findall(r"Z2MU(OFF)$", recline): self.Z2 = re.findall(r"Z2MU(OFF)$", recline) ##print "Zone2 hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<Z2><Mute>" +'0'+ "</Mute></Z2>") elif data.startswith('Z2CS'): ##print "Startwith Z2CS" if re.findall(r"Z2CS(ST)$", recline): self.Z2 = re.findall(r"Z2CS(ST)$", recline) print "Zone2 hat Wert " + self.Z2[0] + '\n'# self.sendout(1,"<Z2><Sound>" +'Stereo'+ "</Sound></Z2>") elif re.findall(r"Z2CS(MONO)$", recline): self.Z2 = re.findall(r"Z2CS(MONO)$", recline) print "Zone2 hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<Z2><Sound>" +'Mono'+ "</Sound></Z2>") elif data.startswith('Z2'): ##print "Startwith Z2" if re.findall(r"Z2([0-9][0-9])$", recline): self.Z2 = re.findall(r"Z2([0-9][0-9])$", recline) ##print "Zone2 hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<Z2><Volumen>" +self.Z2[0]+ "</Volumen></Z2>") elif re.findall(r"Z2(CD|DVD|TV|SAT/CBL|GAME|AUX1|AUX2)$", recline): self.Z2 = re.findall(r"Z2(CD|DVD|TV|SAT/CBL|GAME|AUX1|AUX2)$", recline) ##print "Zone2 hat Wert " + self.Z2[0] + '\n'# self.sendout(1,"<Z2><Source>" +self.Z2[0]+ "</Source></Z2>") elif re.findall(r"Z2(ON)$", recline): self.Z2 = re.findall(r"Z2(ON)$", recline) ##print "Zone2 hat Wert " + self.Z2[0] + '\n'# self.sendout(1,"<Z2><Power>" +'1'+ "</Power></Z2>") elif re.findall(r"Z2(OFF)$", recline): self.Z2 = re.findall(r"Z2(OFF)$", recline) ##print "Zone2 hat Wert " + self.Z2[0] + '\n' self.sendout(1,"<Z2><Power>" +'0'+ "</Power></Z2>")
Kommentar
-
Zitat von patricia Beitrag anzeigenHallo Tbi
Welch Vorlage würdest du jetzt im QC für
die Steuerung und für die Auswertung nehmen?
Gruß Udo
Dafür hatte ich mal mit Matthias Scholl gesprochen und er hat da was gezaubert und hier zur Verfügung gestellt:
https://knx-user-forum.de/downloads.php?do=file&id=409
Das ist im Alte Downloadbereich.
War zwar für den Squeeze Player aber das ist ja egal, es wird ja nur ein Player mit GAs bzw. iKO gesteuert. Ist nicht Perfekt, aber haben ja viele runtergeladen
Tbi
Kommentar
-
Zitat von patricia Beitrag anzeigenHallo Tbi
was auch gut wäre wie ich schon geschrieben hatte das beim Tuner die
Anzeige der Frequenc bzw. Station und bei Net Titelanzeige bzw. Künstler möglich wären.
Was meinst du dazu ?hast du das bei deinem Marantz?
Gruß Udo
Die unterschiedlichen AV Receiver Hersteller sind hier übrigens mit ihren Schnittstellen unterschiedlich fähig. Beim Marantz wird alles gesendet also Sender und auch der Text.
Beim Kauf macht es eben echt Sinn zu schauen ob es eine App gibt die mit WLAN arbeitet. Denn in der App muß ja alles angezeigt werden.
Der Marantz ist erst Anfang letzen Jahres rausgekommen. Also noch sehr aktuell.
Gruß Tbi
Kommentar
Kommentar