Com port und COMPort_SendText

hallo und guten tag !

leider musste ich mein ips system komlett neu aufsetzen und die scripts neu erstellen. (das übt!)
soweit ist alles wieder in ordnung bis auf die verbindung per com1 zu meinem denon a/v receiver.

der com-port ist als instanz eingerichtet und sagt auch „open“.
wenn ich aber z.b.

COMPort_SendText(30637, „PWSTANDBY“);
COMPort_SendText(30637, chr(13));

sende, passiert nix. eigentlich sollte er auf standby schalten.
was mach ich falsch ?

danke, frank

Hast du die Parameter der Comverbindung überprüft?

Parität, Stopbits, Übertragungsrate… die müssen alle genau stimmen. Welche dein denon braucht müsste in der Bedienungsanleitung stehen.

Toni

hab ich geprüft …

anleitung sagt:
communication system: tone step synchronisation
communication speed: 9600bps
character length: 8 bits
parity control: none
start bit: 1 bit
stop bit: 1 bit
communication procedure: non procedural
communication data length: 135 bytex max.

und so habe ich ips eingestellt:

  • just foreward
  • COM1
  • baud rate 9600
  • data bits 8
  • stop bits 1
  • parity none
  • flow control hardware
  • und open ist grün

ist deine InstanzID denn auch wirklich die 30637 oder hast du das aus dem alten script gerettet?

Haste mal nen anderen Befehl getestet?

instanz id habe ich neu gesetzt. das passt. andere befehle habe ich auch probiert … und auch den com-port in beide richtungen verbunden …

komische sache

communication procedure: non procedural

probiere doch mal, in den Com-Settings flow control=none einzustellen

HTH
Tommi

jau ! das war es ! jubel hurra !

vielen dank für eure hilfe :slight_smile: und einen schönen abend,

frank <- happy !

Hallo,

ich würde auch gerne meinen Denon AVR-2805 mit IPS steuern. Hat jemand eine Idee?? Ich habe es mit „Comport-Sendtext“ versucht, es passiert aber nichts… Ich habe den Receiver über ein „gerades“ Kabel mit dem COM1 - Anschluß verbunden.

Der Receiver hat einen RS232C Anschluß und ist nach der Bedienungsanleitung geeignet, um in Mediensteuerungen (AMX oder Creston) integriert werden zu können.

Kann mir jemand weiterhelfen???

Gruß
Johannes

Uuuups, der thread stammt aus 2006!
Seither ist schon einiges Wasser die Elbe hinunter geflossen:D
Hast du mal nach „Denon“ gesucht?
Da gibt’s schon „Neueres“:wink:

Ich habe schon das ganze Forum durchwühlt, aber bekomme es einfach nicht hin! Kann mir jemand ne kleine Anleitung senden???

Danke im Voraus!

Gruß
Johannes

Hi,

ich habe heute erfolgreich meinen Denon 2307 via RS/232 USB Adapter angeschlossen (das ganze via Silex USB 2.0 Ethernet Extender) und erfolgreich über IPS 2.1 geschaltet.

Zur Vorgehensweise:

[ul]
[li]USB RS232 COM Port unter Windows eingerichtet (in Windows ist die Flow Controll standardmäßg deaktiviert)
[/li][li]In IPS 2.1 eine I/O Serial Port angelegt (9600, 8, N, 1)
[/li][li]Mittels COMPort_SendText wie ganz oben angegeben mit z.B. „ZMON“ + „chr(13)“ den Receiver schalten
[/li][/ul]

Was mir aber passiert ist: Der Receiver war zunächst aus, solange ich alles verkabelt habe und es passierte nichts. Das Schalten ging nicht. Dann habe ich ihn manuell eingeschaltet und das ausschalten („ZMOFF“) ausprobiert. Und Voilá, es geht. Danach lief auch das Einschalten problemlos. :smiley:

Nächster Schritt ist eine Register-Variable an die Instanz, die auf Änderungen am ComPort reagiert…

Gruss
Volkmar

Hallo Volkmar,

Du kennst mein Script zur Denonsteuerung und Abfrage?

