john30 / ebusd Goto Github PK
View Code? Open in Web Editor NEWdaemon for communication with eBUS heating systems
License: GNU General Public License v3.0
daemon for communication with eBUS heating systems
License: GNU General Public License v3.0
gcc version 4.9.2 (Raspbian 4.9.2-10)
make[2]: Entering directory '/home/pi/ebusd/src/ebusd'
CXX bushandler.o
In file included from bushandler.cpp:19:0:
bushandler.h: In constructor ‘BusHandler::BusHandler(Device*, MessageMap*, unsigned char, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, bool, unsigned int)’:
bushandler.h:571:7: warning: ‘BusHandler::m_addressConflict’ will be initialized after [-Wreorder]
bool m_addressConflict;
^
bushandler.h:568:13: warning: ‘const bool BusHandler::m_answer’ [-Wreorder]
const bool m_answer;
^
bushandler.h:359:2: warning: when initialized here [-Wreorder]
BusHandler(Device* device, MessageMap* messages,
^
...
CXX mainloop.o
In file included from mainloop.h:24:0,
from mainloop.cpp:19:
bushandler.h: In constructor ‘BusHandler::BusHandler(Device*, MessageMap*, unsigned char, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, bool, unsigned int)’:
bushandler.h:571:7: warning: ‘BusHandler::m_addressConflict’ will be initialized after [-Wreorder]
bool m_addressConflict;
^
bushandler.h:568:13: warning: ‘const bool BusHandler::m_answer’ [-Wreorder]
const bool m_answer;
^
bushandler.h:359:2: warning: when initialized here [-Wreorder]
BusHandler(Device* device, MessageMap* messages,
^
CXX main.o
In file included from mainloop.h:24:0,
from main.cpp:24:
bushandler.h: In constructor ‘BusHandler::BusHandler(Device*, MessageMap*, unsigned char, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, bool, unsigned int)’:
bushandler.h:571:7: warning: ‘BusHandler::m_addressConflict’ will be initialized after [-Wreorder]
bool m_addressConflict;
^
bushandler.h:568:13: warning: ‘const bool BusHandler::m_answer’ [-Wreorder]
const bool m_answer;
^
bushandler.h:359:2: warning: when initialized here [-Wreorder]
BusHandler(Device* device, MessageMap* messages,
^
support for publishing updates to a message broker via MQTT or AMQP would allow easy integration into lots of other systems including FHEM already supporting MQTT publish/subscribe
hi, I'm using a new raspberry with jessie. I have copied from contrib /etc/init.d/ebusd.
I encounted the problem wih:
-ebusd 2.0 (git, make, make install)
service ebusd status returns:
● ebusd.service - LSB: controls ebusd, the daemon for communication with eBUS heating systems.
Loaded: loaded (/etc/init.d/ebusd)
Active: active (exited) since sab 2016-04-30 23:09:37 CEST; 4 days ago
mag 05 14:02:56 vaillant systemd[1]: Started LSB: controls ebusd, the daemon for communication with eBUS heating systems..
with wheezy I have no problem
Dear,
I have 1 heatpump (Vaillant geotherm VWS 171/2), 2 floorheating circuits (mc2 and mc4), 1 radiator circuit (mc5), 1 Waterheating, 1 VR60 and 2 VR90 which I try to manage via a Raspberry Pi.
I recieve some errors and notifications in my ebusd.log (e.g. "CfgHeatSinkType failed" or "unknown MS cmd: 7050b5040132 / 0a002c06030301a0020100") and have a lot of "no stored data" in the output of the "ebsctl find" command. I attached 2 files: 1 with the output of several commands and 1 showing a small part the raw log.
I would be gratefull if someone could indicate where these errors come from and what to do to solve it.
Thanks in advance and best regards,
Peter
Hi, I am using the latest armhf package (2.4) on a raspbian pi (rasbian jessy). Unfortunately, I am not able to read the config files. I already tried the latest git version but also without any luck. I always get several errors. Any recommendations?
The output of the ebusd-2.x.x/de/vaillant/08.ehp.csv:
`2017-01-23 20:27:08.298 [main notice] ebusd 2.4.79708d2 performing configuration check...
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 13 field 6 value "": ERR: invalid address
Erroneous item is here:
[SW=350-400],scan,,,SW,,350-400,,,,,,,,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 14 field 6 value "": ERR: invalid address
Erroneous item is here:
[SW>=403],scan,,,SW,,>=403,,,,,,,,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 15 field 6 value "": ERR: invalid address
Erroneous item is here:
[SW>=414],scan,,,SW,,>=414,,,,,,,,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 16 field 6 value "": ERR: invalid address
Erroneous item is here:
[SW>=415],scan,,,SW,,>=415,,,,,,,,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 17 field 6 value "": ERR: invalid address
Erroneous item is here:
[SW>=400],scan,,,SW,,>=400,,,,,,,,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 18 field 6 value "": ERR: invalid address
Erroneous item is here:
[SW>=370],scan,,,SW,,>=370,,,,,,,,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 19 field 6 value "": ERR: invalid address
Erroneous item is here:
[SW>=350],scan,,,SW,,>=350,,,,,,,,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 20 field 6 value "": ERR: invalid address
Erroneous item is here:
[SW>=407],scan,,,SW,,>=407,,,,,,,,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 22 field 14 value "Number of commutations of": ERR: element not found
Erroneous item is here:
r,,CompStartsHwc,Compressor_Commutations_DHW,,,,A800,,,cntstarts,,,Number of commutations of,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 23 field 14 value "Number of commutations of": ERR: element not found
Erroneous item is here:
r,,CompStartsHc,Compressor_Commutations_CH,,,,A900,,,cntstarts,,,Number of commutations of,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 24 field 14 value "Number of commutations of": ERR: element not found
Erroneous item is here:
r,,SourceStarts,Brine_Fan_Commutations,,,,AC00,,,cntstarts,,,Number of commutations of,,,
^
invalid condition
Error reading "/etc/ebusd/heizung.csv" line 25 field 14 value "Number of commutations of": ERR: element not found
Erroneous item is here:
r,,Hc1PumpStarts,CH1_P_Commutations,,,,AD00,,,cntstarts,,,Number of commutations of,,,
^
invalid condition`
The output of the _template.csv:
ebusd --checkconfig
2017-01-23 20:32:27.298 [main notice] ebusd 2.4.79708d2 performing configuration check...
Error reading "/etc/ebusd/heizung.csv" line 2 field 3 value "": ERR: invalid argument
Erroneous item is here:
cntstarts,BCD:3,,,Anlaufzähler
^
Error reading "/etc/ebusd/heizung.csv" line 3 field 3 value "": ERR: invalid argument
Erroneous item is here:
cntminutes,BCD,,min,Betriebsminuten
^
Error reading "/etc/ebusd/heizung.csv" line 4 field 3 value "": ERR: invalid argument
Erroneous item is here:
cnthours,BCD:3,,h,Betriebsstunden
^
Error reading "/etc/ebusd/heizung.csv" line 5 field 3 value "": ERR: invalid argument
Erroneous item is here:
cntfuel,BCD:4,,,Brennstoffmenge
^
Error reading "/etc/ebusd/heizung.csv" line 6 field 5 value "Einheit": ERR: end of input reached
Erroneous item is here:
unit,UCH,0=all;1=l;2=m³,,Einheit
^
Error reading "/etc/ebusd/heizung.csv" line 7 field 5 value "Brennstoffart": ERR: end of input reached
Erroneous item is here:
fueltype,UCH,0=any;1=oil;2=gas,,Brennstoffart
^
Error reading "/etc/ebusd/heizung.csv" line 8 field 5 value "Zählerart": ERR: end of input reached
Erroneous item is here:
countertype,UCH,0=starts;1=hours1;2=hours2;3=hours3;4=hours4;5=modulating;16=fuelquantity,,Zählerart
^
Error reading "/etc/ebusd/heizung.csv" line 9 field 5 value "zyklische Übertragung": ERR: end of input reached
Erroneous item is here:
opdatacyclic,UCH,0x55=stop;0xaa=start,,zyklische Übertragung
Please add aarch64 as valid arch in PKGBUILD and PKGBUILD.git
I'm trying to compile for on my RPI1:
Linux ebus 4.4.10-1-ARCH #1 Fri May 13 18:56:03 MDT 2016 armv6l GNU/Linux
The build fails with the following errors (lots and lots of similar output before)
data.cpp:1632:49: note: ‘std::basic_istream’ is not derived from ‘const std::unique_ptr<_Tp, _Dp>’
else if (getline(input, token, separator) == 0)
^
In file included from /usr/include/c++/6.1.1/bits/locale_conv.h:41:0,
from /usr/include/c++/6.1.1/locale:43,
from /usr/include/c++/6.1.1/iomanip:43,
from data.cpp:26:
/usr/include/c++/6.1.1/bits/unique_ptr.h:652:5: note: candidate: template<class _Tp, class _Dp> bool std::operator==(const std::unique_ptr<_Tp, _Dp>&, std::nullptr_t)
operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept
^~~~~~~~
/usr/include/c++/6.1.1/bits/unique_ptr.h:652:5: note: template argument deduction/substitution failed:
data.cpp:1632:49: note: ‘std::basic_istream’ is not derived from ‘const std::unique_ptr<_Tp, _Dp>’
else if (getline(input, token, separator) == 0)
^
In file included from /usr/include/c++/6.1.1/bits/locale_conv.h:41:0,
from /usr/include/c++/6.1.1/locale:43,
from /usr/include/c++/6.1.1/iomanip:43,
from data.cpp:26:
/usr/include/c++/6.1.1/bits/unique_ptr.h:657:5: note: candidate: template<class _Tp, class _Dp> bool std::operator==(std::nullptr_t, const std::unique_ptr<_Tp, _Dp>&)
operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept
^~~~~~~~
/usr/include/c++/6.1.1/bits/unique_ptr.h:657:5: note: template argument deduction/substitution failed:
data.cpp:1632:49: note: mismatched types ‘const std::unique_ptr<_Tp, _Dp>’ and ‘int’
else if (getline(input, token, separator) == 0)
^
Makefile:349: recipe for target 'data.o' failed
make[2]: *** [data.o] Error 1
make[2]: Leaving directory '/home/flo/ebusd-2.1/contrib/archlinux/src/ebusd-2.1/src/lib/ebus'
Makefile:372: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/flo/ebusd-2.1/contrib/archlinux/src/ebusd-2.1'
Makefile:313: recipe for target 'all' failed
make: *** [all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
Would be nice if at least ebusctl
could run on OSX. To compile you'd need:
brew install automake autoconf argp-standalone
Might be nice to add this to the readme?
Hi. I'm looking for a way to change the bus address that ebusd uses on the bus at runtime, but afaic the only way to do it, is at startup. The ebus controller I'm operating uses the base address of the sender (in this case ebusd) to identify the heating circuit. So, at the moment I'm able to operate a single heating circuit by using the "-a" option. To operate the other heating circuit, I have to quit ebusd and start it again using the other base address. This is a bit cumbersome to automate.
Would it be possible for example to add an (optional) parameter to the 'hex' command to select the base address to use? Like hex -a<address> 0123
or to prefix the command with the base address hex <address>0123
thanks!
i.e. "all error" along with "update notice"
I always search for a way to get message updates and all other errors, but to suppress "[main notice] hex cmd", which is currently not possible.
when writing a value to a circuit, immediately invalidate all cached values of corresponding read/listen messages of the same circuit (ignoring user level) and with the same name
I've upgraded today to to current git for MQTT. Now the scan result seems to have changed:
previously:
$ ebusctl info
version: ebusd 2.3.a991a37
signal: acquired
symbol rate: 83
reconnects: 0
masters: 3
messages: 557
conditional: 3
poll: 0
update: 8
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0609;HW=5502", loaded "bai.308523.inc", "vaillant/08.bai.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0209;HW=4103", loaded "vaillant/15.700.csv"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 52: slave, scanned "MF=Vaillant;ID=VR_70;SW=0109;HW=2903"
now:
$ ebusctl info
version: ebusd 3.0pre.8fafded
signal: acquired
symbol rate: 23
reconnects: 0
masters: 3
messages: 37
conditional: 0
poll: 0
update: 1
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0609;HW=5502", loaded "vaillant/08.bai.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0209;HW=4103"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 52: slave, scanned "MF=Vaillant;ID=VR_70;SW=0109;HW=2903"
It seems the bai.308523.inc
is no longer being loaded and I'm confused as to why?
While using several commands i saw that using int values on float-objects works fine.
On the other hand i got errors (invalid numeric arguments) by using floats like "2.0" or "3.0" on UCH-objects.
Is it possible to fix it ? This is more a feature-request than an issue.
best regards
Mirko
e.g. "find -r -w -f [type][poll][circuit][comment]" to retrieve only the fields type, poll, circuit, comment (reported by amruna in fhem forum)
in CSV
Hello,
I'd like to use the http interface.
What i did:
EBUSD_OPTS="--scanconfig --httpport=80"
contrib/html
to /var/ebusd/html
Sadly nothing works and the request stays open endlessly.
Did I miss something? How does it work?
Thanks, Christoph
Hello,
do you think it would be possible to refactor your code as a library, and make it run under Windows ?
Because I'm trying to integrate my new vaillant (VC256) in my domotic system, which is currently running on a windows machine. I've dev background under windows so I could make an app once I've a dll I can use to communicate with the Vaillant, but my c++ knowledge are too much old to be any help....
Tx,
Fabrice
instead of storing it as part of SymolString
Hi,
first of all thanks for the nice work with ebusd - it has helped me a lot in analyzing and tuning the heating system for our apartment building.
recently we have extended our vaillant vr630 system with another exansion unit vr60/3 to get 2 more mixer circuits.
i can the 2 mixer circuits on the vr630 and 2 on the first vr60/3 unit [mc,mc.3,mc.4,mc.5) but i can't see those on the 2nd expansion unit
remote control and mixer/pump are working perfectly receiving commands from the vr630 on the other end of the bus so the electronic connection on the ebus seems to be ok.
any hint for me what could be the problem? do i need to define more mixer circuits in the config files?
regards,
Roland
here's some debug output:
root@heizung:/etc/ebusd/vaillant# ebusctl scan result
15;Vaillant;UI ;0508;6201;21;15;40;0020080467;0907;009473;N5
23;Vaillant;VR630;0500;6301;21;15;40;0020092435;0907;008026;N0
25;Vaillant;VR630;0500;6301;21;15;40;0020092435;0907;008026;N0
26;Vaillant;VR630;0500;6301;21;15;40;0020092435;0907;008026;N0
44;Vaillant;VR630;0500;6301;21;15;40;0020092435;0907;008026;N0
50;Vaillant;VR630;0500;6301;21;15;40;0020092435;0907;008026;N0
51;Vaillant;VR630;0500;6301
52;Vaillant;MC2 ;0500;6301;21;15;49;306782<<<<;0907;010113;N3
53;Vaillant;MC2 ;0500;6301;21;15;49;306782<<<<;0907;010113;N3
54;Vaillant;MC2 ;0500;6301;21;16;22;306782<<<<;0907;005834;N2
55;Vaillant;MC2 ;0500;6301;21;16;22;306782<<<<;0907;005834;N2
75;Vaillant;RC C ;0508;6201;21;15;50;0020040079;0907;007741;N2
7c;Vaillant;RC C ;0508;6201;21;15;47;0020040079;0907;007046;N1
84;Vaillant;VR630;0500;6301;21;15;40;0020092435;0907;008026;N0
f5;Vaillant;RC C ;0508;6201;21;15;47;0020040079;0907;007068;N3
root@heizung:/etc/ebusd/vaillant# ebusctl f|grep mc |grep "Status ="
mc Status = 34;off;34.12;21
mc.3 Status = 31;off;31.75;21
mc.4 Status = 29;off;29.06;21
mc.5 Status = 0;off;-;0
from /var/log/ebusd.log
2016-10-30 06:31:29.329 [update notice] unknown MS cmd: 1051b505082b0f010000000080 / 00
2016-10-30 06:31:30.857 [update notice] update mc Mode QQ=70: 25;auto;05;off
2016-10-30 06:31:31.966 [update notice] update mc Status QQ=70: 0;off;19.31;15
2016-10-30 06:31:32.145 [update notice] unknown MS cmd: 7050b5040132 / 0a002a06030100e00e0100
2016-10-30 06:31:32.354 [update notice] update mc RoomTempOffset QQ=70: 0.00
2016-10-30 06:31:32.814 [update notice] unknown MS cmd: 7754b504010d / 050f0037010a
2016-10-30 06:31:32.996 [update notice] unknown MS cmd: 7754b5040132 / 0a002a06030100f00e0100
2016-10-30 06:31:33.149 [update notice] unknown MS cmd: 7754b505042d90ff00 / 00
2016-10-30 06:31:35.138 [update notice] unknown MM cmd: 103f050105aa22220d00
2016-10-30 06:31:35.214 [update notice] update mc.3 Status QQ=f0: 34;off;33.94;21
2016-10-30 06:31:35.396 [update notice] unknown MS cmd: f051b5040132 / 0a002a06030100e00e0100
Hi, can you add FreeBSD support?
add support for PUT requests
I want to log some ~30 values of my bai- either each minute or when it changes. I've currently solved this by
Status01
notificationsMy code is in https://github.com/andig/vaillant.
I'm wondering what other/ better options there are. Using mqtt
or /data/
I can get all currently received values from ebusd. Using mqtt
(but not httpd) I can force updates using /get
suffix.
Would the polling feature be suitable for my purpose/ could you explain how it works? I'm wondering if I could setup polling once and only use mqtt or json client to look for the updates?
Hello. nice project you have here.
I'm bulding a hardware interface for ebus (Vaillant ecoTec plus + calormatic 470, which communicate through ebus interface). I found a rj-11 like jack on the latter on the right side, which looks like the cable shown in this picture. Any idea if this could be an eBus connection and what the pinout could be?
thanks
Hi, I used ebusd from first version. in version 2.0 my INFO results was:
08;Vaillant;BAI00;0703;7401
15;Vaillant;UI ;0501;6201
1c;Vaillant;RC C ;0501;6201
23;Vaillant;SOLSY;0500;6301
25;Vaillant;SOLSY;0500;6301
26;Vaillant;SOLSY;0500;6301
35;Vaillant;RC C ;0501;6201
3c;Vaillant;RC C ;0507;6201
50;Vaillant;SOLSY;0500;6301
52;Vaillant;MC2 ;0500;6301
53;Vaillant;MC2 ;0500;6301
(note last 2 rows)
now after updating both ebusd and ebusd-configuration my INFO command returns:
version: ebusd 2.0.3b6f385
signal: acquired
symbol rate: 142
masters: 7
messages: 729
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0703;HW=7401", loaded "bai.308523.inc", "vaillant/08.bai.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=UI ;SW=0501;HW=6201", loaded "vaillant/15.ui.csv"
address 17: master #17
address 1c: slave #17, scanned "MF=Vaillant;ID=RC C ;SW=0501;HW=6201", loaded "vaillant/1c.rcc.4.csv"
address 23: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/23.solsy.cc.csv"
address 25: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/25.solsy.hwc.csv"
address 26: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/26.solsy.hc.csv"
address 30: master #3
address 31: master #8, ebusd
address 35: slave #3, scanned "MF=Vaillant;ID=RC C ;SW=0501;HW=6201", loaded "vaillant/35.rcc.1.csv"
address 36: slave #8
address 37: master #18
address 3c: slave #18, scanned "MF=Vaillant;ID=RC C ;SW=0507;HW=6201", loaded "vaillant/3c.rcc.5.csv"
address 50: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/50.solsy.mc.csv"
address 70: master #4
address 75: slave #4, scanned "MF=Vaillant;ID=RC C ;SW=0501;HW=6201", loaded "vaillant/75.rcc.csv"
address ec: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/ec.solsy.sc.csv"
I lost addresses 52 and 53
obviously my VR60 is working fine.
why?
thanks
Hello,
When I install the eBUS SDK in Ubuntu14.04 64bit LTS,the ebUniversalProForEthernet-x86_64.ko cannot be build seccesful,the error is :/opt/pleora/ebus_sdk/Ubuntu-14.04-x86_64/module/ebUniversalProForEthernet/OS_KMLNetwork.c:96:2: error: too many arguments to function ‘sock_sendmsg’
lReturn = sock_sendmsg( lSocket, &lMessage, lTotalSize );
^
Thank a lot!
Hi, i'm in need of some help. First i want to say i'm new to all of this so bare with me ;-)
I have a VCW376 heater and i have connected it to a ebus to usb converter(eservice) and connected everything to a PI2. Installed ebusd and started up service. So far so good i can read values with the 'r' command in ebusctl and response shows up ok.
What i was expecting that updates would come in to ebusd automatically. So if a value changed in de heater and these new values where to be submitted on the bus that i would be able to see these changes with the 'listen' command in ebusctl. But this is not the case. There are no updates. The only way i seem to get updates is when i configure a poll priority on de 'r' command.
So my question is, is this normal behaviour or is this due to the fact that i don't have a controller connected to my setup.
I have bought an ethernet e-bus gateway from esevice-online.de, but I can not get it to work.
When I start ebusd, a TCP connection established immediatly, but no data traffic occurs.
When with ebusctl initiated "scan full" command, in log get "No signal" message and no data traffic in TCP session.
It would bei great to enable message chaining of randam messages with different IDs and sizes.
I have the following scenario:
The errorhistory ist stored as memoryblock in the device. To get the complete errorhistory it is necessary to read the block as six messages. Till now you have to define 6 messages differing in ID and size. And you have to communicate each defined message seperately.
Here is an example of the current definition - cutted - and the commands to get the values:
r,,ErrorHistory1,,,,,"03029F8263",,s,skip,,, ,,s,UCH,,,Byte2 ,E4.ErrorCode,s,UCH,,, -- cut
r,,ErrorHistory2,,,,,"A8B26C",,s,skip,,, ,E4.ThroughputValue,s,UCH,,, -- cut
ebusctl r -f ErrorHistory1
ebusctl r -f ErrorHistory2
And here is the same definition as chained message and only one command to get the complete errorhistory:
r,,ErrorHistory,,,,,"03029F8263; A8B26C",,s,skip,,, ,,s,UCH,,,Byte2 ,E4.ErrorCode,s,UCH,,, -- cut
ebusctl r -f ErrorHistory
Enhance raw command to:
Hi! I'm hacking with ebusd in an attempt to control my bulex heating from my house automation. At the moment I'm trying to see if I can change the requested room temperature. My ebus environment:
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0502;HW=3302"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=SBX00;SW=0322;HW=4802"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 70: master #4
address 75: slave #4, scanned "MF=Vaillant;ID=E7C00;SW=0211;HW=7402"
Master 70 is the room thermostat used to test: 'E7C' is the type (Bulex Exacontrol E7C). When the requested temperature is changed, the thermostat puts these 3 messages on the bus (copied from the ebusd log):
23°C
7015b509040e230001 / 00
7015b509050e24007001 / 00
7015b509070e250028014000 / 00
22°C
7015b509040e230001 / 00
7015b509050e24006001 / 00
7015b509070e250028014000 / 00
21°C
7015b509040e230001 / 00
7015b509050e24005001 / 00
7015b509070e250028014000 / 00
The magic number is '07' for 23°C, '06' for 22°C and '05' for 21°C. Now, I'm clueless on what these commands mean, but the first step would be to simply 'replay' commands to see that the examaster (15) accepts the values send by ebusd. However, when the commands are written with ebusctl an error is returned:
localhost: write -h 15b509040e230001
ERR: element not found
localhost: write -h 15b509050e24007001
ERR: element not found
localhost: write -h 15b509070e250028014000
ERR: element not found
The ebusd log shows this:
write hex cmd: 3115b509040e230001
write hex cmd: 3115b509050e24007001
write hex cmd: 3115b509070e250028014000
As nothing is happening on the examaster I'm unsure if the commands are properly written. Do you have an idea what this could be? Is it to naive to simply replay these commands or...?
Thanks!
Recent use cases reminded me that it's sometimes useful to separate 1 ebus into 2, which might require to emulate one or more clients. It would be very handy if ebusd would support a slave device mode with the capability to define a set of supported messages and their answer, that ebusd should send.
Maybe that's a too complex enhancement and should be done in a separate project, but I don't know any other projects dealing with ebus. Maybe ebusd could simply provide a method to interfere bus messages?
Or some library mode to use from other scripts or programs?
Then it could just hand over all messages to some "plug in", which is then able to respond via ebusd?
Since I'm very curious to use the MQTT implementation I installed lastbeforec++11.
But there seems to be no MQTT support in this version:
ebusd -V
ebusd 3.0pre.p20170130
sudo ebusd --scanconfig --mqttport=1883
ebusd: unrecognized option '--mqttport=1883'
Try `ebusd --help' or `ebusd --usage' for more information.
But ebusd --help shows me no MQTT option. Could you lead me to the version including MQTT?
Thank you.
absalom
Hi, I developed a php page that show some few values read from ebusd, using ebusctl (shell_exec).
if I run the php page on the same ebusd server I have no problem.
If I run the php page on another server and I request values using "ebusctl -s xxx" major times (not always) I receive the error "ERR: element not found".
the problem seems to be on ebusd and not on ebusctl.
have you any idea?
thanks
A chaffoteaux serelia green that as motherboard replace and then have 3 ebus port.
1 directly on the new motherboard (24VDC ebus2 from chaffoteaux docs) ans still the 2 other old ebus por from origin (19VDC)
John30 told me than without other device connect to the bus i can not intercept any thing.
I only saw datetime:
2016-10-01 11:02:19.158 [update error] unable to parse broadcast datetime from 10fe070009800fffffffffffffff / : ERR: argument value out of valid range
So i found an ambiant thermostat for this boiler and wire it to the ebus2 port (self power via ebus).
unfortunaly no more things on the old ebus port.
I wired the eservice usb adapter to the ebus2 port 2, now i saw more things:
ebusctl info && ebusctl scan && sleep 30 && ebusctl scan result
version: ebusd 2.1.e408c94
signal: acquired
symbol rate: 16
masters: 3
messages: 13
address 10: master #2
address 15: slave #2, scanned "MF=0;ID=" error: ERR: invalid position
address 31: master #8, ebusd
address 36: slave #8
address 70: master #4
But in ebusd i got those sort of things:
2016-10-01 11:04:18.972 [update error] unable to parse broadcast datetime from 10fe070009800fffffffffffffff / : ERR: argument value out of valid range
2016-10-01 11:04:44.425 [update notice] unknown BC cmd: 70fe20100419190001
2016-10-01 11:04:44.458 [update notice] unknown BC cmd: 70fe203b0175
2016-10-01 11:04:44.509 [update notice] unknown BC cmd: 70fe2010057118270101
I am sure chaffoteaux/aristion/etc ebus do not respect 100% of the protocole and send personnals things
How can i hope to get more information from.
Hi John,
can you give me hint to compile with MQTT Support?
Thanks
known to be working until and including 2.1 release
Hi everyone,
I've pieced together a small node-red flow that:
Any interest please let me know to add some details here.
Hi,
do you also plan to support NAS systems (eg. Synology Diskstation)?
I really want to monitor my Air Heat Pump (Vaillant VWL Geotherm Plus) over Network w/ my Diskstation. All necessary Hardware (vrDIALOG Interface, eBus Koppler Ethernet, Synology DS213+) is available. To run the eBus Deamon on my FritzBox 3390 and/or on a separate Rasperry Pi is not applicable for me becuase these platforms are too inperformant.
Thanks for your reply!
Rgds,
M.
I have ebusd running on a raspberry pi b+ with raspbian. Every 5 minutes I read about 200 ebusd values via telnet. This worked flawlessly with version 2.3. Since 2.4 (I'm referring to the released *_armhf.deb packages) I noticed an odd behaviour:
I'd like to help by bisecting the source and finding out which commit introduced this regression for me. But I found that e.g. v2.4 (I'm now referring to the tag in this repository) doesn't run but just segfaults. So I can't test the changed that several commits made.
If I should provide any more information, let me know.
Thanks very much for this awesome piece of software!
Hi,
it would be great if you could create an extra option for a separate logfile for raw data according to dump data.
Could be something like:
Log Options
[...]
--rawdatafile=FILE
Log received bytes to FILE [/var/log/ebusd.log]
--rawdatasize=SIZE
Make rawdata files no larger than SIZE kB [100]
BTW: cool tool :-)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.