john30 / ebusd-configuration

ebusd configuration files
GNU General Public License v3.0
174 stars 273 forks source link

[HOWTO] Wolf CGB-11, SM-1 and eBus adapter 3 #216

Open ngblume opened 3 years ago

ngblume commented 3 years ago

Hey everyone,

since I recently started working with eBus and the Wolf heating systems, I would like to post my findings / how far I got and how I got there (for everyone looking to get started). >> Questions at the end of post

System:

eBus-Adapter and tools

Status

  1. receiving messages from system
  2. (most) messages properly decoded
  3. missing solar

HowTo (get there)

Options to pass to ebusd (run "ebusd -?" for more info):

EBUSD_OPTS="-c /etc/ebusd/ -d enh:/dev/ttyAMA0 --latency=50 --enablehex"

16. Change to your home directory via "cd /home/pi/"
`cd /home/pi/`
17. Create folder "ebus-configs" using "mkdir ebus-configs"
`mkdir ebus-configs`
18. Change to newly created folder via "cd ebus-configs"
`cd ebus-configs`
19. Clone GIT repository into this path using "git clone https://github.com/john30/ebusd-configuration.git"
`git clone https://github.com/john30/ebusd-configuration.git`
20. Create folder "/etc/ebusd/" using "sudo mkdir /etc/ebusd/"
`sudo mkdir /etc/ebusd/`
21. Change to directory using "cd /etc/ebusd"
`cd /etc/ebusd`
22. Copy over config files to this folder using "cp /home/pi/ebus-configs/ebusd-configuration/ebusd-2.x.x/de/* /etc/ebusd/"
`cp /home/pi/ebus-configs/ebusd-configuration/ebusd-2.x.x/de/* /etc/ebusd/`
23. Reboot RPI (might not be necessary)
24. Start eBusd service using "service ebusd start"
For autostart: 
Once: "sudo update-rc.d ebusd defaults", 
then to activate or deactive autostart: "update-rc.d ebusd enable" or "update-rc.d ebusd disable"

service ebusd start sudo update-rc.d ebusd defaults update-rc.d ebusd enable update-rc.d ebusd disable

25. Check eBus working properly using "ebusctl s"
Result should look something like this:

pi@ebus-rpi:/etc/ebusd $ ebusctl s signal acquired, 35 symbols/sec (98 max), 8 masters

26. Run full scan of device on the bus (not to confuse with scanconfig) using "ebusctl scan full"
`ebusctl scan full`
27. Wait a little for scan to complete (if you are to eager and proceed, there will be a message stating "scan still in progress")
28. Show results of scan using "ebusctl scan result"
Results could look something like this:

pi@ebus-rpi:/etc/ebusd $ ebusctl scan result 08;Kromschroeder; 3B ; 0c;Kromschroeder; ;0204;- 15;Kromschroeder; ;0204;- 35;Kromschroeder; ;0204;- 75;Kromschroeder; ;0204;- 76;Kromschroeder; ;0227;- f6;Kromschroeder; ;0204;-

29. Get info from eBus daemon using "ebusctl i".
Results could look something like this:
(And if I understood @john30 correctly, the "error: ERR: argument value out of valid range" is the reason, why scanconfig does not work properly)

pi@ebus-rpi:/etc/ebusd $ ebusctl i version: ebusd 21.2.v21.2 update check: OK, broadcast.csv: different version available signal: acquired symbol rate: 22 max symbol rate: 98 min arbitration micros: 6 max arbitration micros: 48 min symbol latency: 10 max symbol latency: 28 reconnects: 0 masters: 8 messages: 63 conditional: 0 poll: 0 update: 6 address 03: master #11 address 07: master #16 address 08: slave #11, scanned "MF=Kromschroeder;ID= 3B ;SW=" error: ERR: argument value out of valid range address 0c: slave #16, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-" address 10: master #2 address 15: slave #2, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-" address 30: master #3 address 31: master #8, ebusd address 35: slave #3, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-" address 36: slave #8, ebusd address 70: master #4 address 71: master #9 address 75: slave #4, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-" address 76: slave #9, scanned "MF=Kromschroeder;ID= ;SW=0227;HW=-" address f1: master #10 address f6: slave #10, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-"

