In summary it should be like that…
When valve1 of room1 is true for 2 min turn on boiler and after x minutes turn on valve1
When valve1 of room2 is true for 2 min turn on boiler and…
When valve1 of room1 is false for 2 min turn off valve1
When valve2 of room2 is false…
When valve1 is off and valve2 is off turn boiler off
You have to find the right time to all ON OFF
-
Rules for central heating using Chronotherm plugin
-
ok, I’m here
This I think is the right configuration
assuming that button_heat_floor is the switch for the boiler
and button_heat_x is the other switches"rule": "when valve of s_heat is equal to true for $waiting_time_to_ avoid_the_short_switch_on_off seconds then switch button_heat_floor on and switch button_heat_s on after $X seconds" "rule": "when valve of p_heat is equal to true for $waiting_time_to_ avoid_the_short_switch_on_off seconds then switch button_heat_floor on and switch button_heat_p on after $X seconds" "rule": "when valve of e_heat is equal to true for $waiting_time_to_ avoid_the_short_switch_on_off seconds then switch button_heat_floor on and switch button_heat_e on after $X seconds" "rule": "when valve of s_heat is equal to false for $waiting_time_to_ avoid_the_short_switch_on_off seconds then switch switch button_heat_s off" "rule": "when valve of p_heat is equal to false for $waiting_time_to_ avoid_the_short_switch_on_off seconds then switch switch button_heat_p off" "rule": "when valve of e_heat is equal to false for $waiting_time_to_ avoid_the_short_switch_on_off seconds then switch switch button_heat_e off" "rule": "when button_heat_p is turned off and button_heat_e is turned off and button_heat_s is turned off then switch button_heat_floor off"
-
@zacca said in Rules for central heating using Chronotherm plugin:
Thank you Zacca! I found a good solution for interconnect the 3 main valves, the heat floor pump and the boiler.
Your plugin worked all winter in my home quite well!
The only error i get in ever night at 00:00 is this:
… error [pimatic]: Error in VariablePredicateHandler: Can not compare strings with >=!
00:00:35error [pimatic]: Error in VariablePredicateHandler: Can not compare strings with <!
00:00:35error [pimatic]: Error in VariablePredicateHandler: Can not compare strings with >=!
00:00:35error [pimatic]: Error in VariablePredicateHandler: Can not compare strings with <!
2018-03-27 23:59:35error [pimatic]: Error in VariablePredicateHandler: Can not compare strings with >=!
23:59:35error [pimatic]: Error in VariablePredicateHandler: Can not compare strings with <!
23:59:35error [pimatic]: Error in VariablePredicateHandler: Can not compare strings with >=!
23:59:35error [pimatic]: Error in VariablePredicateHandler: Can not compare strings with <!
…Can yoyu explain me what is wrong?
Here is the codes:
{
“id”: “valve-dummy-s-on”,
“name”: “valve-dummy-s-on”,
“rule”: “when button_heat_s is on then set presence of valve_s present”,
“active”: true,
“logging”: true
},
{
“id”: “valve-dummy-s-off”,
“name”: “valve-dummy-s-off”,
“rule”: “when button_heat_s is off then set presence of valve_s absent”,
“active”: true,
“logging”: true
},
{
“id”: “valve-dummy-p-on”,
“name”: “valve-dummy-p-on”,
“rule”: “when button_heat_p is on then set presence of valve_p present and after 5 minutes switch button_heat_floor on”,
“active”: true,
“logging”: true
},
{
“id”: “valve-dummy-p-off”,
“name”: “valve-dummy-p-off”,
“rule”: “when button_heat_p is off then set presence of valve_p absent and after 5 minutes switch button_heat_floor off”,
“active”: true,
“logging”: true
},
{
“id”: “valve-dummy-e-on”,
“name”: “valve-dummy-e-on”,
“rule”: “when button_heat_e is on then set presence of valve_e present”,
“active”: true,
“logging”: true
},
{
“id”: “valve-dummy-e-off”,
“name”: “valve-dummy-e-off”,
“rule”: “when button_heat_e is off then set presence of valve_e absent”,
“active”: true,
“logging”: true
},
{
“id”: “ct-dummy-on”,
“name”: “ct-dummy-on”,
“rule”: “when button_ct is on then set presence of ct_state present”,
“active”: true,
“logging”: true
},
{
“id”: “ct-dummy-off”,
“name”: “ct-dummy-off”,
“rule”: “when button_ct is off then set presence of ct_state absent”,
“active”: true,
“logging”: true
},
{
“id”: “floor-dummy-on”,
“name”: “floor-dummy-on”,
“rule”: “when button_heat_floor is on then set presence of valve_floor present”,
“active”: true,
“logging”: true
},
{
“id”: “floor-dummy-off”,
“name”: “floor-dummy-off”,
“rule”: “when button_heat_floor is off then set presence of valve_floor absent”,
“active”: true,
“logging”: true
},
{
“id”: “ct-on-s”,
“name”: “ct-on-s”,
“rule”: “when button_heat_s is on then after 3 minute switch button_ct on”,
“active”: true,
“logging”: true
},
{
“id”: “ct-on-p”,
“name”: “ct-on-p”,
“rule”: “when button_heat_p is on then switch button_heat_floor on and after 3 minute switch button_ct on”,
“active”: true,
“logging”: true
},
{
“id”: “ct-on-e”,
“name”: “ct-on-e”,
“rule”: “when button_heat_e is on then after 3 minute switch button_ct on”,
“active”: true,
“logging”: true
},
{
“id”: “ct-off”,
“name”: “ct-off”,
“rule”: “when button_heat_s is off and button_heat_p is off and button_heat_e is off then switch button_ct off”,
“active”: true,
“logging”: true
},
{
“id”: “ct-off-secure”,
“name”: “ct-off-secure”,
“rule”: “when presence of ct_state is present and button_heat_s is off and button_heat_p is off and button_heat_e is off then after 1 second switch button_ct off”,
“active”: true,
“logging”: true
},
{
“id”: “s-heating-on”,
“name”: “s-heating-on”,
“rule”: “when “$thermo_s.temperature” < “$s_heat.result” then switch button_heat_s on”,
“active”: true,
“logging”: true
},
{
“id”: “s-heating-off”,
“name”: “s-heating-off”,
“rule”: “when “$thermo_s.temperature” >= “$s_heat.result” then switch button_heat_s off”,
“active”: true,
“logging”: true
},
{
“id”: “p-heating-on”,
“name”: “p-heating-on”,
“rule”: “when “$thermo_p.temperature” < “$p_heat.result” then switch button_heat_p on”,
“active”: true,
“logging”: true
},
{
“id”: “p-heating-off”,
“name”: “p-heating-off”,
“rule”: “when “$thermo_p.temperature” >= “$p_heat.result” then switch button_heat_p off”,
“active”: true,
“logging”: true
},
{
“id”: “e-heating-on”,
“name”: “e-heating-on”,
“rule”: “when “$thermo_e.temperature” < “$e_heat.result” then switch button_heat_e on”,
“active”: true,
“logging”: true
},
{
“id”: “e-heating-off”,
“name”: “e-heating-off”,
“rule”: “when “$thermo_e.temperature” >= “$e_heat.result” then switch button_heat_e off”,
“active”: true,
“logging”: true
} -
-
@zoltán said in Rules for central heating using Chronotherm plugin:
Error in VariablePredicateHandler: Can not compare strings with <!
This error persisting. Can anyone give me some help to solve it? The rule is:
{
“id”: “e-heating-on”,
“name”: “e-heating-on”,
“rule”: “when “$thermo_e.temperature” < “$e_heat.result” then switch button_heat_e on”,
“active”: true,
“logging”: true
},
{
“id”: “e-heating-off-1”,
“name”: “e-heating-off-1”,
“rule”: “when “$thermo_e.temperature” = “$e_heat.result” then switch button_heat_e off”,
“active”: true,
“logging”: true
},
{
“id”: “e-heating-off-2”,
“name”: “e-heating-off-2”,
“rule”: “when “$thermo_e.temperature” > “$e_heat.result” then switch button_heat_e off”,
“active”: true,
“logging”: true
}, -
It looks like you are getting a string instead of a number.
Maybe aNaN
?
Does it always happen or only sometimes? -
@michael-rudek
it happens on 30% of the cases. -
@zoltán
Anyone, please!! -
Have you change somethink ??
Look at what changes at those times -
Your
“$thermo_e.temperature”
does not send a number. (NaN, Not a Number).
Maybe it sends something like “Null” “Error” or something else…
Pimatic can´t compare a string (a text) with a number.