Hei
Jeg har Futurehome SDCO batteri røykvarsler.
Ønsker at den utløses hvis bevegelse oppdages inne når vi er borte, som en ekstra skremsel for eventuelle tyver.
Hvordan kan man få til det?
Jeg har dessverre ikke peiling på TP flows
Hei
Jeg har Futurehome SDCO batteri røykvarsler.
Ønsker at den utløses hvis bevegelse oppdages inne når vi er borte, som en ekstra skremsel for eventuelle tyver.
Hvordan kan man få til det?
Jeg har dessverre ikke peiling på TP flows
Hei
Du kan lage flow som bruker bevegelsesensor som trigger, (deretter en wait om du vil ha litt forsinkelse) og så videre til å slå på sirenenen.
Dersom du har flere varslere og bevegelsesensorer så blir det litt mer å holde styr på.
Man bør også kanskje legge inn en if node for å sjekke hvilken modus huset er i så den ikke går av uansett om det er bevegelse eller ei
Flott, takk!
Det gjelder i første omgang to bevegelsessensorer inne, og når modus er Borte.
Hvis du eller noen andre kan bistå i å (starte å) lage en slik flow, så takker jeg ikke nei
Jeg har en slik flow. Laget den i utgangspunktet for lekkasjer, men har utvidet den til å dekke flere hendelser. Jeg lytter på kind_owl som sender event ved flere ulike hendelser og filtrerer på det jeg vil ha. Bl.a. er motion_detected bevegelse og contact_opened åpning av dør. Noen av disse kommer kun i bortemodus. Foreløpig sender jeg kun til én røykvarsler, siden jeg vil teste det litt mer. Det er mulig å sende et event om at det brenner og som da trigger alle røykvarslererne, men da kommer det også en stemme som sier at det brenner. Så jeg tror jeg bare kommer til å legge inn alle røykvarslerene i flowen, slik at det kun blir piping.
{
"Id": "88Nx3QSqxskvW4k",
"ClassId": "88Nx3QSqxskvW4k",
"Author": "",
"Version": 0,
"CreatedAt": "2023-01-10T14:15:39.376484662+01:00",
"UpdatedAt": "2025-04-01T15:55:09.652287598+02:00",
"Name": "Oversvømmelse og ødeleggelse",
"Group": "Varslinger",
"Description": "",
"Nodes": [
{
"Id": "1",
"Type": "trigger",
"Label": "Owl",
"SuccessTransition": "2",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:app/rn:kind_owl/ad:1",
"Service": "kind_owl",
"ServiceInterface": "evt.notification.report",
"Config": {
"ConnectorID": "",
"InputVariableType": "",
"IsValueFilterEnabled": false,
"LookupServiceNameAndLocation": false,
"PropFilterName": "",
"PropFilterValue": "",
"RegisterAsVirtualService": false,
"Timeout": 0,
"ValueFilter": {
"Value": null,
"ValueType": ""
},
"ValueJPath": "",
"ValueJPathResultType": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": null
},
"Ui": {
"nodeType": "",
"x": 84,
"y": 226
},
"TypeAlias": "Trigger"
},
{
"Id": "2",
"Type": "transform",
"Label": "Extract EventName and DeviceName",
"SuccessTransition": "3",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "",
"IsLVariableGlobal": false,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": false,
"IsTargetVariableInMemory": true,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "",
"TargetVariableType": "",
"Template": "",
"TransformType": "jpath",
"ValueMapping": [],
"XPathMapping": [
{
"IsTargetVariableGlobal": false,
"IsTargetVariableInMemory": false,
"Path": "$.val.EventName",
"TargetVariableName": "eventName",
"TargetVariableType": "string",
"UpdateInputVariable": false
},
{
"IsTargetVariableGlobal": false,
"IsTargetVariableInMemory": true,
"Path": "$.val.DeviceName",
"TargetVariableName": "deviceName",
"TargetVariableType": "string",
"UpdateInputVariable": false
}
]
},
"Ui": {
"nodeType": "",
"x": 86,
"y": 401
},
"TypeAlias": "Transform"
},
{
"Id": "3",
"Type": "if",
"Label": "If flood detected",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": [
{
"BooleanOperator": "",
"LeftVariableIsGlobal": false,
"LeftVariableName": "eventName",
"Operand": "eq",
"RightVariable": {
"Value": "flood_detected",
"ValueType": "string"
}
}
],
"FalseTransition": "9",
"TrueTransition": "7"
},
"Ui": {
"nodeType": "",
"x": 90,
"y": 603
},
"TypeAlias": "If condition"
},
{
"Id": "7",
"Type": "transform",
"Label": "Create flood message",
"SuccessTransition": "12",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "",
"IsLVariableGlobal": false,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": false,
"IsTargetVariableInMemory": true,
"LVariableName": "deviceName",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "alertMessage",
"TargetVariableType": "",
"Template": "\"Lekkasje oppdaget av {{.Variable}}\"",
"TransformType": "template",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 75,
"y": 938
},
"TypeAlias": "Transform"
},
{
"Id": "8",
"Type": "action",
"Label": "Alert message",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:google/ad:1/sv:siren_ctrl/ad:g29ebc243-2b9d-45db-988e-0cf29de59a4f_0",
"Service": "siren_ctrl",
"ServiceInterface": "cmd.mode.set",
"Config": {
"DefaultValue": {
"Value": "",
"ValueType": ""
},
"IsVariableGlobal": false,
"Props": {},
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "alertMessage",
"VariableType": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 70,
"y": 1317
},
"TypeAlias": "Action"
},
{
"Id": "9",
"Type": "if",
"Label": "If tamper, breach or motion detected",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": [
{
"BooleanOperator": "or",
"LeftVariableIsGlobal": false,
"LeftVariableName": "eventName",
"Operand": "eq",
"RightVariable": {
"Value": "tamper",
"ValueType": "string"
}
},
{
"BooleanOperator": "or",
"LeftVariableIsGlobal": false,
"LeftVariableName": "eventName",
"Operand": "eq",
"RightVariable": {
"Value": "tamper_force_open",
"ValueType": "string"
}
},
{
"BooleanOperator": "or",
"LeftVariableIsGlobal": false,
"LeftVariableName": "eventName",
"Operand": "eq",
"RightVariable": {
"Value": "tamper_removed_cover",
"ValueType": "string"
}
},
{
"BooleanOperator": "or",
"LeftVariableIsGlobal": false,
"LeftVariableName": "eventName",
"Operand": "eq",
"RightVariable": {
"Value": "intrusion",
"ValueType": "string"
}
},
{
"BooleanOperator": "or",
"LeftVariableIsGlobal": false,
"LeftVariableName": "eventName",
"Operand": "eq",
"RightVariable": {
"Value": "alarm_burglar",
"ValueType": "string"
}
},
{
"BooleanOperator": "or",
"LeftVariableIsGlobal": false,
"LeftVariableName": "eventName",
"Operand": "eq",
"RightVariable": {
"Value": "glass_breakage",
"ValueType": "string"
}
},
{
"BooleanOperator": "or",
"LeftVariableIsGlobal": false,
"LeftVariableName": "eventName",
"Operand": "eq",
"RightVariable": {
"Value": "motion_detected",
"ValueType": "string"
}
},
{
"BooleanOperator": "",
"LeftVariableIsGlobal": false,
"LeftVariableName": "eventName",
"Operand": "eq",
"RightVariable": {
"Value": "contact_opened",
"ValueType": "string"
}
}
],
"FalseTransition": "",
"TrueTransition": "11"
},
"Ui": {
"nodeType": "",
"x": 363,
"y": 606
},
"TypeAlias": "If condition"
},
{
"Id": "10",
"Type": "transform",
"Label": "Create tamper message",
"SuccessTransition": "12",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "",
"IsLVariableGlobal": false,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": false,
"IsTargetVariableInMemory": true,
"LVariableName": "deviceName",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "alertMessage",
"TargetVariableType": "",
"Template": "\"Ødeleggelse oppdaget av {{.Variable}}\"",
"TransformType": "template",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 361,
"y": 934
},
"TypeAlias": "Transform"
},
{
"Id": "11",
"Type": "if",
"Label": "if sleep, away or vacation",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": [
{
"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": "away",
"ValueType": "string"
}
},
{
"BooleanOperator": "",
"LeftVariableIsGlobal": true,
"LeftVariableName": "fh.home.mode",
"Operand": "eq",
"RightVariable": {
"Value": "vacation",
"ValueType": "string"
}
}
],
"FalseTransition": "",
"TrueTransition": "10"
},
"Ui": {
"nodeType": "",
"x": 369,
"y": 764
},
"TypeAlias": "If condition"
},
{
"Id": "12",
"Type": "action",
"Label": "Alarm in bod",
"SuccessTransition": "8",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:siren_ctrl/ad:15_0",
"Service": "siren_ctrl",
"ServiceInterface": "cmd.mode.set",
"Config": {
"DefaultValue": {
"Value": "on",
"ValueType": "string"
},
"IsVariableGlobal": false,
"Props": {},
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 79,
"y": 1136
},
"TypeAlias": "Action"
}
],
"Settings": null,
"IsDisabled": false,
"IsDefault": false,
"ParallelExecution": "parallel"
}
Jeg har også litt greier her for å lage en melding som sendes til Google Home-høyttalerene mine, som du sikkert vil se bort fra. Men jeg håper noe av dette kan være til hjelp for deg.
Fantastisk joymyr, takk for at du deler!!
Da klarer jeg meg derfra - hvis ikke så har jeg ingenting i TP å gjøre