30. Try to read a value from the bus, for example the "betrd" broadcast ("Betriebsdaten" - Operation Info) using "ebusctl r betrd".
Result could look something like this:

pi@ebus-rpi:/etc/ebusd $ ebusctl r betrd 1;00;-;36.0;-;53;15

31. Look at what you can read with the loaded config using "ebusctl f -F name,comment":
Results could look something like this:

pi@ebus-rpi:/etc/ebusd $ ebusctl f -F name,comment betrd,Betriebsdaten des Feuerungsautomaten an den Regler datetime,Datum/Uhrzeit error,Fehlernachricht ident,Identifikation ident,Identifikation signoflife,Lebenszeichen sollw,Sollwertübertragung des Reglers an andere Regler hg01,HG 01 - Hysterese Vorlauftemperatur hg02,HG 02 - Untere Geblaesedrehzahl hg03,HG 03 - Obere Geblaesedrehzahl Warmwasser hg04,HG 04 - Obere Geblaesedrehzahl Heizung hg06,HG 06 - Heizkreispumpenbetriebsart hg07,HG 07 - Heizkreispumpennachlauf hg08,HG 08 - Maximale Vorlaufsolltemperatur hg09,HG 09 - Taktsperre hg10,HG 10 - eBus-Adresse hg11,HG 11 - Warmwasserschnellstart hg12,HG 12 - Gasart hg15,HG 15 - Speicherhysterese hg16,HG 16 - Pumpenleistung HK minimal hg17,HG 17 - Pumpenleistung HK maximal hg21,HG 21 - Kesselminimaltemperatur hg22,HG 22 - Kesselmaximaltemperatur hg73,HG 73 - Io-Istwert hg74,HG 74 - Geblaesedrehzahl hg75,HG 75 - Warmwasserdurchsatz hg90,HG 90 - Brennerbetriebsstunden hg91,HG 91 - Brennerstarts hg9x,HG 9x - Netzbetriebsstunden pwm_pumpe,PWM Pumpe ruecklauf_ist,Ruecklauf Ist-Temperatur vorlauf_ist,Vorlauf Istwert vorlauf_soll,Vorlauf Sollwert warmwasser_ist,Warmwasser Ist-Temperatur warmwasser_soll,Warmwasser Solltemperatur eeprom,EEPROM Daten lesen ram,RAM Daten lesen , , , , , , ,

32. Read other parameters as listed in the documents in this folder: https://github.com/john30/ebusd-configuration/tree/master/ebusd-2.x.x/de/wolf, for example like this (for different language use different path in step 22):

pi@ebus-rpi:/etc/ebusd $ ebusctl r betrd 1;00;-;36.0;-;53;15

pi@ebus-rpi:/etc/ebusd $ ^C pi@ebus-rpi:/etc/ebusd $ ebusctl r betrd 1;00;-;36.0;-;53;15

pi@ebus-rpi:/etc/ebusd $ ebusctl r warmwasser_ist 53.0

pi@ebus-rpi:/etc/ebusd $ ebusctl r warmwasser_soll 45.0

pi@ebus-rpi:/etc/ebusd $ ebusctl r vorlauf_ist 36.0

pi@ebus-rpi:/etc/ebusd $ ebusctl r vorlauf_soll 31.0

pi@ebus-rpi:/etc/ebusd $ ebusctl r pwm_pumpe 20

32. **Enjoy eBus!**

=======================

### Questions

Now, onto my actual question(s):

Why are there no solar values showing up from the SM-1?
There is the "50.csv" file but that states those values as "w" (Write).
Changing to "r" (Read) puts them in the list of readable as per config (see 31.), but reads timeout (would have been to easy..)
The message show up at the adapter, but the config isn't sufficient to alow the ebusd to decode them:

2021-03-28 13:40:42.547 [update notice] received update-read broadcast sollw QQ=f1: 31.398;10.301;0;00;45.000 2021-03-28 13:40:44.530 [update notice] received unknown BC cmd: 71fe501710e4659503530300800080008000800080

unknown BC > SM-1

2021-03-28 13:40:47.230 [update notice] received write feuerung betrd QQ=10: Brauchwasser_Heizen;6;31.38;-;-;45.0;- 2021-03-28 13:40:47.519 [update notice] received update-read broadcast betrd QQ=f1: 1;00;-;36.0;-;53;15 2021-03-28 13:40:48.166 [update notice] received unknown BC cmd: 71fe50230908620900005d010000

