JUDO ZEWA via RS-232-Schnittstelle auslesen/ansteuern

Begonnen von mld, 12 Juni 2020, 10:55:59

Vorheriges Thema - Nächstes Thema

mld

Hi!

Seit kurzem habe ich einen Judo Zewa Wasserstop (diesen hier) im Keller hängen. Mir ist klar, wie die Ansteuerung bzw. das Auslesen über die potentialfreien Kontakte (siehe Abbildung im Anhang) funktioniert; dazu gab es hier ja auch schon diesen Thread.

Meine Frage ist: kennt jemand die Pin-Belegung der drei RS-232-Pins auf der Platine?

Es ist mir bekannt, dass es von Judo ein Datenkabel D-Sub-9 auf 3-Pol-Klemme für ca 120 € (sic!) gibt. Im Beiblatt des RS-232-Datenkabels ist auch das serielle Protokoll beschrieben. Hier können insbesondere die internen Zählregister des Geräts ausgelesen werden.

Falls jemand das Kabel gekauft hat, würde ich die Frage stellen, ob Du die Pin-Belegung hier posten könntest?

Ich bin mir relativ sicher, dass die drei Pins ziemlich direkt auf die Pins 5-GND, 3-RX_Data und 2-TX_Data mappen, aber in welcher Reihenfolge ist unklar. Da das Board eingegossen ist in Harz sehe ich leider auch keine Leiterbahnen, die auf GND hindeuten könnten und da TX erst dann aktiv wird, wenn ein Kennungs- und ein Aktionsbyte gesendet wurden, ist das auch nicht so ganz einfach zu finden.

Danke für Eure Unterstützung!

Guybrush

grundsätzlich zu dsub9:

Beim Male Stecker sind die Pins 2,6,7 ingoing/, 1,3,4,8,9 outgoing und 5 Masse. Das kannst du also leicht messen, welcher was ist, wenn du gegen Masse misst. Bei 3-Pin Steckern ist die Reihenfolge normal von links nach rechts RX, TX GND - also 3,2,5.

mld

Hi,

das mit der Masse ist überraschend schwierig. Der JUDO Zewa wird mit einem 30-V-Wechselstrom-Netzteil betrieben. Die werden anscheinend für einige Bereiche der beiden Platinen gleichgerichtet. Dann gibt es da noch zwei 9V-Block-Batterien, die wohl parallel geschaltet sind und insbesondere für den Notstrom-Betrieb erforderlich sind. Die Spannungsdifferenz zum Minuspol an den Batterien (mit und ohne Netzteil) zu den Pins ist jedoch 9V, 18V und 9V. Das hätte ich anders erwartet. Meine Durchgangsmessung zeigt, dass ich ohne Strom einen Durchgang nur von Pin 3 zum Minuspol der Batterien habe (der ganz rechte Pin) - das spricht für Deine Hypothese (v.l.n.r.: RX, TX, GND). Zwischen Pin 3 und Pin 1 habe ich 3,4 k-Ohm Widerstand gemessen (zwischen Pin 3 und 2 garkeinen Durchgang). Das könnte für einen Pull-down-Widerstand sprechen.

Ok, das sind viele Details. Vielleicht geht daraus ein wenig hervor, dass es nicht ganz einfach ist, mehr als Indizien für die Pin-Belegung zu finden.

Kann jemand Guybrushs Vermutung (v.l.n.r.: RX, TX, GND) erhärten?

Guybrush

Zitat von: mld am 12 Juni 2020, 14:10:21
Kann jemand Guybrushs Vermutung (v.l.n.r.: RX, TX, GND) erhärten?

das war keine Vermutung, sondern ist so der Standard. Aber ob die sich dran gehalten haben - ka...  ;D

mld

Kurze Rückmeldung: die Pin-Reihenfolge ist in der Tat RX, TX, GND.

Von einem alten seriellen Verlängerungskabel habe ich ein Ende abgeschnitten (die D-Sub-9-Buchse) und dort ein 3-Pin-Stecker (MAS-CON PANCON, IDC, 3,96mm Rastermaß) befestigt auf die Pins 2 (RX), 3 (TX), 5 (GND).

Damit funktioniert die Kommunikation.

Guybrush

Danke, dass du das bestätigst. Ist immer gut, das eigene Feedback einmal validiert zu bekommen :D

mld

