Jeg forsøker programmere et system som skal forhindre at forbruket i boligen kommer over 10KW pr. time.
Har laget en Flow som leser fra akkumulert energi fra Tiber pulse. Planen er da å senke temperaturen på gulvvarme etter en prioritert liste.
Da ønsker jeg å lese hvilke temperatur termostaten er satt til redusere med f.eks. 3 grader og skrive tilbake. I det vedlagte programmet er dette forsøkt.
- Leser SET Punktet fra termostaten. (ch1)
- Skriver denne temperaturen til den globale variablen «Bad_2etg_Temp_float»
- En transform som subtraherer 3 fra variablene og skrivere verdien tilbake.
Koden frem til dette fungerer
Deretter blir jobben å bygge en «strMAP» og skrive denne tilbake til termostaten. Dette fungerer IKKE
I listen over variabler kan man ikke se innholdet av «map of string», så jeg er usikker på om dette fungerer.
Ser jo i «Transform» som skal bygge «map of string» at det er et rødt X, det er vel ikke noe bra tegn ?
Ellers er jeg usikker på bruk av: «Input variable», «Trigger variable», «Left variable» osv. Finnes det en oversikt som forklarer ting ?
Er også usikker på hvordan «map of string» skrives tilbake til termostaten.
(Ser hardkoding ved å skrive temperaturen rett inn i «Default value» fungerer)
Noen som har tips ?
Flowen ser slik ut:
Globale Variabler:
{
"Id": "Vj8mDUCOxGHvJDO",
"ClassId": "Vj8mDUCOxGHvJDO",
"Author": "",
"Version": 0,
"CreatedAt": "2023-11-28T17:30:13.062176347+01:00",
"UpdatedAt": "2023-11-28T17:45:34.415628472+01:00",
"Name": "Test Senk Temp",
"Group": "",
"Description": "",
"Nodes": [
{
"Id": "2",
"Type": "trigger",
"Label": "Leser termostat set punkt til Bad 2 etg.",
"SuccessTransition": "3",
"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": {
"IsValueFilterEnabled": false,
"LookupServiceNameAndLocation": false,
"RegisterAsVirtualService": false,
"Timeout": 0,
"ValueFilter": {
"Value": ""
},
"VirtualServiceGroup": "ch_0",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 370,
"y": 148
},
"TypeAlias": "Trigger"
},
{
"Id": "3",
"Type": "transform",
"Label": "\"Set temp\" to Bad2etg Temp variabel",
"SuccessTransition": "4",
"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_float",
"TargetVariableType": "float",
"UpdateInputVariable": false
}
]
},
"Ui": {
"nodeType": "",
"x": 360,
"y": 332
},
"TypeAlias": "Transform"
},
{
"Id": "4",
"Type": "transform",
"Label": " Bad_2etg_Temp - 3",
"SuccessTransition": "5",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "Bad_2etg_Temp_float - 3",
"IsLVariableGlobal": false,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": true,
"IsTargetVariableInMemory": false,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "Bad_2etg_Temp_float",
"TargetVariableType": "float",
"Template": "",
"TransformType": "calc",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 363,
"y": 521
},
"TypeAlias": "Transform"
},
{
"Id": "5",
"Type": "transform",
"Label": " Bad_2etg_Temp -> StrMAP",
"SuccessTransition": "6",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "",
"IsLVariableGlobal": false,
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": true,
"IsTargetVariableInMemory": false,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "Bad_2etg_Low_Temp",
"TargetVariableType": "str_map",
"Template": "{\n \"temp\": \"{{variable \"Bad_2etg_Temp_float\" true}}\",\n \"type\": \"heat\",\n \"unit\": \"C\"\n}",
"TransformType": "template",
"ValueMapping": [],
"XPathMapping": []
},
"Ui": {
"nodeType": "",
"x": 369,
"y": 731
},
"TypeAlias": "Transform"
},
{
"Id": "6",
"Type": "action",
"Label": "Set Bad2 temp -3 grader",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:9_1",
"Service": "thermostat",
"ServiceInterface": "cmd.setpoint.set",
"Config": {
"DefaultValue": {
"Value": "",
"ValueType": "str_map"
},
"IsVariableGlobal": true,
"Props": {},
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "Bad_2etg_Low_Temp",
"VariableType": "str_map",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 362,
"y": 905
},
"TypeAlias": "Action"
}
],
"Settings": null,
"IsDisabled": true,
"IsDefault": false,
"ParallelExecution": "parallel"
}