Automatic lights off, except when showering

Hei,
in my WC I have installed a thermostat (Heatit Z-TEMP2) that measures temperature and humidity and controls water floor heating, and a movement sensor that I use in an automation to switch the light on and after 5 minutes switches it off, otherwise that light would stay on for hours.

My problem arises when I want to take a shower, because the 5-minute timeout is way too short. So I tried to edit the flow adding a check on humidity.

The flow is not working, mostly because the humidity sensor reports very seldom and not regularly. I also thought to add a virtual mode switch (i.e. shower mode) triggered by humidity level changes, but how?

Could anyone indicate me the right approach to the “shower” problem?

Thanks in advance,
Umberto

Svar gjerne pÄ norsk, det er for sent og jeg er for trÞtt for Ä tenke og skrive pÄ norsk!

Hei :slight_smile:
Jeg har en lignende automasjon kjĂžrende :smiley:
Har en virtuell bryter som styrer om den skal ignorere hendelsene fra bevegelse sensorene.

{
  "Id": "MBQEFpHljrqNmFh",
  "ClassId": "MBQEFpHljrqNmFh",
  "Author": "espenh.no",
  "Version": 0,
  "CreatedAt": "2020-10-16T23:03:44.917457863+02:00",
  "UpdatedAt": "2023-07-29T23:22:52.389768597+02:00",
  "Name": "ignore_lights_downstairs",
  "Group": "ignore_lights",
  "Description": "ignore lights on motion",
  "Nodes": [
    {
      "Id": "1",
      "Type": "trigger",
      "Label": "button",
      "SuccessTransition": "2",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:flow/ad:1/sv:out_bin_switch/ad:MBQEFpHljrqNmFh_0",
      "Service": "out_bin_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "InputVariableType": "",
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "",
        "PropFilterValue": "",
        "RegisterAsVirtualService": true,
        "Timeout": 0,
        "ValueFilter": {
          "Value": null,
          "ValueType": "bool"
        },
        "ValueJPath": "",
        "ValueJPathResultType": "",
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": null
      },
      "Ui": {
        "nodeType": "",
        "x": 202,
        "y": 187
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "2",
      "Type": "action",
      "Label": "send response",
      "SuccessTransition": "3",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:flow/ad:1/sv:out_bin_switch/ad:MBQEFpHljrqNmFh_0",
      "Service": "out_bin_switch",
      "ServiceInterface": "evt.binary.report",
      "Config": {
        "DefaultValue": {
          "Value": "",
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 198,
        "y": 358
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "3",
      "Type": "set_variable",
      "Label": "update gloabe variable",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": 0,
          "ValueType": ""
        },
        "Name": "downstairs_ignore_lights",
        "UpdateGlobal": true,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 203,
        "y": 533
      },
      "TypeAlias": "Set variable"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "parallel"
}

Denne virtuelle bryteren sender en rapport tilbake til seg selv, samt oppdaterer statusen i en global variabel (du mĂ„ opprette variabelen (med eget navn), deretter korrigere importen eller i noden etterpĂ„. NĂ„r det er gjort kan du klikke “register device”, og det vil dukke opp i enhetslista i appen.

I bevegelse flowen legger du inn en ekstra sjekk mot den globale variabelen;

Om du har lyst denne skal bare vÊre midlertidig kan du f.eks korrigere enda et scenario dersom bryteren er pÄ (med f.eks lenger timeout), eventuelt at du resetter ignore lights enheten etter en gitt tid (i egen flow) eller at den resetter seg ved modusendring :slight_smile:

1 Like

Tusen takk for svaren. Jeg er pÄ jobb akkurat nÄ og skal prÞve Ä implementere dette ila helga.

1 Like

Hei, det er mitt flow:

NĂ„ alt er sett opp, Jeg skal prĂžve Ă„ bruke det neste gang jeg tar en dusj med styring (sett verdi av Shower variable til 1) fra FIMP.

Men
 hvordan kan jeg styre den “virtuell switch” assosiert til “Shower mode” uten Ă„ gĂ„ inn i FIMP?

mvh,
Umberto

Dette gjÞres inne pÄ den virtuelle bryter flowen :slight_smile:

SpÞrsmÄl ang din flow;
Filtrerer du verdier pÄ trigger noden?
Jeg ville nok heller flyttet “Turn light on” til etter if noden (og eventuelt lagt inn “trigger variable til bool true” som er bevegelse registrert. Hvis ikke sĂ„ vil triggeren ogsĂ„ trigge nĂ„r det ikke lenger er bevegelse, som slĂ„r pĂ„ lyset, venter 5 min, for Ă„ sĂ„ slĂ„ av lyset (altsĂ„ nĂ„r det faktisk ikke er noen i rommet)

Hei Espen,
Tusen takk, det er et veldig godt poeng! Jeg tror at hvis jeg bytter reset og delay noder fÄr jeg det samme resultatet, med fÊrre noder overalt pÄ flowen.

Edit: Det gÄr ikke, jeg skal tenke om igjen pÄ flowen. Hva skjer hvis bevegelse er oppdaget etter flowen er riktig aktivert? Blir flyten starta pÄ nytt? Jeg tror svaret er Ja. PÄ dette mÄte blir lyset skrudd av 30 minutter etter jeg er ferdig med dusjen og ut av badet!
Og hvis jeg snur den “shower reset” etter “delay” node og noen kommer i WC mens jeg dusjer, sĂ„ har jeg bare 5 minutter igjen fĂžr lyset gĂ„r av igjen


OgsÄ, jeg har et spÞrsmÄl ang automatiske genererte flyter med bevegelsesensorer:

Jeg har vĂŠrt inn i koden og jeg klarte ikke Ă„ finne forskjellen mellom de to triggerne (av / pĂ„). Kan du forklare hva er forskjell mellom de to? Den ene forskjell jeg fant er at “detected” er nodetype “null” og “not detected” er nodetype “parallelMotionTrigger”

detected
      "Id": "51",
      "Type": "trigger",
      "Label": "when motion is detected  in Sottoscala",
      "SuccessTransition": "52",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_presence/ad:48_0",
      "Service": "sensor_presence",
      "ServiceInterface": "evt.presence.report",
      "Config": {
        "InputVariableType": null,
        "IsValueFilterEnabled": true,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "",
        "PropFilterValue": "",
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": "",
          "ValueType": ""
        },
        "ValueJPath": null,
        "ValueJPathResultType": null,
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": "87",
          "nodeName": "motion",
          "nodeType": null
        },
        "x": 91,
        "y": 189
      },
      "TypeAlias": "Trigger"

og

not detected
      "Id": "d4041401-3f3f-11ed-a1ff-35b59f3ce5b1",
      "Type": "trigger",
      "Label": "when motion is not detected ",
      "SuccessTransition": "d4041402-3f3f-11ed-a1ff-35b59f3ce5b1",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_presence/ad:48_0",
      "Service": "sensor_presence",
      "ServiceInterface": "evt.presence.report",
      "Config": {
        "InputVariableType": null,
        "IsValueFilterEnabled": true,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "",
        "PropFilterValue": "",
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": "",
          "ValueType": ""
        },
        "ValueJPath": null,
        "ValueJPathResultType": null,
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": null,
          "nodeName": "motion",
          "nodeType": "parallelMotionTrigger"
        },
        "x": 516,
        "y": 171
      },
      "TypeAlias": "Trigger"

