Vifte slås ikke av etter 30 min (Automasjon bug?)

Hei!
Jeg har en Aquara smart plug som styrer vifte. Den slås på når men aquara fuktighetssensor når fuktighet er nådd % grensenivå og så forsøker jeg å legge inn at den skal slå seg av etter 30 min, men den slår seg ikke av.

Forsøk på løsning:

  • Jeg har forsøkt å slette å lage ny automasjon flere ganger uten at dette har fungert.
  • Jeg har installert Thingsplex om jeg kunne fikse det der, men valgte å ikke røre noe jeg ikke forstod helt :wink:
  • Jeg kan sette opp en automasjon som sier at når Aquara pulg bruker mer enn eks 5w så skal den slå seg på og slå seg av etter eks 30 min. Denne fikk jeg til å fungere, men var litt redd for at den står å trigger påknappen.
  • Jeg får til å trigge den av med bevegelsessensoren

Kan det evt være en bug i automatiseringen i appen knyttet til luftfuktighetssensor?

Det kan være at 10 min er for kort. Sensorene noen ganger sender ikke meldinger hele tiden, og det kan være at den skrur seg selv av og tilbake på umiddelbart, elles noe sant.

Kanskje prøve å sette den på 45 min og se om det hjelper?

Siden du har Thingsplex installert, du kunne også passe på hvilken kommando sendes etter de 10 min er ferdig og hva skjer etterpå med enheten, men du må finne id nummer til enheten og det kommer mange kommando gjennom skjermen og det er ikke alltid lett å se alt som skjer.

Sensoren oppdaterer rimelig ofte tror jeg fordi jeg kan følge at fuktighetsnivå går ned på appen. Har prøvd med over 45 min også.

Kildekode sier ikke meg så mye, men kanskje noen andre skjønner.

