NEWS
[gelöst] Klimaanlagen nach eingestellter Zeit ausschalten
-
Ich hätte da vielleicht doch noch eine kleine Frage
... ich habe noch eine Funktion realisiert, dass alle Klimageräte gleichzeitig laufen. Dazu habe ich eine Szene erstellt, die die einzelnen Klimageräte mit bestimmten Werten steuert (max. Kühlleistung).
Der Datenpunkt der Szene sieht folgendermaßen aus:
{ "common": { "name": "Alle_Klimageräte_an", "type": "number", "role": "scene.state", "desc": "Alle Klimageräte an", "enabled": true, "read": true, "write": true, "def": false, "engine": "system.adapter.scenes.0", "smartName": { "de": "Eiszeit" } }, "native": { "onTrue": { "trigger": {}, "cron": null, "astro": null }, "onFalse": { "enabled": true, "trigger": {}, "cron": null, "astro": null }, "easy": true, "burstInterval": 150, "virtualGroup": false, "members": [ { "id": "airconwithme.1.userMode", "setIfTrue": 4, "setIfFalse": null, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.1.userSetpoint", "setIfTrue": 18, "setIfFalse": null, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.1.fanSpeed", "setIfTrue": 4, "setIfFalse": null, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.1.on", "setIfTrue": 1, "setIfFalse": 0, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.2.userMode", "setIfTrue": 4, "setIfFalse": null, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.2.userSetpoint", "setIfTrue": 18, "setIfFalse": null, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.2.fanSpeed", "setIfTrue": 4, "setIfFalse": null, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.2.on", "setIfTrue": 1, "setIfFalse": 0, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.3.userMode", "setIfTrue": 4, "setIfFalse": null, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.3.userSetpoint", "setIfTrue": 18, "setIfFalse": null, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.3.fanSpeed", "setIfTrue": 4, "setIfFalse": null, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 }, { "id": "airconwithme.3.on", "setIfTrue": 1, "setIfFalse": 0, "stopAllDelays": true, "desc": null, "disabled": false, "delay": 0 } ] }, "type": "state", "_id": "scene.0.Alle_Klimageräte_an", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1658407377357, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Jetzt habe ich vor damit auch einen Timer zu realisieren (genau wie bei der Einzelsteuerung).
Hier habe ich wieder das Problem, dass der Datenpunkt des Timers ins negative läuft. Außerdem läuft der Timer zu schnell. Der Wert wird ca. alle 20 Sek. um 1 reduziert. Er sieht so aus:{ "common": { "name": "Timer Klima alle", "desc": "Manuell erzeugt", "role": "state", "type": "number", "read": true, "write": true, "def": 0 }, "type": "state", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1658328739320, "_id": "0_userdata.0.Blockly.Timer_Klima_alle", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Weiß jemand wie das Problem zu beheben ist?
Den Timer habe ich genau wie oben umgesetzt. -
@mojo1985 sagte: Er sieht so aus:
Ändere mal "role" von "state" in "level".
-
@paul53 Es funktioniert. Ich bin begeistert! Aber warum muss ich jetzt für diesen Datenpunkt "level" nehmen? Oder würde die Ausführung der Thematik jetzt den Rahmen sprengen?
-
@mojo1985 sagte: warum muss ich jetzt für diesen Datenpunkt "level" nehmen?
"level" oder "level.timer" ist die korrekte Rolle für eine Zahl, die auch geschrieben werden kann.
Anscheinend wertet der Admin-Adapter neuerdings die Rolle aus? -
@paul53 ah, verstehe!
... und vielen Dank auch für den Link! Zukünftig werde ich den DP mehr Aufmerksamkeit zukommen lassen. Fraglich ist aber, warum es bei den anderen DP mit Rolle "State" funktioniert
-
Doch zu früh gefreut... die Zeit läuft jetzt zwar nicht mehr zu schnell runter. Dafür geht der Wert dennoch ins negative
-
@mojo1985 sagte: geht der Wert dennoch ins negative
Ist die Wandlung nach Zahl enthalten?
-
@paul53 Ja, die Wandlung nach Zahl ist enthalten
-
@mojo1985 sagte: Ja, die Wandlung nach Zahl ist enthalten
Dann kann -1 nur erreicht werden, wenn der eingegebene Wert nicht in eine Zahl > 0 gewandelt werden kann.
-
@paul53 Der Wert wird im Datenpunkt richtig angezeigt und auch ordnungsgemäß runtergezählt.
Spricht etwas dagegen den Wert einfach am Ende des Scripts auf 0 zu setzen? -
@mojo1985 sagte: Spricht etwas dagegen den Wert einfach am Ende des Scripts auf 0 zu setzen?
Das passiert doch, wenn runter gezählt wurde. Bevor das Intervall gestoppt wird, wird der Wert 0 geschrieben.
-
@paul53 Stimmt... dann würde der Wert sicher trotzdem ins negative zählen. Mist.
-
@mojo1985
Begrenze mal den Wert. -
@paul53 Hab ich gerade gemacht. Bringt leider keinen Effekt
-
@mojo1985 sagte: Bringt leider keinen Effekt
Dann poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
-