john30 / ebusd-configuration

ebusd configuration files
GNU General Public License v3.0
177 stars 277 forks source link

Could not read field values (ERR: element not found) #71

Open OllisGit opened 6 years ago

OllisGit commented 6 years ago

Morning, first: thx for this tool!!!

Unfornuanly i have a "small" issue: I couldn't read field values for my Wolf CGB, SM1, MK1 and MK2. I used the current wolf csv files like this:

Now I want to read the outsidetemp like this:

ebusctl r betrd aussentemp
-> ERR: element not found

And if I am looking for the names with the "find-command" I received this:

ebusctl f -F name,comment
datetime,Datum/Uhrzeit
error,Fehlernachricht
ident,Identifikation
ident,Identifikation
signoflife,Lebenszeichen
eeprom,EEPROM Daten lesen
ram,RAM Daten lesen
,
,
,
,
,
,
,
,
,
,

output of "ebusctl info":

version: ebusd 3.0.v3.0-11-g46078f8
signal: acquired
symbol rate: 35
max symbol rate: 128
reconnects: 0
masters: 9
messages: 21
conditional: 0
poll: 0
update: 4
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=0229;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 51: slave, scanned "MF=Kromschroeder;ID=  ;SW=0229;HW=-"
address 52: slave, scanned "MF=Kromschroeder;ID=  ;SW=0208;HW=-"
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 f0: master #5
address f1: master #10
address f5: slave #5, scanned "MF=Kromschroeder;ID=  ;SW=0208;HW=-"
address f6: slave #10, scanned "MF=Kromschroeder;ID=  ;SW=0204;HW=-"

Any idea?

john30 commented 6 years ago

you should start with checking and dumping the configuration by using e.g. "ebusd -f --checkconfig --dumpconfig -c /path/to/your/csvs"

tomashora commented 4 years ago

Hello @john30,

I am getting the same error on my Wolf CGW and BM (both in first versions). Any ideas? Using the default config

version: ebusd 3.4.v3.4-4-g87b3705
signal: acquired
symbol rate: 39
max symbol rate: 99
min arbitration micros: 2790
max arbitration micros: 4580
min symbol latency: 5
max symbol latency: 8
reconnects: 0
masters: 6
messages: 58
conditional: 0
poll: 0
update: 6
address 03: master #11
address 08: slave #11, scanned "MF=Kromschroeder;ID=  3B ;SW=" error: ERR: argument value out of valid range, loaded "kromschroeder/08.csv"
address 10: master #2
address 30: master #3
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 70: master #4
address f1: master #10

Edit: What can I take from this grab result all output? That there are unknow messages?

30fe070009008010410919110219 = 2: broadcast datetime
f1fe080008e62b9a0400000039 = 12: broadcast sollw
3108070400 / 0a500106334202102d5130 = 1: scan.08
1003050709bb06be020080ff72ff = 14: feuerung betrd
1003080008e62b000680010039 = 7: feuerung sollw
f1fe050308010100ff78ff3c06 = 12: broadcast betrd
30fe50230928000a14005d010000 = 1
30fe50230958140100005d010000 = 1
f1fe050308010500ff7eff3906 = 1: broadcast betrd
1003050709bb01c0020080ff72ff = 1: feuerung betrd
1003050709bb05c0020080ff72ff = 1: feuerung betrd
john30 commented 4 years ago

since the device does not answer spec-compliant to the ID request, you'll have to switch of "--scanconfig" mode @OllisGit . Otherwise the CSV will never be loaded. @tomashora your grab result just shows two undefined messages (those starting with 30fe5023)

tomashora commented 4 years ago

Tried switching off the scanconfig, now looks better. I see the broadcast messages to command the boiler and I want to plug off the room thermostat and command the boiler from ebusd. Is there a way to send those as well? In the HTTP JSON data I do not see anything with "write": true...