{
  "Id": "87833ac4-7738-4567-bdab-edf338f76cd2",
  "ClassId": "87833ac4-7738-4567-bdab-edf338f76cd2",
  "Author": "espent@posteo.net",
  "Version": 0,
  "CreatedAt": "2024-05-28T06:57:07.209371Z",
  "UpdatedAt": "2024-05-28T08:57:07.390281453+02:00",
  "Name": "when humidity value of Fuktighet bad is higher than 65% and the mode is home, away, sleep or vacation",
  "Group": "sensor_humid",
  "Description": "Ventilasjon goes on and after 20 minutes Ventilasjon goes off ",
  "Nodes": [
    {
      "Id": "53",
      "Type": "trigger",
      "Label": "when humidity value of Fuktighet bad is higher than 65%",
      "SuccessTransition": "54",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zigbee/ad:1/sv:sensor_humid/ad:2_1",
      "Service": "sensor_humid",
      "ServiceInterface": "evt.sensor.report",
      "Config": {
        "InputVariableType": null,
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "unit",
        "PropFilterValue": "%",
        "RegisterAsVirtualService": false,
        "Timeout": null,
        "ValueFilter": {
          "Value": null,
          "ValueType": null
        },
        "ValueJPath": null,
        "ValueJPathResultType": null,
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "papp": {
          "customValues": null,
          "nodeId": "4",
          "nodeName": "humid",
          "nodeType": "humid"
        },
        "x": null,
        "y": null,
        "nodeType": ""
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "54",
      "Type": "if",
      "Label": "",
      "SuccessTransition": "55",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "tpflow",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "gt",
            "RightVariable": {
              "Value": 65,
              "ValueType": "float"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "55"
      },
      "Ui": {
        "papp": {
          "customValues": null,
          "nodeId": null,
          "nodeName": "If",
          "nodeType": "humid"
        },
        "x": null,
        "y": null,
        "nodeType": ""
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "55",
      "Type": "if",
      "Label": "and the mode is home, away, sleep or vacation",
      "SuccessTransition": "56",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "tpflow",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "home",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "away",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "sleep",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "vacation",
              "ValueType": "string"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "56"
      },
      "Ui": {
        "papp": {
          "customValues": null,
          "nodeId": "home,away,sleep,vacation",
          "nodeName": "If",
          "nodeType": "modeTrigger"
        },
        "x": null,
        "y": null,
        "nodeType": ""
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "56",
      "Type": "action",
      "Label": "Ventilasjon goes on",
      "SuccessTransition": "57",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_bin_switch/ad:7_1",
      "Service": "out_bin_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": true,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "LookupServiceNameAndLocation": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": null,
        "VariableName": "",
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "papp": {
          "customValues": null,
          "nodeId": "14",
          "nodeName": "device",
          "nodeType": "deviceAction"
        },
        "x": null,
        "y": null,
        "nodeType": ""
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "57",
      "Type": "wait",
      "Label": "and after 20 minutes",
      "SuccessTransition": "58",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 1200000,
      "Ui": {
        "papp": {
          "customValues": null,
          "nodeId": null,
          "nodeName": "wait",
          "nodeType": "deviceTimeout"
        },
        "x": null,
        "y": null,
        "nodeType": ""
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "58",
      "Type": "if",
      "Label": "and the mode is home, away, sleep or vacation",
      "SuccessTransition": "59",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "tpflow",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "home",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "away",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "sleep",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "vacation",
              "ValueType": "string"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "59"
      },
      "Ui": {
        "papp": {
          "customValues": null,
          "nodeId": "home,away,sleep,vacation",
          "nodeName": "If",
          "nodeType": "modeTrigger"
        },
        "x": null,
        "y": null,
        "nodeType": ""
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "59",
      "Type": "action",
      "Label": "Ventilasjon goes off",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_bin_switch/ad:7_1",
      "Service": "out_bin_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "LookupServiceNameAndLocation": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": null,
        "VariableName": "",
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "papp": {
          "customValues": null,
          "nodeId": "14",
          "nodeName": "device",
          "nodeType": "deviceTimeoutAction"
        },
        "x": null,
        "y": null,
        "nodeType": ""
      },
      "TypeAlias": "Action"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "keep_last"
}

Bytt til “Keep first” , det burde hjelpe.

Pussig at appen velger “keep last” - Da vil den aldri skru seg selv av med timer.

@espen - til info. Er alle automasjoner lagd i appen “keep last”?

@eathome - bytte til “keep first” vil skru den av 20 min etter den er skrud på, uansett fuktighetsnivå. Om den er fortsatt over 65%, vil timer skru av viften, men når neste rapport fra sensor starter den en 20 min syklus igjen, og under 65% vil den ikke skru seg selv på igjen.

Du kan også forandre flow slik at 20 min syklus starter når fuktighetsnivå dropper under 65%. Om dette er hva du vil ha, flytt Delay stegen og lage link fra gul første if condition til delay. Du må også beholde “keep last.” “Ulempen” med dette er om fuktighetsnivå forblir over 65% vil den aldri skru seg selv av.

Da vil den se slik ut:

1 Like

Tusen takk for hjelpen!! Det var “keep last” som var problemet. Og det gikk jo heller ikke an å endre i appen, bare i things plex. “Keep first” Fungerer bra nok. og så kan jeg heller justere antall minutter i forhold til det.

1 Like

Jeg trodde det var løst men av en eller annen grunn så slå viften seg på igjen. Har prøvd mye. Nå har jeg satt opp følgende:
Automasjon 1: Starter vifta når det er over 65% fuktighet
Automasjon 2: Slår på og så av vifta etter 25 min ved mindre enn 65% fuktighet (med keep first)

Det som skjer er at det ser ut til å funge, altså den slår seg av 25 min etter at fuktighet har gått under 65%, men etter en stund så slår den seg på igjen. Skjønner ikke hvorfor.

(Poenget med automasjonen er at jeg ønsker å kunne styre vifta manuelt noen ganger uten at den slår seg av grunnet at fuktighet er under 65%.)

{
  "Id": "443d3501-be6c-43de-b1aa-bfb9a3b71974",
  "ClassId": "443d3501-be6c-43de-b1aa-bfb9a3b71974",
  "Author": "espent@posteo.net",
  "Version": 0,
  "CreatedAt": "2024-06-02T19:33:17.16243Z",
  "UpdatedAt": "2024-06-03T10:28:17.700190911+02:00",
  "Name": "when humidity value of Fuktighet bad is lower than 65% and the mode is home, away, sleep or vacation",
  "Group": "sensor_humid",
  "Description": "Ventilasjon goes on and after 25 minutes Ventilasjon goes off ",
  "Nodes": [
    {
      "Id": "62",
      "Type": "trigger",
      "Label": "when humidity value of Fuktighet bad is lower than 65%",
      "SuccessTransition": "63",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zigbee/ad:1/sv:sensor_humid/ad:2_1",
      "Service": "sensor_humid",
      "ServiceInterface": "evt.sensor.report",
      "Config": {
        "InputVariableType": null,
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "unit",
        "PropFilterValue": "%",
        "RegisterAsVirtualService": false,
        "Timeout": null,
        "ValueFilter": {
          "Value": null,
          "ValueType": null
        },
        "ValueJPath": null,
        "ValueJPathResultType": null,
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": "4",
          "nodeName": "humid",
          "nodeType": "humid"
        },
        "x": null,
        "y": null
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "63",
      "Type": "if",
      "Label": "",
      "SuccessTransition": "64",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "tpflow",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "lt",
            "RightVariable": {
              "Value": 65,
              "ValueType": "float"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "64"
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": null,
          "nodeName": "If",
          "nodeType": "humid"
        },
        "x": null,
        "y": null
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "64",
      "Type": "if",
      "Label": "and the mode is home, away, sleep or vacation",
      "SuccessTransition": "65",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "tpflow",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "home",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "away",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "sleep",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "vacation",
              "ValueType": "string"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "65"
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": "home,away,sleep,vacation",
          "nodeName": "If",
          "nodeType": "modeTrigger"
        },
        "x": null,
        "y": null
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "65",
      "Type": "action",
      "Label": "Ventilasjon goes on",
      "SuccessTransition": "66",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_bin_switch/ad:7_1",
      "Service": "out_bin_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": true,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "LookupServiceNameAndLocation": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": null,
        "VariableName": "",
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": "14",
          "nodeName": "device",
          "nodeType": "deviceAction"
        },
        "x": null,
        "y": null
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "66",
      "Type": "wait",
      "Label": "and after 25 minutes",
      "SuccessTransition": "67",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 1500000,
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": null,
          "nodeName": "wait",
          "nodeType": "deviceTimeout"
        },
        "x": null,
        "y": null
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "67",
      "Type": "if",
      "Label": "and the mode is home, away, sleep or vacation",
      "SuccessTransition": "68",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "tpflow",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "home",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "away",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "sleep",
              "ValueType": "string"
            }
          },
          {
            "BooleanOperator": "or",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "vacation",
              "ValueType": "string"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "68"
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": "home,away,sleep,vacation",
          "nodeName": "If",
          "nodeType": "modeTrigger"
        },
        "x": null,
        "y": null
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "68",
      "Type": "action",
      "Label": "Ventilasjon goes off",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_bin_switch/ad:7_1",
      "Service": "out_bin_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "LookupServiceNameAndLocation": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": null,
        "VariableName": "",
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": "14",
          "nodeName": "device",
          "nodeType": "deviceTimeoutAction"
        },
        "x": null,
        "y": null
      },
      "TypeAlias": "Action"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "keep_first"
}

