-
-
Notifications
You must be signed in to change notification settings - Fork 138
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
difficulty with the write command #179
Comments
the write command does neither support specifying key/value pairs nor the -V option, see wiki. |
Thanks for your help I try this command and I get this error and these logs however, if I do the reply shows that SetMode exists What I have to do ? Thanks |
you probably have to authorize yourself in order to have that message available, or let ebusd just ignore any authorization stuff (--accesslevel="*") |
I have already put accesslevel="*", it is the reason why I open this issue. What can I do ? |
check how the message is defined exactly. and check that |
I check what you said
is set in /etc/default/ebusd You told me to check how the message is defined exactly. The message is in the hcmode.inc, it is defined for read as well for write. I didn't find where is the problem. Can you help more ? |
check the definition with |
I seem to have the same problem. I added
Writing does not work:
This does work:
any ideas on how to write to that register? |
@Mathadon actually, you have to use "--accesslevel=*" instead |
I tried that but then In any case, I still get
btw: from a user point of view it is not clear what it means that 'element is not found'. I.e. does it not find 'bai' or 'SetMode', or? edit:
while |
then please post the content of /etc/default/ebusd or the command line you were using. |
Okay, so if I understand correctly then 'element' refers to the message name and ebusd does not recognize Contents of
|
found it: |
So the heater does not support writing to it? Then how is the thermostat able to change set points? From the bus traffic it seems that the thermostat is using |
of course the thermostat is writing to it, but the CSV does not allow you to change it on purpose, because the thermostat will override it again next time, so it does not make sense to write to it with ebusd anyway. |
@john30 thanks for the feedback! I'll try that and throw out the thermostat if necessary. The way it looks now, the thermostat does not write all that often so unless the thermostat immediately overwrites my command once it identifies the command then I can just overwrite the thermostat whenever it writes. From a developer point of view I find this design choice a bit odd though, so some constructive criticism: |
please keep in mind that this issue is related to CSV configuration and not to ebusd. so please post complaints about config files in that repo. |
I‘ll try exactly the same. My VRC700 has a really ugly behaviour (see |
@Mathadon can we exchange thoughts how to create a ´-def´ message definition that would allow writing ´SetMode´? |
sure, feel free to contact me on < e-mail address removed > |
Here's what I came up with for a writable
Write like this (auto mode, set flowtempdesired):
This comes WITHOUT ANY WARRANTY |
@andig Could you please confirm that over time your SetModeOverride finding proved to be correct? |
Confirmed as far as In the end using this didn't work for me since- as John pointed out- |
hm, in order to test it I changed "wi" to "r", so I can read it and I only have:
Is it possible that your command is for write only and cannot be used for reading? |
It is. You cannot read it as its defined as The BAI will show you that its working if you take a look by reading |
Ah, understood. But at the same time I see that reading SetMode returns 0.5 for FlowTempDesired and this cannot be fixed? So for this reason you read FlowTempDesired directly and don't read SetMode? |
If you're getting results from reading |
No bug here, this is because I changed it from "uw," to "r,uw"
|
I've been using @andig writable SetModeOverride custom message definition successfully on the command line i.e.
It works fine, adjusting the boiler flow temperature as required, although I don't understand why the log shows sent SetMode then write SetModeOverride done:
However, I can't figure outwhy it doesn't work when attempting to do the same write via MQTT:
First the log says it's an unmatchable topic, but then it shows sent SetMode as above using the command line and write with the correct parameters. But the boiler does not respond to the message. I did try wrapping the MQTT data in single quotes as seem necessary for the command line but that throws ERR: invalid numeric argument. Is there a correct way to use SetModeOverride over MQTT? Edit: Have raised this as a discussion https://github.com/john30/ebusd/discussions/828#discussion-4817256 |
So I too tried what @andig proposed and it indeed changed |
Oh, just found a comment confirming that:
|
Hello,
I try to write the SetMode register that has multiple fields. I read that I need to write all the fields.
I read them through the command
ebusctl read -v -c bai SetMode
I get this reply
bai SetMode hcmode=130;flowtempdesired=0.5;hwctempdesired=4.0;hwcflowtempdesired=0;disablehc=0;disablehwctapping=0;disablehwcload=0;remoteControlHcPump=0;releaseBackup=0;releaseCooling=0
then I do
ebusctl write -V -c bai SetMode hcmode 132;flowtempdesired 0.5;hwctempdesired 4.0;hwcflowtempdesired 0;disablehc 0;disablehwctapping 0;disablehwcload 0;remoteControlHcPump 0;releaseBackup 0;releaseCooling 0
and I have these error messages
`usage: write [-s QQ] [-d ZZ] -c CIRCUIT NAME [VALUE[;VALUE]*]
or: write [-s QQ] [-c CIRCUIT] -h ZZPBSBNNDx
Write value(s) or hex message.
-s QQ override source address QQ
-d ZZ override destination address ZZ
-c CIRCUIT CIRCUIT of the message to send
NAME NAME of the message to send
VALUE a single field VALUE
-h send hex write message:
ZZ destination address
PB SB primary/secondary command byte
NN number of following data bytes
Dx data byte(s) to send
-bash: flowtempdesired: command not found
-bash: hwctempdesired: command not found
-bash: hwcflowtempdesired: command not found
-bash: disablehc: command not found
-bash: disablehwctapping: command not found
-bash: disablehwcload: command not found
-bash: remoteControlHcPump: command not found
-bash: releaseBackup: command not found
-bash: releaseCooling: command not found`
Can you help me to find what is wrong with my command or my configuration ?
Thanks
The text was updated successfully, but these errors were encountered: