DENON AVR 3808 Integration

Hallo,

die ID muss korrekterweise die ID des I/O Portes sein. Also bei dir die ID des seriellen Portes.

Aber genau das ist auch das Problem. Das Functions Script ist für einen ClientSocket geschrieben, und nicht für den seriellen Port.

Das siehst Du im Functionsscript an den ganzen Befehlen welche mit CSCK_ beginnen. Wenn du diese Befehle durch die Befehlssyntax für den Seriellen Port ersetzt, sollte es klappen.

Gruß Philipp

ahh - verstanden,
danke für die Erklärung :wink:
Dann bau ich das mal um

Hi philipp,

kurze Rückmeldung: es funktioniert tadellos, hab „CSCK“ in den Functions gegen „COMPort“ getauscht und schon läuft’s :wink:
…Mal wieder ein Erfolgserlebnis für mich als Neueinsteiger.

Kann es sein, dass Du noch nicht alle Funktionen/Events eingebaut hast? Ich hab gestern vergebnich nach den QuickSelect-Funktionen (QUICK1 - QUICK3) gesucht und nicht gefunden.
Ich versuche mal, das in die Scripts mit einzubauen, befürchte aber dass mein know-How noch nicht ausreichend ist (für die Functions reicht’s gerade noch aber bei den Status schaue ich „wie ein Schwein ins Uhrwerk“)

Hallo,

ich habe nun die QuickSelcet Funktion sowohl im Lesecript wie auch in der Functions eingebaut.

Die aktuellen Scripte sind im ersten Eintrag von diesem Thread gepflegt.

Falls Fehler auftreten bitte ich um kurze Rückinfo.

Gruß

Philipp

Hi philipp,

nachdem ich meine serielle Anbindung des 2309 auf Eis gelegt habe (z.B. die Volume-Steuerung war einfach nicht praktikabel), habe ich das Thema nun erneut aufgenommen um jetzt einen 3311 anzubinden. Die Grundfuktionen klappen aauch perfekt. Allerdings habe ich regelmässig Fehler im Log:


IPS-Err-PHP  2011-04-03 14:55:45.495  Notice: Undefined variable: value
   Error in Script C:\IP-Symcon\scripts\17630.ips.php on Line 184
   10 in IPSLogger.ips.php (call IPSLogger_Out)
   20 in IPSLogger_PhpErrorHandler.ips.php (call IPSLogger_Err)
  184 in 17630.ips.php (call IPSLogger_PhpErrorHandler)


Offensichtlich liegt das daran, dass der 3311 eine Reihe neuer 3-stelliger Events sendet (Beispiel: „NSE“, Request Onscreen Display Information List, Quelle: Protokoll-Doku 3311) - das war bei meinem 2309 nicht relevant (da wäre das nur beim iPod der Fall gewesen, hab ich nicht). Da ich PHP-Seitig noch nicht so richtig fit bin, kannst Du mir Tipps geben, wie die neuen Events und Informationen in Dein Script eingebaut werden können?

so, hab den Übeltäter gefunden:

das hier in philipp’s Script


