Weishaupt WRSol eBus anbindung

Begonnen von hansg, 24 Januar 2017, 23:38:11

Vorheriges Thema - Nächstes Thema

kimi1983

#15
Hallo,

werde dann mal mein Config File umändern und bei mir die f6 setzen.
Aus welchem Dokument hast du deine Ram Adressen eigentlich bezogen ? Habe auch mal eine Mail an TEM und an Weishaupt versendet.
TEM verweigert schonmal die herausgabe der Daten ihrer Kunden (in diesem Fall Weishaupt)

Die Hex Befehle hab ich bei meiner Config schon freigeschaltet.

Werde heute Abend mal wieder testen.

Vielen Dank.

kimi1983

Vielen Dank es läuft.
Jetzt kann ich schonmal abfragen :)

Hier die Ergebnisse.
Jetzt muss ich nur mal mit dem Bedienteil abgleichen welche Werte ich da überhaupt erlangt habe und ob die bei mir stimmen ?!
Oder wie bist du vorgegangen ?

mfg,
Kim

wrsol Bh1 = 76
wrsol Bh2 = 116
wrsol E1 = 18246
wrsol E2 = 25957
wrsol Error = no data stored
wrsol Flow = 152
wrsol Ges1 = 1927.4
wrsol Ges2 = 2955.4
wrsol HV = -
wrsol PKF = 222
wrsol PS2 = 2595.6
wrsol PS = 1567.6
wrsol Q1 = 17218
wrsol Q2 = 27498
wrsol TFR = -1131.0
wrsol THR = -0.2
wrsol Time = 01:00
wrsol TK2 = 2081.6
wrsol TK2Soll = 1670.4
wrsol TKF = -1182.4
wrsol TKFSoll = -925.4
wrsol TKO = 1053.6
wrsol TKOSoll = 1156.4
wrsol TKR = -2416.0
wrsol TKV = 3109.6
wrsol TKVSoll = -2981.4
wrsol TKW = 488.2
wrsol TPO = -154.4
wrsol TPU = -103.0
wrsol TSB = -1233.8
wrsol TSO = -2981.4
wrsol TSU = -2878.6
wrsol TWT = -2827.2
wrsol TWT_ = -51.6
wrsol TWW = 436.8
wrsol TZO = 77.0
wrsol TZU = 128.4

hansg

Die Werte sehen seltsam aus.
Was mich hier etwas verwundert ist dass für alle Punkte Werte angezeigt werden

Bei der WRSol 1.0 ist es so dass jeweils nur die Werte angezeigt werden
die für die gewählte Hydraulikvariante relevant sind.
Alle anderen Werte stehen auf 0.

Welche Hydraulikvariante ist denn bei deiner Steuerung eingestellt?

Vermutlich werden die Speicherplätze für die Werte bei der 1.0 und bei der 1.1 Version
nicht die selben sein.

kimi1983

Hallo,

bin auch schon der Meinung das die Werte auch zu keinem Bedienteilwert zugeordnet werden können.
Ich benutze die Variante 1 : Bivalenter Speicher mit Kollektor und Nachheizungsbeeinflussung.

Auf dem Bedienteil kann man folgende Werte einsehen :

Status
TK1
TKV1
TKR1
FLOW1
PAKT1
TU1
PS1

Nun stellt sich halt die Frage wo ich die richtigen Adressen finde oder wie ich die Adressen aus meinem "uralten" PDF richtig interpretiere. (Könnten ja auch stimmen.

hansg

Probieren kannst du die Werte aus dem PDF schon.
Die stehen ja auf dem 3 Blatt.
Allerdings steht da auch dabei
"Diese Liste gilt für WRSol 1.0 und 2.0 mit interner Versionsnummer 2.40"
Das sind die alten Geräte die vor 10 Jahren verkauft wurden.

Zum testen einfach je Wert eine neue Zeile im csv anlegen.
Dazu am besten dazu eine der vorhandene Zeilen kopieren,
den Namen ändern, und in der Spalte nach dem 0900
den Wert durch den aus dem PDF ersetzen.

Aber dass diese Adressen Sinnvolle Ergebnisse bringen ist eher unwahrscheinlich.
Hier wär ein aktuelles Datenblatt der 1.1 oder der 2.1 Steuerung notwendig.




kimi1983

Wo hast du deine Werte eigentlich hergezogen ?
Habe jetzt nochmal Weishaupt angeschrieben, und meinen lokalen Heizungsinstallateur gebeten auch bei Weishaupt anzuklopfen...

hansg

Die Daten habe ich aus den "Weishaupt Service Tool" Dateien herausgelesen.
Das "Weishaupt Service Tool" ist ein logging Programm für alte WRSol Geräte.
Hier sind Dateien für verschiedene WRSol Geräte enthalten.
Allerdings nur für 1.0 und 2.0.

Die Regler 1.1 und 2.1 sind auf einer komplett anderen Hardware aufgebaut.
Ich wüsste auch nicht dass es für diese Regler irgenwelche Infos geben würde.

Du hast mal geschrieben dass du auf dem Ebus alle 5 Minuten eine Statusmeldung
erhältst.
Hast du dir diese Meldung mal angesehen.
Evtl werden hier auch irgendwelche Werte herausgegeben.


kimi1983

Bingo, mein Heizungsinstallateur hatte Glück bei Weishaupt :)