Kleiner Follow-up. Ich habe mit einem ESP8266 ein WLAN-Gateway zum Wasserstop gebaut. Damit ist es möglich, die Daten über REST-Schnittstelle und JSON-Nachrichten abzurufen bzw. den Wasserstop zu steuern. Außerdem gibt es noch eine Single Page Web application, die als App genutzt werden kann.

Wer interesse hat, findet Code und Bauanleitung hier: https://github.com/mld18/esp8266.zewa-wasserstop-gateway

gurkc006

Hi mld,
ich habe vorhin diesen Thread zum ZEWA Wasserstop gefunden. Ich selber habe auch einen ZEWA seit ca. 2 Jahren verbaut, bisher keine Probleme damit. Ich habe ihn auch an FHEM angebunden mit einem Jeednode und ähnlichem Code wie bei dir, so dass mir alle wichtigen Werte zu FHEM übertragen werden. Steuerung der auf-/zu-Funktion hatte ich noch nicht implementiert, werde ich jetzt aber im Zuge eines Umbaus machen.
Sorry, dass ich das nicht eher entdeckt hatte, sonst hätte ich dir mit der Pinbelegung helfen können.
Was mich etwas "ärgert" ist, dass es scheinbar keine Möglichkeit gibt, per Schnittstelle den Standby-Mode zu aktivieren. Oder hast du da schon was gefunden?
Der Schalter, mit dem man durch 6 Sekunden drücken den Standby aktiviert, ist ja leider auch eingegossen, da kommt mal also nicht so einfach dran. Ich habe auch schon alle möglichen anderen Pins gecheckt, da ist aber scheinbar keiner mit verbunden.
Die Kommunikation zwischen den beiden "Platinen" ist ein I2C mit 25Khz. Das konnte ich mit einem Logicanalyzer sehen. Da wird im Sekundentakt einmal ein kurzer Read und ein längerer Write gemacht, keine Ahnung, welche Platine Master und welche der Slave ist. Da geht es aber wahrscheinlich nur um das Abfragen/Setzen der externen IOs.
Ich habe auch schon probiert, den ext. Input für das Ventil 6 Sekunden zu schließen (was ja beim Button den Standby auslöst). Bringt aber nix. Es betätigt sich leider nur das Ventil (toggelt open/close).
Es wäre schon schön, wenn man remote irgendwie den Standby aktivieren könnte. Weil das wäre die einizige Funktionalität, die ich z.B. im Sommer beim Wässern brauchen könnte, damit ich nicht immer in den Keller rennen muss...
Ich werde wohl JUWI mal anschreiben, ob es da evtl. noch undokumentierte Kommandos für die serielle Schnittstelle gibt, um den Standby zu aktivieren.
Viele Grüße
Christian

mld

Hi,

danke, Christian, für Deine Antwort, insbesondere die Informationen über die Kommunikation zwischen den beiden Boards. Ich habe leider nur ein Multimeter und daher habe ich mir die interne Kommunikation daher nicht angeschaut. Die Pin-Belegung hat mich damals wirklich viel Zeit und Mühe gekostet. Auf eine Anfrage bei Judo Wasseraufbereitung habe ich damals leider keine Antwort bekommen. Ich habe gerade auch nochmal die Doku auf GitHub aktualisiert, damit andere es einfacher haben mit dem D-Sub-9-Kabel.

Über den Stand-by-Mode habe ich nicht recherchiert und noch nicht ausprobiert, was passiert, wenn ich andere Aktionsbytes als 0x01 oder 0x02 an den Wasserstop sende. In diesem Zusammenhang denke ich über ein Soft-Stop nach. Dabei würde ich die harten Grenzen am Wasserstop auf hohe Werte einstellen. In meinem ESP8266-basierten Gateway würde ich dann über entsprechende REST-Endpunkte niedrigere Limits konfigurieren. Wenn diese Limits erreicht werden, schließt das Gateway den Wasserstop. Da bin ich mir aber noch unsicher, weil ich das prinzipiell ja auch über die Heimautomatisierung machen kann.

Viele liebe Grüße,
   Markus

gurkc006

