NEWS
[gelöst]Variablen vom gleicher Typ lassen sich nicht laden
-
Hallo,
mal eine Frage an die Experten.
Ich habe zwei Variablen. Wobei ich die eine mit dem Inhalt der andere zuweisen möchte.
Variable 2 kommmt von Sonoff Adapter, Variable 1 habe ich selber angelgt.
Wenn die über folgende Anweisung zuweise:
` > if ('sonoff.0.sonoff_V4.AM2301_Temperature' > 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1') {setState("javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1"/MaxTempPos_1/, 'sonoff.0.sonoff_V4.AM2301_Temperature', true);
} `
Steht dann bei dem Objekt immer " " und nicht der Wert z.b. 22
Als Typ ist immer "type": "number" angegeben, müsste doch passen oder?
` > Variable 1{
"_id": "javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1",
"type": "state",
"common": {
"name": "MaxTempPos_1",
"role": "",
"type": "number",
"read": true,
"write": true,
"desc": "Manuell erzeugt",
"def": false
},
"native": {},
"from": "system.adapter.admin.0",
"ts": 1532358119191,
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
} `
` > Variable 2 -> {
"_id": "sonoff.0.sonoff_V4.AM2301_Temperature",
"common": {
"type": "number",
"role": "value.temperature",
"read": true,
"write": false,
"unit": "°C",
"name": "sonoff_V4 AM2301 Temperature",
"custom": {
"sql.0": {
"enabled": true,
"changesOnly": true,
"debounce": "1000",
"retention": "31536000",
"changesRelogInterval": "60",
"changesMinDelta": 0,
"storageType": ""
}
}
},
"native": {},
"type": "state",
"from": "system.adapter.sonoff.0",
"ts": 1523710688466,
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
} `
-
if ('sonoff.0.sonoff_V4.AM2301_Temperature' > 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1') { `
Du Vergleichst die IDs der Datenpunkte, nicht deren Werte. Vorschlag:const idTemp = 'sonoff.0.sonoff_V4.AM2301_Temperature'; const idMax = 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1'; var max = getState(idMax).val; if(getState(idTemp).val > max) { max = getState(idTemp).val; setState(idMax, max, true); } on(idTemp, function(dp) { // Trigger bei Wertänderung if(dp.state.val > max) { max = dp.state.val; setState(idMax, max, true); } });
-
if ('sonoff.0.sonoff_V4.AM2301_Temperature' > 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1') { `
Du Vergleichst die IDs der Datenpunkte, nicht deren Werte. Vorschlag:const idTemp = 'sonoff.0.sonoff_V4.AM2301_Temperature'; const idMax = 'javascript.0.Eigene_Variablen.Umwelt.Temperaturen.MaxTempPos_1'; var max = getState(idMax).val; if(getState(idTemp).val > max) { max = getState(idTemp).val; setState(idMax, max, true); } on(idTemp, function(dp) { // Trigger bei Wertänderung if(dp.state.val > max) { max = dp.state.val; setState(idMax, max, true); } }); ```` `
Danke, das mit der ID war der entscheidende Hinweis
-
Schreibe [gelöst] bitte in den Betreff des <u>ersten</u> Beitrags.