case "PS": //Sound
   $pssub=substr($data,2,2);
   switch($pssub)
   {
      case "TO": //Tone Defeat
         $item = "ToneDefeat";
         $vtype = 0;
         if ($data == "PSTONE DEFEAT ON")
         {
         $value = true;
         }
         if ($data == "PSTONE DEFEAT OFF")
         {
         $value = false;
         }
         DenonSetValue($item, $value, $vtype);
        break;

muss getauscht werden gegen


case "PS": //Sound
   $pssub=substr($data,2,2);
   switch($pssub)
   {
      case "TO": //Tone Defeat
         $item = "ToneCTRL";
         $vtype = 0;
         if ($data == "PSTONE CTRL ON")
         {
         $value = true;
         }
         elseif ($data == "PSTONE CTRL OFF")
         {
         $value = false;
         }
         DenonSetValue($item, $value, $vtype);
        break;

ich war also auf dem Holzweg. Dafür hab ich die Scripts annähernd kapiert und reichlich neue Funktionen eingebaut :wink:

Und wo sind die neuen Funktionen ? :slight_smile:

Anti

bei mir in den Scripts :smiley:

Immer locker bleiben, ich werd’s noch veröffentlichen. Ich hab die Funktionenn nur sehr hektisch und kaum dokumentiert ins Script geschmiert dass das niemendem zugemutet werden kann. Es sind auch noch nicht alle Funktionen drin, schon gar nicht getestet. Wird also noch dauern.

OK?

Ich würde eher sagen, man muss das Script um deine Definition erweitern und nicht austauschen, oder?

Somit bleibt meines Erachtens das Script universell einsetzbar.

Gruß Philipp

yes, alles bis auf „PSTONE CTRL ON“ wird erweitert.

Und warum lässt Du das nicht auch drin?

Beiden alten Receivern gab und gibt es diese Version doch weiterhin.

Der Wert wird ja mit unterschiedlichen Paramtern geliefrt und wird auch in einer anderen Variablen gespeichert. Von daher können doch beide parallel im Script bleiben. Dadurch bleibt es universell nutzbar.

Gruß

Philipp

Hi philipp,

wenn das so geht gerne. Ich probier die Tage mal aus ob das ohne Probleme läuft. Wenn ja sollten beide Varianten ins Script.

Ok,

falls ich heute Abend kurz Zeit finde poste ich mal kurz wie ich es gemeint habe, dann kansst Du es ja mal bei dir rein nehemen und schauen obs geht.

Philipp

Hi,

das „AV Receiver Modul“ steht immer noch auf meiner Liste :wink:

Gruss
Coyote

wie jetzt? so ein richtiges IPS-Modul? - a la Tonic und tommi?

ja das wär klasse, haben wollen!

:confused:

Hast Du schon eine konkrete Planung oder ist das noch im visionären Status?

Ich würde behaupten irgendwo dazwischen :wink:

Ertse Ideen wurden dazu bereirts ausgetauscht, aber die lieb Zeit:confused:

Gruß Philipp

na denn lohnt es sich wohl, doch noch Energie in die Scripte zu stecken :wink:

Hi,

energie in Skripte schadet nie bei hobby-Themen :wink:

Ausserdem entstehen so Ideen und Problemlösungen.

Derzeit arbeit ich an meinem ersten echten Modul („Viessmann Heizungssteuerung“, senden und empfangen geht schon ;)).

Im Vergleich dazu dürfte ein „AV Receiver“-Modul einfacher sein, aber - wie Philip schon schrieb - die liebe Zeit.

Angedacht sind jedenfalls:
Ein AV-Modul für Denon, Pioneer und Marantz (also AVR mit offengelegter COM/Socket Kommunikation) welches Statusvariablen inkl. Interaktion (Quellenwahl, Lautstärke setzen, etc.) bieten soll.

Ich sage mal vorsichtig: Q4/2011.

Gruss
Coyote

Hi philipp.

ich habs mal für beide AVR-Varianten eingebaut. Bei mir funktioniert es, vielleicht kann das jemand mit einem AVR3809 o.Ä. testen und mir Feedback geben:


		case "TO": //Tone Defeat/Tone Control
			$pssubsub=substr($data,7,2);
			switch($pssubsub)
			{
			case "CT": //Tone Control (AVR 3311)
				$item = "ToneCTRL";
				$vtype = 0;
				if ($data == "PSTONE CTRL ON")
				{
					$value = true;
				}
				elseif ($data == "PSTONE CTRL OFF")
				{
					$value = false;
				}
				DenonSetValue($item, $value, $vtype);
			break;

			case "DE": //Tone Defeat (AVR 3808)
				$item = "ToneDefeat";
				$vtype = 0;
				if ($data == "PSTONE DEFEAT ON")
				{
					$value = true;
				}
				elseif ($data == "PSTONE DEFEAT ON")
				{
					$value = false;
				}
				DenonSetValue($item, $value, $vtype);
			break;
			}
		break;

Hi Mädels,

ich hab in den letzten Tagen heftig am Script von philipp rumgeschraubt und dieses ein wenig erweitert.
Status und Funktions-Script habe ich vom Funktionsumfang nahezu verdoppelt. Allerdings bin ich noch nicht soweit, dass automatisch Variablenprofile ertsellt, den Variablen zugeweisen sowie die Steuerscripte den Variablen zugewiesen werden. Daher habe ich die Scripte zunächst nur auf meiner Homepage veröffentlicht. Soweit das ganze Dritten halbwegs zumutbar ist stelle ich es auch gern hier ins Forum ein. Wer jetzt schon probieren will kann sich hier bedienen.

Soweit ich das überschauen kann sollten die Scripte für den AVR 3311 und 3809 sowie weitere aktuelle Modelle mit LAN-Anbindung funktionieren. Meine Entwicklung setzt auf der DENON Protokoll-Doku Ver.7.1.0 auf.

Seht es mir bitte nach: ich habe bisher keinerlei Software-Entwicklungserfahrung - vielleicht ist es noch zu früh, das Ganze hier zu veröffentlichen. Ich werde aber diese Scripts in den kommenden Wochen soweit vervollständigen das eine nahezu vollautomatische Installation möglich ist.