Hvordan utføre action på en flow kun én gang?

Holder på og setter opp en flow som kjører ned screens ved lux over en viss verdi. Grei sak å sette opp, MEN:

Det har seg slik at fruen noen ganger ønsker å få sol inn i stuen, og kjører da opp screenen, og da vil flowen automatisk kjøre den ned igjen når den igjen trigger på lux over en viss verdi…

Er det noen måte å få action til å utføres kun en gang pr.døgn f.eks?

It’s possible by setting a variable (global) after an action and using it in if statement as filter .The variable can be reset either by timer or using some other trigger (button , mode ,etc.)

Thank you​:blush: I didn’t think about that :see_no_evil:

Agree with @alivinco that many different conditions can be used to prevent this. I plan to invest in a switch of some kind to switch between various modes of operation in addition to manually controlling the screens:

  • Screens up and keep them there for at least 1 hour
  • Screens down and keep them there for at least 1 hour
  • Automatic mode (lux and temperature)
  • Automatic mode (lux only)
  • Manual mode

I’m considering:

  • Eltako FT55 (same as mode switch - I’m however not sure how to program it? Help needed!)
  • Heatit z-push button
  • Aeotec Wallmote Quad

@lgrubbmo In the mean time I’ve set up my screens to work automatically in a specific time range during the day and manual mode outside of that range. This could potentially work well for you and your wife as well! :slight_smile: See my proposal here: Hjelp til stryring av Screens

Hei. Vil du dele flowen om den er Såpss enkel at den går ned for sol og opp når sol ikke er til stedet? Ønsker samme mulighet at den ikke går ned igjen om noen manuelt kjører de opp…

Kan se om jeg får delt den når jeg kommer hjem👍🏻 Jeg har gjort den litt mer avansert etterhvert, så nå går screen ned ved mindre sol når tv slås på blant annet😊

Supert! Den tar jeg i mot med åpne armer!

Fant du den :stuck_out_tongue_winking_eye:

Beklager, men har vært opptatt med oppussing av hus, så har helt glemt det🙈 skal prøve å huske det i morgen👍🏻

Bedre sent, enn aldri :slight_smile:

