Nybegynner med diverse spørsmål

Hei. Er nybegynner både når det gjelder smarthus og da også Futurehome. Aldri vært borti tilsvarende systemer før, men er elektriker så det hjelper jo på.

Gikk til innkjøp av en FH hub for noen dager siden, og har kastet meg over noen trådløse dimmere/releer etc. for å teste ut dette konseptet. Det jeg i utgangspunktet har gjort, ihvertfall i denne testfasen, er at jeg har satt inn bev. sensorer i hvert rom av typen Hue. Eksisterende dimmere i disse rommene er nå skiftet ut med trådløst rele (av denne typen).

Prinsippet jeg har lagt meg på pr. nå er at jeg har laget to automasjoner for hvert rom, trigget av bevegelsessensoren. Den ene tenner lys til f.eks. 70% hvis registrert bevegelse ved modus HJEM. Den andre tenner lys til f.eks. 40% ved registrert bevegelse ved modus NATT. Også er det på begge to lagt inn en timer på 5-10 min avstilling etter siste bevegelse. Har også lagt inn trådløs termostat, Tibber Pulse mot HAN-port, og en IR varmepumpestyring. Men akkurat det tror jeg er irrelevant akkurat nå.

Da har jeg mer eller mindre beskrevet hvordan det er lagt opp, og mine spørsmål er:

  • Opplever voldsom treghet i systemet. Ikke hele tiden, men veldig ofte. Det skjer ofte at lyset ikke tenner før gjerne 30-60 sek etter at jeg har gått inn i rommet. Mener at det er systemet og ikke sensoren, for jeg ser en lysdiode blinke på sensoren om at den har “sett” meg. Hva kan dette skyldes?

  • Ser at det by default er lagt inn fire moduser. Hjem, borte, søvn og ferie. Hvordan kan jeg endre navn på disse, eller legge til/fjerne moduser?

  • Når man oppretter en automasjon, virker det som at man må velge trigger fra tre kategorier; time, scene og sensor. Men hvordan kan man kombinere dette? Et godt eksempel kan være at det er registrert bevegelse i et rom, OG kl. er etter 21.

  • Som nevnt over så har jeg som utgangspunkt lagt inn via automasjon at lys tennes ved reg. bevegelse i et rom. Men problemet oppstår når jeg spontant ønsker å overstyre dette. La oss si at modus er HJEM, som da tenner lyset til 70% ved bevegelse, men så ønsker jeg av ulike årsaker å dimme lyset ned til 50% grunnet ett eller annet. Hvis jeg da i appen manuelt justerer lysnivået, skyter lysnivået opp igjen til 70% idet jeg tar et skritt til siden og sensoren ser meg. Jeg er innforstått med at jeg her har laget en slags logisk brist. Men er det mulig å legge inn noe om at ved manuell overstyring så skal det trumfe all annen logikk i en gitt tid? Eller noe slikt. Eller finnes det en bedre måte å gjøre dette på?

  • Fiklet så smått med konseptet Snarveier. Og her er egentlig spørsmålet det samme som over. Hvis jeg lager en snarvei som f.eks. justerer lys til 50%. Men så ligger det fra før av inne en automasjon basert på modus som vil ha lyset på 70%. Hva trumfer hva?

Ble noen spørsmål dette her, men det er komplekse greier dette her når man først dykker ned i det. Sånn i første omgang dreier det seg om å overbevise samboeren om at dette var en god investering, hun er ikke overbegeistret hittil :stuck_out_tongue:

Daniel

Gratulerer med ny hub og velkommen til en spennende verden! :smiley:

Min input:

  • 30-60sek høres mye ut, men jeg tror det vil hjelpe og legge til flere enheter for å bygge et sterkere nettverk. Evt kan du høre med support om de har tips.

  • Moduser er desverre ikke noe man kan endre på, du kan lage egne snarveier hvis du ønsker flere, de fungerer på lik måte.

  • Per idag er det kun dette som er mulig å sett opp i appen, trigge på enten tid, scene eller sensor. FH jobber med en forbedret automasjonsmotor visstnok, men inntil videre må “avanserte” automasjoner settes opp via Thingsplex grensesnittet. Der er mulighetene mye bredere. Søk på Thingsplex så finner du en del eksempler osv på forumet

  • Dette er desverre en kjent problemstilling og ikke noe som finnes en enkel løsning på idag mener jeg. Det finnes noen andre tråder på forumet som diskuterer dette, men ingen plug-and-play løsning i appen. Jeg mener noen har laget automasjoner, via Thingsplex, som lar de stoppe alle automasjoner ved trykk på en spesiell knapp osv. Igjen tror jeg du må være kreativ og løsningsorientert selv her.

  • Hvis du har flere automasjoner/scener på feks samme lys så tror jeg det er nyeste endring/aktivering som er ledende og vil gjelde.

