Closed pepijng closed 8 years ago
Yeah, I just noticed this myself, I broke the CLI option handling :(
Fixed in f3c94cc3a34d425ccba3e48d8d3a3a3852e82bfb.
If you reinstall it should work again.
No errors but I don't think it is working yet...
root@linux:~/nefit-easy-client# ./bin/easy set temperature 20 {"status":"ok"} root@linux:~/nefit-easy-client# node ./example/current-status.js Temperature is set to 21.5°C, current is 22.2°C. Outside temperature is 5.0°C. System pressure is 1.9 bar. root@linux:~/nefit-easy-client#
@kraades can you create a new issue for this? And please include the output of easy status
as well.
Perhaps the thermostat needs to be put in manual mode before it accepts a temp override.
Please take a close look at your Easy. When pushing a new temperature using easy set temperature it wil briefly show it on your thermostat. The easy's internal clock program will set it back to the temperature defined in the clock program. So as Robert suggested: put your easy on manual first :)
@kraades @pepijng
The Android app sends the following requests to the backend when changing the temp:
PUT /heatingCircuits/hc1/temperatureRoomManual {"value":19}
PUT /heatingCircuits/hc1/manualTempOverride/status {"status":"on"}
PUT /heatingCircuits/hc1/manualTempOverride/temperature {"value":19}
The easy
client will only send the first one, so my guess is that the other two are also required (unless the thermostat is already in manual mode).
However, I'm not sure if this will permanently put the "manual temp override" status to "on", which would be a side-effect that should be avoided.
Correct, setting the temperature works if the Easy is in manual mode.
@kraades later today or tomorrow I'll try and see if I can get it working without having to put the Easy in manual mode 😀
I tried this one and I think it works without setting the Easy in manual mode.
./bin/easy put /heatingCircuits/hc1/temperatureRoomManual '{"value":20}'
./bin/easy put /heatingCircuits/hc1/manualTempOverride/status '{"value":"on"}'
./bin/easy put /heatingCircuits/hc1/manualTempOverride/temperature '{"value":20}'
@kraades nice! I was wondering if perhaps the second request could be skipped as well.
@kraades I pushed an update, set temperature
should work properly now.
i think /heatingCircuits/hc1/manualTempOverride/status {"status":"on"}
responsible for temporary temperature override (will be reseted after next clock update)
in nefit easy "manual/auto" correspond to /heatingCircuits/hc1/usermode
which can be clock
or manual
so in set temperature
command we need really all three commands
or read first a /heatingCircuits/hc1/usermode
if 'manual' then use only 1 command:
/heatingCircuits/hc1/temperatureRoomManual '{"value":20}'
if 'clock' use
/heatingCircuits/hc1/manualTempOverride/status '{"value":"on"}'
and
/heatingCircuits/hc1/manualTempOverride/temperature '{"value":20}'
just tested with override temp (16 deg) in clock mode (18 degree after 10 minutes):
its automaticaly switch off when clock programm is coming next
so in clock
mode only 2 command used manualTempOverride/status
and manualTempOverride/temperature
Imo checking usermode and either use the temperatureroommanual or manualtempoverride would be most clear. Maybe a new issue should be created?
@rostykk @kraades it seems to me that the client can always issue the three commands (as the "manual temp override" commands would just be ignored if the user mode is already set to "manual")?
@robertklep in "clock" mode android-client don't send command to /heatingCircuits/hc1/temperatureRoomManual
before:
{"id":"/heatingCircuits/hc1/manualTempOverride/status","type":"stringValue","recordable":0,"writeable":1,"value":"off"}`
{ "user mode": "clock", "clock program": "auto", "in house status": "ok", "in house temp": 21.3, "boiler indicator": "off", "control": "room", "temp override duration": 0, "current switchpoint": 14, "ps active": false, "fp active": false, "temp override": false, "holiday mode": false, "boiler block": null, "boiler lock": null, "boiler maintainance": null, "temp setpoint": 20, "temp override temp setpoint": 17, "temp manual setpoint": 18, "hed enabled": null, "hed device at home": null, "outdoor temp": 7, "outdoor source type": "virtual" } after when i press temperature up in clock mode (clock setpoint was 20 become 23) {"id":"/heatingCircuits/hc1/manualTempOverride/status","type":"stringValue","recordable":0,"writeable":1,"value":"on"} { "user mode": "clock", "clock program": "auto", "in house status": "ok", "in house temp": 21.2, "boiler indicator": "central heating", "control": "room", "temp override duration": 0, "current switchpoint": 14, "ps active": false, "fp active": false, "temp override": true, "holiday mode": false, "boiler block": null, "boiler lock": null, "boiler maintainance": null, "temp setpoint": 23, "temp override temp setpoint": 23, "temp manual setpoint": 18, "hed enabled": null, "hed device at home": null, "outdoor temp": 7, "outdoor source type": "virtual" }`
@rostykk hmm I'll take a closer look at my logfiles (perhaps the iOS agent, which I use to trace the comms, behaves differently in that respect).
But besides that, it seems to me that the Easy will ignore temp manual setpoint
when the user mode is set to "clock", wouldn't you agree?
So calling temperatureRoomManual
when it's in clock mode would have no impact, and calling manualTempOverride/status
and manualTempOverride/temperature
when in manual mode also wouldn't have an impact.
I'm trying to determine if I can use a shortcut by just always issuing those three commands for the set temperature
command, instead of first checking the current user mode and pick the correct command(s).
@robertklep yes fully agree: even if user click on manual mode Nefit easy made "bumpless switch": it overrite old temp manual setpoint
with existing in "clock" mode
So for me working solution: use all three command at once to be sure the temperature are set without checking mode (but its not intelegent way, probably)
@rostykk not intelligent perhaps, but "good enough" 😉
First of all .. thanks for your great work!
I've installed on Ubuntu 14.04 and i'm able to retrieve status and pressure from my Nefit boiler. When using: easy set temperature 15 i get an error message: Unknown or unimplemented command
15
This also occurs when using the easy get command, for example easy get /system/appliance/systemPressure
The error: Unknown or unimplemented command
/system/appliance/systemPressure