Lese temp fra Ch1 på HEATIT Z-TRM3

{
  "Id": "69afaf40-b6c4-11ed-9350-4d1bed057ca1",
  "ClassId": "69afaf40-b6c4-11ed-9350-4d1bed057ca1",
  "Author": "xxxx@yyyy",
  "Version": 0,
  "CreatedAt": "2023-02-27T17:30:22.132649Z",
  "UpdatedAt": "2023-03-14T22:16:38.599617501+01:00",
  "Name": "når temperaturen på Bad 2 etg Gulvføler er høyere enn 25C",
  "Group": "sensor_temperature",
  "Description": "send oppvarming settpunkt på  Bad 2 etg Termostat   til 21.0 ",
  "Nodes": [
    {
      "Id": "93",
      "Type": "trigger",
      "Label": "Leser termostat set punkt til Bad 2 etg.",
      "SuccessTransition": "101",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:9_1",
      "Service": "thermostat",
      "ServiceInterface": "evt.setpoint.report",
      "Config": {
        "InputVariableType": null,
        "IsValueFilterEnabled": false,
        "LookupServiceNameAndLocation": false,
        "PropFilterName": "unit",
        "PropFilterValue": "C",
        "RegisterAsVirtualService": false,
        "Timeout": 0,
        "ValueFilter": {
          "Value": ""
        },
        "ValueJPath": null,
        "ValueJPathResultType": null,
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "customValues": null,
          "nodeId": "21",
          "nodeName": "temp",
          "nodeType": "temperature"
        },
        "x": 542,
        "y": 214
      },
      "TypeAlias": "Trigger"
    },
    {
      "Id": "95",
      "Type": "transform",
      "Label": "Bad_2etg_Read_Cnt += 1",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Expression": "Bad_2etg_Read_Counter + 1",
        "IsLVariableGlobal": false,
        "IsRVariableGlobal": false,
        "IsTargetVariableGlobal": true,
        "IsTargetVariableInMemory": false,
        "LVariableName": "",
        "RValue": {
          "Value": 0,
          "ValueType": "int"
        },
        "RVariableName": "",
        "Rtype": "var",
        "TargetVariableName": "Bad_2etg_Read_Counter",
        "TargetVariableType": "float",
        "Template": "",
        "TransformType": "calc",
        "ValueMapping": [],
        "XPathMapping": []
      },
      "Ui": {
        "nodeType": "",
        "x": 551,
        "y": 693
      },
      "TypeAlias": "Transform"
    },
    {
      "Id": "96",
      "Type": "action",
      "Label": "cmd.setpoint.get_report = heat",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:9_1",
      "Service": "thermostat",
      "ServiceInterface": "cmd.setpoint.get_report",
      "Config": {
        "DefaultValue": {
          "Value": "heat",
          "ValueType": "string"
        },
        "IsVariableGlobal": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": "",
        "VariableName": "",
        "VirtualServiceGroup": "",
        "VirtualServiceProps": {}
      },
      "Ui": {
        "nodeType": "",
        "x": 215,
        "y": 466
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "97",
      "Type": "time_trigger",
      "Label": "Hver 2 min",
      "SuccessTransition": "96",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultMsg": {
          "Value": "",
          "ValueType": ""
        },
        "Expressions": [
          {
            "Comments": "",
            "Expression": "@every 2m",
            "Name": ""
          }
        ],
        "GenerateAstroTimeEvents": false,
        "Latitude": 0,
        "Longitude": 0,
        "SunriseTimeOffset": 0,
        "SunsetTimeOffset": 0
      },
      "Ui": {
        "nodeType": "",
        "x": 211,
        "y": 226
      },
      "TypeAlias": "Time trigger"
    },
    {
      "Id": "101",
      "Type": "transform",
      "Label": "Json Path",
      "SuccessTransition": "95",
      "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": true,
            "IsTargetVariableInMemory": false,
            "Path": "$.val.temp",
            "TargetVariableName": "Bad_2etg_Temp_str",
            "TargetVariableType": "string",
            "UpdateInputVariable": false
          }
        ]
      },
      "Ui": {
        "nodeType": "",
        "x": 544,
        "y": 468
      },
      "TypeAlias": "Transform"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "parallel"
}

Hei!

I trigger på evt.setpoint.report, kan du forsøke å fjerne;

"PropFilterName": "unit",
"PropFilterValue": "C",

unit er spesifisert i prop for f.eks sensor_temp (derfor fungerte det), men ikke i setpoint.report da den er en del av val. Dette vil da gjøre at den aldri får “treff” på triggeren.
Du må nok fortsatt gjøre konvertering etter jpath extraction

1 Like

Det fikset biffen :blush:

Da vet man at man må fjerne:
“PropFilterName”: “unit”,
“PropFilterValue”: “C”,

Da gjenstår det bare å eksperimentere videre med å konvertere til float, suptrahere med tre grader, og skrive nytt setpunkt til termostaten. :slight_smile:

Noen som har noen innspill til å typecaste strengen til en float. (Synes ikke det er så enkelt å søke seg frem til syntax i Thingsplex)

Når du nå sitter med variabel verdien, så kan du lage en ny transform etter allerede genererte variabel, som du legger inn i kalkulasjon at du tar variabelnavnet-3 som formel og setter en “result variabel” som er av typen float.

image

PS; Det kan bli en rotete flow, så jeg ville laget en en egen flow for konvertering av de forskjellige temperaturene du vil lese og sette nytt setpunkt på, for så og lage en som kun har effektmålingskriterie og sette payload til de globale variabelene du lager med kalkulerte setpunkt verdier.