Hallo Markus,
hab das gerade mal probiert mit weiteren Befehlen. Auf die Kommandos 0xAA 0x03 und 0AA 0x04 kommt noch eine Bestätigung 0xEE 0x99. Alles drüber kommt keine Reaktion mehr. Was diese beiden zusätzlichen Befehle aber machen, ist mir nicht klar. Eins könnte ein Rücksetzen der Abschaltzähler bewirken. Auf jeden Fall war während meiner Tests dann mal alle Abschaltzähler wieder auf 0. Kann leider nicht mehr genau zuordnen, bei welchem der beiden Befehle das passiert ist.
Also wird das wohl mit dem Versetzen in den Standby-Modus über die Schnittstelle nix. Muss mir dann überlegen, ob ich evtl. versuche, den Taste unten freizulegen, damit ich den per Arduino brücken kann und so per Mikrocontroller den Standby auslösen könnte.
Ich habe außerdem mal nach dem Hall-Sensor-Signal geschaut an dem dreipoligen Stecker. Versteh ich zwar nicht so ganz, aber die Mitte könnte Masse sein und "oben"=braun scheint das Sensorsignal zu sein. Da sehe ich ein schönes 5V Signal, welches toggelt, wenn Wasser fließt. Das könnte man mit dem Arduino auf einlesen und wüsste dann, wann Wasser fließt. Naja, nur zur Info, wenn es andere Bastler interessiert.
Bisher natürlich noch keine Reaktion von JUWI, aber ich gebe denen noch mal ein paar Tage, bin da aber auch eher skeptisch, ob das was sinnvolles zurückkommen wird.
Gruß
Christian

doc-brown

hallo an alle :-)

wenns auch schon ein bisschen älter ist...
ich bin neu hier - habe beim googlen den beitrag gefunden - und mich dewegen mal hier angemeldet :-)

vielleicht kann mir einer von euch helfen.
ich habe einen zewa wasserstop, ein serielles kabel - und putty auf dem rechner.

ich kann mich verbinden - und kann was eingeben - aber es kommt nichts als antwort?!?

kann mir einer kurz erklären, WAS und WIE ich die abfragen über ein terminalprogramm starten kann?

danke euch schonmal !!!

lg
volker

gurkc006

Hallo Volker,
hast du die Dokumentation vom Hersteller (https://judo.eu/app/downloads/files/de/8140001/manuals/1701936.pdf) durchgelesen?
Hast du Baudrate "9600", Stopbits "1" und Parity "none" im Terminal richtig eingestellt?
Du musst dem ZEWA binäre Zeichen senden, damit er was zurückschickt. Ich empfehle dir, ein anderes Programm als Putty zu verwenden, da du diese Zeichen 0hAA 0h01 nicht gut senden kannst. Ich benutze immer HTerm, such mal in Internet, ist Freeware und ein tolles Programm. dort kannst du unten im Bereich zum Senden umstellen zwischen ASCII (ASC) und Hexadizimal (HEX). Wenn du dann auf HEX umgestellt hast und mal "AA 01" eingibst und das sendest, dann sollte oben im Empfangsfenster eine Antwort vom ZEWA kommen. Falls nicht, überprüfe auch nochmal die Datenleitungen TX und RX, vielleicht hast du die vertauscht?
Viel Erfolg beim Testen!

mld

Hi Volker,
kleine Ergänzung zu gurkc006: Du findest eine bebilderte Anleitung für die Anschlüsse auch in meinem GitHub-Projekt https://github.com/mld18/esp8266.zewa-wasserstop-gateway
Viele Grüße, Markus

doc-brown

#13
danke euch - ihr seid die besten :-)

ich versuche es morgen mal - denke der hinweis mit putty ist gut!
die parameter stimmen - 9600/8/N/1
aber wahrscheinlich liegt es am terminalprogramm

ich werde berichten :-)

edit: bisher hat das auch mit dem hterm nicht funktioniert. ich traue dem usb2seriell adapter nicht über den weg. hier muss ich mal schauen - ob man in der bastelkiste nochwas findet mit seriellem interface zum testen. Am wasserstop als solches gibts ja nix einzustellen. die beschreibung habe ich gelesen - das mit dem stromlosmachen habe ich zwar gemacht - aber ich kann mir nicht vorstellen dass das nowendig ist

doc-brown

hallo nochmal,

leider klappt es bei mir nicht - alles versucht.
kabel passt - hterm in benutzung, parameter stimmen - 8N1 9600 - und extra nochmal einen pc re-animiert, der eine rs232 schnittstelle an bord hat.

ich kann tippen wa sich will - in hterm sehe ich das auch - aber es kommt NIX zurück.

hat noch irgendjemand eine idee? ob die schnittstelle im judo ein problem hat?

grüsse