NEWS
manuelle/automatische Rollosteuerung
-
@mguenther sagte in manuelle/automatische Rollosteuerung:
sobald das Rollo jetzt aufgrund von den Situationen Schatten oder Nacht automatisch fährt, setzt sich auch die Variable Rollo_manuell auf true.
Wie sieht in diesen Fällen die Log-Ausgabe aus ?
-
-
bzw.
stelle gerade fest, dass sobald die Variable Nacht auf true gesetzt wird, das Rollo über das Programm "Automatische Stuerung" gesteuert wird (da habe ich mir den Status Nacht true/false bei Änderung geloggt).
Hingegen wird beim Setzen des VariablenWertes Nacht auf false die Steuerung über das Schattenprogramm ausgeführt. Ist erst mal nicht falsch, aber etwas verwirrend.. -
Das Log zeigt: Javascript sendet Wert 100, HM-RPC antwortet mit Wert 0. Das hatte ich nicht erwartet. Dann muss man mit Verzögerung arbeiten. Wie lang ist die Rollo-Laufzeit maximal ?
-
@paul53
oha, die ist für jeden Raum anders. Je nachdem, hohe Fenster etc.
in der Küche sind es bis zu 50sek, ich habe aber auch Räume, da sind es "nur" 11sek -
@mguenther sagte in manuelle/automatische Rollosteuerung:
Bei Betätigung des Rollo-Tasters soll die Automatik deaktiviert werden und erst wieder aktiviert werden, wenn das Rollo manuell auf Level 0 (ganz unten) oder Level 100 (ganz hoch) gefahren wird.
Versuche es mal so:
const js = 'system.adapter.javascript.0'; var checkManu = false; on(idRollo, function(dp) { if(checkManu && dp.state.val > 0 && dp.state.val < 90 && dp.state.from != js) setState(idManu, true, true); if(checkManu && (dp.state.val == 0 || dp.state.val == 100)) setState(idManu, false, true); if(dp.state.from == js) checkManu = false; if(!taster_virtu && dp.state.from == js) { setTimeout(function() { checkManu = true; }, 60000); } });
EDIT: korrigiert (s.u.)
-
@paul53 sagte in manuelle/automatische Rollosteuerung:
if(checkManu && (dp.state.val == 0 || dp.state.val == 100) setState(idManu, false, true);
Ich habe aus dem ckeck ein check(Zeile5) gemacht und noch ne Klammer ergänzt (Zeile6), wenn ich alles richtig verstanden habe, müsste das so sein:
if(checkManu && (dp.state.val == 0 || dp.state.val == 100)) setState(idManu, false, true);
-
@mguenther sagte in manuelle/automatische Rollosteuerung:
müsste das so sein:
Korrekt. Sorry für den Vertipper in Zeile 5.
-
@paul53
klappt nicht
Ich hab nen console.log eingebaut und lasse mir die Variablen ausgeben:on(idRollo, function(dp) { console.log("checkManu1 "+checkManu); console.log("from "+dp.state.from); console.log("level "+dp.state.val); if(checkManu && dp.state.val > 0 && dp.state.val < 90 && dp.state.from != js) setState(idManu, true, true); if(checkManu && (dp.state.val == 0 || dp.state.val == 100)) setState(idManu, false, true); if(dp.state.from == js) checkManu = false; if(!taster_virtu && dp.state.from == js) { setTimeout(function() { console.log("TIMEOUT"); checkManu = true; }, 60000); console.log("checkManu2 "+checkManu); } });
im log erscheint nur:
javascript.0 2019-02-16 19:20:36.617 info script.js.Kueche.Rollo_manu_setzen: level 93.5 javascript.0 2019-02-16 19:20:36.616 info script.js.Kueche.Rollo_manu_setzen: from system.adapter.hm-rpc.3 javascript.0 2019-02-16 19:20:36.616 info script.js.Kueche.Rollo_manu_setzen: checkManu1 false javascript.0 2019-02-16 19:20:24.228 info script.js.Kueche.Rollo_manu_setzen: level 74 javascript.0 2019-02-16 19:20:24.227 info script.js.Kueche.Rollo_manu_setzen: from system.adapter.hm-rpc.3 javascript.0 2019-02-16 19:20:24.226 info script.js.Kueche.Rollo_manu_setzen: checkManu1 false javascript.0 2019-02-16 19:20:22.326 info script.js.Kueche.Rollo_manu_setzen: level 70 javascript.0 2019-02-16 19:20:22.326 info script.js.Kueche.Rollo_manu_setzen: from system.adapter.hm-rpc.3 javascript.0 2019-02-16 19:20:22.325 info script.js.Kueche.Rollo_manu_setzen: checkManu1 false javascript.0 2019-02-16 19:20:22.254 info script.js.Kueche.Rollo_manu_setzen: level 100 javascript.0 2019-02-16 19:20:22.254 info script.js.Kueche.Rollo_manu_setzen: from system.adapter.javascript.0 javascript.0 2019-02-16 19:20:22.253 info script.js.Kueche.Rollo_manu_setzen: checkManu1 false
dabei habe ich mal per Taster und einmal per Variable ROLLO_NACHT das Rollo bewegt. Die Variable Rollo_Manuell ändert sich nicht.
-
wobei ich gerade nicht nachvollziehen kann, woher der unterste Eintrag kommt. Wenn ich jetzt die Änderung über ein Programm ausführe kommt im LOG immer
from system.adapter.hm-rpc.3
-
@mguenther sagte in manuelle/automatische Rollosteuerung:
dabei habe ich mal per Taster und einmal per Variable ROLLO_NACHT das Rollo bewegt.
Nach Bewegung per ROLLO_NACHT muss eine Minute gewartet werden bis eine manuelle Bewegung erkannt wird.
-
klappt leider nicht. das aktuelle Programm sieht so aus:
//Rollo_manu für Kueche const idTaster_virtu = 'javascript.0.Kueche.Rollo_virtueller_Taster'/*Rollo virtueller Taster*/; const idManu = 'javascript.0.Kueche.Rollo_manuell'/*Rollo manuell*/; const idRollo = 'hm-rpc.3.MEQ0078539.3.LEVEL'/*Rollo EG04 Küche:3 LEVEL*/ const idTuer = 'javascript.0.Kueche.Rollo_Tuer'/*Rollo Tuer*/; const idLaufzeit ='javascript.0.Rollosteuerung.Zeit_virtuell'/*Zeit virtuell in Stunden*/; var timer = null; var taster_virtu = getState(idTaster_virtu).val; var rollo = getState(idRollo).val; var laufzeit = getState(idLaufzeit).val *60*60000; //Laufzeit in Stunden on(idTaster_virtu, function(dp) { taster_virtu = dp.state.val; var manu = false; if(timer) clearTimeout(timer); // Stopp Timer timer = null; if (taster_virtu) { manu = true; timer = setTimeout(function() { timer = null; setState(idManu, false, true); setState(idTaster_virtu, false, true); }, laufzeit); } setState(idManu, manu, true); }); const js = 'system.adapter.javascript.' + instance; var checkManu = false; on(idRollo, function(dp) { console.log("Bewegung ROLLO"); console.log('FROM '+dp.state.from); console.log("checkManu ANFANG "+checkManu); if(checkManu && dp.state.val > 0 && dp.state.val < 90 && dp.state.from != js) setState(idManu, true, true); if(checkManu && (dp.state.val === 0 || dp.state.val == 100)) setState(idManu, false, true); if(dp.state.from == js) { checkManu = false; if(!taster_virtu) { setTimeout(function() { checkManu = true; console.log('timeout: ' + checkManu); }, 60000); } } console.log("checkManu ENDE "+checkManu); }); on(idLaufzeit, function(dp) { laufzeit = 60*60000 * dp.state.val; });
das ist der LOG dazu:
14:44:52.643 info javascript.0 Start javascript script.js.Kueche.Rollo_manu_setzen 14:44:52.644 info javascript.0 script.js.Kueche.Rollo_manu_setzen: registered 3 subscriptions and 0 schedules 14:45:04.594 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 14:45:04.595 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 14:45:04.595 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 14:45:04.595 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 14:46:16.969 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 14:46:16.970 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 14:46:16.970 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 14:46:16.970 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 14:46:19.797 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 14:46:19.798 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 14:46:19.798 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 14:46:19.798 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 14:48:00.181 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 14:48:00.182 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.javascript.0 14:48:00.182 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 14:48:00.182 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 14:48:00.349 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 14:48:00.350 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 14:48:00.350 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 14:48:00.350 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 14:48:02.620 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 14:48:02.621 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 14:48:02.621 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 14:48:02.621 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 14:48:16.103 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 14:48:16.104 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 14:48:16.105 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 14:48:16.105 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 14:49:00.177 info javascript.0 script.js.Kueche.Rollo_manu_setzen: timeout: true
die letzte Änderung erfolgt durch das Programm Rollo_Schatten - die anderen Veränderungen waren manuell durch mich am Taster
die Variable Rollo_manuell bleibt immer false
-
@mguenther sagte in manuelle/automatische Rollosteuerung:
die Variable Rollo_manuell bleibt immer false
Ich glaube, Du bist zu ungeduldig. Nach einer automatischen Bewegung (FROM system.adapter.javascript.0) muss mind. 1 Minute gewartet werden, bis eine manuelle Bewegung erkannt werden kann.
Der letzte Log-Eintrag isttimeout: true
und genau ab diesem Zeitpunkt wird eine manuelle Bewegung erkannt. Nach diesem Log-Eintrag kommt aber nichts mehr.
Anmerkung: Nach Skriptstart muss erst eine automatische Bewegung erfolgen und dann 1 Minute gewartet werden. Soll manuelle Bewegung gleich nach Skriptstart erkannt werden, ändere die Initialisierung in
var checkManu = true;
-
@paul53 sagte in manuelle/automatische Rollosteuerung:
Anmerkung: Nach Skriptstart muss erst eine automatische Bewegung erfolgen und dann 1 Minute gewartet werden. Soll manuelle Bewegung gleich nach Skriptstart erkannt werden, ändere die Initialisierung in
var checkManu = true;
ja, hatte ich schon geändert. klappt aber leider nicht immer. Ich hatte vorher das Rollo manuell eingestellt, funktioniert - die Variable Rollo_manuell wird entsprechend gesetzt. dann habe ich Schatten aktiviert und das Rollo manuell hoch gefahren. Auch das ging und erst sprang die Variable Rollo_manuell auf false und sofort stellte sich die Beschattung ein. Dann habe ich aber die Tür geöffnet, das Rollo fuhr entsprechend hoch, ich schloss die Tür, das Rollo fuhr wieder auf die Schattenwerte, aber dann sprang die Variable Rollo_manuell auf true. Damit ist die Automation aus.
-
@mguenther sagte in manuelle/automatische Rollosteuerung:
ich schloss die Tür, das Rollo fuhr wieder auf die Schattenwerte, aber dann sprang die Variable Rollo_manuell auf true. Damit ist die Automation aus.
Dann muss sich die Rolloposition noch später als 1 Minute nach dem Schließen der Tür geändert haben ?
-
also, genau so ist es. Ich habe jetzt mehrere Szenarien durchgestestet. Immer wenn ich nach dem timeout etwas ändere, geht es. Ändert sich aber etwas innerhalb des timeouts, funktioniert das Skript leider nicht mehr. Anbei der Log von 2 Szenen:
Rollo steht auf PositionXY und Schatten ist aktiviert. Rollo bleibt auf Position stehen Manuell von PunktXY bis nach oben 16:18:12.852 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:18:12.853 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:18:12.853 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG true 16:18:12.853 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG true 16:18:12.854 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE true 16:18:12.854 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE true ABER, Variable Rollo_manuell springt von true auf false Änderung durch SCHATTEN an 16:18:27.577 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:18:27.578 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.javascript.0 16:18:27.578 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG true 16:18:27.579 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:18:27.579 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:18:27.580 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:18:27.766 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:18:27.767 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:18:27.767 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:18:27.767 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:18:27.767 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:18:27.767 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:18:55.169 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:18:55.170 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:18:55.170 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:18:55.170 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:18:55.170 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:18:55.170 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:19:27.576 info javascript.0 script.js.Kueche.Rollo_manu_setzen: timeout: true Änderung durch TÜR AUF 16:20:36.383 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:20:36.383 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.javascript.0 16:20:36.383 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG true 16:20:36.383 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:20:36.383 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:20:36.383 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:20:36.456 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:20:36.456 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:20:36.456 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:20:36.456 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:20:36.457 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:20:36.457 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:21:08.903 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:21:08.904 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:21:08.904 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:21:08.904 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:21:08.905 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:21:08.905 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:21:36.382 info javascript.0 script.js.Kueche.Rollo_manu_setzen: timeout: true Änderung durch TÜR ZU 16:26:50.191 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:26:50.192 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.javascript.0 16:26:50.192 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG true 16:26:50.192 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:26:50.192 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:26:50.192 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:26:50.260 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:26:50.261 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:26:50.261 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:26:50.261 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:26:50.261 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:26:50.261 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:27:17.631 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:27:17.631 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:27:17.631 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:27:17.631 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:27:17.631 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:27:17.632 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:27:50.191 info javascript.0 script.js.Kueche.Rollo_manu_setzen: timeout: true Änderung durch Schatten aus 16:32:14.790 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:32:14.791 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.javascript.0 16:32:14.792 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG true 16:32:14.792 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:32:14.792 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:32:14.792 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:32:14.969 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:32:14.970 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:32:14.970 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:32:14.970 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:32:14.970 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:32:14.970 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:32:47.433 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:32:47.439 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:32:47.440 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:32:47.440 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:32:47.440 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:32:47.440 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:33:14.786 info javascript.0 script.js.Kueche.Rollo_manu_setzen: timeout: true neue Situation Rollo ist oben, Schatten wird aktiviert Änderung durch Schatten an 16:35:23.694 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:35:23.694 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.javascript.0 16:35:23.694 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG true 16:35:23.695 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:35:23.695 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:35:23.695 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:35:23.864 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:35:23.865 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:35:23.865 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:35:23.865 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:35:23.865 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:35:23.865 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:35:51.281 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:35:51.282 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:35:51.283 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:35:51.283 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:35:51.283 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:35:51.283 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:36:23.693 info javascript.0 script.js.Kueche.Rollo_manu_setzen: timeout: true Tür auf und ein paar Sekunden später gleich wieder zu 16:46:01.475 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:46:01.475 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.javascript.0 16:46:01.476 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG true 16:46:01.476 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:46:01.476 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:46:01.476 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:46:01.539 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:46:01.539 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:46:01.539 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:46:01.540 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:46:01.540 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:46:01.540 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:46:03.463 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:46:03.463 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:46:03.463 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:46:03.463 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:46:03.463 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:46:03.464 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:46:33.952 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:46:33.953 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:46:33.954 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:46:33.954 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:46:33.954 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:46:33.954 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:46:40.480 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:46:40.480 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.javascript.0 16:46:40.480 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:46:40.481 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:46:40.481 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:46:40.481 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:46:40.539 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:46:40.542 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:46:40.542 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:46:40.542 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:46:40.542 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:46:40.542 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:46:42.503 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:46:42.504 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:46:42.504 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG false 16:46:42.504 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:46:42.504 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE false 16:46:42.504 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:47:01.472 info javascript.0 script.js.Kueche.Rollo_manu_setzen: timeout: true 16:47:07.961 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Bewegung ROLLO 16:47:07.962 info javascript.0 script.js.Kueche.Rollo_manu_setzen: FROM system.adapter.hm-rpc.3 16:47:07.963 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ANFANG true 16:47:07.963 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ANFANG false 16:47:07.963 info javascript.0 script.js.Kueche.Rollo_manu_setzen: checkManu ENDE true 16:47:07.963 info javascript.0 script.js.Kueche.Rollo_manu_setzen: Rollo_manuell ENDE false 16:47:40.481 info javascript.0 script.js.Kueche.Rollo_manu_setzen: timeout: true und die Variable Rollo_manuell steht auf true, keine Automation mehr möglich
-
@mguenther
Alles klar: Es wurde ein zweiter Timer gestartet. Ändere bitte:var timer2 = null; on(idRollo, function(dp) { console.log("Bewegung ROLLO"); console.log('FROM '+dp.state.from); console.log("Position "+dp.state.val); if(checkManu && dp.state.val > 0 && dp.state.val < 90 && dp.state.from != js) setState(idManu, true, true); if(checkManu && (dp.state.val === 0 || dp.state.val == 100)) setState(idManu, false, true); if(dp.state.from == js) { checkManu = false; if(!taster_virtu) { if(timer2) clearTimeout(timer2); timer2 = setTimeout(function() { checkManu = true; timer2 = null; console.log('timeout: ' + checkManu); }, 60000); } } console.log("checkManu ENDE "+checkManu); });
EDIT: timer --> timer2
-
nachdem HIER der entscheidene Hinweis kam, Skript zum Setzen des Datenpunkts Rollo_manuell komplett umgestellt:
const idManu = 'javascript.0.Kueche.Rollo_manuell'/*Rollo manuell*/; const idRollo = 'hm-rpc.3.MEQ0078539.3.LEVEL'/*Rollo EG04 Küche:3 LEVEL*/; const idTaste1='hm-rpc.3.MEQ0078539.1.PRESS_SHORT'/*Rollo EG04 Küche:1 PRESS SHORT*/; const idTaste2='hm-rpc.3.MEQ0078539.1.PRESS_LONG'/*Rollo EG04 Küche:1 PRESS LONG*/ const idTaste3='hm-rpc.3.MEQ0078539.2.PRESS_SHORT'/*Rollo EG04 Küche:2 PRESS SHORT*/; const idTaste4='hm-rpc.3.MEQ0078539.2.PRESS_LONG'/*Rollo EG04 Küche:2 PRESS LONG*/ const idLaufzeit ='javascript.0.Rollosteuerung.Zeit_virtuell'/*Zeit virtuell in Stunden*/; const idTaster_virtu = 'javascript.0.Kueche.Rollo_virtueller_Taster'/*Rollo virtueller Taster*/; var timer = null; var taster_virtu = getState(idTaster_virtu).val; var laufzeit = getState(idLaufzeit).val *60*60000; //Laufzeit in Stunden on(idTaster_virtu, function(dp) { taster_virtu = dp.state.val; var manu = false; if(timer) clearTimeout(timer); // Stopp Timer timer = null; if (taster_virtu) { manu = true; timer = setTimeout(function() { timer = null; setState(idManu, false, true); setState(idTaster_virtu, false, true); }, laufzeit); } setState(idManu, manu, true); }); on(idRollo, function(dp) { if(dp.state.val === 0 || dp.state.val == 100) setState(idManu, false, true); }); on({id: idTaste1}, function() { setState(idManu, true, true); }); on({id: idTaste2}, function() { setState(idManu, true, true); }); on({id: idTaste3}, function() { setState(idManu, true, true); }); on({id: idTaste4}, function() { setState(idManu, true, true); });
Danke Paul, wie immer...
-
@mguenther sagte in [gelöst]manuelle/automatische Rollosteuerung:
nachdem HIER der entscheidene Hinweis kam, Skript zum Setzen des Datenpunkts Rollo_manuell komplett umgestellt:
const idManu = 'javascript.0.Kueche.Rollo_manuell'/*Rollo manuell*/; const idRollo = 'hm-rpc.3.MEQ0078539.3.LEVEL'/*Rollo EG04 Küche:3 LEVEL*/; const idTaste1='hm-rpc.3.MEQ0078539.1.PRESS_SHORT'/*Rollo EG04 Küche:1 PRESS SHORT*/; const idTaste2='hm-rpc.3.MEQ0078539.1.PRESS_LONG'/*Rollo EG04 Küche:1 PRESS LONG*/ const idTaste3='hm-rpc.3.MEQ0078539.2.PRESS_SHORT'/*Rollo EG04 Küche:2 PRESS SHORT*/; const idTaste4='hm-rpc.3.MEQ0078539.2.PRESS_LONG'/*Rollo EG04 Küche:2 PRESS LONG*/ const idLaufzeit ='javascript.0.Rollosteuerung.Zeit_virtuell'/*Zeit virtuell in Stunden*/; const idTaster_virtu = 'javascript.0.Kueche.Rollo_virtueller_Taster'/*Rollo virtueller Taster*/; var timer = null; var taster_virtu = getState(idTaster_virtu).val; var laufzeit = getState(idLaufzeit).val *60*60000; //Laufzeit in Stunden on(idTaster_virtu, function(dp) { taster_virtu = dp.state.val; var manu = false; if(timer) clearTimeout(timer); // Stopp Timer timer = null; if (taster_virtu) { manu = true; timer = setTimeout(function() { timer = null; setState(idManu, false, true); setState(idTaster_virtu, false, true); }, laufzeit); } setState(idManu, manu, true); }); on(idRollo, function(dp) { if(dp.state.val === 0 || dp.state.val == 100) setState(idManu, false, true); }); on({id: idTaste1}, function() { setState(idManu, true, true); }); on({id: idTaste2}, function() { setState(idManu, true, true); }); on({id: idTaste3}, function() { setState(idManu, true, true); }); on({id: idTaste4}, function() { setState(idManu, true, true); });
Danke Paul, wie immer...
Hallo Zusammen,
irgendwie klappt es leider nicht so ganz. Wenn das Rollo auf 100% geht, wird nicht immer die Variable Rollo_manuell auf false gesetzt - warum, weiß ich nicht, trotz der Zeile:on(idRollo, function(dp) { if(dp.state.val === 0 || dp.state.val == 100) setState(idManu, false, true); });
Ich finde den Fehler nicht, es ist halt auch nicht reproduzierbar. Mal taucht dieser Fall auf. Erste Idee wäre jetzt nen Workaround.
Frage alle 5 Minuten ab, ob (Rollo_manuell = true), dann prüfe den Rollo-Level.
Wenn Wert = 0 oder 100, dann (Rollo_manuell = false)oder?
wie mach ich das mit dem Schedule?Zweite Idee wäre ne kurze Verzögerung beim Setzen der Variable Rollo_auto -irgendwie denke ich, dass es da ein Überlagern gibt...