Sette temperatur fra en variabel

Hei, er det mulig å sette temperatur i en heatit termostat fra en variabel?
Normalt så sender den en map of string (Se vedlagt bilde hvor jeg har prøvds å lagre dette i en variabel)


Jeg har prøvd å bruke denne variablen til å sette temperaturen i en termostat men følgende virket ikke, grunnen til at jeg ønsker dette er for at jeg lettere skal kunne sette temperaturer jeg ønsker å bruke i forskjellige tilfeller (Nattsenking, høy pris, høy last, normal temp)

{
  "Id": "2b914da0-45db-11ec-bb25-ad79ada17a23",
  "ClassId": "2b914da0-45db-11ec-bb25-ad79ada17a23",
  "Author": "Tommy",
  "Version": 0,
  "CreatedAt": "2022-04-18T17:07:16.539943Z",
  "UpdatedAt": "2022-07-14T23:24:12.645617642+02:00",
  "Name": "Test",
  "Group": "Stromstyring",
  "Description": "send heating setpoint of  Varmekabler gang  to 24",
  "Nodes": [
    {
      "Id": "47",
      "Type": "action",
      "Label": "send heating setpoint of  Varmekabler gang  to 21",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:53_1",
      "Service": "thermostat",
      "ServiceInterface": "cmd.setpoint.set",
      "Config": {
        "DefaultValue": {
          "Value": {
            "temp": "21",
            "type": "heat",
            "unit": "C"
          },
          "ValueType": ""
        },
        "IsVariableGlobal": true,
        "LookupServiceNameAndLocation": false,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": null,
        "VariableName": "vkgangnatt",
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {},
        "VariableType": "str_map"
      },
      "Ui": {
        "nodeType": "",
        "papp": {
          "nodeId": "27",
          "nodeName": "device",
          "nodeType": "deviceAction"
        },
        "x": 1834,
        "y": 473
      },
      "TypeAlias": "Action"
    },
    {
      "Id": "48",
      "Type": "vinc_trigger",
      "Label": "Home event trigger",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "SuccessTransition": "47",
      "ErrorTransition": "",
      "Config": {
        "Timeout": 0,
        "ValueFilter": "14",
        "IsValueFilterEnabled": true,
        "EventType": "shortcut"
      },
      "Ui": {
        "x": 1856,
        "y": 186,
        "nodeType": ""
      },
      "TypeAlias": "Home event"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "parallel"
}

Hei!

Hva har du lagret i variabelen? Hele map’et eller bare en int eller string av ønsket temp.
Kunne du også kopiert meldingen i messagestream som blir sendt når denne flowen trigges? :slight_smile:
Tror det skal være mulig å gjøre det du ønsker - skal teste litt :slight_smile:

Hei igjen, det ligger et bilde av variablen mellom de to avsnittene med tekst i innleget mitt.
Hele map’et ligger i variablen (Hvis mulig så kunne jeg godt tenkt meg å kunne lagre selve temperaturen i en variabel og bruke, da jeg da kunne juster nattsenkt temperaturen opp og ned med snarveier i appen, men fikk ikke dette heller til :P)
Følgende meldinger kommer etter at jeg trykker:

{
  "serv": "vinculum",
  "type": "cmd.pd7.request",
  "val_t": "object",
  "val": {
    "cmd": "set",
    "component": "shortcut",
    "id": 19,
    "client": null,
    "param": null,
    "requestId": null
  },
  "props": {},
  "tags": null,
  "resp_to": "pt:j1/mt:rsp/rt:cloud/rn:remote-client/ad:smarthome-app",
  "src": "app",
  "ver": "1",
  "uid": "d324cabc-2ee6-45e5-a642-96b385a77a78",
  "topic": "pt:j1/mt:cmd/rt:app/rn:vinculum/ad:1"
}



{
  "serv": "vinculum",
  "type": "evt.pd7.response",
  "val_t": "object",
  "val": {
    "errors": null,
    "param": null,
    "requestId": null,
    "success": true
  },
  "props": {},
  "tags": null,
  "src": "-",
  "ver": "1",
  "uid": "d74d907f-30da-4aeb-b506-9305f2c40466",
  "topic": "pt:j1/mt:rsp/rt:cloud/rn:remote-client/ad:smarthome-app"
}


Hei igjen @espen .
Jeg hadde en annen post der jeg lurte på muligheten til å bruke en variabel i timeline hvor jeg fikk hjelp av @alivinco
Jeg brukte så det han forklarte da til å sette opp samme oppsettet på variablen jeg etterspurte her.
Så nå har jeg fått det til slik som jeg ønsket.
Legger med bilde som viser transform template av map of string til termostaten, både med bruk av fast temperatur og ved bruk av temperatur fra variabel (Dette kan være greit hvis en skal ha f.eks natt senking, men har flere forskjellige script som styrer temperaturen. Da trenger en kun endre den i en variabel for så at alt blir riktig i flows’ene).

1 Like

Hadde du kunne lagt ut koden på "set Termostat " delen . Prøver samme , men ikke tale om jeg får den til …

Tenker du på den delen som leser variablen og sier til ternostaten hvilken temperatur den skal sette?

Denne setter temperatur på termostat hos meg i allefall

{
“serv”: “thermostat”,
“type”: “cmd.setpoint.set”,
“val_t”: “str_map”,
“val”: {
“type”: “heat”,
“temp”: “16”
},
“props”: null,
“tags”: null,
“src”: “tplex-ui”,
“ver”: “1”,
“uid”: “1580c262-d887-4853-8b4c-6e98c1ab8f82”
}

Ja får den ikke til å plukke opp string objektet . Virker fint å sette til en gitt default , men ikke variable,.

sette med default får jeg også til , men får den ikke til å plukke opp setpoint fra variabel .
linjene under :

“VariableName”: “test”,
“VariableType”: “str_map”,

   "Id": "41",
      "Type": "action",
      "Label": "nono",
      "SuccessTransition": "35",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "pt:j1/mt:cmd/rt:dev/rn:zigbee/ad:1/sv:thermostat/ad:6_1",
      "Service": "thermostat",
      "ServiceInterface": "cmd.setpoint.get_report",
      "Config": {
        "DefaultValue": {
          "Value": {
            "temp": "21",
            "type": "heat",
            "unit": "C"
          }
        },
        "IsVariableGlobal": true,
        "Props": {},
        "RegisterAsVirtualService": false,
        "ResponseToTopic": null,
        "VariableName": "test",
        "VariableType": "str_map",
        "VirtualServiceGroup": "ch_0",
        "VirtualServiceProps": {}
      },

Da fikk jeg dette til å virke.

Trodde at å sette default variable i ett streng objekt burde virke, men det ble “escaped” i input . (Fikk \ på " tegn som antageligvis ødela streng objektene)

Så kompose med template virka som snus, og den må jeg jo bruke for å få inn variabel i alla fall !!

1 Like

Så bra du fikk det til :smiley: Skulle akkurat til å begynne å se på hva jeg hadde gjort :slight_smile:

Jeg hadde noe tilsvarende i TP før jeg gikk over til Node Red i stedet.
Da hadde jeg en vitrtuell termostat som satt ‘setpoint’ og brukte diverse kalkuleringer og andre kriterier, som til slutt endte med en global variabel med ønsket temp.
Så brukte jeg denne templaten i en transformnode

Tok litt tid før jeg så at du også hadde feilmelding inne i templaten , når du brukte “variable” . Har sjelden vært borte i ett system som virker med feilmelding !!

image

Ikke tenkt på, men som sagt jeg har heller gått over til Node Red

hei bruker du Node Red sammen med FH ? Hvordan Funke det ? har du noen start guide?

Hei,
Jeg bruker Node Red sammen med FH ja.
Node Red kjøres på en Raspberry Pi, som står for seg selv og kommuniserer med FH via MQTT.

Er vel ingen spesiell guide for å få det i gang, men hvis du går for en Raspberry Pi, så fulgte jeg følgende gude for å sette opp selve Raspberryen: Running on Raspberry Pi : Node-RED

Så setter du opp MQTT på futurehome her: https://support.futurehome.no/hc/en-no/articles/360033256491-Local-API-access-over-MQTT-Beta-

Deretter er det bare ‘lerning by doing’. Det er mange å spørre både her inne og i Node-Red forum.