NEWS

manuelle/automatische Rollosteuerung


  • @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 ist

    timeout: 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...

Suggested Topics

  • 1
  • 10
  • 9
  • 13
  • 1
  • 14
  • 4
  • 15

1.3k
Online

36.7k
Users

42.4k
Topics

587.4k
Posts