eBusd Konfiguration für TEM PS5511 - Arbeitsthread

Begonnen von DS_Starter, 18 Juni 2022, 20:55:57

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo zusammen,

nachdem mein eBusd schon einige Zeit sehr gut mit meiner Vaillant Heizung zusammenarbeitet, habe ich versucht die ersten Schritte in Richtung Erweiterung für den bei mir vorhandenen Solarregler (Solarthermie) TEM PS551 zu gehen.

Ich schicke voraus, dass ich mir das eBusd Wiki (https://github.com/john30/ebusd/wiki) gelesen habe, aber sehr sehr viele Fragen bzw. Lücken im Verständnis vorhanden sind.

Der aktuelle Stand ist, dass ein

ebusctl scan full

den TEM erkennt. Ein "ebusctl i" zeigt die Info:


version: ebusd 21.1.v21.1-3-g62221bb
update check: version 22.3 available, broadcast.csv: different version available, memory.csv: different version available, vaillant/08.bai.csv: newer version available, vaillant/15.700.csv: different version available, vaillant/52.vr_70.csv: different version available, vaillant/bai.0010007508.inc: different version available, vaillant/broadcast.csv: different version available, vaillant/errors.inc: different version available, vaillant/general.csv: different version available, vaillant/hcmode.inc: newer version available, vaillant/scan.csv: different version available, vaillant/service.inc: different version available
access: *
signal: acquired
symbol rate: 49
max symbol rate: 122
min arbitration micros: 1
max arbitration micros: 41
min symbol latency: 6
max symbol latency: 29
reconnects: 0
masters: 4
messages: 662
conditional: 0
poll: 0
update: 10
address 03: master #11
address 04: slave #25, ebusd
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0703;HW=7401", loaded "vaillant/bai.0010007508.inc" ([PROD='0010007508']), "vaillant/08.bai.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0614;HW=6903", loaded "vaillant/15.700.csv"
address 52: slave, scanned "MF=Vaillant;ID=VR_70;SW=0109;HW=2903", loaded "vaillant/52.vr_70.csv"
address f7: master #20
address fc: slave #20, scanned "MF=TEM;ID=PS551;SW=3178;HW=7878"
address ff: master #25, ebusd


Der erkannte TEM hat die Adresse fc.
Nun habe ich versucht mit


ebusctl grab result


weitere Informationen zu bekommen. Allerdings sehe ich nur Vaillant Messages (b5):


1008b5110100 / 08a8010e001f000000 = 19
10feb510020601 = 4
1008b5120204ff / 00 = 4
1008b513020508 / 00 = 4
1008b5100305ff03 / 00 = 4
1052b5030c0700ffffffffffffffffffff / 0101 = 1


Wie komme ich weiter bzw. welche Schritte fehlen um zu einer Dekodierung zu kommen ?

Ich habe mir schon die Befehlscodes aus dem Modul 70_TEMPS.pm (https://forum.fhem.de/index.php/topic,115377.0.htm) angeschaut, bin jedoch nicht wirklich schlauer geworden wie diese Codes in das Format des eBusd Control umgesetzt werden müssten.

Möglicherweise gibt es noch mehr Interessenten und eine funktionierende Konfigurations-CSV würde eBusd bereichern.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

#1
Nun habe ich noch im Konfigurationsverzeichnis /etc/ebusd (ich verwende eine lokale Konfig) die Datei "../tem/fc.ps551.csv" angelegt.
Nach meinem bisherigen Kenntnisstand beginnt der Name mit der Adresse (fc), gefolgt von der ID in Kleinbuchstaben sowie optional weiteren Bestandteilen.

Da TEM so erkannt wird:


address fc: slave #20, scanned "MF=TEM;ID=PS551;SW=3178;HW=7878"


sollte m.M. nach der Name passen.
Die Datei hat folgenden Inhalt:


# type(r[1-9]wu),circuit,name,[comment],[QQ],ZZ,PBSB,[ID],field1,part (m/s),datatypes/templates,divider/values,unit,comment
#,PS551,PS551,,,,,,,,,,,
*r,PS551,,,,FC,0900,,,,,,,
r,,T_Kollektor_oben,,,,,03A0F502,temp,,,10,°C,


Allerdings wird sie nicht geladen, was mich sehr wundert.
Die erkannten Vaillant Devices werden geladen:


address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0703;HW=7401", loaded "vaillant/bai.0010007508.inc" ([PROD='0010007508']), "vaillant/08.bai.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0614;HW=6903", loaded "vaillant/15.700.csv"
address 52: slave, scanned "MF=Vaillant;ID=VR_70;SW=0109;HW=2903", loaded "vaillant/52.vr_70.csv"
address ec: slave, scanned "MF=Vaillant;ID=SOL00;SW=0614;HW=6903", loaded "vaillant/ec.sol.sc.csv"
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

#2
Heute habe ich zum ersten Mal die folgende Meldung im ebusd Log gefunden:


2022-06-19 02:23:49.826 [update info] received MS cmd: 10fc070400 / 0a10505335353131787878
2022-06-19 02:23:49.826 [update notice] received scan-read scan.fc  QQ=10: TEM;PS551;3178;7878
2022-06-19 03:09:04.878 [update info] received MS cmd: 10fc070400 / 0a10505335353131787878
2022-06-19 03:09:04.879 [update notice] received scan-read scan.fc  QQ=10: TEM;PS551;3178;7878
2022-06-19 03:24:27.117 [update info] received MS cmd: 10fc070400 / 0a10505335353131787878
2022-06-19 03:24:27.117 [bus notice] scan fc: ;TEM;PS551;3178;7878
2022-06-19 03:24:27.119 [update notice] store fc ident: done
2022-06-19 03:24:27.126 [update notice] received scan-read scan.fc  QQ=10: TEM;PS551;3178;7878
2022-06-19 03:24:27.452 [bus info] scan fc cmd: fffcb5090124
2022-06-19 03:24:27.963 [main error] error reading scan config file tem/fc.ps551.csv for ID "ps551", SW3178, HW7878: ERR: missing argument, tem/fc.ps551.csv:4: ERR: missing argument, field type in field 0
2022-06-19 03:24:27.963 [main error] scan config fc: ERR: read timeout


Es deutet auf einen Fehler in der Datei fc.ps551.csv hin.
Allerdings hatte ich die ergänzte Konfiguration geprüft mit:


root@ebusd:/etc/ebusd# ebusd --scanconfig --checkconfig
2022-06-18 16:25:43.862 [main notice] ebusd 21.1.v21.1-3-g62221bb performing configuration check...
2022-06-18 16:25:44.031 [main notice] found messages: 11 (0 conditional on 0 conditions, 0 poll, 4 update)
2022-06-18 16:25:44.031 [main notice] ebusd stopped
root@ebusd:/etc/ebusd#


Hier wurden zunächst keine Fehler gemeldet, aber vielleicht habe ich die Verwendung dieses Aufrufs noch nicht richtig verstanden.
Falls jemand am gleichen Thema dran ist bzw. Erfahrungen hat, bitte hier gerne die Infos teilen.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Mittlerweile bin ich schon gut vorangekommen.
Wichtig war die CSV-Datei so zu erstellen, dass sie geladen werden konnte. D.h. die grundlegenden Fehler mussten zunächst bereinigt werden.
Die CSV-Datei habe ich noch in fc.ps551.HW7878.SW3178.csv um die Hardware- und Softwareversion mit zu verknüpfen.

Weiterhin konnte ich die in 70_TEMPS.pm verwendeten RAM-Adressen nicht 1:1 verwenden. Die gelieferten Werte waren inhaltlich nicht sinnvoll. Für meinen TEM PS 5511 S-1 brauchbare RAM-Adressen habe ich in diesem Beitrag (https://www.haustechnikdialog.de/Forum/t/133963/Solar-Regelung-TEM-PS-5511-SZ) gefunden.
Allerdings mussten auch hier LOW und HIGH Byte getauscht werden.

Zur Zeit können somit bereits etliche Daten aus dem TEM gelesen werden.
Der aktuelle Inhalt der CSV ist folgender:


# type (r[1-9];w;u),circuit,name,comment,QQ,ZZ,PBSB,ID,FIELD,part (m/s),type / templates,divider / values,unit,comment
#,PS551,PS551,,,,,,,,,,,
*r,PS551,,,,FC,0900,,,,,,,
r,,TKO,Temp Kollektor oben,,,,0AF502,T,,UIN,10,°C,
r,,TBU,Temp Boiler unten,,,,7AF402,T,,UIN,10,°C,
r,,TPU,Temp Puffer unten,,,,E2F402,T,,UIN,10,°C,
r,,TFK,Temp Zusatzkesselfühler,,,,BAF402,T,,UIN,10,°C,
r,,Q,Solarleistung aktuell,,,,22F502,SOL,,UIN,10,kW,
r,,QTOT,Solarertrag total,,,,24F502,SOL,,UIN,,kWh,passt nicht
r,,PS,Solarpumpe Drehzahl aktuell,,,,62F402,SPEED,,UIN,10,%,
r,,PFK,Zusatzkessel Pumpe Drehzahl aktuell,,,,64F402,SPEED,,UIN,10,%,
r,,PS2,Pumpe unbekannt,,,,3CF402,,,UIN,10,%,unbekannt
r,,MODE,SolarMode,,,,22F402,SOL,,UIN,0=off;1=manual;2=auto,,


Die Daten können auf Shell-Ebene mit dem ebusctl abgerufen werden, z.B.:


root@ebusd:/# ebusctl read -f PS
100.0

root@ebusd:/# ebusctl read -f Q
3.2

root@ebusd:/# ebusctl read -f TKO
70.3

root@ebusd:/# ebusctl read -f TBU
70.1

root@ebusd:/# ebusctl read -f TPU
47.4


Mein eBusd ist bereits per MQTT in FHEM eingebunden. Dadurch wurde automatisch über die MQTT-Bridge ein neues MQTT Device angelegt und die resultierenden Daten als Readings bereitgestellt:


   READINGS:
     2022-06-21 09:58:54   IODev           MQTT_Broker
     2022-06-21 13:43:10   MODE_SOL_value  auto
     2022-06-21 13:50:29   Q_SOL_value     3.2
     2022-06-21 14:39:28   TBU_T_value     70.1
     2022-06-21 13:25:39   TFK_T_value     0.0
     2022-06-21 14:39:24   TKO_T_value     70.3
     2022-06-21 14:39:33   TPU_T_value     47.4
     2022-06-21 09:58:54   subscriptions   ebusd/#
Attributes:
   readingList ebusd_21.1_1:ebusd/PS551/TKO:.* { json2nameValue($EVENT, 'TKO_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/TBU:.* { json2nameValue($EVENT, 'TBU_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/TPU:.* { json2nameValue($EVENT, 'TPU_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/PS:.* { json2nameValue($EVENT, 'PS_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/MODE:.* { json2nameValue($EVENT, 'MODE_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/PS2:.* { json2nameValue($EVENT, 'PS2_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/Q:.* { json2nameValue($EVENT, 'Q_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/P:.* { json2nameValue($EVENT, 'P_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/PTOT:.* { json2nameValue($EVENT, 'PTOT_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/TFK:.* { json2nameValue($EVENT, 'TFK_', $JSONMAP) }
ebusd_21.1_1:ebusd/PS551/PFK:.* { json2nameValue($EVENT, 'PFK_', $JSONMAP) }


Die Daten schickt der TEM aber nicht reglmäßig als Broadcast. Sie müssen aktiv abgerufen werden. Das wird später mit einem at Device erledigt.

Eine Frage an die eBusd Spezialisten bzw. john30 (sofern er hier mitliest).
Wie kann ich am effektivsten den RAM Bereich 0xF400 bis 0xF5FF durchscannen um Speicherinhalte mit relevanten Inhalten zu finden und zuzuordnen ?
Bisher hatte ich festgestellt, dass ich in der CSV-Datei für jede interessiernde RAM-Adresse einen Eintag erstellen musste damit ich sie mit dem Befehl


ebusctl read -f -h ZZPBSBNNDD


auslesen konnte. Ansonsten kam


ERR: element not found


LG
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Mit dem HEX - Befehl kann man den RAM auslesen ohne eine Definition in der CSV hinterlegen zu müssen, z.B.:

  ebusctl hex fc09000324F502

Damit kann ich nun mit Geduld und Spucke einzelne RAM Bereiche durchscannen und mit vllt. noch den einen oder anderen Wert zuordnen.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Kurzes Update zum Stand.
Ich konnte schon maßgebliche Werte extrahieren und zuordnen. Festgestellt habe ich dass die Verfügbarkeit und die Aktualisierung der Register von der eingestellten Hydraulikvariante und den aktivierten Optionen abhängig ist.
So wird zB. TKR (Solar Rücklauftemperatur) nur aktualisiert wenn man die Option VIG (Volumenimpulsgeber) aktiviert. Das macht das Ganze nicht einfacher.

Der momentane Stand der CSV - Datei für ebusd sieht so aus und passt schon sehr gut:


# type (r[1-9];w;u),circuit,name,comment,QQ,ZZ,PBSB,ID,FIELD,part (m/s),type / templates,divider / values,unit,comment
#,PS551,PS551,,,,,,,,,,,
*r,PS551,,,,FC,0900,,,,,,,
r,,Charging_Target_DeltaTemp_Collector_On,Überhöhung Kollektor zu Ladeziel Ein,,,,18F502,_,,UIN,10,K,
r,,Charging_Target_DeltaTemp_Collector_Off,Überhöhung Kollektor zu Ladeziel Aus,,,,1AF502,_,,UIN,10,K,
r,,Charging_Target,"Aufladung Speicher, Puffer oder Bad",,,,32F501,_,,UCH,1=Buffer;2=Puffer,,
r,,PS_Average_Speed,mittlere Leistung Solarpumpe,,,,1EF502,_,,UIN,10,%,
r,,Buffer_Setpoint_Temperature,Speicher Sollwert Temp.,,,,76F402,_,,UIN,,°C,
r,,Puffer_Setpoint_Temperature,Puffer Sollwert Temp.,,,,D8F402,_,,UIN,,°C,
r,,Operating_Mode,Betriebsmodus,,,,22F402,_,,UIN,0=off;1=manual;2=auto,,
r,,PS_Actual_Speed,Solarpumpe aktuelle Leistung,,,,62F402,_,,UIN,10,%,
r,,PFK_Actual_Speed,Zusatzkessel Pumpe aktuelle Leistung,,,,64F402,_,,UIN,10,%,
r,,TBU_Temperature,Temp Speicher unten,,,,7AF402,_,,UIN,10,°C,
r,,TFK_Temperature,Temp Zusatzkessel,,,,BAF402,_,,UIN,10,°C,
r,,TPU_Temperature,Temp Puffer unten,,,,E2F402,_,,UIN,10,°C,
r,,TKO_Temperature,Temp Kollektor oben,,,,0AF502,_,,UIN,10,°C,
r,,TKR_Temperature,Temp Kollektor Rücklauf,,,,50F502,_,,UIN,10,°C,
r,,Solar_Actual_Power,Solarleistung aktuell,,,,22F502,_,,UIN,10,kW,
r,,Solar_Total_Yield,Solarertrag total,,,,26F502,_,,UIN,,kWh,
r,,PS_Operating_Hours,Betriebsstunden Solarpumpe,,,,28F502,_,,UIN,,h,
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

#6
Ich habe einen Stand erreicht der für meine Zwecke zunächst ausreicht.
Für die einfache Nachnutzung bzw. Weiterentwicklung habe ich die Datei fc.ps551.HW7878.SW3178.hv4.csv (hv4 = Hydraulik Variante 4) in meinem contrib im Verzeichnis ebusd/tem bereitgestellt.

Vielleicht gelingt es mir später noch weitere Parameter zu identifizieren, z.B. die eingestelle Hydraulikvariante. Dann wäre es sicherlich auch möglich entsprechende Varianten der CSV zu erstellen und bei Bedarf zu laden.
Vielleicht kann mich ein TEM Anwender dabei unterstützen.

Da ich MQTT aktivierte habe, wird ein Device automatisch angelegt sobald Werte abgerufen werden.
Zum Abruf verwende ich die folgende at-Definition:


define get.ebus.tem.short at +*00:00:27\
set MQTT_Broker publish ebusd/PS551/TKO_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/TBU_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/TPU_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/TFK_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/TKR_Temperature/get;;           \
\
set MQTT_Broker publish ebusd/PS551/PS_Actual_Speed/get;;\
set MQTT_Broker publish ebusd/PS551/PS_Average_Speed/get;;\
set MQTT_Broker publish ebusd/PS551/PFK_Actual_Speed/get;;\
set MQTT_Broker publish ebusd/PS551/Solar_Actual_Power/get;;\
set MQTT_Broker publish ebusd/PS551/Solar_Total_Yield/get;;\
set MQTT_Broker publish ebusd/PS551/Charging_Target/get;;\
\
set MQTT_Broker publish ebusd/PS551/Buffer_Setpoint_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/Puffer_Setpoint_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/Charging_Target_DeltaTemp_Collector_On/get;;\
set MQTT_Broker publish ebusd/PS551/Charging_Target_DeltaTemp_Collector_Off/get;;\
set MQTT_Broker publish ebusd/PS551/Operating_Mode/get;;\
set MQTT_Broker publish ebusd/PS551/PS_Operating_Hours/get;;
attr get.ebus.tem.short alias Abruf eBus TEM PS 5511 (kurzes Intervall)
attr get.ebus.tem.short cmdIcon execNow:rc_BACK
attr get.ebus.tem.short disable 0
attr get.ebus.tem.short group eBus Heizung
attr get.ebus.tem.short icon clock
attr get.ebus.tem.short room Haustechnik->eBus
attr get.ebus.tem.short sortby 6
attr get.ebus.tem.short webCmd execNow


Die Bedeutung der Readings ist:


TKO_Temperature                          Temp Kollektor oben                            °C
TBU_Temperature                          Temp Speicher unten                            °C
TPU_Temperature                          Temp Puffer unten                              °C
TFK_Temperature                          Temp Zusatzkessel                              °C
TKR_Temperature                          Temp Kollektor Rücklauf                        °C
Solar_Actual_Power                       Solarleistung aktuell                          kW
Solar_Total_Yield                        Solarertrag total                              kWh
PS_Actual_Speed                          Solarpumpe Drehzahl aktuell                    %
PS_Average_Speed                         mittlere Leistung Solarpumpe                   %
PS_Operating_Hours                       Beteriebsstunden Solarpumpe                    h
PFK_Actual_Speed                         Zusatzkessel Pumpe Drehzahl aktuell            %
Operating_Mode                           Betriebsmodus                                  0=off;1=manual;2=auto
Buffer_Setpoint_Temperature              Speicher Solltemperatur                        °C
Puffer_Setpoint_Temperature              Puffer Solltemperatur                          °C
Charging_Target_DeltaTemp_Collector_On   Überhöhung Kollektor->Speicher für Pumpe an    K
Charging_Target_DeltaTemp_Collector_Off  Überhöhung Kollektor->Speicher für Pumpe aus   K


Der Abruf von TFK_Temperature und PFK_Actual_Speed ist in der Hydraulik Variante 4 nicht sinnvoll, wollte damit jedoch den kompletten aktuelle Arbeitsstand zur Verfügung stellen.

Man kann sicherlich noch einiges ergänzen und verbessern, insbesondere wenn jemand noch tiefer in der ebus(d) und TEM Materie steckt. Aber möglicherweise sind auch andere User an der PS 5511 Integration interessiert und die Vorarbeit hilft.
Später arbeite ich an der Stelle evtl. weiter und bin natürlich immer offen für Hinweise und Ergänzungen !

LG,
Heiko 
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mr_86

Hallo Heiko,
ich finds total genial was du hier machst!
Habe mir vor rund zwei Jahren auch den eBus Adapter mit dem Ziel meinen PS5511 einzubinden besorgt, aber bin auf die gleichen Probleme gestoßen wie du. Ebenso habe ich den Haustechnik-Thread gefunden, aber mangels Programmierkenntnis und letztlich auch Zeit habe ich das Ganze nicht zum Laufen gebracht und dann einschlafen lassen.
Jetzt kann ich es kaum erwarten den Aufbau wieder heraus zu kramen und mit deinen neuen Erkenntnissen nochmal versuchen, es zum Laufen zu bekommen.  :)
Danke schon mal für deine Arbeit und viele Grüße!
Matthias

DS_Starter

#8
Hallo Matthias,

na dann sind wir schon zwei Kämpfer mit PS 5511  :)

Ich habe noch etwas weiter gemacht und eine aktualisierte Datei ins contrib geladen.

Die aktuelle Readingbedeutung:


TKO_Temperature                          Temp Kollektor oben                            °C
TBU_Temperature                          Temp Speicher unten                            °C
TPU_Temperature                          Temp Puffer unten                              °C
TFK_Temperature                          Temp Zusatzkessel                              °C
TKR_Temperature                          Temp Kollektor Rücklauf                        °C
Solar_Actual_Power                       Solarleistung aktuell                          kW
Solar_Total_Yield                        Solarertrag total                              kWh
PS_Actual_Speed                          Solarpumpe Leistung aktuell                    %
PS_Average_Speed                         mittlere Leistung Solarpumpe                   %
PS_Operating_Hours                       Betriebsstunden Solarpumpe                     h
PFK_Actual_Speed                         Zusatzkessel Pumpe Drehzahl aktuell            %
Operating_Mode                           Betriebsmodus                                  off / manual / auto
Buffer_Setpoint_Temperature              Speicher Solltemperatur                        °C
Puffer_Setpoint_Temperature              Puffer Solltemperatur                          °C
Charging_Target                          aktuelles Ladeziel                             Buffer / Puffer
Charging_Target_DeltaTemp_Collector_On   Überhöhung Kollektor->Ladeziel für Pumpe an    K
Charging_Target_DeltaTemp_Collector_Off  Überhöhung Kollektor->Ladeziel für Pumpe aus   K
Possible_LoadingTarget                   mögliche Ladeziele je nach Hydraulikschema     true / false
RadiationSensor_Option                   Option Strahlungssensor gesetzt                true / false
VIG_Option                               Option Volumenimpulsgeber gesetzt              true / false



Noch etwas zu meiner Umgebung. Ich spreche den ebus V3 Adapter mit dem ebusd Daemon aus einem Docker Container meiner Synology an. Gestartet ist ebusd mit den Optionen:


ebusd -f --enablehex --enabledefine --scanconfig --configlang=de --configpath=/etc/ebusd --accesslevel=* -d enh:192.168.2.216:9999 --loglevel=info --latency=20 --address=ff --mqttport=1883 --mqttjson --mqtthost=192.168.2.46 --mqtttopic=ebusd/%circuit/%name",


Du siehst ich benutze eine lokales Konfigurationsverzeichnis "/etc/ebusd". Das ist im Docker gemapt auf ein Volume der Synology. Dadurch kann ich die Konfiguration sehr einfach ablegen.
Die von mir erstellte Datei legt man einfach ab in dem Verzeichnis "/etc/ebusd/tem".

Wird ebusd gestartet oder die Konfig mit "ebusctl reload" neu geladen, muß der TEM erkannt und die csv geladen werden.
Ein "ebusctl i" sollte dann zeigen (dauert u.U. einige Zeit):


address fc: slave #20, scanned "MF=TEM;ID=PS551;SW=3178;HW=7878", loaded "tem/fc.ps551.HW7878.SW3178.hv4.csv"


Im FHEM passiert dann noch nichts. Erst wenn die Daten aktiv abgerufen werden kommen Readings (bei mir steht die MQTT Kommunikation bereits). Den Abruf mache ich mit einem einfachen at-Device:


defmod get.ebus.tem.short at +*00:00:27\
set MQTT_Broker publish ebusd/PS551/TKO_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/TBU_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/TPU_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/TFK_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/TKR_Temperature/get;;           \
\
set MQTT_Broker publish ebusd/PS551/PS_Actual_Speed/get;;\
set MQTT_Broker publish ebusd/PS551/PS_Average_Speed/get;;\
set MQTT_Broker publish ebusd/PS551/PFK_Actual_Speed/get;;\
set MQTT_Broker publish ebusd/PS551/Solar_Actual_Power/get;;\
set MQTT_Broker publish ebusd/PS551/Solar_Total_Yield/get;;\
set MQTT_Broker publish ebusd/PS551/Charging_Target/get;;\
\
set MQTT_Broker publish ebusd/PS551/Buffer_Setpoint_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/Puffer_Setpoint_Temperature/get;;\
set MQTT_Broker publish ebusd/PS551/Charging_Target_DeltaTemp_Collector_On/get;;\
set MQTT_Broker publish ebusd/PS551/Charging_Target_DeltaTemp_Collector_Off/get;;\
set MQTT_Broker publish ebusd/PS551/Operating_Mode/get;;\
set MQTT_Broker publish ebusd/PS551/PS_Operating_Hours/get;;\
\
set MQTT_Broker publish ebusd/PS551/Possible_LoadingTarget/get;;\
set MQTT_Broker publish ebusd/PS551/VIG_Option/get;;\
set MQTT_Broker publish ebusd/PS551/RadiationSensor_Option/get;;
attr get.ebus.tem.short alias Abruf eBus TEM PS 5511 (kurzes Intervall)
attr get.ebus.tem.short cmdIcon execNow:rc_BACK
attr get.ebus.tem.short disable 0
attr get.ebus.tem.short group eBus Heizung
attr get.ebus.tem.short icon clock
attr get.ebus.tem.short room Haustechnik->eBus
attr get.ebus.tem.short sortby 6
attr get.ebus.tem.short webCmd execNow


Wenn du einen PS 5511 S-1 hast, sollte es schon passen. Wenn es eine anderere Variante ist muß man u.U. wieder auf die Suche nach den Speicheradressen gehen.
Aber wenn du es bei dir am Laufen hast, zeige ich dir auch gerne wie ich vorgehe um die Werte zu suchen. Es ist ja noch einiges zu erforschen ...

LG
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mr_86

#9
Hallo Heiko,
danke für deine lange Antwort.
Zunächst schreib ich auch noch mal ein bisschen was über mich, da ich ja neu hier bin: Ich bin E-Techniker, komm aber mehr aus der Hardware- als aus der Software-Ecke.
Einen Raspberry im Keller habe ich schon ewig (seit dem Studium) und hab damit angefangen, Wasser- und Stromzähler "analog" mit einer Reflexlichtschranke und einem Arduino auszulesen, und an den Raspberry die Werte mit Impulsen zu übermitteln. Gespeichert wurden die Impulse via Python Skript in einer .csv Datei, welche dann ein Java-Skript visualisiert hat. ;D Lang ists her.

Dann begann aber das Berufsleben mit 40h-Woche und es kamen Kinder, was die Zeit für solche Spielereien arg dezimierte...
Was noch folgte waren die Integration von Gaszähler (Reed via Arduino), Umstellung auf einen digitalen Stromzähler (IR-Kopf), und ein Wärmemengenzähler (ebenfalls IR) sowie einige DS18B20 Sensoren an der Heizungsanlage.
Erfolglos blieben Versuche mit der Gastherme (die hätte eine OpenTherm Schnittstelle, ich hab aber keine Kommunikation hinbekommen) sowie eben mit dem Solarregler...
Softwaremäßig habe ich es auch noch ein wenig auf neueren Stand gebracht: Das Auslesen übernehmen immer noch diverse Python-Skripte, aber geschrieben wird das ganze in eine Influx Datenbank und visualisiert mit Grafana...
Mit FHEM gab es auch mal einen Anlauf, aber am Ende blieb ich bei meiner Lösung mangels Zeit und getreu dem Motto "never change a running system"  ;)

So viel zur Vorgeschichte. Nun zum Regler.
Ich habe gestern natürlich gleich noch ein wenig probieren müssen, und ich bin so weit gekommen, dass er mir antwortet. Also die Zeile
address fc: slave #20, scanned "MF=TEM;ID=PS551;SW=3178;HW=7878",
habe ich empfangen. Als nächstes steht jetzt dann die Abfrage der Werte an. Ich werde also a) erstmal abrufen welche Hydraulikvariante ich habe b) deine config einspielen und c) dann versuchen abzufragen.
Ich muss zugeben mir sagt der "Docker Container" nichts und auch weiß ich nicht was eine Synology ist. Aber ich denke was bei dir die Synology ist, ist bei mir eben der Pi.
Und bei dir läuft die Abfrage übers Netzwerk/IP, und bei mir "direkt" über den ebus-Adapter bzw. dessen USB-Seriell Chip...
Mal schauen wann ich dazu komm, hoffentlich bald.  ;)

Eine Frage hätte ich noch: Du schreibst
ZitatWenn du einen PS 5511 S-1 hast, sollte es schon passen.
. Wie kann ich denn herausfinden, ob ich die Version S-1 oder eine andere hab?
Danke dir und viele Grüße!
Matthias

DS_Starter

Hallo Matthias,

Zitat
address fc: slave #20, scanned "MF=TEM;ID=PS551;SW=3178;HW=7878",

Die csv muss aber auch geladen werden, also der rote Teil

   address fc: slave #20, scanned "MF=TEM;ID=PS551;SW=3178;HW=7878", loaded "tem/fc.ps551.HW7878.SW3178.hv4.csv"

darf bei der Anzeige von "ebusctl i" nicht fehlen.

ZitatWie kann ich denn herausfinden, ob ich die Version S-1 oder eine andere hab?
Steht oben auf dem Typenschild.  ;)

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mr_86

Hallo Heiko,
heute habe ich mich wieder ein wenig damit beschäftigt und das configfile angepasst. Jetzt zeigt es mir auch die Zeile richtig an:
address fc: slave #20, scanned "MF=TEM;ID=PS551;SW=3178;HW=7878", loaded "tem/fc.ps551.HW7878.SW3178.hv4.csv"
Allerdings kann ich immer noch keine Werte auslesen. Ich muss aber auch dazu sagen, dass bei mir "Hydraulikvariante 1" eingestellt ist, und auf dem Typenschild nur "PS 5511 S", ohne der -1 steht, vielleicht liegt es daran...
Aus der Log-Datei werde ich nicht wirklich schlau, ich hab sie mal angehängt.
Dort finde ich zwar schon eine Zeile 2022-07-01 16:01:04.274 [main notice] found messages: 18 (0 conditional on 0 conditions, 0 poll, 0 update), aber Abfrage wie ebusctl read -f TKO werden weiterhin mit ERR: element not foundquittiert...
Viele Grüße!
Matthias

DS_Starter

Das sieht doch schon gut aus.

Der Abruf erfolgt so:


ebusctl read -f TKO_Temperature


Du nimmst als Argument den String der in der CSV in der Spalte "name" hinterlegt ist.

Hydraulikvariante 1 kann ich bei mir simulieren wenn nötig.
Probiere erstmal aus ob es prinzipiell geht und ob die Werte sinnvoll sind die du bekommst.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mr_86

Ah, während ich schrieb hast du geantwortet.
Der Abruf
ebusctl read -f TKO_Temperature
gibt bei mir 0.0 zurück.

ABER jetzt zu meinem eigentlichen Post:
Es scheint aber nur noch eine ganz kleine Sache im Code zu sein. Denn wenn ich die Werte "händisch" Abfrage bekomme ich sie.
pi@strompi2gen:~ $ ebusctl hex FC0900033EF502
023c01
pi@strompi2gen:~ $ ebusctl hex FC090003A0F502
02c000

Die 31.6° für den Puffer bzw 19.2° für den Kollektor passen. Welch Freude!  :D

mr_86

Ah, ich habs selbst entdeckt!
Für mich sind schon die Adressen die in der 70_TEMPS hinterlegt sind die richtigen!  :D
Es läuft! Hurra und danke für deine/eure Arbeit nochmal!
Ich meld mich dann auch nochmal und geb Bescheid welche Werte mein Regler alle preisgibt.
Viele Grüße und schönen Abend!