Wärmemengenzähler in IPS einlesen

Hallo,

ich glaube, ich benötige die Hilfe der Experten.

Ich möchte gern einen Wärmemengenzähler in IPS einlesen (Sharky 773 - Kommunikationsbeschreibung siehe Anlage).

Mit dem IPS-M-Bus Gateway/Konfigurator komme ich nicht weiter, da m.E. die Initialisierung der optischen Schnittstelle (2,2 sec 0-1 senden) nicht implementiert ist.

Mit der Lorus Free Software kann ich den Zähler erfolgreich einlesen (siehe Snapshot)

Hat jemand eine Lösung oder zumindest Tipps für mich?


Sharky773_M-Bus_telegram_v29_E.pdf (264,3 KB)

Besten Dank im Voraus
HerbertF

Guten Morgen Herbert,
in dem verlinkten PDF steht, dass der Zähler 3 Schnittstellen hätte. Optisch, M-Bus und RS-232.
Ist das bei deinem Model auch so? Da wäre es sehr einfach die M-Bus Schnittstelle zu verwenden, da du ja scheinbar auch schon eine Leitung zum Zähler hast, sonst wäre ja auch der optische Lesekopf nicht möglich.

Grüße
Stefan

Hallo Steppe,

die einzige Schnittstelle die zugänglich ist, ist die optische.

Ciao
HerbertF

Ist der Zähler wohl verplombt?
Ich habe einen älteren sharky. Die Anschlüsse sind zugänglich, wenn man den Zähler öffnen kann.

Ja, ich denke auch das ist das Problem. Weil das MbusGateway ist ja eigentlich für eine elektrische MBus vorgesehen.
Du könntest aber versuchen diese Initialisierungsseqeunz einfach auszuprogramieren, und direkt an die Schnittstelle zu senden. Dann die Schnittstelle wieder an das Gateway zu übergeben. Experimentel und aufwändig aber ggfls. möglich.

Oder du setzte einen Arduino/NodeMCU dazwischen welche die Initialsierung durchführt. hab bei mir so etwas ähnliches laufen. Der WMZ hat eine elektrische MBus Schnittstelle welche über eine NudeMCU auf WLAN umgesetzte wird und dann an einem ServerSocket in IPS landet. Funktioniert tadellos. Sollte kein großes Problem sein der NodeMCU beizubringen die Initialisierung voranzustellen.

gruß
bb

Hallo,

ich bekomme beim Senden der Befehle aus IP-Symcon immer Timeout-Fehler
:nauseated_face:


Ich habe jetzt mal die Com-Initialisierung angesehen (siehe Anlage). Die ersten Einträge sind von IPS, hier wird „01 00 00 …“ gesandt. Bei meinen zwei weiteren Tests mit zwei funktionierenden Programmen wird jeweils „ff ff ff ff 00 …“ am Anfang gesandt.

Wie kann ich denn dies in IPS auch erreichen???

Besten Dank im Voraus
HerbertF

Was hast du bisher gemacht, das es 01 00 00 sendet.
Michael

Ich habe das Log ausschließlich durch das Öffnen des COM-Ports erzeugt, nix weiter gesandt… auch bei den anderen Programmen …

Besten Dank

Hi,

ich habe jetzt sowohl von IPS als auch von einem der beiden funktionierenden Programme jeweils die Logs beim Öffnen der COM-SS erstellt (nix weiteres - nur geöffnet). Bei IPS wird in der TABLE-View in Zeile 30 das Timeout auf (01 00 …) gesetzt, beim anderen Programm in Zeile 38 (FF FF FF …).

Alles auf dem gleichen PC und ich habe logischerweise nicht parallel in den Windows-Einstellungen rumgespielt :wink:

Aus meiner Sicht liegt zumindest die Vermutung nahe, dass die Timeout-Fehler daher kommen könnten.

PS: Die Dateien sind alle *.html, nur für das Hochladen im Forum habe ich sie als *.txt umbenannt.

Ciao
HerbertF

table_funkt.html.txt (15,2 KB)
table_symcon.html.txt (37,3 KB)
line_funkt.html.txt (28,2 KB)
line_symcon.html.txt (71,5 KB)

Ich glaube nicht, dass es daran liegt. Ich konnte in deinen Debugs nirgends die echt gesendeten Daten sehen. Da muss irgendwo das Startzeichen 0x68 auftauchen. Ich habe es aber nicht gefunden. Laut Doku brauchst du 480 Bytes senden als Init. D.h. du kannst ja mal versuchen 480 mal 01010101b = 85 (Binary Code | Binary: 01010101 | Decimal: 85 | Bits: 8) zu senden, um das Gerät zu wecken. (Das müsste per SPRT_SendText gehen direkt am M-Bus Modul vorbei). Und danach schön im Standard per MBUS_UpdateValues im Skript anfragen. (Den Timer in der Instanz natürlich deaktivieren!)

Das wäre so mein Tipp - natürlich vollkommen ohne Gewähr :smiley:

paresy

Hi,

also vom Raspi kann ich die Kommunikation aufbauen (Log vom M-Bus-Gateway sieht m.E. gut aus). Leider werden die ankommenden Daten nur „buffer in“ und nicht weitergeleitet …(siehe Anlage)??
Ich habe auch noch ein Problem mit „MBUS_UpdateValues“ - dies rufe ich am Ende meines „Aufrufscripts“ auf und bekomme immer ein TimeOut …??

Besten Dank
Ciao
HerbertF

Hi Paresy,

ich komme hier nicht weiter und habe mit bbernhards Hilfe folgenden Stand:

Könntest Du vielleicht aml testen ob wenigstens der HEX-String passt?

