{
"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
Det fikset biffen
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.
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.
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.
Takk for svar. Ja, planen er å utføre innlesning av setpunktet av alle termostater i en separat flow. Har laget en separat Flow som leser av effekten til alle gulv. Har en hoved sekvens som senker temperaturen når gjennomsnittet er over en limit etter prioritert rekkefølge. Den skal da lese disse globale setpunkt temperaturene.
Men det er avlesning av disse setpunktene jeg sliter med å få til å fungere.
Status nå er at jeg klarer å avlese setpunktet til termostatene ved hjelp av en trigger som leser «evt.setpoint.report» (Fungerte etter at “PropFilterName” og “PropFilterValue” ble fjernet fra kildekoden.) Denne returnerte en «str_map». Fikk hentet ut selve temperaturen med Json Path og skrevet denne til en String variabel.
Men så var den konvertering fra string til float. Det har jeg ikke fått til å fungere. Forsøkte følgende:
Den fungerer ikke. Får ingenting inn i variabelen som jeg kalte «Bad_2etg_Temp_float» som er en float. Ser at denne koden ikke blir kjørt. Lagde en variabel som heter «Bad_2etg_Read_Counter», men denne teller ikke opp etter at calculate funksjonen over er blitt kjørt. (Hvis jeg flytte inkrementering av telleren til før Calculate noden, teller denne opp.)
Jeg forstår ikke helt hvordan nodene fungerer. I Json Path f.eks så er «Target variable» satt direkte til en global variabel, allikevel var jeg nødt til å benytte «Set variable» for å skrive verdien til en variabel, hvorfor ?
Med tanke på denne type konverteringen forsøkte jeg forskjellige kombinasjoner uten å lykkes. Denne «Trigger variable» hva er det, siste verdi man har behandlet, verdi fra siste Trigger, noen som vet ?
Noen eksperimenter:
Legger også men kildekoden jeg sloss med:
{
"Id": "69afaf40-b6c4-11ed-9350-4d1bed057ca1",
"ClassId": "69afaf40-b6c4-11ed-9350-4d1bed057ca1",
"Author": "ji-gus@frisurf.no",
"Version": 0,
"CreatedAt": "2023-02-27T17:30:22.132649Z",
"UpdatedAt": "2023-03-20T20:44:59.557559837+01:00",
"Name": "Leser temperaturen fra alle termostater",
"Group": "sensor_temperature",
"Description": "Les temperaturen fra termostater og lagre i globale variabler.",
"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,
"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": 384,
"y": 239
},
"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": 387,
"y": 1124
},
"TypeAlias": "Transform"
},
{
"Id": "96",
"Type": "action",
"Label": "Bad2 cmd.setpoint.get_report = heat",
"SuccessTransition": "107",
"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": 63,
"y": 420
},
"TypeAlias": "Action"
},
{
"Id": "97",
"Type": "time_trigger",
"Label": "Hver 5 min",
"SuccessTransition": "96",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"DefaultMsg": {
"Value": "",
"ValueType": ""
},
"Expressions": [
{
"Comments": "",
"Expression": "@every 5m",
"Name": ""
}
],
"GenerateAstroTimeEvents": false,
"Latitude": 0,
"Longitude": 0,
"SunriseTimeOffset": 0,
"SunsetTimeOffset": 0
},
"Ui": {
"nodeType": "",
"x": 54,
"y": 238
},
"TypeAlias": "Time trigger"
},
{
"Id": "101",
"Type": "transform",
"Label": "Json Path",
"SuccessTransition": "108",
"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": 381,
"y": 422
},
"TypeAlias": "Transform"
},
{
"Id": "103",
"Type": "trigger",
"Label": "Leser termostat set punkt til Bad 1 etg.",
"SuccessTransition": "104",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:7_1",
"Service": "thermostat",
"ServiceInterface": "evt.setpoint.report",
"Config": {
"IsValueFilterEnabled": false,
"LookupServiceNameAndLocation": false,
"RegisterAsVirtualService": false,
"Timeout": 0,
"ValueFilter": {
"Value": ""
},
"VirtualServiceGroup": "ch_0",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 670,
"y": 236
},
"TypeAlias": "Trigger"
},
{
"Id": "104",
"Type": "transform",
"Label": "Json Path",
"SuccessTransition": "105",
"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_1etg_Temp_str",
"TargetVariableType": "string",
"UpdateInputVariable": false
}
]
},
"Ui": {
"nodeType": "",
"x": 660,
"y": 423
},
"TypeAlias": "Transform"
},
{
"Id": "105",
"Type": "set_variable",
"Label": "Write to Bad_1etg_Temp_str",
"SuccessTransition": "106",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"DefaultValue": {
"Value": 0,
"ValueType": ""
},
"IsVariableInMemory": false,
"Name": "Bad_1etg_Temp_str",
"UpdateGlobal": true,
"UpdateInputMsg": false
},
"Ui": {
"nodeType": "",
"x": 671,
"y": 617
},
"TypeAlias": "Set variable"
},
{
"Id": "106",
"Type": "transform",
"Label": "Bad_1etg_Read_Cnt += 1",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "Bad_1etg_Read_Counter + 1",
"IsLVariableGlobal": false,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": true,
"IsTargetVariableInMemory": false,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "Bad_1etg_Read_Counter",
"TargetVariableType": "float",
"Template": "",
"TransformType": "calc",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 658,
"y": 792
},
"TypeAlias": "Transform"
},
{
"Id": "107",
"Type": "action",
"Label": "Bad1 cmd.setpoint.get_report) = heat",
"SuccessTransition": "113",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:7_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": 55,
"y": 599
},
"TypeAlias": "Action"
},
{
"Id": "108",
"Type": "set_variable",
"Label": "Write to Bad_2etg_Temp_str",
"SuccessTransition": "119",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"DefaultValue": {
"Value": 0,
"ValueType": ""
},
"IsVariableInMemory": false,
"Name": "Bad_2etg_Temp_str",
"UpdateGlobal": true,
"UpdateInputMsg": false
},
"Ui": {
"nodeType": "",
"x": 382,
"y": 611
},
"TypeAlias": "Set variable"
},
{
"Id": "109",
"Type": "trigger",
"Label": "Leser termostat set punkt til Gang termostat",
"SuccessTransition": "110",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:6_1",
"Service": "thermostat",
"ServiceInterface": "evt.setpoint.report",
"Config": {
"IsValueFilterEnabled": false,
"LookupServiceNameAndLocation": false,
"RegisterAsVirtualService": false,
"Timeout": 0,
"ValueFilter": {
"Value": ""
},
"VirtualServiceGroup": "ch_0",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 962,
"y": 231
},
"TypeAlias": "Trigger"
},
{
"Id": "110",
"Type": "transform",
"Label": "Json Path",
"SuccessTransition": "111",
"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": "Entre_Temp_str",
"TargetVariableType": "string",
"UpdateInputVariable": false
}
]
},
"Ui": {
"nodeType": "",
"x": 967,
"y": 426
},
"TypeAlias": "Transform"
},
{
"Id": "111",
"Type": "set_variable",
"Label": "Write to Entre_Temp",
"SuccessTransition": "112",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"DefaultValue": {
"Value": 0,
"ValueType": ""
},
"IsVariableInMemory": false,
"Name": "Entre_Temp_str",
"UpdateGlobal": true,
"UpdateInputMsg": false
},
"Ui": {
"nodeType": "",
"x": 972,
"y": 621
},
"TypeAlias": "Set variable"
},
{
"Id": "112",
"Type": "transform",
"Label": "Entre_Power_Read_Counter +=1",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "Entre_Power_Read_Counter + 1",
"IsLVariableGlobal": false,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": true,
"IsTargetVariableInMemory": false,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "Entre_Power_Read_Counter",
"TargetVariableType": "float",
"Template": "",
"TransformType": "calc",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 957,
"y": 806
},
"TypeAlias": "Transform"
},
{
"Id": "113",
"Type": "action",
"Label": "Gang cmd.setpoint.get_report = heat",
"SuccessTransition": "114",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:6_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": 55,
"y": 779
},
"TypeAlias": "Action"
},
{
"Id": "114",
"Type": "action",
"Label": "Vaskerom cmd.setpoint.get_report = heat",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:8_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": 46,
"y": 969
},
"TypeAlias": "Action"
},
{
"Id": "115",
"Type": "trigger",
"Label": "Leser termostat set punkt til vaskerom termostat",
"SuccessTransition": "116",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:8_1",
"Service": "thermostat",
"ServiceInterface": "evt.setpoint.report",
"Config": {
"IsValueFilterEnabled": false,
"LookupServiceNameAndLocation": false,
"RegisterAsVirtualService": false,
"Timeout": 0,
"ValueFilter": {
"Value": ""
},
"VirtualServiceGroup": "ch_0",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 1248,
"y": 231
},
"TypeAlias": "Trigger"
},
{
"Id": "116",
"Type": "transform",
"Label": "Json Path",
"SuccessTransition": "117",
"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": "Vaskerom_Temp_str",
"TargetVariableType": "string",
"UpdateInputVariable": false
}
]
},
"Ui": {
"nodeType": "",
"x": 1249,
"y": 420
},
"TypeAlias": "Transform"
},
{
"Id": "117",
"Type": "set_variable",
"Label": "Write to Vaskerom_Temp",
"SuccessTransition": "118",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"DefaultValue": {
"Value": 0,
"ValueType": ""
},
"IsVariableInMemory": false,
"Name": "Vaskerom_Temp_str",
"UpdateGlobal": true,
"UpdateInputMsg": false
},
"Ui": {
"nodeType": "",
"x": 1252,
"y": 619
},
"TypeAlias": "Set variable"
},
{
"Id": "118",
"Type": "transform",
"Label": "Vaskerom_Power_Read_Counter +=1",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "Vaskerom_Power_Read_Counter + 1",
"IsLVariableGlobal": false,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": true,
"IsTargetVariableInMemory": false,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "Vaskerom_Power_Read_Counter",
"TargetVariableType": "float",
"Template": "",
"TransformType": "calc",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 1253,
"y": 805
},
"TypeAlias": "Transform"
},
{
"Id": "119",
"Type": "transform",
"Label": "Temp - 3",
"SuccessTransition": "120",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "Bad_2etg_Temp_str-3",
"IsLVariableGlobal": true,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": true,
"IsTargetVariableInMemory": false,
"LVariableName": "Bad_2etg_Temp_str",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "Bad_2etg_Temp_float",
"TargetVariableType": "float",
"Template": "Bad_2etg_Temp_float := Bad_2etg_Temp_str",
"TransformType": "calc",
"ValueMapping": [
{
"LValue": {
"Value": "123.4",
"ValueType": "string"
},
"RValue": {
"Value": 123.5,
"ValueType": "float"
}
}
],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 380,
"y": 787
},
"TypeAlias": "Transform"
},
{
"Id": "120",
"Type": "set_variable",
"Label": "Write to Bad_2etg_Temp_float",
"SuccessTransition": "95",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"DefaultValue": {
"Value": 0,
"ValueType": ""
},
"IsVariableInMemory": false,
"Name": "Bad_2etg_Temp_float",
"UpdateGlobal": true,
"UpdateInputMsg": false
},
"Ui": {
"nodeType": "",
"x": 379,
"y": 959
},
"TypeAlias": "Set variable"
}
],
"Settings": null,
"IsDisabled": true,
"IsDefault": false,
"ParallelExecution": "keep_first"
}
{
"Id": "Xy782oZR2xLEcIe",
"ClassId": "69afaf40-b6c4-11ed-9350-4d1bed057ca1",
"Author": "ji-gus@frisurf.no",
"Version": 0,
"CreatedAt": "2023-03-21T20:17:14.653288632+01:00",
"UpdatedAt": "2023-03-21T21:43:54.081849083+01:00",
"Name": "Leser temperaturen fra alle termostater",
"Group": "sensor_temperature",
"Description": "Les temperaturen fra termostater og lagre i globale variabler.",
"Nodes": [
{
"Id": "93",
"Type": "trigger",
"Label": "Leser termostat set punkt til Stue",
"SuccessTransition": "101",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:11_1",
"Service": "thermostat",
"ServiceInterface": "evt.setpoint.report",
"Config": {
"InputVariableType": null,
"IsValueFilterEnabled": false,
"LookupServiceNameAndLocation": false,
"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": 384,
"y": 239
},
"TypeAlias": "Trigger"
},
{
"Id": "96",
"Type": "action",
"Label": "Stue cmd.setpoint.get_report = heat",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:11_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": 63,
"y": 420
},
"TypeAlias": "Action"
},
{
"Id": "97",
"Type": "time_trigger",
"Label": "Hvert min",
"SuccessTransition": "96",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"DefaultMsg": {
"Value": "",
"ValueType": ""
},
"Expressions": [
{
"Comments": "",
"Expression": "@every 1m",
"Name": ""
}
],
"GenerateAstroTimeEvents": false,
"Latitude": 0,
"Longitude": 0,
"SunriseTimeOffset": 0,
"SunsetTimeOffset": 0
},
"Ui": {
"nodeType": "",
"x": 54,
"y": 238
},
"TypeAlias": "Time trigger"
},
{
"Id": "101",
"Type": "transform",
"Label": "Json Path",
"SuccessTransition": "102",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "",
"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.temp",
"TargetVariableName": "stue_setpoint2",
"TargetVariableType": "float",
"UpdateInputVariable": false
}
]
},
"Ui": {
"nodeType": "",
"x": 381,
"y": 422
},
"TypeAlias": "Transform"
},
{
"Id": "102",
"Type": "transform",
"Label": "sett 3 grader lavere temp",
"SuccessTransition": "103",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "(stue_setpoint2) - 3",
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": false,
"IsTargetVariableInMemory": false,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "stue_setpoint2_low",
"TargetVariableType": "float",
"Template": "",
"TransformType": "calc",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 393,
"y": 633
},
"TypeAlias": "Transform"
},
{
"Id": "103",
"Type": "transform",
"Label": "sett 3 grader høyere temp",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "(stue_setpoint2) + 3",
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": false,
"IsTargetVariableInMemory": false,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "stue_setpoint2_high",
"TargetVariableType": "float",
"Template": "",
"TransformType": "calc",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 706,
"y": 694
},
"TypeAlias": "Transform"
},
{
"Id": "104",
"Type": "action",
"Label": "Send nytt setpoint",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:11_1",
"Service": "thermostat",
"ServiceInterface": "cmd.setpoint.set",
"Config": {
"DefaultValue": {
"Value": "",
"ValueType": ""
},
"IsVariableGlobal": false,
"Props": {},
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "stue_setpoint2_strmap",
"VariableType": "str_map",
"VirtualServiceGroup": "ch1",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 1349,
"y": 632
},
"TypeAlias": "Action"
},
{
"Id": "105",
"Type": "transform",
"Label": "Lag strmap",
"SuccessTransition": "104",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "",
"IsLVariableGlobal": false,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": false,
"IsTargetVariableInMemory": false,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "stue_setpoint2_strmap",
"TargetVariableType": "str_map",
"Template": "{\r\n \"temp\": \"{{variable \"stue_setpoint2_high\" false}}\",\r\n \"type\": \"heat\",\r\n \"unit\": \"C\"\r\n}",
"TransformType": "template",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 1356,
"y": 397
},
"TypeAlias": "Transform"
},
{
"Id": "106",
"Type": "vinc_trigger",
"Label": "TEST TRIGGER",
"SuccessTransition": "105",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"EventType": "shortcut",
"IsValueFilterEnabled": false,
"Timeout": 0,
"ValueFilter": "12"
},
"Ui": {
"nodeType": "",
"x": 1287,
"y": 221
},
"TypeAlias": "Home event"
}
],
"Settings": null,
"IsDisabled": false,
"IsDefault": false,
"ParallelExecution": "keep_first"
}
Denne koden er testet og fungerer hos meg hvertfall.
Supert, tusen takk. Det skal bli spennende å teste denne koden når jeg får tid.
Det ser ut til at din Json Path transform konverterer direkte fra «str_map» til «float». Det ser jo elegant ut.
"TargetVariableName": "stue_setpoint2",
"TargetVariableType": "float",
Jeg fikk ut en string jeg ikke kom videre med.