Wetterstation: Davis Vantage in IPS direkt einbinden?

Ich habe einen „virtuellen“ serial port (als COM4, physisch über einen Ethernet-Converter) eingerichtet, und die entsprechende serielle Instanz angelegt. wenn ich einen Testbefehl mit TeraTerm ausführe, kriege ich problemlos die Reaktion des angeschlossenen Geräts (eine Davis-Wetterstation; sie gibt das Wort „TEST“ zurück). Wenn ich aber das gleiche mache im IPS mittels des Befehls comport_sendtext(44862 /[SerialPortWetterstation]/, „TEST“.chr(13));, reagiert die Wetterstation nicht. Im Debug-Fenster wird die Sendung gesichtet, nicht aber der Empfang. Was mache ich da falsch?

ich habe gefunden, dass der String $crlf.$crlf.„TEST“.chr(13).„TEST“.chr(13).„TEST“.chr(13) im Debugfenster ausgegeben wird als TESTTESTTEST. Es scheint also, dass die CR-Zeichen gar nicht herausgegeben werden.

PS: dem stand folgendes vor:
$crlf = chr(0x0D).chr(0x0A);
$cr = chr(0x0D);
$lf = chr(0x0A);

Hallo aag,

darf ich dich mit der Funktion RegisterVariable: IP-Symcon :: Automatisierungssoftware anfreunden, oder ist das noch etwas zu früh?
Dann frage weiter nach :wink:
Aber evtl. kannst du erstmal das Forum „durchforsten“, dann wird dir vielleicht manches klarer…

hhmmm. danke. zu früh ist es nicht, aber etwas kryptisch. Meinst Du, die Response ist nicht im Debug-FEnster enthalten, wohl aber in der Registervariable?

ich sollte vielleicht auch noch sagen, dass der Konverter einen Dienstprogramm hat, welcher die I/O Bits zählt. Es kommen bits rein bei Transmit, aber es kommen keine raus. Darum denke ich, dass das Problem beim Transmit liegt.

Hängts vielleicht mit dem Thema http://www.ip-symcon.de/forum/f23/wetterstation-16297/index6.html#post144212 zusammen.
Dann beschreibe es doch direkt… ohne „Verschleierung“ … dann bekommst du auch von denen, die diese Hardware einsetzen oft direkte und problemorientierte Antworten, ohne Rumrätseln… und du bist schneller am Ziel.

Sollte ich mich gerirrt haben, dann Sry!

Hi nancilla,

ja, Du hast Recht, es hängt mit der Wetterstation zusammen - @aag: es ist in der Tat deutlich besser zusammenhängende Themen auch zusammenhängend zu diskutieren. Es sind fast immer auch die Rahmenbedingungen wichtig um das Problem einzukreisen und zu lösen - diese fehlen in diesem Thread.

Aber nun zum Thema: ich hab mir das vorhin remote angeschaut, er connected mit einem Serialport auf die Vantage (via RS232-Ethernet-Server). Im Debug des Serialports in IPS siehst du den Transmit aber kein Received. Muss es aber. Via TTY vom selben Rechner geht es aber. Scheint irgendein connect-Problem zwischen IPS und der vantage zu sein. Aber mir fehlt hier die Erfahrung um das kompetent behandeln zu können.

danke allseits.

Es ist gar nicht klar, ob es an der Wetterstation liegt. Es könnte auch sein, dass der Ethernet-Serial Konverter gut mit dem TTY-Programm arbeitet, und dennoch Probleme mit der Seriellen Instanz von IPS hat.

Deswegen gehört diese Diskussion nicht ins Thema „Wetterstation“, sondern ins Thema „Serielle Instanz“.

ja, das mag sein, aber das weißt du nicht. Deshalb: lieber etwas mehr zu den Rahmenbedingungen erzählen als zu wenig. :wink:

…und hier sind die ports auf dem server

OK… dann funke ich jetzt auch nicht mehr dazwischen.
Wollte nur nochmal kurz diesen Beitrag erwähnen.
Duck und wech…

Nicht doch, alles gut! Ich komm hier nicht weiter, da ist jede Hilfe willkommen

mit gebücktem Gruss
Raketenschnecke
(on the Road )