Damit sollte es auf Anhieb auch mit einem kleineren Modell als dem 3805 funktionieren.

Gruß Philipp

Hi Philip,

ja, das Skript habe ich überflogen. Ich versuche gerade, am Denon selbst zu lernen.

Aktuell bekomme ich zwar die Daten über die RegisterVariable, aber leider sind die immer etwas „schräg“.

So bekomme ich mal „MV175#MVMAX#“, dann „8#MVMAX“, dann mal „MV19#MV“ oder dergl. ( # ist ein hex 0D).
Es wird also nicht ein kompletter Satz wie „MV175“, dann „MVMAX“, dann „MV18“, etc. gesendet, sondern immer was „dazwischen“. 0D ist im Cutter als rechtes Trennzeichen angebeben. Ideen?

!UPDATE!
Das Problem lag wohl irgendwie am Cutter. Den hatte ich zwar korrekt auf 0D rechts hex eingestellt, aber irgendwie hat er das nicht gemacht. Nach erneutem einstellen, setzen und übernehmen (schliessen) hat er dann korrekt gesplittet und die Daten sind wie gewünscht im Debugger zu sehen.

@Philip: Ich nehme dein Skript mal als Anregung für das Variablen-Handling. Da ich die Variablen etwas anders strukturiert haben möchte (z.B. auch logisch nach Zonen aufgeteilt) werde ich es etwas für mich adaptieren. Aber immerhin - es läuft :smiley:

Gruss
Volkmar

Hallo,

ich versuche gerade meine Heizungssteuerung (Kieback & Peter HRP22) per seriellen Link mit IPS zu verbinden.
Dabei send ich mit COMPort_SendText ein Anfrage an die HRP und bekomme eine Antwort. Nur habe ich immer ‚komische‘ Antworten erhalten. Also habe ich das Ganze mal mit einem RS232 Monitor mitloggen lassen. Dabei kam raus, dass IPS meine Anfrage gleich mehrfach (bis zu 18x) abschickt. Die Gegenprobe mit einem Terminalprogramm hat wie erwartet normal funktioniert.
Also 1x eine Anfrage abgesschickt und auch nur 1x per RS232 ausgegeben. Gibt es was zu beachten, wenn ich den Befehl COMPort_SendText verwende?
Angeschlossen ist das ganze über einen USB2.0<->RS232 Adapter.


<?

/// TESTSCRIPT HRP22 ueber COM1 (USB<->RS232) Adapter

$crlf = chr(0x0D) . chr(0x0A); // CR+LF
$wert = "G0 0000" . $crlf; //Startanfrage
COMPort_SendText(47450 /*[Serial Port COM1]*/, $wert);

?>

Gruß
Schorsch

Hab mal die Leerzeichen entfernt.

Wie führst Du denn das Script aus, per Hand, Event…

Mach doch mal einen Debug im SerialPort, dann siehst Du was gesendet wird.
Das Script wird nur einmal durchlaufen wenn es nicht dauernd getriggert wird. Also kann quasi auch nur ein Befehl rausgehen.

   <? 
 
/// TESTSCRIPT HRP22 ueber COM1 (USB<->RS232) Adapter 
 
$crlf = chr(0x0D).chr(0x0A); // CR+LF 
$wert = "G0 0000".$crlf; //Startanfrage 
COMPort_SendText(47450 /*[Serial Port COM1]*/, $wert); 
 
?>     

Hi,

Das komische ist, dass wenn ich den string per IPS an den COM Port sende der request mehrfach raus geht (siehe log ). Meine Anfrage ‚G0 0000+CRLF‘ taucht im log mehfach auf. Dabei ist es egal, ob ich das script per Hand oder z.B. per Zeitintervall starte.
Wenn ich diesen string nicht aus IPS sondern aus einem Terminal Programm absende (gleiche HW, gleicher USB<->RS232 adapter) funktioniert es.
Dass die Anfrage mehrfach gesendet wird kann ich auch im IPS Debug Fenster der COM Instanz sehen. Dass die Regelung 4x antwortet scheint normal zu sein, da das auch bei den Versuchen mit dem Terminal Programm so ist.
Wird eventuell irgendein Buffer mehrfach versendet?

