Watt lavere enn x i mer enn x sekunder

Hei,

Hvordan får jeg en flow til å fungere dersom wattverdien på en enhet er under 5w i mer enn feks. 10 sekunder- så skal den skru lys på eller sende meg en pushmelding (èn gang😅)
Ønsker å få varsling på telefonen når vaskemaskinen er ferdig og funnet ut at hvis den trekker kun 5,2watt i mer enn 10 sekunder, så er den ferdig.

VELDIG nybegynner med Thingsplex

Under har du min kode for varsling av vaskemaskin.

{
  "Id": "8KJK9cYaK4mnNex",
  "ClassId": "8KJK9cYaK4mnNex",
  "Author": "",
  "Version": 0,
  "CreatedAt": "2022-10-27T19:28:26.06649031+02:00",
  "UpdatedAt": "2023-01-02T21:33:18.470499799+01:00",
  "Name": "Timeline-/Push-varsel Vaskemaskin",
  "Group": "Vaskemaskin",
  "Description": "Timeline-/Push-varsel ved ferdig Vaskemaskin",
  "Nodes": [
    {
      "Id": "2",
      "Type": "if",
      "Label": "<10=true AND Varsel_for_ferdig_oppvaskmaskin_sendt=false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "lt",
            "RightVariable": {
              "Value": 5,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "Varsel_for_ferdig_vaskemaskin_sendt",
            "Operand": "eq",
            "RightVariable": {
              "Value": false,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "8",
        "TrueTransition": "3"
      },
      "Ui": {
        "nodeType": "",
        "x": 318,
        "y": 357
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "3",
      "Type": "wait",
      "Label": "5 minutter forsinkelse",
      "SuccessTransition": "10",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 300000,
      "Ui": {
        "nodeType": "",
        "x": 311,
        "y": 537
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "5",
      "Type": "action",
      "Label": "Timeline varsel vaskemaskin ferdig",
      "SuccessTransition": "6",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:app/rn:time_owl/ad:1",
      "Service": "time_owl",
      "ServiceInterface": "cmd.timeline.set",
      "Config": {
        "DefaultValue": {
          "Value": {
            "message_en": "Nå er klærne rene og pene igjen",
            "message_no": "Nå er klærne rene og pene igjen",
            "sender": "Vaskemaskin"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 808,
        "y": 174
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "6",
      "Type": "set_variable",
      "Label": "Timeline-/Push-varsel er sendt=true",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": true,
          "ValueType": "bool"
        },
        "IsVariableInMemory": false,
        "Name": "Varsel_for_ferdig_vaskemaskin_sendt",
        "UpdateGlobal": false,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 805,
        "y": 351
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "7",
      "Type": "set_variable",
      "Label": "Timeline-/Push-varsel er sendt=false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "IsVariableInMemory": false,
        "Name": "Varsel_for_ferdig_vaskemaskin_sendt",
        "UpdateGlobal": false,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 556,
        "y": 705
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "8",
      "Type": "if",
      "Label": ">11=true AND Varsel_for_ferdig_vaskemaskin=true",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableName": "",
            "Operand": "gt",
            "RightVariable": {
              "Value": 6,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "Varsel_for_ferdig_vaskemaskin_sendt",
            "Operand": "eq",
            "RightVariable": {
              "Value": true,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "7"
      },
      "Ui": {
        "nodeType": "",
        "x": 554,
        "y": 541
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "9",
      "Type": "trigger",
      "Label": "Effektmåling stikkontakt",
      "SuccessTransition": "2",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_power/ad:72_0",
      "Service": "sensor_power",
      "ServiceInterface": "evt.sensor.report",
      "Config": {
        "ConnectorID": "",
        "InputVariableType": "",
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "unit",
        "PropFilterValue": "W",
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": null,
          "ValueType": "float"
        },
        "ValueJPath": "",
        "ValueJPathResultType": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": null
      },
      "Ui": {
        "nodeType": "",
        "x": 318,
        "y": 174
      },
      "TypeAlias": "Trigger",
      "LastValue": "0.899999976158142 W"
    },
    {
      "Id": "10",
      "Type": "action",
      "Label": "Push varsel Vaskemaskin ferdig",
      "SuccessTransition": "5",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:app/rn:kind_owl/ad:1",
      "Service": "kind-owl",
      "ServiceInterface": "evt.notification.report",
      "Config": {
        "DefaultValue": {
          "Value": {
            "EventName": "custom",
            "MessageContent": "Hei, Hopp! Vaskemaskinen er ferdig, nå lukter klærne godt igjen.",
            "SiteId": "e15cb7d9-50bb-4ff5-89c2-b9f90fa875ec"
          },
          "ValueType": "object"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "notification_action",
        "x": 302,
        "y": 708
      },
      "TypeAlias": "Notification"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "keep_last"
}

Tror at de forskjellige nodene skal være ganske selvforklarende, men for å geleide deg igjennom trinnet for å lage en variabel, så er det som følger:

  1. trykk på noden som er ¨ved siden av “push varsel vaskemaskin ferdig” trykk på “add”
    image

  2. Gi den ett fornuftig navn. Den skal ikke være “in memory” . “in memory” betyr at den forsvinner ved neste restart av hub. Det er en fordel at den blir lagret i NVM på hub. Jeg har satt verdien til “false” for vaskemaskinen går ikke nå, og varselet er ikke sendt.

  3. Nå kan du sette den nevnte noden “set-variabel” som du er på, til “static value” og “false”. Dette betyr at når du aktiverer denne “set variabel” noden så blir den variabelen vi har laget satt til “false”.
    image

  4. Hvis du nå går til den siste noden på høyre side, så er det en “set variabel” for at varsel er sendt.
    image

  5. For og ikke bli “spammet” med varsel om effekten går over og under angitt grense i “if-noden” etter trigger, så er det greit å legge inn den variabelen vi har laget som en betingelse. Hvis variabelen er “false” så får du varsel, hvis ikke så blir variabelen resatt, men dette kun hvis variabelen er satt til “true” (du har fått varsel allerede)

  6. Dette gjør du på begge “if-nodene” men med forskjellige betingelser.

Tur å kjør. Lykke til :slight_smile:

3 Likes

Helt supert og veldig flott forklart.

Jeg skal gjøre et forsøk.

Tusen takk

1 Like