Varsel på vaskemaskin

Jeg ønsker å sette opp en flow som sender timeline event og notifikasjon når vaskemaskinen er ferdig. (Kan også gjelde oppvaskmaskin eller tørketrommel).

På Slack fikk jeg tilsendt denne flowen av @espen , men jeg er rimelig fersk i TP og forstår ikke helt logikken.

	{
  "Id": "1ZaSLYgVtYKz7np",
  "ClassId": "ovlxwWGguU5GNry",
  "Author": "espenh.no",
  "Version": 0,
  "CreatedAt": "2020-04-05T21:55:52.550388644+02:00",
  "UpdatedAt": "2020-06-04T20:10:25.567005324+02:00",
  "Name": "meter_elec to timeline&Todoist",
  "Group": "VM/TT/OPPV",
  "Description": "",
  "Nodes": [
    {
      "Id": "2",
      "Type": "if",
      "Label": "less than 1",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "lt",
            "RightVariable": {
              "Value": 1,
              "ValueType": "float"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "7"
      },
      "Ui": {
        "nodeType": "",
        "x": 492,
        "y": 331
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "6",
      "Type": "action",
      "Label": "Publish timeline",
      "SuccessTransition": "23",
      "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": "Washer finished",
            "message_no": "-Vaskemaskinen er ferdig",
            "sender": "flow"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 492,
        "y": 803
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "7",
      "Type": "wait",
      "Label": "wait 5 min",
      "SuccessTransition": "27",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 300000,
      "Ui": {
        "nodeType": "",
        "x": 493,
        "y": 488
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "11",
      "Type": "if",
      "Label": "less than 1",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "lt",
            "RightVariable": {
              "Value": 1,
              "ValueType": "float"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "30"
      },
      "Ui": {
        "nodeType": "",
        "x": 693,
        "y": 337
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "12",
      "Type": "if",
      "Label": "less than 1",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "lt",
            "RightVariable": {
              "Value": 1,
              "ValueType": "float"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "31"
      },
      "Ui": {
        "nodeType": "",
        "x": 912,
        "y": 341
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "19",
      "Type": "action",
      "Label": "Publish timeline",
      "SuccessTransition": "25",
      "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": "Dryer finished",
            "message_no": "-Tørketrommelen ferdig",
            "sender": "flow"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 708,
        "y": 814
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "20",
      "Type": "action",
      "Label": "Publish timeline",
      "SuccessTransition": "24",
      "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": "Dishwasher finished",
            "message_no": "-Oppvaskmaskinen er ferdig",
            "sender": "flow"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 925,
        "y": 818
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "21",
      "Type": "trigger",
      "Label": "vm_finished",
      "SuccessTransition": "2",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:meter_elec/ad:55_0",
      "Service": "meter_elec",
      "ServiceInterface": "evt.meter.report",
      "Config": {
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": "",
          "ValueType": ""
        },
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 488,
        "y": 172
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "22",
      "Type": "trigger",
      "Label": "tt_finished",
      "SuccessTransition": "11",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:meter_elec/ad:54_0",
      "Service": "meter_elec",
      "ServiceInterface": "evt.meter.report",
      "Config": {
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": "",
          "ValueType": ""
        },
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 699,
        "y": 173
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "23",
      "Type": "action",
      "Label": "Push notification",
      "SuccessTransition": "",
      "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": "Vaskemaskinen er ferdig",
            "SiteId": "f8976a62-a96c-4555-9af0-875a471eb74b"
          },
          "ValueType": "object"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "notification_action",
        "x": 487,
        "y": 956
      },
      "TypeAlias": "Notification"
    },
    {
      "Id": "24",
      "Type": "action",
      "Label": "Push notification",
      "SuccessTransition": "",
      "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": "Oppvaskmaskinen er ferdig",
            "SiteId": "f8976a62-a96c-4555-9af0-875a471eb74b"
          },
          "ValueType": "object"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "notification_action",
        "x": 930,
        "y": 974
      },
      "TypeAlias": "Notification"
    },
    {
      "Id": "25",
      "Type": "action",
      "Label": "Push notification",
      "SuccessTransition": "",
      "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": "Tørketrommelen er ferdig",
            "SiteId": "f8976a62-a96c-4555-9af0-875a471eb74b"
          },
          "ValueType": "object"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "notification_action",
        "x": 703,
        "y": 965
      },
      "TypeAlias": "Notification"
    },
    {
      "Id": "26",
      "Type": "trigger",
      "Label": "oppv_finished",
      "SuccessTransition": "12",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:meter_elec/ad:56_0",
      "Service": "meter_elec",
      "ServiceInterface": "evt.meter.report",
      "Config": {
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": "",
          "ValueType": ""
        },
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 916,
        "y": 176
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "27",
      "Type": "rest_action",
      "Label": "rest_action to todoist api",
      "SuccessTransition": "6",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Auth": {
          "ClientID": "",
          "ClientSecret": "",
          "Enabled": false,
          "GrantType": "password",
          "Password": "",
          "Scope": "",
          "Url": "http://",
          "Username": ""
        },
        "Headers": [
          {
            "Name": "Content-type",
            "Value": "application/json"
          },
          {
            "Name": "Authorization",
            "Value": "Bearer TOKEN HERE"
          }
        ],
        "LogResponse": false,
        "Method": "POST",
        "RequestPayloadType": "json",
        "RequestTemplate": "{\n        \"content\": \"Vaskemaskin ferdig\",\n        \"project_id\": 2232794671,\n        \"section_id\": 9158562,\n        \"due_string\": \"today at 22\",\n        \"due_lang\": \"en\",\n        \"priority\": 2\n    }",
        "ResponseMapping": [],
        "Url": "https://api.todoist.com/rest/v1/tasks"
      },
      "Ui": {
        "nodeType": "",
        "x": 490,
        "y": 644
      },
      "TypeAlias": "HTTP msg"
    },
    {
      "Id": "28",
      "Type": "rest_action",
      "Label": "rest_action to todoist api",
      "SuccessTransition": "19",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Auth": {
          "ClientID": "",
          "ClientSecret": "",
          "Enabled": false,
          "GrantType": "password",
          "Password": "",
          "Scope": "",
          "Url": "http://",
          "Username": ""
        },
        "Headers": [
          {
            "Name": "Content-type",
            "Value": "application/json"
          },
          {
            "Name": "Authorization",
            "Value": "Bearer TOKEN HERE"
          }
        ],
        "LogResponse": false,
        "Method": "POST",
        "RequestPayloadType": "json",
        "RequestTemplate": "{\n        \"content\": \"Tørketrommel ferdig\",\n        \"project_id\": 2232794671,\n        \"section_id\": 9158562,\n        \"due_string\": \"today at 22\",\n        \"due_lang\": \"en\",\n        \"priority\": 2\n    }",
        "ResponseMapping": [],
        "Url": "https://api.todoist.com/rest/v1/tasks"
      },
      "Ui": {
        "nodeType": "",
        "x": 702,
        "y": 646
      },
      "TypeAlias": "HTTP msg"
    },
    {
      "Id": "29",
      "Type": "rest_action",
      "Label": "rest_action to todoist api",
      "SuccessTransition": "20",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Auth": {
          "ClientID": "",
          "ClientSecret": "",
          "Enabled": false,
          "GrantType": "password",
          "Password": "",
          "Scope": "",
          "Url": "http://",
          "Username": ""
        },
        "Headers": [
          {
            "Name": "Content-type",
            "Value": "application/json"
          },
          {
            "Name": "Authorization",
            "Value": "Bearer TOKEN HERE"
          }
        ],
        "LogResponse": false,
        "Method": "POST",
        "RequestPayloadType": "json",
        "RequestTemplate": "{\n        \"content\": \"Oppvaskmaskin ferdig\",\n        \"project_id\": 2232794671,\n        \"section_id\": 9158562,\n        \"due_string\": \"today at 22\",\n        \"due_lang\": \"en\",\n        \"priority\": 2\n    }",
        "ResponseMapping": [],
        "Url": "https://api.todoist.com/rest/v1/tasks"
      },
      "Ui": {
        "nodeType": "",
        "x": 921,
        "y": 651
      },
      "TypeAlias": "HTTP msg"
    },
    {
      "Id": "30",
      "Type": "wait",
      "Label": "wait 5 min",
      "SuccessTransition": "28",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 300000,
      "Ui": {
        "nodeType": "",
        "x": 692,
        "y": 488
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "31",
      "Type": "wait",
      "Label": "wait 5 min",
      "SuccessTransition": "29",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 300000,
      "Ui": {
        "nodeType": "",
        "x": 912,
        "y": 497
      },
      "TypeAlias": "Delay"
    }
  ],
  "Settings": null,
  "IsDisabled": true,
  "IsDefault": false,
  "ParallelExecution": "keep_last"
}