Hvor rask kommer den tilbake på igjen?

Det kan være at fuktighetsnivå går litt opp og ned og den trigges igjen. Du kan prøve å sette den til 55-60 prosent for å skru den av og se om det hjelper.

Hvordan sletter jeg en link mellom nodene?

Ja, det er jo egenlig forslaget ditt jeg vil ha om at når det dropper under 65% så starter syklus. Du sier jeg må lage link fra gul første if condition til delay. Det klarer jeg, men hvordan sletter jeg linken mellom action som allerede er der?

Jef lager en ny action, drar linken jeg vil slette til den og så slette den action du nettop lagde.

Du sletter den ved å slette “true” eller “false” transition fra den noden du ønsker å slette en linking i fra, i scriptet. Scriptet er tilgjengelig nederst til venstre når du har automasjonen åpen “strek moduset” . Virker litt slitsomt med engang, men det går seg fort til.

Da må du lage en global variabel, som fungerer som en “sperre” i en “if-node” i fuktighetsautomatikken din. Når du aktiverer den 25 minutter funksjonen din, så må du sette en variabel til at den automasjonen kjører, når den har kjørt ferdig, så setter du den globale variabelen tilbake til “automatikk” verdi. Din fuktighetsautomasjon kjenner ikke til din manuelle automasjon, så dette er rot til konflikt.

Takk for kommentarer! Ja jeg har strevd mye med å få dette til å fungere optimalt og finne ut av hva som er feil. Har også endret oppsettet etter hvert grunnet at det er feil og konflikter som jeg ikke skjønner. Nå forsøker nå med følgende:

  • En egen auomasjon som starter vifte når fuktighet er over et visst nivå.
  • En egen automasjon(se bilde) som når fuktighet er under et visst nivå, starter nedtelling(35 min) mot å slå av. Denne har selvfølgelig den feilen du nevner. For hver gang temostaten melder en ny fuktighetsverdi under nivå så kjører den stopp tror jeg. Så om jeg har slått på manuelt, så stopper den gjerne når temostat melder endret fuktnivå. Dette er jo kanskje greit nok, men bedre om det fungerer ordentlig. Skjønner ikke helt hvordan jeg “sette en variabel til at den automasjonen kjører, når den har kjørt ferdig, så setter du den globale variabelen tilbake til “automatikk” verdi.”

Litt vanskelig å forstå hva som egentlig er ønsket funksjon. Jeg trodde at du ønsket at viften skal gå kontinuerlig over 65% fuktighet, den skal være mulig og starte og gå i 25 minutter når du har fuktighet under 65%. Men her ser jeg en automasjon som starter ved fuktighet under 65% og går i 35 minutter. Hva er egentlig ditt ønskede bruksområdet?

