IF switch fra sensor

Jeg er nesten i mål med litt lille garasjeprosjekt. Jeg vil ha en knapp som åpner garasjen og en som lukker… og den som åpner skal selvsagt sjekke status og ikke gjøre noe dersom den allerede er åpen. Det er utrolig irriterende å gå ut og akkurat rekke å se at den lukker seg.
Garasjeporten er nå koblet til et rele med zigbee og virker fint. Jeg har en ikea parasoll dørsensor koblet på porten som gir rett status og alt er egentlig fint.

Men i flow’en min klarer jeg ikke å sette opp if swithc rett til å lese verdien fra ikea parasoll enheten. Hvordan leser jeg inn siste status fra dørsensoren og bruker denne i en IF switch?

Lag en automasjon i ThingsPlex som setter statusen i en Global variabel. Da kan du igjen bruke denne variabelen i en IF-Node i en annen automasjon.

2 Likes

Hei @kjellFan! Hvordan fikk du IKEA sin parasoll sensor til å rapportere data i FH?:nerd_face: Jeg koblet nylig til en selv, etter mye trykking og holding av knapper osv.:triumph: men den dukker bare opp med “ingen data” :face_with_spiral_eyes:

Den kom rett inn hos meg…
Måtte vel trykke på knappen 4 ganger for å få den i pairing mode, deretter kom den inn med en scene kontroll og en dør status. Jeg har lagt inn 2 stk og begge kom fint inn

1 Like

Takk! Jeg slettet den og prøvde på ny med 4 trykk og da kom den inn riktig :slightly_smiling_face:

Det ser ikke ut som jeg får lagret noe verdi i variabelen: her er den flow’en, kan noen peke meg rett vei ?

{
  "Id": "O6z2SBDgLoXiJj7",
  "ClassId": "O6z2SBDgLoXiJj7",
  "Author": "",
  "Version": 0,
  "CreatedAt": "2024-03-26T21:06:26.164605948+01:00",
  "UpdatedAt": "2024-04-05T17:07:08.607157503+02:00",
  "Name": "GarasjeStatus",
  "Group": "",
  "Description": "Lagre garasje status",
  "Nodes": [
    {
      "Id": "1",
      "Type": "trigger",
      "Label": "no label",
      "SuccessTransition": "2",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zigbee/ad:1/sv:sensor_contact/ad:6_2",
      "Service": "indicator_ctrl",
      "ServiceInterface": "evt.open.report",
      "Config": {
        "ConnectorID": "",
        "InputVariableType": "",
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "",
        "PropFilterValue": "",
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": null
        },
        "ValueJPath": "",
        "ValueJPathResultType": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": null
      },
      "Ui": {
        "nodeType": "",
        "x": 70,
        "y": 170
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "2",
      "Type": "set_variable",
      "Label": "StoreGarageOpen",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": 0,
          "ValueType": ""
        },
        "IsVariableInMemory": true,
        "Name": "GarageOpen",
        "UpdateGlobal": true,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 213,
        "y": 404
      },
      "TypeAlias": "Set variable"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "parallel"
}

Inmemory bør være false.

Er variabel til stede men ikke får verdien?

variabelen er synlig både i listen over flow variabler og i listen over globale variabler, men variabelen får ingen verdi når dør sensoren endrer verdi

Du kan sjekke om du trigger på riktig service. Sjekk i message stream kva som blir sendt når denne magnetkontakten eller kva det er blir aktivert. sjekk også datatype som blir sendt og må stemme mot variable, mest trulig bool.

Eksempel her en termostat som rapporterer temperatur. du ser “service” som du bruker som “service i trigger” og “msg type” som blir til “functionality” i trigger. Datatype er float og må då lagre til en float variable om det skal virke.

Jeg hadde registrert inn feil service, og dermed også feil type.

Det ser litt ut som at det er litt tilfeldig hvilke servicer som blir registrert når enheten kommer inn. Jeg så at den andre parasoll enheten min hadde en service_contact service med value sv:sensor_contact/ad:6_2… den parasoll enheten jeg bruker i dette tilfelle hadde ikke denne i listen på enheten, men det var den som kom i message flow.