Spørsmålene mine:

  1. Hvordan setter jeg triggeren til å kun kjøre etter en vask når wallpluggen har nådd 0W (slik at den ikke kjører kontinuerlig når den ikke er i bruk hvis device rapporterer 0W)

  2. Jeg ser at Espen har laget en if variabel etter triggeren som baserer seg på “input value”. Er det slik at verdier lest i trigger(evt.meter.report) alltid lagres i flowen og vil kunne hentes opp senere innad i samme flow?

Hei,
Slik jeg kan tyde flowen, så baserer den seg på en powerplug som rapporterer forbruk (W) og IF noden godkjenner rapport under 1W og jeg er ganske så sikker på at en powerplug kun rapporterer ved endringer, så når den er på 0W så rapporterer den kun 1 gang, hvis du ikke Poller en rapport.
Eller at du ar endret eventuelle parameter så den rapporterer på tid.
Dersom du skal gjøre dette på en annen måte, må eventuellt rapporten gå til en Variabel, som igjen brukes i Flowen, men da må du bruke en annen trigger og bruke variabelen i en IF node.

Test og bruk den som den er. Funker garantert.

Namron pluggen min er ikke helt enig, det ser ut som den rapporterer W hvert 10min og at jeg derfor blir spammet med varsler.

Skal se i setupet på pluggen om jeg kan endre parametre for å bare rapportere ved endring.