{
  "Id": "yve3PgV9niQaobE",
  "ClassId": "m8ywQff9BZRafzE",
  "Author": "",
  "Version": 0,
  "CreatedAt": "2020-08-26T10:31:13.293899489+02:00",
  "UpdatedAt": "2021-06-07T23:09:17.20266839+02:00",
  "Name": "Solskjerming",
  "Group": "",
  "Description": "",
  "Nodes": [
    {
      "Id": "1",
      "Type": "trigger",
      "Label": "Lux Stue",
      "SuccessTransition": "13",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_lumin/ad:97_0",
      "Service": "sensor_lumin",
      "ServiceInterface": "evt.sensor.report",
      "Config": {
        "InputVariableType": "",
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "",
        "PropFilterValue": "",
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": null,
          "ValueType": ""
        },
        "ValueJPath": "",
        "ValueJPathResultType": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": null
      },
      "Ui": {
        "nodeType": "",
        "x": 318,
        "y": 170
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "2",
      "Type": "if",
      "Label": "greater than",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "Lux Stue",
            "Operand": "gt",
            "RightVariable": {
              "Value": 800,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "screen_activated",
            "Operand": "eq",
            "RightVariable": {
              "Value": "no",
              "ValueType": "string"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "3"
      },
      "Ui": {
        "nodeType": "",
        "x": 459,
        "y": 539
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "3",
      "Type": "action",
      "Label": "Screen ned",
      "SuccessTransition": "10",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:app/rn:vinculum/ad:1",
      "Service": "vinculum",
      "ServiceInterface": "cmd.pd7.request",
      "Config": {
        "DefaultValue": {
          "Value": {
            "cmd": "set",
            "component": "shortcut",
            "id": 10,
            "param": {},
            "requestId": 1
          },
          "ValueType": "object"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "pt:j1/mt:rsp/rt:app/rn:tpflow/ad:1",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "vinc_action",
        "x": 453,
        "y": 735
      },
      "TypeAlias": "Home mode"
    },
    {
      "Id": "5",
      "Type": "if",
      "Label": "less",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "Lux Stue",
            "Operand": "lt",
            "RightVariable": {
              "Value": 150,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "screen_activated",
            "Operand": "eq",
            "RightVariable": {
              "Value": "yes",
              "ValueType": "string"
            }
          }
        ],
        "FalseTransition": "2",
        "TrueTransition": "14"
      },
      "Ui": {
        "nodeType": "",
        "x": 224,
        "y": 535
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "9",
      "Type": "set_variable",
      "Label": "screen not activated",
      "SuccessTransition": "12",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": "no",
          "ValueType": "string"
        },
        "Name": "screen_activated",
        "UpdateGlobal": true,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 211,
        "y": 1083
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "10",
      "Type": "set_variable",
      "Label": "screen activated",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": "yes",
          "ValueType": "string"
        },
        "Name": "screen_activated",
        "UpdateGlobal": true,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 449,
        "y": 911
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "12",
      "Type": "action",
      "Label": "Screen opp",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:app/rn:vinculum/ad:1",
      "Service": "vinculum",
      "ServiceInterface": "cmd.pd7.request",
      "Config": {
        "DefaultValue": {
          "Value": {
            "cmd": "set",
            "component": "shortcut",
            "id": 11,
            "param": {},
            "requestId": 1
          },
          "ValueType": "object"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "pt:j1/mt:rsp/rt:app/rn:tpflow/ad:1",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "vinc_action",
        "x": 218,
        "y": 1240
      },
      "TypeAlias": "Home mode"
    },
    {
      "Id": "13",
      "Type": "set_variable",
      "Label": "set lux",
      "SuccessTransition": "5",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": 0,
          "ValueType": ""
        },
        "Name": "Lux Stue",
        "UpdateGlobal": true,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 320,
        "y": 345
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "14",
      "Type": "wait",
      "Label": "10 min",
      "SuccessTransition": "15",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 600000,
      "Ui": {
        "nodeType": "",
        "x": 219,
        "y": 739
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "15",
      "Type": "if",
      "Label": "less",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "Lux Stue",
            "Operand": "lt",
            "RightVariable": {
              "Value": 120,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "harmony_stue",
            "Operand": "eq",
            "RightVariable": {
              "Value": false,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "9"
      },
      "Ui": {
        "nodeType": "",
        "x": 201,
        "y": 908
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "16",
      "Type": "vinc_trigger",
      "Label": "Away",
      "SuccessTransition": "21",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "EventType": "mode",
        "IsValueFilterEnabled": true,
        "Timeout": 0,
        "ValueFilter": "away"
      },
      "Ui": {
        "nodeType": "",
        "x": 718,
        "y": 924
      },
      "TypeAlias": "Home event"
    },
    {
      "Id": "17",
      "Type": "trigger",
      "Label": "screen false/true",
      "SuccessTransition": "20",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:flow/ad:1/sv:out_bin_switch/ad:HSMbR8iO3beCH4K_00",
      "Service": "out_bin_switch",
      "ServiceInterface": "evt.binary.report",
      "Config": {
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": "true",
          "ValueType": "bool"
        },
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 844,
        "y": 276
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "19",
      "Type": "action",
      "Label": "Screen ned",
      "SuccessTransition": "10",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:out_lvl_switch/ad:73_1",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.lvl.set",
      "Config": {
        "DefaultValue": {
          "Value": 0,
          "ValueType": "int"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 811,
        "y": 712
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "20",
      "Type": "if",
      "Label": "Lux over 150",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "eq",
            "RightVariable": {
              "Value": true,
              "ValueType": "bool"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "Lux Stue",
            "Operand": "gt",
            "RightVariable": {
              "Value": 150,
              "ValueType": "float"
            }
          }
        ],
        "FalseTransition": "22",
        "TrueTransition": "19"
      },
      "Ui": {
        "nodeType": "",
        "x": 862,
        "y": 476
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "21",
      "Type": "set_variable",
      "Label": "screen not activated",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": "no",
          "ValueType": "string"
        },
        "Name": "screen_activated",
        "UpdateGlobal": true,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 892,
        "y": 1097
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "22",
      "Type": "if",
      "Label": "Lux under 100",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "eq",
            "RightVariable": {
              "Value": false,
              "ValueType": "bool"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "Lux Stue",
            "Operand": "lt",
            "RightVariable": {
              "Value": 100,
              "ValueType": "float"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "23"
      },
      "Ui": {
        "nodeType": "",
        "x": 1078,
        "y": 479
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "23",
      "Type": "action",
      "Label": "Screen opp",
      "SuccessTransition": "21",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:out_lvl_switch/ad:73_1",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.lvl.set",
      "Config": {
        "DefaultValue": {
          "Value": 100,
          "ValueType": "int"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 1054,
        "y": 711
      },
      "TypeAlias": "Action"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "parallel"
}

Fantastisk! Da er det bare å se om jeg får satt det i system i morgen da :star_struck:

Denne har en del mer enn du trenger, men du kan vel ta det du trenger og bruke det. Jeg har blant annet lagt inn at hvis lux kommer under “x” så har jeg lagt på en wait node på 10 min, som så sjekker igjen om lux fortsatt er under “x” før screen går ned. Dette for å unngå t den går opp og ned mange ganger hvis det kommer en sky forbi sola.

Har også lagt inn at hvis tv står på (Har opprettet harmony activities som virtual devices) så skal ikke screen gå opp før tv slås av

Genialt. Mye der jeg kan bruke. Skal se om jeg ikke kan få lagt til at når sensor 1 registrerer sol så skal screens sør ned og når sensor 2 registrerer sol så skal screens vest ned og sør opp. Litt usikker på hvordan jeg skal få det til men jeg får prøve å feile litt og ta utgangspunkt i den du har gitt meg nå.

1 Like

Hvilken misjon har set variable etter trigger og før If? Og hvilken misjon har set variable før home mode?

variabel mellom trigger og if, er for å lagre luxverdien som en variabel, for å kunne bruke den til at screen skal gå ned ved lavere lux når tv slås på f.eks (Bruker da harmony virtual device som trigger).

Variabelen “screen not activated/activated” er for at hvis screen går ned pga mye sol, men vi av en eller annen grunn kjører den opp manuelt (kan være for å se bedre ut hvis barna er utenfor og leker osv), så skal ikke flowen trigge og kjøre ned screen igjen med en gang det registreres høyere lux verdi igjen.

Litt vanskelig og dårlig forklart, men håper du skjønte tegninga :slight_smile:

Takk skal du ha :+1:t2:

Her er det noe rart. Noen tanker om hvorfor denne ikke fungerer?