Hallo Zusammen,
ich hoffe es kann mir jemand helfen. Ich habe eine Heizungsanlage mit der es möglich ist, einzelne Parameter über eine Serielle Schnittstelle abzufragen. Es gibt auch schon jemanden der dies mit einem Raspberry hinbekommen hat. Monitoring a Stiebel Eltron LWZ | Robert Penz Blog
Es handelt sich im um einen serielle Kommunikation.
Meine Heizung hat einen Stecker mit drei Anschlüssen.
So wie ich bisher erfahren habe handelt es sich um TxD und einer RxD und einer für Ground.
Ich habe leider nicht so viel Ahnung darüber aber, ich hoffe ich bekomme das mit eurer Unterstützung hin.
Als Ziel habe ich das ich ein Arduino an meine Wärmepumpe anschließe und der diese Daten von der Heizungsanlage an meinen Server sendet, und die Daten dann in einer SQL Tabelle speichert, entweder per Bluetooth oder per Ethernet Modul.
Ich würde folgender Maße vorgehen, ich würde den Arduino Port D1 und D0 und Grund anschließen und dann per Seriel Monitor die Daten nach dem Schema wie im Link beschrieben abfragen.
Ich hatte irgendwie gelesen, dass wenn ich den Arduino per USB an meinem Rechner betreibe, dass dann die Rxd und Txd vom Arduino belegt sind, Ist das so?
Zum testen wollte ich halt den Laptop am Arduino dran haben und dann per seriel Monitor die Daten per Handeingabe abfragen.
So die Theroie, aber ich kann mir einfach nicht vorstellen das dies so einfach ist, ich habe auch keine Lust meine Heizung zu zerstören, was kann dabei alles schief gehen?
Ich bedanke mich im voraus für eure Hilfe.
Hier nochmal ein Beispiel wie die Kommunikation gehen soll, laut der Anleitung für den Raspberry von Robert Penz.
Ich verstehe den ersten Satz leider nicht, was ist gemeint mit MIPS or ARM?
The CPU of the LWZ seems to be big-endian, maybe a MIPS or ARM? This is important as you PC is most likely little-endian. You’ve no clue what I’m talking about? Take a look at this wikipedia article.
A look at the answers the LWZ returned to me lets me believe that they are using 16bit integers to send floats. They just have a fixed number of decimal digits. For example as version I get 01 B6 which is 438 in decimal (the formula is dec(0xb6+0x01*256)), now divide this by 100 and you get a version 4.38.3.1 Greetings
After the connection is opened by your PC send following.
02
which will result in following return by the heat pump if you’re connected correctly.
10
Now you know that your wire-ring is good and you’ve the correct settings for your serial interface. Both bytes you’ll see throughout the protocol. 02 stands most likely for “start of communication” and 10 for acknowledgement. As 10 03 is used for the footer every occurrence of 10 in the normal datastream is escaped by a 10.
3.2 Get the version
Your version of the interface is maybe different from mine. Following will show you the version of the heat pump software. The version of my LWZ is 4.37. With the first request you tell the heat pump what you want, it writes then back an ok.
After that ok, you can request the data:
01 00 FE FD 10 03
After this you get
10 02
Which tell you your request is ok (10) and it does have data, which wants to send now (02). You will acknowledge that like this
10
so the heat pump starts sending the data, which looks like this
header Version footer
01 00 B5 FD 01 B6 10 03
4.38As all data responses seem to be headed by 4 byte, I believe it is some kind of header. And the last 2 byte look like a footer for me.