{ "broadcast": { "messages": { "betrd": { "name": "betrd", "passive": true, "write": false, "lastup": 1576444716, "zz": 254, "fields": { "status": {"value": 5}, "zustand": {"value": "30"}, "stellgrad": {"value": null}, "kesseltemp": {"value": 59.0}, "ruecklauftemp": {"value": null}, "boilertemp": {"value": 48}, "aussentemp": {"value": 3} } }, "datetime": { "name": "datetime", "passive": true, "write": false, "lastup": 1576444713, "zz": 254, "fields": { "outsidetemp": {"value": null}, "time": {"value": "22:17:10"}, "date": {"value": "15.12.2019"} } }, "error": { "name": "error", "passive": true, "write": false, "lastup": 1576444202, "zz": 254, "fields": { "error": {"value": "E000 "} } }, "ident-u": { "name": "ident", "passive": true, "write": false, "lastup": 1575890587, "zz": 254, "decodeerror": "ERR: argument value out of valid range" }, "signoflife": { "name": "signoflife", "passive": true, "write": false, "lastup": 0 }, "sollw": { "name": "sollw", "passive": true, "write": false, "lastup": 1576444711, "zz": 254, "fields": { "kesselsolltemp": {"value": 22.699}, "aussentemp": {"value": 3.000}, "leistungszwang": {"value": 0}, "status": {"value": "0c"}, "brauchwassersolltemp": {"value": 57.000} } } } },

john30 commented 4 years ago

did you include the write query parameter @tomashora ?

tomashora commented 4 years ago

Yep, that helped a bit! Using /data/?write got these two parts that might help: broadcast section "sollw": { "name": "sollw", "passive": true, "write": false, "lastup": 1576484362, "zz": 254, "fields": { "kesselsolltemp": {"value": 28.398}, "aussentemp": {"value": 0.199}, "leistungszwang": {"value": 0}, "status": {"value": "00"}, "brauchwassersolltemp": {"value": 57.000} } feuerung section: ` "feuerung": { "messages": { "betrd": { "name": "betrd", "passive": false, "write": true, "lastup": 1576484356, "zz": 3, "fields": { "status": {"value": "Brauchwasser_Heizen"}, "aktion": {"value": "Kesselpumpeaus"}, "kesselsolltemp": {"value": 28.38}, "solldruck": {"value": null}, "stellgrad": {"value": null}, "brauchwassersolltemp": {"value": 57.0}, "brennstoff": {"value": null} } },

and ...

}, "sollw": { "name": "sollw", "passive": false, "write": true, "lastup": 1576484361, "zz": 3, "fields": { "kesselsolltemp": {"value": 28.398}, "aussentemp": {"value": 1.000}, "leistungszwang": {"value": null}, "status": {"value": "01"}, "brauchwassersolltemp": {"value": 57.000} } ` But how to set the kesselsolltemp and brauchwassersolltemp ?

john30 commented 4 years ago

you can't set a single field of a message, you have to set all fields in this case

tomashora commented 4 years ago

Thanks for the tip, but I am still unable to write a broadcast message. Currently trying via ebusctl using the Wolf 2.x.x/de config

For example ebusctl listen gives me:

listen started
broadcast betrd = 1;00;-;28.0;-;59;0

then when I try to send the same message using: ebusctl w betrd 1;00;-;28.0;-;59;0

I reecive:

ebusctl w -c broadcast betrd "1;00;-;28.0;-;59;0"
ERR: element not found

A tip to get this thing working is highly appretiated!

john30 commented 4 years ago

you need to check if that message is writable as well. "ebusctl find -w" is your friend here.

tomashora commented 4 years ago

Thanks! Actually it was:

ebusctl w -c feuerung betrd "1;00;-;28.0;-;59;0"

nori0077 commented 3 years ago

Hello. I use the ebus plugin for loxberry. Tried to use a csv file to work with my ventilation system, but can`t make it work. Could you tell me what kind of ebusd startup args I need to use? I tried a lot, but not sure I did it right. Thanks in advance