unknown BC > SM-1 2021-03-28 13:40:52.209 [update notice] received write feuerung sollw QQ=10: 31.398;15.000;-;01;45.000 2021-03-28 13:40:52.499 [update notice] received update-read broadcast sollw QQ=f1: 31.398;10.301;0;00;45.000 2021-03-28 13:40:54.015 [update notice] received update-read broadcast betrd QQ=03: 0;40;0;36.0;35;53;15 2021-03-28 13:40:57.164 [update notice] received write feuerung betrd QQ=10: Brauchwasser_Heizen;Kesselpumpeaus;31.38;-;-;45.0;- 2021-03-28 13:40:57.452 [update notice] received update-read broadcast betrd QQ=f1: 1;00;-;36.0;-;53;15 2021-03-28 13:40:59.519 [update notice] received unknown BC cmd: 71fe50180e0080008000800080008000800000 unknown BC > SM-1 2021-03-28 13:41:02.116 [update notice] received write feuerung sollw QQ=10: 31.398;15.000;-;01;45.000 2021-03-28 13:41:02.406 [update notice] received update-read broadcast sollw QQ=f1: 31.398;10.301;0;00;45.000 2021-03-28 13:41:06.033 [update notice] received unknown MM cmd: 03f1080008001f000f8002002d 2021-03-28 13:41:07.109 [update notice] received write feuerung betrd QQ=10: Brauchwasser_Heizen;Verbraucheraus;31.38;-;-;45.0;- 2021-03-28 13:41:07.398 [update notice] received update-read broadcast betrd QQ=f1: 1;00;-;36.0;-;53;15 2021-03-28 13:41:12.066 [update notice] received write feuerung sollw QQ=10: 31.398;15.000;-;01;45.000 2021-03-28 13:41:12.354 [update notice] received update-read broadcast sollw QQ=f1: 31.398;10.301;0;00;45.000 2021-03-28 13:41:14.151 [update notice] received unknown BC cmd: 71fe501710e4659b03530300800080008000800080 unknown BC > SM-1 2021-03-28 13:41:15.539 [update notice] received unknown BC cmd: 71fe501710e465a203530300800080008000800080 unknown BC > SM-1 2021-03-28 13:41:16.091 [update notice] received unknown MM cmd: 30715023094c660000005d010000 2021-03-28 13:41:16.417 [update notice] received unknown MM cmd: 3071502309b01300f4015d010000 2021-03-28 13:41:16.746 [update notice] received unknown MM cmd: 3071502309b8720000005d010000 2021-03-28 13:41:17.049 [update notice] received write feuerung betrd QQ=10: Brauchwasser_Heizen;6;31.38;-;-;45.0;- 2021-03-28 13:41:17.338 [update notice] received update-read broadcast betrd QQ=f1: 1;00;-;36.0;-;53;15 2021-03-28 13:41:18.573 [update notice] received unknown BC cmd: 71fe50230908620900005d010000 unknown BC > SM-1

As per this link somewhen / somehow this ussed to work with these config files: https://forum.fhem.de/index.php?topic=64039.0
But when I try "ebusctl r solar kollektortemp" or "ebusctl r solar wwsolartemp" or "ebusctl r solar pumpe", I get an error:

pi@ebus-rpi:/etc/ebusd $ ebusctl r solar kollektortemp ERR: element not found


Could anyone give me a pointer as to how to get those values decoded as well again?
I don't think I need to do "Creating new message definition files" (https://github.com/john30/ebusd/wiki/HowTos#creating-new-message-definition-files), since the definitions are there, but not working properly... but I might be wrong..
Found: https://github.com/john30/ebusd-configuration/issues/100
But not sure, why this is required since it worked before.. Will try it out tonight...

And second question: These values (or some of them) should go into a database for logging and plotting... (Grafana und InfluxDB) Is the best way to poll for data from the ebus daemon at specific intervals or can I register to an event that triggers once a broadcast is received (for all data broadcasted)? And is there any work in this direction in Python that someone is aware of?

Thanks !

Cheers Niels Göran

bdariusb commented 2 years ago