Gruß
Schorsch

Log Mitschnitt von nur einer Anfrage:

Request: 29.12.2009 18:35:00.12164 (+24.9531 seconds)

 47 30 20 30 30 30 30 0D 0A                        G0 0000..       

Answer: 29.12.2009 18:35:00.15364 (+0.0313 seconds)

 02 47 30 20 30 30 30 30 20 49 63 68 5F 62 69 6E   .G0 0000 Ich_bin
 5F 65 69 6E 5F 48 52 50 20 38 31 20 33 20 33 2E   _ein_HRP 81 3 3.
 36 37 20 30 20 32 20 31 20 48 52 50 30 30 31 0D   67 0 2 1 HRP001.
 03 45 31 45 34 1A                                 .E1E4.          

Request: 29.12.2009 18:35:00.19964 (+0.0000 seconds)

 47 30 20 30 30 30 30 0D 0A 47 30 20 30 30 30 30   G0 0000..G0 0000
 0D 0A 47 30 20 30 30 30 30 0D 0A                  ..G0 0000..     

Answer: 29.12.2009 18:35:02.09064 (+1.8281 seconds)

 02 47 30 20 30 30                                 .G0 00          

Request: 29.12.2009 18:35:02.12164 (+0.0156 seconds)

 47 30 20 30 30 30 30 0D 0A                        G0 0000..       

Answer: 29.12.2009 18:35:02.12164 (+0.0000 seconds)

 30 30 20 49 63 68 5F 62 69 6E 5F 65 69 6E 5F 48   00 Ich_bin_ein_H
 52 50 20 38 31 20 33 20 33 2E 36 37 20 30 20 32   RP 81 3 3.67 0 2
 20 31 20 48 52 50 30 30 31 0D 03 45 31 45 34 1A    1 HRP001..E1E4.

Request: 29.12.2009 18:35:02.16864 (+0.0469 seconds)

 47 30 20 30 30 30 30 0D 0A 47 30 20 30 30 30 30   G0 0000..G0 0000
 0D 0A                                             ..              

Answer: 29.12.2009 18:35:04.09064 (+1.8906 seconds)

 02 47 30 20 30 30 30 30 20 49 63 68 5F 62 69 6E   .G0 0000 Ich_bin
 5F 65 69 6E 5F 48 52 50 20 38 31 20 33 20 33 2E   _ein_HRP 81 3 3.
 36 37 20 30 20 32 20 31 20 48 52 50 30 30 31 0D   67 0 2 1 HRP001.
 03 45 31 45 34 1A                                 .E1E4.          

Request: 29.12.2009 18:35:04.13764 (+0.0000 seconds)

 47 30 20 30 30 30 30 0D 0A 47 30 20 30 30 30 30   G0 0000..G0 0000
 0D 0A                                             ..              

Answer: 29.12.2009 18:35:06.10664 (+1.9063 seconds)

 02 47 30 20 30 30 30 30 20 49 63 68 5F 62 69 6E   .G0 0000 Ich_bin
 5F 65 69 6E 5F 48 52 50 20 38 31 20 33 20 33 2E   _ein_HRP 81 3 3.
 36 37 20 30 20 32 20 31 20 48 52 50 30 30 31 0D   67 0 2 1 HRP001.
 03 45 31 45 34 1A                                 .E1E4.          

Request: 29.12.2009 18:35:06.15364 (+0.0313 seconds)

 47 30 20 30 30 30 30 0D 0A 47 30 20 30 30 30 30   G0 0000..G0 0000
 0D 0A                                             ..

Das kann nicht sein. Dann wird das Script von irgendwas getriggert.
Wie ist denn deine Verbindung zum Comport. Über Registervariable, wenn ja, wäre das die Erklärung.

Was hast Du denn für eine Version laufen, ich trenn das dann mal ab, da es nicht zum Thema passt.

Genau das wäre auch meine erste Vermutung.

Hi,

ja, es war die Registervariable. Ohne wird die Anfrage auch nur 1x abgesendet. Jetzt muß ich nur noch die Antworten auswerten.

Danke
Schorsch