Ich stehe scheinbar auf dem Schlauch.
Positiv ist: ich kann ziemlich zuverlässig nach dem Auwecken des Zählers über die optische Schnittstelle, ein aus meiner Sicht gültiges Telegramm empfangen. Den ganzen Echo-Müll (optisch) filtere ich m.E. über Registervariable und Splitter/Cutter weg. So dass ich m.E. einen gültigen HexString habe:

642642010109a71800c2026cbe2bcc020528800200cc021282936100db023a781800dc022a40930700c902a7180002fd1700002616

Wenn ich diesen mit SSCK_SendText(12169, $String); an den M-BUS-Gateway sende passiert aber nichts brauchbares - auch nicht im Log …???

Ich würde wirklich ungern dieses Telegramm einzeln um- bzw. ausrechnen wenn doch M-BUS in IPS integriert ist.

Was kann ich tun?

Ciao
HerbertF

Hi Paresy,

ich muss kurz nach Weihnachten nochmal nerven.

Ich habe mir jetzt auch das von euch empfohlene „M-Tool“ von der NZR-Seite geholt - tolles Teil! In dieses Tool kann ich folgenden String als Rohdaten erfolgreich einlesen:

686b6b680800725694113624232b0427000000046d230aae2b0c05935701000c12939135000b3a0000000c2a000000000a5a18090a5e45040a6274040b2621920009a71800c2026cbf2acc020574720000cc021265221600db023a121400dc022a40910600c902a7180002fd1700007e16

Dieser wird auch absolut korrekt erkannt (siehe

BBernhard hat aus meiner Sicht die brilliante Idee, diesen String per SSCK_SendText(12169, $String); an ein ServerSocket vom M-Bus-Gateway zu senden. Leider wird dieser nicht verabeitet :rofl: siehe:

Ich gehe davon aus, dass ihr die gleiche Spec benutzt wie NZR, dann müsste doch auch das Einlesen der Rohdaten bei IPS funktionieren???

Wie kann ich denn den String (die Rohdaten) zum IPS-Gateway senden? Ich würde wirklich sehr ungern :sleepy: das Telegramm bzw. die Rohdaten nochmals dekodieren müssen, wenn ihr dies doch schon getan habt.

Besten Dank im Voraus
Ciao HerbertF

Servus Herbert.
Ich fürchte du hast mich missverstanden. Das Datenpaket geht nicht von IPS an IPS.
Meine Konfiguration sieht so aus:
WMZ <->Pegelwandler<->NodeMCU<->WLAN<->IPS
Der Pegelwandler macht mir aus den MBUS Pegeln ein 3V TTL Signal. Die NodeMCU reicht mir dieses dann 1:1 transparent an den IPS ClientSocket durch. Die arbeitet quasi nur als TTL<->Wifi Gateway.
d.h. das im Endeffekt IPS direkt mit dem WMZ spricht.

Aber schau mal, ich habe dir hier nochmals ein Debug des MBus Client Socket angehängt.
Die Reihenfolge ist etwas anders als in deinem Screenshot.

gruß
bb

Hi BBernhard,

das Einzige was bei Dir anders ist, Du hast scheinbar den Client-Socket an das M-Bus-Gateway gebunden - ich das Server-Socket :roll_eyes:

Die Strings (Rohdaten) die Du 20:13:36Uhr bzw. 20:15:38Uhr empfangen hast - entsprechen meinen Rohdaten :sleepy:

Könntest Du (ohne viel Aufwand) meinen String (Rohdaten) mal zu Dir senden?

CIao
HerbertF

Hmm, direkt über mein Gateway wird das schwierig, ich könnet aber mal versuchen dein Setup nachzustellen.
So wie ich dich verstanden habe empfängst du über RS232, und schickst die daten dann an einen IPS Socket weiter, richtig ?

Also wenn ich unsere Screenshots vergleiche ist der Ablauf aber anders.
Erst sendet IPS diesen kurzen 17 Byte langen String. → den sehe ich bei dir nicht
Darauf antwortet mein WMZ mit „E5“
Dann schickt IPS die 5 Byte
Und dann kommt vom WMZ der lange Datenstring

Ich versuche mal dein Sache nachzubauen, dann sehen wir weiter.
greez
bb

Warte mal du nimmst ja SSCK_SendText. Die Daten sind aber doch in HEX.
Hmm, ob das funktioniert ?

Besten Dank!!!

Nach meinem Verständnis sollte es schlicht egal sein, welcher Befehlsstring gesendet wurde, der Antwort-String vom „Mess-Gerät“ sollte in jedem Fall korrekt interpretiert werden.

Ciao
HerbertF

Tut mir leid, habs auch nicht geschafft. Irgendwas klemmt da.

Es scheitert schon am bei der ersten Anfrage.
Nachdem ich mit ‚E5‘ antworte sollte eine leer „Result“ Zeile kommen.
Danach dann noch das ‚10 7B FD…‘
Tut aber nicht.


Sendet man den Daten String trotzdem so passiert nichts, er wird nicht dekodiert.

Hab das MBUS Gateway am ClientSocket, and dann einen ServerSocket (gleicher Port natürlich) mit dem ich per Script kommuniziere. Die Daten die ich aus dem Script sende kommen so wie bei dir bis zum MBUS Gateway durch. Dort ist dann Schluß. Keine Ahnung warum das nicht läuft.

So schaut eine korrekte Kommunikation aus:

Gute Nacht für heute
Bernhard

Hi Bbernhard,

trotzdem vielen DANK !!!

Ich analysiere jetzt die Daten (weniger quick - mehr dirty) in IPS selbst, war durch das NZR-Tool doch einfacher als gedacht.

Ciao
HerbertF