Anbei die ebus Befehle für WrSol 1.1 und 2.1.
Nur leider ist das natürlich komplett anders als bei dir.
Hast du eine Idee wie ich weiterkommen kann ?

Schonmal vielen Dank.

kimi1983

Der Aufbau sieht ja wie folgt aus denke ich :

#type,circuitname,comment,QQ,ZZ,PBSB,ID,field1,part,type/templates,divider/values,unit,comment,field2,part,type/templates,divider/values,unit,comment

Würde jetzt gerne aus dem Kapitel 4.1 Betriebswerte 1 auslesen

r,wrsol,Solarertrag gesamt,,,f6,1004

Nun weiss ich nur leider nicht wie ich weitermache ? Wie muss ich das ID Feld zusammensetzen

hansg

Der Aufbau der ebus Adressen ist wie eigentlich schon geahnt komplett
anders als bei den 1.0 Geräten.

Hierfür müsstest du eine eigene csv Datei erstellen.
Eine Anleitung wie csv Dateien erstellt werden findest du hier.
https://github.com/john30/ebusd/wiki

Ich versuch mal zu erklären wie die Datei aussehen könnte.
Allerdings hab ich so etwas bisher auch noch nicht gemacht, und ich bin hierfür
auch kein Experte.
Daher ohne Gewähr.

Nehmen wir mal die Tabelle Betriebswerte Seite 7
In der linken Spalte ist Die Datenrichtung ersichtlich.

M1 bis M7 sind die Bytes die zur Steuerung geschickt werden
damit diese die dazugehörenden Werte ausgibt.
S1 bis S11 ist das wass die Steuerung dann darauf antwortet.

In der csv Datei muss sowohl der Befehl zur Abfrage, als auch
die Art wie die Antwortbytes interpretiert werden sollen angegeben werden.

Die csv Spalten.
type > r für lesen, w für schreiben
circuit > müsste bei dir wrsol sein
name > Ein Name für die Funktion z.B BW1. Der Befehl zur Abfrage würde dann ebusctl read BW1 lauten.
comment > Ein Kommentar z.b Betriebswerte Feld 1
QQ > bleibt frei > M1 in der Tabelle
ZZ > f6 > M2 in der Tabelle
PB > 10 > M3 in der Tabelle
SB > 04 > M4 in der Tabelle. M5 bedeutet dass anschließend noch ein Datenbyte gesendet wird
ID > Abfrage Kollektorfeld 1 oder 2. Ich bin ich mir aber nicht sicher ob hier 0 und 1 oder 00 und 01 stehen soll > Tabelle M6

Damit ist der Befehl zum Abfragen der Werte soweit fertig.
Jetzt kommt die Antwort vom Gerät.
S2 sagt aus dass hier 8 Datenbytes erwartet werden.
Diese 8 Datenbytes gehören zu drei Werten.

Teilertrag aktueller Tag und Teilertrag seit dem letzten löschen sind jeweils Werte die aus zwei Bytes zusammengesetzt sind.
Und Solarertrag gesamt ist ein Wert der aus vier Bytes besteht.

Die Werte werden im csv bei type templates eingetragen.
Hier besteht aber das Problem dass man wissen muss wie die Bytes Interpretiert werden sollen.
Im ebusd wiki sind die möglichen Datentypen aufgelistet.
Bei den 2 Byte Werten würde ich als erstes mal UIN probieren, und beim 4 Byte Wert ULG.
Aber es könnten auch andere sein.


Das csv würde dann so aussehen.

Beim Abfragen mit ebusctl read BW1 sollten dann drei Werte ausgegeben werden.

Aber wie gesagt, ohne Garantie.

"# type (r[1-9],w,u)",circuit,name,comment,QQ,ZZ,PBSB,ID,field,part (m/s),type / templates,divider / values,unit,comment,field,part (m/s),type / templates,divider / values,unit,comment,field,part (m/s),type / templates,divider / values,unit,comment,field,part (m/s),type / templates,divider / values,unit,comment
r,broadcast,ident,Identifikation,,f6,0704,0,manufacturer,,UCH,0x10=TEM,,Geräte-Hersteller,,,STR:5,,,Geräte-ID,software,,PIN,,,Software-Version,hardware,,PIN,,,Hardware-Version
r,wrsol,BW1,Betriebswerte Feld1,,f6,1004,0,Kollektorfeld 1,,UIN,,,Teilertrag Tag,,,UIN,,,Ertrag seit Reset,,,ULG,,,Gesamtertrag,,,,,,
r,wrsol,BW2,Betriebswerte Feld1,,f6,1004,1,Kollektorfeld 2,,UIN,,,Teilertrag Tag,,,UIN,,,Ertrag seit Reset,,,ULG,,,Gesamtertrag,,,,,,

Gruß
Hans

kimi1983

Hallo,

vielen Dank für deine Erklärungen.

Mein Datei sieht nur wie folgt aus, andernfalls mit 0 oder 1 bekam ich eine Fehlermeldung.