is one able to change the field names in the config files?

john30 commented 2 years ago

sure. each field may have a name associated with it in the columns titles "field..."

ngblume commented 2 years ago

Any response to the question, why no solar data shows up?

bdariusb commented 2 years ago

you don't have the fields defined that you are querying, e.g. ebusctl r solar kollektortemp Basically all you can query is listed in ebusctl f -F name,comment

Any response to the question, why no solar data shows up?

bdariusb commented 2 years ago

you can define a field with read command but instead of field type r use r[1-9], e.g. r3. This will poll the field values with priority 3 (more on that in the docs)

And second question:

teeceeell commented 2 years ago

I get stuck with: ebusct scan full

It's getting stuck with: 1 scan(s) still running

ebusctl i brings this: root@loxberry:/etc/ebusd# ebusctl i version: ebusd 21.3.v21.3 device: /dev/ttyAMA0, enhanced signal: acquired symbol rate: 48 max symbol rate: 189 reconnects: 0 masters: 1 messages: 56 conditional: 0 poll: 0 update: 6 address 31: master #8, ebusd address 36: slave #8, ebusd

Any ideas?

roentgenauge commented 11 months ago

@ngblume Thanks a lot for your detailled step by step description. I have a Wolf CGB-11 and can follow you until step 29. But starting with step 30 my system does not give any result on any named values (like betrd). I'm using ebusd 23.2 on an raspi 3b with the eBus Adapter connected via WLAN to the raspi.

ebusctrl f gives broadcast datetime = -;13:11:10;-.-.- broadcast error = E000
broadcast id = no data stored broadcast id = no data stored broadcast signoflife = no data stored memory eeprom = no data stored memory ram = no data stored scan.08 = Kromschroeder; 3 ;0935;5130 scan.15 = Kromschroeder; ;0204;- scan.35 = Kromschroeder; ;0204;- scan.75 = Kromschroeder; ;0204;- scan.f6 = Kromschroeder; ;0204;-

Any idea where to look or go ahead?

ngblume commented 11 months ago

hm.. very long time ago....