Hei!
Det er en liten bug der! Hvis du Äpner bevegelse flow som er auto-generert fra app, og Äpner source code sÄ kan du se at det gjÞres filtrering i trigger noden (ved Ä lese json), men dersom du Äpner trigger node, sÄ resettes den verdien av en eller annen grunn, og vil derfor ikke vise noe filtrering.

Hei,
beklager for lang fravér fra forum
 Jeg prþvde mange forskjellige og kom med dette flow:

  1. Lagt ny virtuell bryter “Shower mode” og sett det i “spesiell modus rom”.
  2. Lagt ny Scene “Shower time” som setter Shower mode bryter pĂ„ og Lys pĂ„.
  3. Lagt flyten her over

Venstre side:

  • NĂ„r Shower time modus fyres, lys og virtuell modus bryter er pĂ„. Det starter ogsĂ„ en nedtelling for 30 minutter.
  • Etter tid er opp, slĂ„r av virtuell bryter av og lysen av

HĂžyre side:

  • Bevegelse sensor i forskjellige modus:
    • ved “not home” det er bare 2 minutter pĂ„.
    • ved “home” sjekke status pĂ„ virtuelle bryter
      • hvis dusj status er av, brukt vanlig 5 minutter
      • hvis dusj status er pĂ„, gjĂžr ingenting.

Her er setup av flow:
image

Er det noe feil jeg gjĂžre?

pÄ forhand takk,
Umberto