balmli / no.almli.thermostat

Virtual thermostat and humidity app for Athom Homey
GNU General Public License v3.0
12 stars 6 forks source link

Fail to stop heating #49

Open oddgili opened 1 year ago

oddgili commented 1 year ago

In my setup both in combination with another thermostat, and as standalone, the VThermo sometimes fail to switch off the Zwave controlled heater. VThermo has heating "switched off" but the Zwave smart plug is still on. Also trying to start a flow with "Heating off" does not work, the Homey app crashes. Running Homey Pro and App on Android... The setup is according to instructions, with heaters in the same zone controllable. This does not happen all the time, but sufficient to be annoying, and it does not affect the "switch on heater". Of course it may boild down to Zwave (Aeotec Smart plug), but normal Zwave operations seem to be running smooth and stable. In some rooms I have set up a "watch dog" that chacks if VThermo has turned off heating, but the heater still uses power, then force off. Otherwise the App is really saving a lot of flows... Any Ideas?

ugumba commented 1 year ago

I think I have the same issue. In my case, I've only seen it happen in combination with Shelly (wifi) switches (which control floor heating on/off). Maybe latency in the switch driver could affect VThermo's perception of the heating state, by causing a race condition?

I suspect zone activation (by door contact alarm) may also be a contributing factor.

I've not found a way to reproduce, but like you, I need to monitor frequently to turn off the "stray" heating.

Flicking the target temperature very high, then very low, seems to usually make VThermo resume "normal" operation.

ugumba commented 1 year ago

I now run this HomeyScript every 20 minutes, from a flow which sends me a notification if the result is not "OK":

const devices = await Homey.devices.getDevices({ filter:{driverUri: "homey:app:no.almli.thermostat"}});

let message = '';

for (const device of Object.values(devices)) {

    const caps = device.capabilitiesObj;
    //const settings = await Homey.devices.getDeviceSettingsObj({id: device.id});

    let measured = caps['measure_temperature'].value;
    let target = caps['target_temperature'].value;
    let vt_onoff = caps['vt_onoff'].value;
    let onoff = caps['onoff'].value;

    log(`${device.name}:\tmeasured: ${measured}\ttarget: ${target}\tvt_onoff: ${vt_onoff}\tonoff: ${onoff}`);

    if (onoff) {
      if (measured > (target + 0.5) && vt_onoff)
        message += device.name + " is hot!\r\n";
      else if (measured < (target - 0.5) && !vt_onoff)
        message += device.name + " is cold!\r\n";
    }
}

if (message != '')
  return message;
else
  return "OK";

image

Before my first run, I hadn't noticed any active heaters which shouldn't be, but the script immediately found an inactive one which should have been on.

I'll run this for a few days, and consider trying to "fix" the rogue VThermos/heaters either from the script or from the flow. (I suspect the former is not permitted.) Getting the notifications is at least much better than nothing.

ugumba commented 1 year ago

VThermo has heating "switched off" but the Zwave smart plug is still on.

When you say "heating switched off", do you mean that vthermo says "cooling down towards X"? Or that the vthermo state is also "off"?

I frequently see vthermo "cooling", but the state remains "on". It seems to resolve itself, eventually, but it can take minutes or hours.

This is example from just now: Screenshot_20221109_083336_Homey Screenshot_20221109_083533_Homey

Btw, since my sensors are quite slow to report, I use hysteresis=0.

oddgili commented 1 year ago

VThermo is "on", i.e. active. The output is "off", i.e. cooling down..... but the heater is still switched on.9. nov. 2022 08:37 skrev Robert Schmidt @.***>:

VThermo has heating "switched off" but the Zwave smart plug is still on.

When you say "heating switched off", do you mean that vthermo says "cooling down towards X"? Or that the vthermo state is also "off"? I frequently see vthermo "cooling", but the state remains "on". It seems to resolve itself, eventually, but it can take minutes or hours. This is example from just now:

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

mauron85 commented 1 year ago

Got same issue.

I've got same issue. I've got one "master" VThermo Away, when turned it lowers down temperature on all child VThermos (and they in effect lower temp on Fibaro Valves). And opposite when VThermo Away is turned off.

When I toggle on/off the master VThermo, I see the all child VThermos are changing the temp as set, but they not always propagate temperature to thermostats (Fibaro Radiator Thermostatic valves).

Like on following screenshot. VThermo Away was turned on, but one fibaro thermostat has not been updated and it keeps heating.

image

Edit: After 10 minutes, I see all Fibaro thermo valves to have correct temperatures. But I wonder, why sometimes temperature is set immediately and sometime there is a delay on some thermo valves.

A-Wangen commented 6 months ago

I am experiencing this exact issue on both Homey 2019 and Homey Pro 23. app version: V1.10.4

In total on the two homey devices, I have 15 thermostats, controlling a Fibaro Wall implant.

My solution has been to create this flow for all the VThermo thermostats to restart it when needed. image

But after reading this thread I might implement this flow as an alternative, removing the option for overshooting the temp/effect level. image