Screenshot_20210506-090656

Skjønner.

Sett parameter 16, lengde 4, verdi 0 for å slå av rapport på tid
Sett parameter 13, lengde 2, verdi 1, for rapport hver 1W endring.

Hvis det er Z-wave 16A pluggen du har

1 Like

Som nevnt i Slack så har den flowen mye forbedringspotensial og ble laget for over et år siden :sweat_smile: Jeg opplevde også at den spammet, og endte opp med å deaktivere den, og har siden det ikke tatt den frem igjen. Skal se om jeg får optimalisert den en dag :slight_smile: Kan legge til at den bør splittes til en flow per apparat og ikke alle 3 slik denne har, da grunnet flowen kjører med keep_last så en eventuell rapport fra en av de andre enhetene vil kansellere timeren. Beste er nok å introdusere en variabel når forbruk har gått over x.

@Gjaevert Fjernet forslaget over. Kommer en oppdatert versjon snart som er testet :sweat_smile:

@espen Aha, spennende.

Denne fungerer dog bra for meg nå. Justerte litt på trigger verdien (min vaskemaskin nådde aldri 0), men den fungerer såvidt jeg ser bra nå.

Men tar gjerne imot oppdatert versjon hvis du lager noe nytt :blush:

1 Like

aiai! Ser jeg glemte å oppdatere her - beklager.
Jeg har hatt denne kjørende en stund nå og ser ut til å fungere ganske greit :slight_smile:

{
  "Id": "ZieE3OvTZd47GgB",
  "ClassId": "decJFbJQSoRJYnp",
  "Author": "espenh.no",
  "Version": 3,
  "CreatedAt": "2021-05-20T20:10:16.454511656+02:00",
  "UpdatedAt": "2021-05-20T20:12:22.678213817+02:00",
  "Name": "notify when washer is finished",
  "Group": "meter_elec",
  "Description": "change address on trigger node",
  "Nodes": [
    {
      "Id": "2",
      "Type": "if",
      "Label": "less than 5W & started is true",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "lt",
            "RightVariable": {
              "Value": 5,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "started",
            "Operand": "eq",
            "RightVariable": {
              "Value": true,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "7"
      },
      "Ui": {
        "nodeType": "",
        "x": 553,
        "y": 502
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "6",
      "Type": "action",
      "Label": "Publish timeline - finished",
      "SuccessTransition": "23",
      "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": "Washer finished!",
            "message_no": "-Vaskemaskinen er ferdig!",
            "sender": "flow"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 563,
        "y": 815
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "7",
      "Type": "wait",
      "Label": "wait 5 min - new report will cancel the timer",
      "SuccessTransition": "6",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 300000,
      "Ui": {
        "nodeType": "",
        "x": 557,
        "y": 661
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "21",
      "Type": "trigger",
      "Label": "meter_elec report",
      "SuccessTransition": "33",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:meter_elec/ad:55_0",
      "Service": "meter_elec",
      "ServiceInterface": "evt.meter.report",
      "Config": {
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "unit",
        "PropFilterValue": "W",
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": "",
          "ValueType": ""
        },
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 442,
        "y": 174
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "23",
      "Type": "action",
      "Label": "Push notification - finished",
      "SuccessTransition": "31",
      "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": "Vaskemaskinen er ferdig!"
          },
          "ValueType": "object"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "notification_action",
        "x": 566,
        "y": 967
      },
      "TypeAlias": "Notification"
    },
    {
      "Id": "29",
      "Type": "set_variable",
      "Label": "set started to true",
      "SuccessTransition": "32",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": true,
          "ValueType": "bool"
        },
        "Name": "started",
        "UpdateGlobal": false,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 291,
        "y": 492
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "31",
      "Type": "set_variable",
      "Label": "set started to false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "Name": "started",
        "UpdateGlobal": false,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 568,
        "y": 1117
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "32",
      "Type": "action",
      "Label": "Publish timeline - started",
      "SuccessTransition": "",
      "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": "Washer started!",
            "message_no": "-Vaskemaskinen er startet!",
            "sender": "flow"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 286,
        "y": 652
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "33",
      "Type": "if",
      "Label": "if over 6W & started is false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "gt",
            "RightVariable": {
              "Value": 6,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "started",
            "Operand": "eq",
            "RightVariable": {
              "Value": false,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "2",
        "TrueTransition": "29"
      },
      "Ui": {
        "nodeType": "",
        "x": 430,
        "y": 341
      },
      "TypeAlias": "If condition"
    }
  ],
  "Settings": {
    "dev.address": {
      "Value": "55",
      "ValueType": "string"
    }
  },
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "keep_last"
}
1 Like

Aha, kult. Noe nytt her som gjør at man bør oppdatere?

Denne kjører bare for vaskemaskin, og har en variabel som endres om den har startet eller ikke.

Hvis du importerer den, og feltet på en av set_variable nodene er blanke, kan du trykke add og lage en som heter started, velge bool, og deretter false. Da skal variabelen oppdatere seg på de andre nodene også (den ligger i koden, men ser ut som det er en bug med nåværende versjon av thingsplex/tpflow som ikke genererer flow_variables)

1 Like

Hei,
Jeg fikk dette varslet til å virker for et vanlig lys, men jeg har kjøpt meg en Apex 16 smart plug og får ingen data i tingsplex, i futurhome får jeg lagt den til og den viser strøm.

Det betyr ikke noe for meg om den viser feil, bare jeg får får notification når den når 0.

Her slik det ser ut, jeg har brukt koden til Espen lengre opp i tråden. Jeg får ikke inn noen data.
Har noen noe tips?

Du har huket ut “cmd.” nederst, det er en kommando (noe du kan bruke på en action node) du skal bruke den det står “evt.repprt” på. Da får du den rapporten med dets innhold

1 Like

Får fortsatt ingeting, når jeg gjør dette med en namron dimmer, så får jeg ut real time W måling.

Her er det bare tomt.

Problemet er Apex pluggen. Se vedlagte linker. Noen har effektmåling som er på minus siden, noen på 0 (derfor får du ikke noe data når du velger rett, som nevnt i forrige post). Jeg har selv denne pluggen, kun spenningsmåling som virker.

Ps; ser du ønsker å benytte “ext.report”, for og få ut data fra denne, så må det filtreres utenom trigger noden. Se denne link: Hente ut en konkret verdi fra "evt.meter_ext.report". (Get a spesific value from "evt.meter_ext.report")

Da kan du hente ut strømmåling hvis Apex pluggen din sender dette riktig.

Hei,
Hvor og hvordan skal jeg bruke denne transformer node`?

Jeg har lagt den inn slik :

Den ser også annerleds ut en det bildet som er på linken:

Hva skal du hente ut fra pluggen?

Last_e_import er energi importert (forbrukt) siste dag.

Jeg laget en for å hente frekvens fra samme plugg, da det er dette og spenningsmåling som virker for meg på denne pluggen. Det ser da slik ut;

Her er en liste med kodene for extended report;

alle kodene bør ikke nødvendigvis være tilgjengelig for pluggen, du ser hva som er tilgjengelig for pluggen under Adapters-Zigbee-Services (for aktuelt utstyr)-meter electric-Get Report i Thingsplex.

Jeg vil helst ha watt, koden jeg har tatt fra forumet laget for den, men hva som heslt som kan trigge start og stopp.

Jeg har prøvd å legge en transform, men jeg får ikke ut noe data.

$.val.p_import er aktuell effekt (watt). Hvis strøm fungerer for din Apex plugg, så er det ikke store endringen som skal til i programmet for å benytte strøm i steden $.val.i1, eventuelt kan du ta ett bildet av Get-report (med belasting tilkoblet pluggen) som angitt i forrige post


, og en “performatted text” her i svarfeltet med koden for din automasjon (finner den på source når du er på automasjonen)

så burde det være lett å løse.

{
  "Id": "ZieE3OvTZd47GgB",
  "ClassId": "decJFbJQSoRJYnp",
  "Author": "espenh.no",
  "Version": 3,
  "CreatedAt": "2021-05-20T20:10:16.454511656+02:00",
  "UpdatedAt": "2022-03-23T20:53:03.572628795+01:00",
  "Name": "Notify washer transform test",
  "Group": "meter_elec",
  "Description": "change address on trigger node",
  "Nodes": [
    {
      "Id": "2",
      "Type": "if",
      "Label": "less than 5W & started is true",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "lt",
            "RightVariable": {
              "Value": 2,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "started",
            "Operand": "eq",
            "RightVariable": {
              "Value": true,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "7"
      },
      "Ui": {
        "nodeType": "",
        "x": 564,
        "y": 628
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "6",
      "Type": "action",
      "Label": "Publish timeline - finished",
      "SuccessTransition": "23",
      "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": "Washer finished!",
            "message_no": "-Vaskemaskinen er ferdig!",
            "sender": "flow"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 542,
        "y": 962
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "7",
      "Type": "wait",
      "Label": "wait 5 min - new report will cancel the timer",
      "SuccessTransition": "6",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 300000,
      "Ui": {
        "nodeType": "",
        "x": 553,
        "y": 790
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "21",
      "Type": "trigger",
      "Label": "meter_elec report",
      "SuccessTransition": "34",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:meter_elec/ad:6_1",
      "Service": "meter_elec",
      "ServiceInterface": "cmd.meter_ext.get_report",
      "Config": {
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "unit",
        "PropFilterValue": "W",
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": ""
        },
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 456,
        "y": 127
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "23",
      "Type": "action",
      "Label": "Push notification - finished",
      "SuccessTransition": "31",
      "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": "Vaskemaskinen er ferdig!"
          },
          "ValueType": "object"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "notification_action",
        "x": 558,
        "y": 1122
      },
      "TypeAlias": "Notification"
    },
    {
      "Id": "29",
      "Type": "set_variable",
      "Label": "set started to true",
      "SuccessTransition": "32",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": true,
          "ValueType": "bool"
        },
        "Name": "started",
        "UpdateGlobal": false,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 268,
        "y": 593
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "31",
      "Type": "set_variable",
      "Label": "set started to false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "Name": "started",
        "UpdateGlobal": false,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 546,
        "y": 1283
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "32",
      "Type": "action",
      "Label": "Publish timeline - started",
      "SuccessTransition": "",
      "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": "Washer started!",
            "message_no": "-Vaskemaskinen er startet!",
            "sender": "flow"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 266,
        "y": 774
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "33",
      "Type": "if",
      "Label": "if over 6W & started is false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "",
            "Operand": "gt",
            "RightVariable": {
              "Value": 3,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "started",
            "Operand": "eq",
            "RightVariable": {
              "Value": false,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "2",
        "TrueTransition": "29"
      },
      "Ui": {
        "nodeType": "",
        "x": 444,
        "y": 473
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "34",
      "Type": "transform",
      "Label": "extract p_import",
      "SuccessTransition": "33",
      "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,
            "Path": "$.val.p_import",
            "TargetVariableName": "",
            "TargetVariableType": "",
            "UpdateInputVariable": false
          }
        ]
      },
      "Ui": {
        "nodeType": "",
        "x": 416,
        "y": 295
      },
      "TypeAlias": "Transform"
    }
  ],
  "Settings": {
    "dev.address": {
      "Value": "55",
      "ValueType": "string"
    }
  },
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "keep_last"
}
{
  "Id": "IZs90xjxXMHCHco",
  "ClassId": "IZs90xjxXMHCHco",
  "Author": "",
  "Version": 0,
  "CreatedAt": "2022-03-24T18:16:29.585626511+01:00",
  "UpdatedAt": "2022-03-24T19:03:20.066609171+01:00",
  "Name": "Test Apex plug",
  "Group": "Test",
  "Description": "Test for Apex plugg, effektmåling",
  "Nodes": [
    {
      "Id": "2",
      "Type": "if",
      "Label": "less than 5W & started is true",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "Effektmåling_apex_plugg",
            "Operand": "lt",
            "RightVariable": {
              "Value": 2,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "Vaskemaskin_Startet",
            "Operand": "eq",
            "RightVariable": {
              "Value": true,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "",
        "TrueTransition": "7"
      },
      "Ui": {
        "nodeType": "",
        "x": 528,
        "y": 633
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "6",
      "Type": "action",
      "Label": "Publish timeline - finished",
      "SuccessTransition": "23",
      "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": "Washer finished!",
            "message_no": "-Vaskemaskinen er ferdig!",
            "sender": "flow"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 542,
        "y": 962
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "7",
      "Type": "wait",
      "Label": "wait 5 min - new report will cancel the timer",
      "SuccessTransition": "6",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": 300000,
      "Ui": {
        "nodeType": "",
        "x": 553,
        "y": 790
      },
      "TypeAlias": "Delay"
    },
    {
      "Id": "21",
      "Type": "trigger",
      "Label": "meter_elec report",
      "SuccessTransition": "36",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zigbee/ad:1/sv:meter_elec/ad:2_1",
      "Service": "meter_elec",
      "ServiceInterface": "evt.meter_ext.report",
      "Config": {
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "",
        "PropFilterValue": "",
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": "",
          "ValueType": "float_map"
        },
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 441,
        "y": 128
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "23",
      "Type": "action",
      "Label": "Push notification - finished",
      "SuccessTransition": "35",
      "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": "Vaskemaskinen er ferdig!"
          },
          "ValueType": "object"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "notification_action",
        "x": 558,
        "y": 1122
      },
      "TypeAlias": "Notification"
    },
    {
      "Id": "29",
      "Type": "set_variable",
      "Label": "set started to true",
      "SuccessTransition": "32",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": true,
          "ValueType": "bool"
        },
        "IsVariableInMemory": false,
        "Name": "Vaskemaskin_Startet",
        "UpdateGlobal": false,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 299,
        "y": 635
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "32",
      "Type": "action",
      "Label": "Publish timeline - started",
      "SuccessTransition": "",
      "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": "Washer started!",
            "message_no": "-Vaskemaskinen er startet!",
            "sender": "flow"
          },
          "ValueType": "str_map"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "timeline_action",
        "x": 291,
        "y": 790
      },
      "TypeAlias": "Timeline"
    },
    {
      "Id": "33",
      "Type": "if",
      "Label": "if over 6W & started is false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": [
          {
            "BooleanOperator": "and",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "Effektmåling_apex_plugg",
            "Operand": "gt",
            "RightVariable": {
              "Value": 3,
              "ValueType": "float"
            }
          },
          {
            "BooleanOperator": "",
            "LeftVariableIsGlobal": false,
            "LeftVariableName": "Vaskemaskin_Startet",
            "Operand": "eq",
            "RightVariable": {
              "Value": false,
              "ValueType": "bool"
            }
          }
        ],
        "FalseTransition": "2",
        "TrueTransition": "29"
      },
      "Ui": {
        "nodeType": "",
        "x": 444,
        "y": 473
      },
      "TypeAlias": "If condition"
    },
    {
      "Id": "35",
      "Type": "set_variable",
      "Label": "set started to false",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultValue": {
          "Value": false,
          "ValueType": "bool"
        },
        "IsVariableInMemory": false,
        "Name": "Vaskemaskin_Startet",
        "UpdateGlobal": false,
        "UpdateInputMsg": false
      },
      "Ui": {
        "nodeType": "",
        "x": 550,
        "y": 1286
      },
      "TypeAlias": "Set variable"
    },
    {
      "Id": "36",
      "Type": "transform",
      "Label": "$.val.p_import",
      "SuccessTransition": "33",
      "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.p_import",
            "TargetVariableName": "Effektmåling_apex_plugg",
            "TargetVariableType": "float",
            "UpdateInputVariable": false
          }
        ]
      },
      "Ui": {
        "nodeType": "",
        "x": 440,
        "y": 301
      },
      "TypeAlias": "Transform"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "keep_last"
}

Lag en variabel, float og huk av “in memory”

i “IF-nodene” så bruker du denne variabelen som en betingelse i steden for “trigger variable”, verdien på variabelen blir satt med rett verdi hvis du legger den inn i “transform-noden” som på vedlagte bildet…

Hvis du ikke ønsker å benytte vedlagte kode, og heller vil rote rundt i din egen automasjon, så kan du slette “trigger-noden” og legge til ny “Trigger-node”, for den er kjernen til at automasjonen aldri går videre. Eller så kan du manuelt slette teksten som er i dette bildet (teksten unit og teksten W);
image
Espen har lagt inn ett filter i denne noden som du ser i kilden til programmet du la ut. Den filtrerer på “unit,W” og det går ikke med extended report.