regarding: working solution for qubino on/off thermostat in HC2 (including app integration)
device: qubino on/off thermostat
controller: HC2 version 4.1
issue: setting target temperature fails
status: found workaround
Hi all,
This week I decided to replace my ugly physical wallmounted thermostats with an invisible (in wall) alternative. I decided to go for the Qubino on/off thermostat to control my electrical infloor heating based on some web-site that claimed it was compatible with the HC2. Unfortunately it does not work out of the box, but I do believe I found a work-around that hopefully can be of use for some of you.
First the problems:
1. The current temperature is not visible in HC2
2. Not possible to set the desired temperature from within HC2. This seems to be caused by misinterpretation of numerical values between qubino and HC2 (more below)
The Solutions:
1. read current environment temperature
The qubino thermostat does not actively send updates when the temperature changes, but HC2 is able to read it when you poll the device. I simply changed the polling interval to 1 minute, and that solved the issue
2. Setting the desired temperature
This is the tricky one that requires a triggered event script as workaround. The problem is that setting a value of eg "22°C" for some reason becomes set as "2.2°" (notice the decimal point). This problem does not occur when you try to set the temperature to a decimal value, eg "21.5°" does get set correctly. My workaround is based on the observation that decimal values work correctly: instead of setting a desired temp of "22" we will request a desired temp of "22.01". This will be sent to qubino who will set the temp to "22.0" because it only supports one decimal (not 2). The HC2 will notice the value change in the qubino to 22.0 (being different from 22.01 triggering a seccond change event) and update the HC2 status to 22.0
Magic
Now the remaining challenge is that the iPad/iPhone app do not allow us to set a value of "22.01" in the interface. We can only pick integers such as 21, 22, ...
The following event script takes care of this. It gets triggered when the value of the qubino thermostat changes (value is the setpoint for the desired heating temp). If the value is too low, I assume it's due to the misinterpretation of the desired set point, and I reformat it before setting it again. I simply convert "2.2" into "22.01" and then set that value.
Here is the event script that gets triggered on a "value" change of the qubino thermostat (that's the device ID we trigger on):
--[[
%% properties
352 value
%% events
%% globals
--]]
local startSource = fibaro:getSourceTrigger();
local startSourceID = tonumber(startSource["deviceID"]);
local setTemp=tonumber(fibaro:getValue(startSourceID, "value"));
fibaro:debug("qubino value is "..setTemp);
if (tonumber(setTemp) < 4)
then
fibaro:debug("need to adjust Temp");
setTemp=setTemp*10+0.01;
fibaro:debug("qubino corrected value is "..setTemp);
fibaro:call(startSourceID, "setThermostatSetpoint", "1", setTemp);
end
Feedback appreciated...
Cheers,
Koen