For å ta automasjonen du har laget, så ville jeg satt en global variabel etter “If-noden” og satt den tilbake til opprinnelig verdig etter “Action”. “Set variable node” ligger under “data operations” her: Data operations - docs

Det er helt riktig, jeg ønsker vifte som går kontinuerlig når fuktighet er over 65%. Men grunnet at jeg ikke får til å ha både på og av trigger i samme automasjon uten at jeg får problemer med “villkårlig” start av vifte, så har jeg delt delt det i to automasjoner. Jeg har altså en annen automasjon som kun gjør følgende: Starter vifte når fuktighet er over 65%.

Da har lagt til “Set variable” etter if-condition, men er usikker på om instillingerne er riktige:

Etter action

Du er langt på vei, og splitting av automasjoner virker fornuftig, men da må du knytte de i sammen med en variabel slik at de ikke kan gå i konflikt med hverandre (noe de gjør i dag). Grunnen til at jeg sier en “global variabel”, er fordi da kan du bruke den i alle dine automasjoner. En variabel du lager, er kun tiltenkt den automasjonen du jobber med der og da.

Her har du ett rett frem eksempel for hvordan du setter variabelen:

Triggeren er boolen status On/Off for berederen, denne statusen kjøres igjennom en If-node, hvis den er “true” så settes min globale variabel til “True”. Min globale variabel i dette tilfelle heter da “Variabel_bereder_er_paa(bool))”. Når bereder er av, så har jeg akkurat den samme funksjonen for negativt utfall fra if-node, men da settes variabelen til “false”.

For å lage en global variabel i utgangspunktet, så legger du til “set variabel node” i automasjonen slik du har gjort, og du huker da av for “global”, trykk så “add”, gi den ett passende navn og rette funksjon. Du kan da velge hva som skal skje med den variabelen din når du får input på noden. Jeg benytter i utgangspunktet kun statisk håndtering, og ikke “lik input” .

Det som er fordelen med denne nye globale variabelen, er at du kan bruke den som en betingelse i andre automasjoner slik som dette:

Håper dette var oppklarende.

PS: forstår fortsatt ikke hva du ønsker og oppnå. For om du skal ha en vifte som går kontinuerlig over 65% fuktighet, så har du oppnådd dette. Men om du i tilegg skal ha viften til å gå i x-antall minutter når den er under 65% , så blir det i realiteten at den kommer til å gå 24/7. Trigger for automasjon nummer 2 (den manuelle) burde være On/Off fra utstyret som er tilkoblet viften, eller eventuelt ampère måling. Når viften starter på automatikk så burde du sjekke først om den allerede er på og når du starter den manuelle, så burde du sjekke om den ikke allerede er på.

Ps ps: om du ønsker og overstyre manuelt, så burde du implementere en virtuell bryter som er synlig i appen. Denne er da aktiv, så lenge nedtellingen er aktiv. Den er ikke aktiv når viften går pga. fuktighet over 65%.

Tusen takk for hjelp… skal jobbe videre med dette.

For å avlare hva jeg vil oppnå er det det følgende:

  • Samme avtrekk virker til baderom og til kjøkken/stue
  • På kjøkken har jeg en smart bryter som kan starte og stoppe avtrekk.
  • På bad ønsker jeg dette skal styres av fuktighetssensor.
  • I tillegg så er det greit å kunne slå på vifte manuelt i app når jeg ønsker ekstra utlufting.
  • Når fuktighetsnivå først har kommet over grenseverdi på bad så vil jeg gjerne at den ikke stopper med en gang men gjerne går en god stund og derfor har jeg lagt inn forsinkelse.
  • I tillegg så kunne det jo tenkes at jeg senere ønsker å sette opp andre automasjoner når det gjelder avtrekk.

Hvordan gjør du dette i dag?

Helt enig, der kommer forslaget om virtuell bryter inn i bildet.

Hvis du kjører manuelt via den tidligere nevnte virtuelle bryteren, så vil den kun gå i dine gitte minutter. Etter dette vil den få en ny rapport på fuktighet over 65% som vil få den til å gå til fuktigheten er under gitte verdier.

For og koke dette ned, så foreslår jeg at fuktighetsautomasjonen er ett godt utgangspunkt. For å kjøre den manuelt, så må du lage en virtuell bryter og bruke denne som en forrigling for fuktighetsautomasjonen.

På kjøkken har jeg laget en automasjon koblet til smartbryter som kjører vifte 50 min på ett trykk og slår av på 2 trykk. Ingen ting av dette har global variabel.

Da forstår jeg det slik at den øverste variablen har til oppgave å sette variabelen på og den siste er å sette den av.