Filtrere på om kommando sendes fra app eller fysisk device/bryter

Hei!

Bruker en Fibaro Smart Implant til å styre garasjeporten. Har også en magnetbryter på en av inngangene slik at en slider viser om status er “lukket”. Problemet er at det er lett å komme borti samlebryteren for alle apparater på forsiden av appen, slik at jeg får feil status på porten. Det hjelper ikke å polle smart implant for å få tilbake riktig status, det eneste som hjelper er å bevege magnetbryteren (åpne/lukke porten).

Tenkte å sette opp en kort flow i thingsplex som resetter slider dersom kommando true eller false sendes fra appen (og ikke fra bryteren). Ser i message stream at det ligger en “src” i kommandoen som publiseres, men vet noen hvordan jeg får filtrert eller brukt denne i en flow?

Fra app:
{
“serv”: “out_bin_switch”,
“type”: “cmd.binary.set”,
“val_t”: “bool”,
“val”: true,
“props”: {},
“tags”: null,
“resp_to”: “pt:j1/mt:rsp/rt:cloud/rn:remote-client/ad:smarthome-app”,
“src”: “smarthome-app”,
“ver”: “1”,
“uid”: “16a6ffe8-66c4-42e6-a6a6-8f7129f63322”,
“topic”: “pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:out_bin_switch/ad:35_6”
}

Fra bryter:
{
“serv”: “out_bin_switch”,
“type”: “evt.binary.report”,
“val_t”: “bool”,
“val”: true,
“props”: {},
“tags”: null,
“src”: “-”,
“ver”: “1”,
“uid”: “7b73ba5d-4f92-4a6a-870f-758d9b7787f1”,
“topic”: “pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:out_bin_switch/ad:35_6”
}

Kan jeg ta ut “src” via en json transform-node og putte i en variabel slik jeg gjør for andre variabler? Har forsøkt noen varianter uten hell.

@Anders eller @espen , vet noen av dere?

Her er nok Espen din beste mulighet :sweat_smile: Jeg kommer dessverre litt til kort her

Hei!
src brukes ikke i den forstand som du trenger det til.
Derimot så vil ikke smart implanten sende en cmd.binary.set, men kun en evt.binary.report.
Så da kan du i teorien lage logikk rundt at dersom det sendes noe på topic pt:j1/mt:**cmd**/rt:dev/rn:zw/ad:1/sv:out_bin_switch/ad:35_6 så er det fra app eller lignende.

Ja, det har du helt rett i, at jeg ikke tenkte på det! Takk.

Uansett så hiver implanten ut en evt.binary.report rett etter at cmd.binary.set kjøres, så ser at det potensielt kan bli problematisk med tanke på å med størst mulig sikkerhet vite rett status på porten.

Har da lagt inn en flow med trigger cmd.binary.set som resetter statusbryter når denne kjøres fra appen (ved “komme borti”-uhell).

Problemet blir da at min “state-variabel” (open/closed) på porten som trigges av evt.binary.report, også vil trigges når dette skjer. Foreløpig løste jeg dette ved å pause statusinnlesing og oppdatering på porten i 5 sekunder, dersom flowen trigger på cmd.binary.set rett før evt.binary.report.

Sannsynligvis ikke optimal flyt det her, men virker å fungere for nå.

Følger denne, har akkurat samme problem selv. Etter forrige update opplever jeg også at bryterene i appen nullstiller seg avogtil, så vanskelig å vite om den faktisk er åpen eller lukket.