2 Likes

Hei og velkommen til forumet :slight_smile:
Gjaevert svarer på det meste, men jeg kan legge til hvordan jeg har det hjemme :slight_smile:
I stedet for å sette statisk verdi for % lysstyrke så bruker jeg bare “skru på til siste kjente verdi”, i stedet for å si “gå til x%”.
En guide ligger her; [Guide] Lag din egen Custom motion flow
Det er jo fra Thingsplex hvor det er en del flere muligheter enn fra app per dags dato

1 Like

Takk for svar! Akkurat dette med treghet virket som det løste seg med en sync og restart av hubben.

Et spørsmål til; kjøpte akkurat en Hue LED-strip, noe som var enkelt å knytte opp via Zigbee. Men det virker som det eneste som kan gjøres er å slå av/på og justere lysstyrke. Hvordan justere farge, må jeg ha Hue hub for det?


ved å trykke på den så skal du få tilgang til å justere farge

Se der ja, takk, det funket. Men stusset litt over en annen sak i den forbindelse. Jeg kan nå justere farge, fargetemperatur osv via den knappen. Men hvis jeg prøver å trykke på samme knappen ifm. en automasjon, så funker den ikke.

Så jeg klarer ikke å f.eks. lage en automasjon hvor jeg i tillegg til å sette lysnivå kan sette farge. Er det jeg som misforstår noe? Prøvde å lage en flow i stedet, og da gikk det. Ved å sette cmd.color.set til f.eks. {“red”:200, “green”:100, “blue”:45}. Men ikke i appen?

I’ve built on @espen og @Gjaevert 's work with motion flows in Thingsplex so the flow checks home/sleep mode, time of day, and then for an “override” (based on espen’s tobias sover switch). I’m going to put in a physical switch next time I get to Ikea and pick one up.

If the 3 lights I have are dimmed, then turning on the virtual switch in the apps makes the light go to 100% after the next motion, and they stay at 100% until I turn off the switch. After the lights turn off while in the 100% brightness mode, it resets the virtual switch after 60 minutes

I’ve used this same concept to create my own mode here, and in other flows where my daughter has her own mode for being home or not in order to control her Adax heater - home mode is nothing more than a global variable, and by creating a new variable that is also global, you can have an unlimited number of “modes.” I wouldn’t try to change the original 4 modes - it would cause you enormous headaches later for little benefit.

My light flow:

{
  "Id": "SCNkolMiEWhvuAS",
  "ClassId": "CviO8YbFXdlpcv1",
  "Author": "espenh.no",
  "Version": 0,
  "CreatedAt": "2022-01-11T13:55:37.810533038+01:00",
  "UpdatedAt": "2022-01-13T09:17:42.946347371+01:00",
  "Name": "Trigger dressing room lights on presence",
  "Group": "motion detection",
  "Description": "Dressing room lights motion switch",
  "Nodes": [
    {
      "Id": "4",
      "Type": "wait",
      "Label": "wait 5 min",
      "SuccessTransition": "18",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 300000,
      "Ui": {
        "nodeType": "",
        "x": 352,
        "y": 1103
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "6",
      "Type": "if",
      "Label": "if presence = true",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "eq",
            "RightVariable": {
              "Value": true,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "7",
        "TrueTransition": "17"
      },
      "Ui": {
        "nodeType": "",
        "x": 59,
        "y": 907
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "7",
      "Type": "if",
      "Label": "if presence = false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "eq",
            "RightVariable": {
              "Value": false,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "4"
      },
      "Ui": {
        "nodeType": "",
        "x": 336,
        "y": 913
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "8",
      "Type": "if",
      "Label": "if home",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "home",
              "ValueType": "string"
            }
          }
        ],
        "FalseTransition": "9",
        "TrueTransition": "16"
      },
      "Ui": {
        "nodeType": "",
        "x": 220,
        "y": 316
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "9",
      "Type": "if",
      "Label": "if sleep",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "fh.home.mode",
            "Operand": "eq",
            "RightVariable": {
              "Value": "sleep",
              "ValueType": "string"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "29"
      },
      "Ui": {
        "nodeType": "",
        "x": 732,
        "y": 325
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "10",
      "Type": "if",
      "Label": "if presence = true",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "eq",
            "RightVariable": {
              "Value": true,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "13",
        "TrueTransition": "12"
      },
      "Ui": {
        "nodeType": "",
        "x": 770,
        "y": 909
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "12",
      "Type": "action",
      "Label": "plug on",
      "SuccessTransition": "25",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:hue/ad:1/sv:out_lvl_switch/ad:l27_0",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": true,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 733,
        "y": 1296
      },
      "TypeAlias": "Action",
      "LastValue": false
    },
    {
      "Id": "13",
      "Type": "if",
      "Label": "if presence = false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "eq",
            "RightVariable": {
              "Value": false,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "14"
      },
      "Ui": {
        "nodeType": "",
        "x": 1058,
        "y": 908
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "14",
      "Type": "wait",
      "Label": "wait 1 min",
      "SuccessTransition": "26",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 60000,
      "Ui": {
        "nodeType": "",
        "x": 1057,
        "y": 1091
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "16",
      "Type": "iftime",
      "Label": "Daytime",
      "SuccessTransition": "6",
      "TimeoutTransition": "",
      "ErrorTransition": "10",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "Action": "a",
            "From": "07:00",
            "To": "21:59",
            "Weekday": "1"
          },
          {
            "Action": "a",
            "From": "07:00",
            "To": "21:59",
            "Weekday": "2"
          },
          {
            "Action": "a",
            "From": "07:00",
            "To": "21:59",
            "Weekday": "3"
          },
          {
            "Action": "a",
            "From": "07:00",
            "To": "21:59",
            "Weekday": "4"
          },
          {
            "Action": "a",
            "From": "07:00",
            "To": "21:59",
            "Weekday": "5"
          },
          {
            "Action": "a",
            "From": "07:00",
            "To": "21:59",
            "Weekday": "6"
          },
          {
            "Action": "a",
            "From": "07:00",
            "To": "21:59",
            "Weekday": "0"
          }
        ]
      },
      "Ui": {
        "nodeType": "",
        "x": 223,
        "y": 514
      },
      "TypeAlias": "Time filter"
    },
    {
      "Id": "17",
      "Type": "action",
      "Label": "plug on",
      "SuccessTransition": "20",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:hue/ad:1/sv:out_lvl_switch/ad:l27_0",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": true,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 40,
        "y": 1299
      },
      "TypeAlias": "Action",
      "LastValue": false
    },
    {
      "Id": "18",
      "Type": "action",
      "Label": "plug off",
      "SuccessTransition": "22",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:hue/ad:1/sv:out_lvl_switch/ad:l27_0",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 344,
        "y": 1306
      },
      "TypeAlias": "Action",
      "LastValue": false
    },
    {
      "Id": "19",
      "Type": "trigger",
      "Label": "walkin sensor presence",
      "SuccessTransition": "8",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:hue/ad:1/sv:sensor_presence/ad:s36_0",
      "Service": "sensor_presence",
      "ServiceInterface": "evt.presence.report",
      "Config": {
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": true,
          "ValueType": "bool"
        },
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 566,
        "y": 120
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "20",
      "Type": "action",
      "Label": "light 2 100%",
      "SuccessTransition": "21",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_lvl_switch/ad:7_1",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.lvl.set",
      "Config": {
        "DefaultValue": {
          "Value": 254,
          "ValueType": "int"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 45,
        "y": 1474
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "21",
      "Type": "action",
      "Label": "Light 1 100%",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_lvl_switch/ad:6_1",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.lvl.set",
      "Config": {
        "DefaultValue": {
          "Value": 254,
          "ValueType": "int"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 36,
        "y": 1665
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "22",
      "Type": "action",
      "Label": "light1 off",
      "SuccessTransition": "23",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_bin_switch/ad:6_1",
      "Service": "out_bin_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 341,
        "y": 1471
      },
      "TypeAlias": "Action",
      "LastValue": false
    },
    {
      "Id": "23",
      "Type": "action",
      "Label": "light 2 off",
      "SuccessTransition": "31",
      "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,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 346,
        "y": 1664
      },
      "TypeAlias": "Action",
      "LastValue": false
    },
    {
      "Id": "24",
      "Type": "action",
      "Label": "light 2 10%",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_lvl_switch/ad:7_1",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.lvl.set",
      "Config": {
        "DefaultValue": {
          "Value": 25,
          "ValueType": "int"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 714,
        "y": 1660
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "25",
      "Type": "action",
      "Label": "light 1 10%",
      "SuccessTransition": "24",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_lvl_switch/ad:6_1",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.lvl.set",
      "Config": {
        "DefaultValue": {
          "Value": 25,
          "ValueType": "int"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 723,
        "y": 1469
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "26",
      "Type": "action",
      "Label": "plug off",
      "SuccessTransition": "27",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:hue/ad:1/sv:out_lvl_switch/ad:l27_0",
      "Service": "out_lvl_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 1047,
        "y": 1290
      },
      "TypeAlias": "Action",
      "LastValue": false
    },
    {
      "Id": "27",
      "Type": "action",
      "Label": "light 1 off",
      "SuccessTransition": "28",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:out_bin_switch/ad:6_1",
      "Service": "out_bin_switch",
      "ServiceInterface": "cmd.binary.set",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 1036,
        "y": 1465
      },
      "TypeAlias": "Action",
      "LastValue": false
    },
    {
      "Id": "28",
      "Type": "action",
      "Label": "light 2 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,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 1037,
        "y": 1668
      },
      "TypeAlias": "Action",
      "LastValue": false
    },
    {
      "Id": "29",
      "Type": "if",
      "Label": "brightness override",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": true,
            "LeftVariableName": "dr lights brightness ",
            "Operand": "eq",
            "RightVariable": {
              "Value": true,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "10",
        "TrueTransition": "6"
      },
      "Ui": {
        "nodeType": "",
        "x": 730,
        "y": 504
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "30",
      "Type": "action",
      "Label": "set bright mode to off",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:flow/ad:1/sv:out_bin_switch/ad:hghuvzIj5l8ZHt2_0",
      "Service": "out_bin_switch",
      "ServiceInterface": "cmd.binary.set",
      "SuccessTransition": "",
      "ErrorTransition": "",
      "Config": {
        "VariableName": "",
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {},
        "ResponseToTopic": "",
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        }
      },
      "Ui": {
        "x": 1418,
        "y": 984,
        "nodeType": ""
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "31",
      "Type": "wait",
      "Label": "wait 60 min",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "SuccessTransition": "30",
      "ErrorTransition": "",
      "Config": 3600000,
      "Ui": {
        "x": 1416,
        "y": 774,
        "nodeType": ""
      },
      "TypeAlias": "Delay"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "keep_last"
}
3 Likes

Really nice! Looks good :smiley:
I also have some other virtual device buttons to oversteer. e.g in one room to oversteer the light to not turn on (aka movie mode for that room) :slight_smile:

1 Like

@mhenkenis thank you, I will look into your flow and probably steal some logic :slight_smile:

How do you solve the issue regarding how the flow will behave if the trigger is triggered again while the flow is already running?

Meaning if presence is detected, the flow will run. But what happens if presence is detected yet again, say, 1 minute afterwards?

Also another question: When choosing trigger variables I’m a little confused as to why there are so few to choose from. With all the different devices providing multiple parameters, one would think that any parameter from any device can be chosen as a trigger variable in any flow. Am I mistaken?

If there is new motion, the existing flow is cancelled and a new flow starts. That keeps the flow going as long as there is motion in the room. There is a parameter you can change to control this in the flow description box. You can also have it ignore new flows, which would mean it goes off after the delay no matter what happens. For normal motion detection you will want it to abandon the old flow and start a new one, but if you have a special usage, then you can change it.

As an example, I’m going to set up a flow to turn on snow melting mats on my steps outside. When the switch is triggered, it will turn on for 3 hours and then turn off. But if my wife thinks about it too, she might hit the switch, then my daughter, and it could end up staying on for a long time. In that case, using the option to ignore new flows will limit it to 3 hours, when it would have to be reset for a new 3 hours if I needed more time.

There are more triggers in ThingsPlex than in the app, but most of them go beyond my knowledge. The flow creation setup is pretty weak in the app - that’s something that is acknowledged by FH and it’s going to be rebuilt, but when it’s done and what it will look like is anyone’s guess. The difficulty with interfaces like the app, is that if you ask 20 people, all 20 will want something different, so it’s really hard to please people. I’m just using the opportunity to learn Thingsplex, which will always be more powerful than the app will be - it has to be very simplified if FH wants to attract a large group of buyers.

With search you’ll find a lot of flows, and play with them and you’ll start figuring them out. People share them because they want others to be able to use them, and the forum seems to be a good place to get tips/help.

1 Like