# type (r[1-9],w,u)",circuit,name,comment,QQ,ZZ,PBSB,ID,field,part (m/s),type / templates,divider / values,unit,comment,field,part (m/s),type / templates,divider / values,unit,comment,field,part (m/s),type / templates,divider / values,unit,comment,field,part (m/s),type / templates,divider / values,unit,comment
r,broadcast,ident,Identifikation,,f6,0704,00,manufacturer,,UCH,0x10=TEM,,Geräte-Hersteller,,,STR:5,,,Geräte-ID,software,,PIN,,,Software-Version,hardware,,PIN,,,Hardware-Version
r,wrsol,BW1,Betriebswerte Feld1,,f6,1004,00,Kollektorfeld 1,,UIN,,,Teilertrag Tag,,,UIN,,,Ertrag seit Reset,,,ULG,,,Gesamtertrag,,,,,,
r,wrsol,BW2,Betriebswerte Feld1,,f6,1004,01,Kollektorfeld 2,,UIN,,,Teilertrag Tag,,,UIN,,,Ertrag seit Reset,,,ULG,,,Gesamtertrag,,,,,,

Resultat sieht wie folgt aus :

pi@raspberrypi:~ $ ebusctl read BW1
ERR: read timeout

pi@raspberrypi:~ $ ebusctl read BW2
ERR: read timeout

Heist das nun das die Adresse falsch angesprochen wird oder dass das Resultat nicht interpretiert werden konnte ?

hansg

Das heisst dass die Anfrage zum Gerät geschickt wurde, aber innerhalb der vorgesehenen Zeit keine
Rückmeldung erfolgte.

Schau doch mal was im Logfile steht wenn du die beiden Werte abfragst.
Wichtig wär zu wissen ob eine Antwort kommt, und wie die aussieht.

Evtl könntest du noch testen ob eine Antwort geschickt wird wenn du
die Werte mit dem Hex Befehl abfragst

ebusctl hex f610040100
und ebusctl hex f610040101

Evtl auch mal mit den Betriebswerten 2 auf Seite 8 versuchen

ebusctl hex f6100500

Hier auch schauen was im Logfile steht.

kimi1983

#27
Hallo,

anbei mein Versuch :

ebusctl read BW1

2019-12-10 21:08:18.963 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:08:19.692 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:08:20.421 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:08:21.150 [bus error] send to f6: ERR: read timeout
2019-12-10 21:08:21.150 [bus error] send message part 0: ERR: read timeout

ebusctl read BW2

2019-12-10 21:08:23.944 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:08:24.674 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:08:25.403 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:08:26.131 [bus error] send to f6: ERR: read timeout
2019-12-10 21:08:26.131 [bus error] send message part 0: ERR: read timeout

2019-12-10 21:09:43.322 [main notice] hex cmd: 31f610040100
2019-12-10 21:09:44.014 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:09:44.743 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:09:45.472 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:09:46.200 [bus error] send to f6: ERR: read timeout
2019-12-10 21:09:46.201 [main error] hex: ERR: read timeout
2019-12-10 21:09:50.204 [main notice] hex cmd: 31f610040101
2019-12-10 21:09:50.374 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:09:51.103 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:09:51.832 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:09:52.560 [bus error] send to f6: ERR: read timeout
2019-12-10 21:09:52.561 [main error] hex: ERR: read timeout
2019-12-10 21:09:55.638 [main notice] hex cmd: 31f6100500
2019-12-10 21:09:56.040 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:09:56.769 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:09:57.499 [bus error] send to f6: ERR: read timeout, retry
2019-12-10 21:09:58.227 [bus error] send to f6: ERR: read timeout
2019-12-10 21:09:58.227 [main error] hex: ERR: read timeout


Irgendwie scheint alles ins leere zu gehen.
Jediglich dieses Kommando gibt ein Resultat (sollte ja die Identifikation sein) :

pi@raspberrypi:~ $ ebusctl hex f6070400
0a105752534f4c01120110




hansg

Seltsam dass hier keine Rückmeldung kommt.

Es sollen sich eigentlich laut dem Datenblatt folgendes abfragen lassen.

ebusctl hex f6100100              Prozesswerte 1
ebusctl hex f6100200              Prozesswerte 2
ebusctl hex f6100300              Prozesswerte 3
ebusctl hex f610040100          Betriebswerte Kollektorfeld 1
ebusctl hex f610040101          Betriebswerte Kollektorfeld 2
ebusctl hex f6100500              Betriebswerte 2

Laut dem Datenblatt können auch die einzelnen ID Werte abgefragt werden.
Die ID Werte stehen im Wrsol Handbuch

Für die aktuelle Kollektortemperatur müsste die Abfrage
voraussichtlich so aussehen

ebusctl hex f6100603000e00

Ich würde mal testen ob sich ID Werte abfragen lassen

kimi1983

Hallo,

habe alles ausprobiert. Jedoch immer Read Timeout ?!
Können die beiden Kabel eigentlich verdreht sein ? Oder kann es sein das der Wrsol einfach zu langsam antwortet ?

mfg.