Suggestion:

  1. Can you run "ebusctl i" and post?
  2. Can you run "ebusctl f -F name,comment" and post? If you see any labels listed by "ebusctl f -F name,comment", those labels should be readible by "ebusctl r ZZZ"... Since the labels are defined per the config files (i.e. https://github.com/john30/ebusd-configuration/blob/master/ebusd-2.x.x/de/wolf/), those mapped in the config files, should be readable.

It appears to me, that I might have made some incorrect assumptions in my original post:

  1. the read command utilizes a class and a name of the parameter, like "ebusctl r solar kollektortemp".. Not sure what actually made "ebusctl r betrd" work
  2. Maybe the name of the config is incorrect, since 50 is in hex 0x32, but the scan showed a device, presumably the SM-1, with address 0x35 (if I interpreted that correctly...), which would make it 53.csv (maybe)
MacvonUnruh commented 5 months ago

Hallo, ich habe eine neues Bedienmodul an meine Mehrfamilienhaus-Gastherme (Wolf) bekommen und versuche dieses über den ebus auszulesen. Habe ein Raspi-Zero2 mit eBUS Adapter Shield v5 Anschluss und Konfiguration passt soweit. Ich bekomme auch Daten, kann sie nur nicht "Identifizieren"


2024-02-12` 02:15:45.690 [bus notice] device status: transport opened 2024-02-12 02:15:45.748 [main notice] ebusd 23.3.23.3 started on device: /dev/ttyAMA0, serial high speed, enhanced 2024-02-12 02:15:45.784 [main error] error reading config files from /etc/ebusd/: ERR: element not found, last error: 08.csv:3: ERR: element not found, field type TEMP in field 2 2024-02-12 02:15:45.785 [bus notice] bus started with own address 31/36 2024-02-12 02:15:45.785 [bus error] device status: missing enhanced byte 2 2024-02-12 02:15:45.785 [bus error] device status: unexpected enhanced byte 2 2024-02-12 02:15:45.785 [bus notice] signal acquired 2024-02-12 02:15:45.857 [bus notice] device status: reset, supports info 2024-02-12 02:15:45.920 [bus notice] device status: extra info: firmware 8.1[4106].1[4106], jumpers 0x03 2024-02-12 02:15:46.959 [bus notice] new master 10, master count 2 2024-02-12 02:15:46.976 [bus notice] new master 03, master count 3 2024-02-12 02:15:46.976 [update notice] received unknown MM cmd: 1003080008331900088000000a 2024-02-12 02:15:47.291 [bus notice] new master f1, master count 4 2024-02-12 02:15:47.291 [update notice] received unknown BC cmd: f1fe080008331900080000000a 2024-02-12 02:15:47.657 [update notice] received unknown BC cmd: f1fe50230990d20100005d010000 2024-02-12 02:15:48.024 [update notice] received unknown BC cmd: f1fe502309f07e0101005d010000 2024-02-12 02:15:48.925 [update notice] received unknown BC cmd: 03fe050308010058646ad82d08 2024-02-12 02:15:51.933 [update notice] received unknown MM cmd: 1003050709aa0693010080ff14ff 2024-02-12 02:15:52.249 [update notice] received unknown BC cmd: f1fe050308010110ff6aff2d08 2024-02-12 02:15:55.785 [main notice] found messages: 0 (0 conditional on 0 conditions, 0 poll, 0 update) 2024-02-12 02:15:56.887 [update notice] received unknown MM cmd: 1003080008331900088000000a 2024-02-12 02:15:57.202 [update notice] received unknown BC cmd: f1fe080008331900080000000a 2024-02-12 02:15:57.568 [update notice] received unknown BC cmd: f1fe50230990d20100005d010000 2024-02-12 02:15:57.935 [update notice] received unknown BC cmd: f1fe502309f07e0101005d010000 2024-02-12 02:15:58.846 [bus notice] new master 30, master count 5 2024-02-12 02:15:58.846 [update notice] received unknown BC cmd: 30fe070009008010170212020124 2024-02-12 02:15:59.060 [update notice] received unknown MM cmd: 03f108000800324d080002000a 2024-02-12 02:16:01.825 [update notice] received unknown MM cmd: 1003050709aa0193010080ff14ff 2024-02-12 02:16:02.140 [update notice] received unknown BC cmd: f1fe050308010110ff6aff2d08 2024-02-12 02:16:06.779 [update notice] received unknown MM cmd: 1003080008331900088000000a 2024-02-12 02:16:07.094 [update notice] received unknown BC cmd: f1fe080008331900080000000a 2024-02-12 02:16:07.460 [update notice] received unknown BC cmd: f1fe50230990d20100005d010000 2024-02-12 02:16:07.826 [update notice] received unknown BC cmd: f1fe502309f07e0101005d010000 2024-02-12 02:16:08.678 [update notice] received unknown BC cmd: 03fe050308010058646dd82d08 2024-02-12 02:16:11.736 [update notice] received unknown MM cmd: 1003050709aa0393010080ff14ff


ebusctl i version: ebusd 23.3.23.3 update check: OK device: /dev/ttyAMA0, serial high speed, enhanced, firmware 8.1[4106].1[4106] access: * signal: acquired symbol rate: 34 max symbol rate: 244 min arbitration micros: 4 max arbitration micros: 18 min symbol latency: 4 max symbol latency: 9 reconnects: 0 masters: 7 messages: 6 conditional: 0 poll: 0 update: 0 address 03: master #11 address 07: master #16 address 08: slave #11, scanned "MF=Kromschroeder;ID= ;SW=0230;HW=-" address 0c: slave #16, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-" address 10: master #2 address 15: slave #2, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-" address 30: master #3 address 31: master #8, ebusd address 35: slave #3, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-" address 36: slave #8, ebusd, scanning address 70: master #4 address 75: slave #4, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-" address f1: master #10 address f6: slave #10, scanned "MF=Kromschroeder;ID= ;SW=0204;HW=-"


ebusctl f -F name,comment , , , , , ,

leonundjulie commented 5 months ago

Hi. Great description! I followed the way defined in the opening and in consequence I am able to read the fires from my WOLF gas heating system, however, just in task 22 it needs a small correction. The correct command is cp -r /home/pi/ebus-configs/ebusd-configuration/ebusd-2.x.x/de/* /etc/ebusd/ … the “-r” was missing.

Next task: to get the data via MQTT into my iOBroker.