Sry of mistake :smiley:

Schon mal DTR auf true gesetzt, das die Daten zurück kommen.

+1. ComPort_SetDTR($id, true);

paresy

RWN + Paresy: Ihr seid die Grössten!!! SetDTR hat Wunder bewirkt! Ich bin noch nicht ganz soweit, dass ich das Wetter ablesen kann - aber diese Hürde ist erstmal genommen.

Ich bedanke mich insbesondere bei RaketenSchnecke, der seinen wohlverdienten Feierabend für eine Remote-Session mit mir geopfert hat (ich werde mich erkenntlich zeigen), sowie bei Euch beiden Cracks!

…und nun komme ich mit dem nächsten Problem. Das Zielskript der Registervariable wird bei jedem Eintreffen eines Davis-Datenpaket 35mal aufgerufen - vermutlich bei jedem 0x0A. Wie kann ich das fixen? (sorry Nancilla - es ist mir schon bewusst dass diese Frage banal ist, aber vielleicht erbarmt sich dennoch jemand meiner…).

(Ausserdem hat meine kleine Tochter gerade die Buchstabe „N“ aus meinem Thinkpad gerissen - da erwarte ich vom Forum natürlich auch Verständnis…)

das kann nicht sein: die RegVar löst ein Script genau 1x pro eintreffendem Datensatz aus. Alles Andere wäre ein IPS-Bug. Davon hat allerdings bisher niemand berichtet (ich hab auch ein paar RegVars laufen - meine funktionieren tadellos).

Ohne weitere Informationen wird das schon wieder Rätselraten.

@aag

Lege eine Cutter-Instanz (mit den entsprechenden Trennzeichen) an, die du für die Registervariable als „Übergeordnete Instanz“ auswählst.

Beispiel anbei…

Es ist sicher mein Fehler und kein Bug. Ich vermute, es hämgt damit zusammen, dass die Daten etwas zerhackt ankommen. Siehe Debug der seriellen Instanz (es sollte eigentlich ein einziges Paket sein, die Davis reagiert auf den Befehl „LOOP 1“ und gibt ein 99-byte Paket heraus):

29.12.2011 20:14:43.00 | TRANSMITTED | 4C 4F 4F 50 20 31 0A
29.12.2011 20:14:43.00 | RECEIVED | 06 4C
29.12.2011 20:14:43.00 | RECEIVED | 4F 4F
29.12.2011 20:14:43.00 | RECEIVED | EC 00
29.12.2011 20:14:43.00 | RECEIVED | 55 00
29.12.2011 20:14:43.00 | RECEIVED | 45 70 82 03 14
29.12.2011 20:14:43.00 | RECEIVED | 7E 03
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | FF 7F FF FF FF FF FF
29.12.2011 20:14:43.00 | RECEIVED | FF FF
29.12.2011 20:14:43.00 | RECEIVED | FF FF
29.12.2011 20:14:43.00 | RECEIVED | FF FF
29.12.2011 20:14:43.00 | RECEIVED | FF FF FF FF 14 FF
29.12.2011 20:14:43.00 | RECEIVED | FF
29.12.2011 20:14:43.00 | RECEIVED | FF FF
29.12.2011 20:14:43.00 | RECEIVED | FF FF FF 00
29.12.2011 20:14:43.00 | RECEIVED | 00 FF
29.12.2011 20:14:43.00 | RECEIVED | FF 7F
29.12.2011 20:14:43.00 | RECEIVED | 00 00 FF FF
29.12.2011 20:14:43.00 | RECEIVED | 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 FF
29.12.2011 20:14:43.00 | RECEIVED | FF
29.12.2011 20:14:43.00 | RECEIVED | FF FF
29.12.2011 20:14:43.00 | RECEIVED | FF FF
29.12.2011 20:14:43.00 | RECEIVED | FF 00 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | 00 00
29.12.2011 20:14:43.00 | RECEIVED | 70 00 06 BE
29.12.2011 20:14:44.00 | RECEIVED | D4
29.12.2011 20:14:44.00 | RECEIVED | 02 A7
29.12.2011 20:14:44.00 | RECEIVED | 06 0A 0D 43
29.12.2011 20:14:44.00 | RECEIVED | F4