NEWS
[Gelöst] [Blockly] Rollladen mit Lux wert fahren
-
@Homer1976:setState('javascript.0.Rollladen_Hoch/Runter', false, true); // aktualisiere Rolladen_Hoch/Runter mit unwahr on('javascript.0.Rollladen_Hoch/Runter', function(dp) { if(dp.state.val) Jalousie_runter(); }); } }); ```` `Nein, den Trigger mit dem Funktionsaufruf ganz an das Ende des Skripts setzen !
-
// Bei Sonnenuntergang (kleiner 4 Lux) on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('*** Lux hat sich aktualisiert'); if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 4 ) { console.log('*** Jalousie runter auf wahr setzen'); setState('javascript.0.Rollladen_Hoch/Runter', true, true); // aktualisiere Rolladen_Hoch/Runter mit wahr } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) { console.log('*** Jalousie runter auf unwahr setzen'); setState('javascript.0.Rollladen_Hoch/Runter', false, true); // aktualisiere Rolladen_Hoch/Runter mit unwahr } }); // ----------------------------------------------- // Aktionen // ----------------------------------------------- function Jalousie_oben_hoch() { // Abbruch bei deaktivierter Automatik if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; } log("Jalousie oben hoch"); // Status setzen (Standard) var lvJalBad = 100; var lvJalFlur = 100; var lvJalWohnrechts = 100; var lvJalWohnlinks = 100; var lvJalKueche = 100; // Status setzen (Ausnahmen) if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) { lvJalWohnrechts = 0; lvJalWohnlinks = 0; } // Ausführen setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad); setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur); setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts); setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks); setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche); } function Jalousie_unten_hoch() { // Abbruch bei deaktivierter Automatik if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; } log("Jalousie unten hoch"); // Status setzen (Standard) var lvJalKZ = 100; var lvJalHWR = 100; var lvJalBad = 100; var lvJalFlur = 100; var lvJalWohnrechts = 100; var lvJalWohnlinks = 100; var lvJalBalkontuer = 100; var lvJalSZ = 100; var lvJalKueche = 100; var lvJalBadoben = 1; // Status setzen (Ausnahmen) if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) { lvJalWohnrechts = 40; lvJalWohnlinks = 40; if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) { lvJalFlur = 60; } else { lvJalWohnrechts = 40; } lvJalWohnlinks = 40; } // Ausführen setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ); setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR); setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad); setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur); setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts); setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks); setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer); setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ); setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche); setState("hm-rpc.1.LEQ1211399.3.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben); } function Jalousie_runter () { // Abbruch bei deaktivierter Automatik if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; } log("Jalousie runter"); // Status setzen (Standard) var lvJalKZ = 0; var lvJalHWR = 0; var lvJalBad = 0; var lvJalFlur = 0; var lvJalWohnrechts = 0; var lvJalWohnlinks = 0; var lvJalBalkontuer = 0; var lvJalSZ = 0; var lvJalKueche = 0; var lvJalBadoben = 1; // Status setzen (Ausnahmen) // Tür Flur Sperre (0 = geschlossen, 1 = gekippt, 2 = offen) if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) { lvJalFlur = 100; } // Ausführen setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ); setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR); setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer .LEVEL*/, lvJalBad); setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur); setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts); setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks); setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer); setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ); setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche); setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben); on('javascript.0.Rollladen_Hoch/Runter', function(dp) { if(dp.state.val) Jalousie_runter(); }); } -
Oder mache es ohne den Datenpunkt 'javascript.0.Rollladen_Hoch/Runter', sondern mit einer Skriptvariablen Rollos_unten
// Bei Sonnenuntergang (kleiner 4 Lux) var Rollos_unten = false; on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('*** Lux hat sich aktualisiert'); if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 4 ) { console.log('*** Jalousie runter auf wahr setzen'); if(!Rollos_unten) Jalousie_runter(); // Funktionsaufruf zum Runterfahren der Rollos Rollos_unten = true; } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) { console.log('*** Jalousie runter auf unwahr setzen'); Rollos_unten = false; } }); -
@Homer1976:so wie als letztes beschrieben funktioniert es Klasse. `
Das freut mich für Dich.
@Homer1976:Wenn es nicht passt nimm es mir nicht übel. `
Warum sollte ich ? Jeder hat mal angefangen.
@Homer1976:setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben); on('javascript.0.Rollladen_Hoch/Runter', function(dp) { if(dp.state.val) Jalousie_runter(); }); } ```` `Für den Fall, dass es woanders gebraucht wird: Der Trigger muss außerhalb der Funktion, die aufgerufen wird, deklariert werden.
setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben); } // Ende der Funktion on('javascript.0.Rollladen_Hoch/Runter', function(dp) { if(dp.state.val) Jalousie_runter(); }); -
@Homer1976:das Script löst jetzt bei jeder Aktualisierung des Helligkeitsensor immer wieder aus und die Aktoren schalten dann jedes mal. `
Ganau das soll durch die Skriptvariable Rollos_unten verhindert werden, solange die Helligkeit nicht wieder über 100 steigt.if(!Rollos_unten) Jalousie_runter(); // Funktionsaufruf zum Runterfahren der Rollos Rollos_unten = true;Oder verwendest du die Variante mit dem Datenpunkt 'javascript.0.Rollladen_Hoch/Runter' ? Dann soll dies die Triggerung "bei Änderung" verhindern.
-
// Bei Sonnenuntergang (kleiner 4 Lux) var Rollos_unten = false; on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('*** Lux hat sich aktualisiert'); if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 3 ) { console.log('*** Jalousie runter auf wahr setzen'); if(!Rollos_unten) Jalousie_runter(); // Funktionsaufruf zum Runterfahren der Rollos Rollos_runter = true; } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) { console.log('*** Jalousie runter auf unwahr setzen'); Rollos_unten = false; } }); // ----------------------------------------------- // Aktionen // ----------------------------------------------- function Jalousie_oben_hoch() { // Abbruch bei deaktivierter Automatik if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; } log("Jalousie oben hoch"); // Status setzen (Standard) var lvJalBad = 100; var lvJalFlur = 100; var lvJalWohnrechts = 100; var lvJalWohnlinks = 100; var lvJalKueche = 100; // Status setzen (Ausnahmen) if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) { lvJalWohnrechts = 0; lvJalWohnlinks = 0; } // Ausführen setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad); setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur); setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts); setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks); setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche); } function Jalousie_unten_hoch() { // Abbruch bei deaktivierter Automatik if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; } log("Jalousie unten hoch"); // Status setzen (Standard) var lvJalKZ = 100; var lvJalHWR = 100; var lvJalBad = 100; var lvJalFlur = 100; var lvJalWohnrechts = 100; var lvJalWohnlinks = 100; var lvJalBalkontuer = 100; var lvJalSZ = 100; var lvJalKueche = 100; var lvJalBadoben = 1; // Status setzen (Ausnahmen) if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) { lvJalWohnrechts = 40; lvJalWohnlinks = 40; if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) { lvJalFlur = 60; } else { lvJalWohnrechts = 40; } lvJalWohnlinks = 40; } // Ausführen setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ); setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR); setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad); setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur); setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts); setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks); setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer); setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ); setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche); setState("hm-rpc.1.LEQ1211399.3.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben); } function Jalousie_runter () { // Abbruch bei deaktivierter Automatik if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; } log("Jalousie runter"); // Status setzen (Standard) var lvJalKZ = 0; var lvJalHWR = 0; var lvJalBad = 0; var lvJalFlur = 0; var lvJalWohnrechts = 0; var lvJalWohnlinks = 0; var lvJalBalkontuer = 0; var lvJalSZ = 0; var lvJalKueche = 0; var lvJalBadoben = 1; // Status setzen (Ausnahmen) // Tür Flur Sperre (0 = geschlossen, 1 = gekippt, 2 = offen) if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) { lvJalFlur = 100; } // Ausführen setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ); setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR); setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer .LEVEL*/, lvJalBad); setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur); setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts); setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks); setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer); setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ); setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche); setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben); } -
[code// Bei Sonnenuntergang (kleiner 4 Lux)
var Rollos_unten = false;
on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
console.log('*** Lux hat sich aktualisiert');
if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 3 ) {
console.log('*** Jalousie runter auf wahr setzen');
if(!Rollos_unten) Jalousie_runter(); // Funktionsaufruf zum Runterfahren der Rollos
Rollos_unten = true;
} else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) {
console.log('*** Jalousie runter auf unwahr setzen');
Rollos_unten = false;
}
});
]
-
// Bei Sonnenuntergang (kleiner 4 Lux) var Rollos_unten = false; on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('*** Lux hat sich aktualisiert'); if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 3 ) { console.log('*** Jalousie runter auf wahr setzen'); if(!Rollos_unten) Jalousie_runter(); // Funktionsaufruf zum Runterfahren der Rollos Rollos_unten = true; } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) { console.log('*** Jalousie runter auf unwahr setzen'); Rollos_unten = false; } }); -
Ui jetzt habt ihr soviel in geschrieben leider kein Blockly Skript ;) dann muss ich mal die Tage etwas Zeit investieren um es zu verstehen.
Gruß Christian
-
@Homer1976:Schaltet trotzdem. ? `
Wirklich ? Dann logge mal die Skriptvariable mit:// Bei Sonnenuntergang (kleiner 4 Lux) var Rollos_unten = false; on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('*** Lux hat sich aktualisiert ' + Rollos_unten); // und Anzeige Variable if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 3 ) { console.log('*** Jalousie runter auf wahr setzen'); if(!Rollos_unten) Jalousie_runter(); // Funktionsaufruf zum Runterfahren der Rollos Rollos_unten = true; } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) { console.log('*** Jalousie runter auf unwahr setzen'); Rollos_unten = false; } }); -
@Homer1976:fragt ab aber schaltet nicht. `
Dann kannst Du noch überflüssige Sachen (die nur die CPU unnötig belasten) rauswerfen.// Bei Sonnenuntergang (kleiner 4 Lux) var Rollos_unten = false; on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) { // console.log('*** Lux hat sich aktualisiert ' + Rollos_unten); // und Anzeige Variable if (obj.state.val < 3 ) { // console.log('*** Jalousie runter auf wahr setzen'); if(!Rollos_unten) Jalousie_runter(); // Funktionsaufruf zum Runterfahren der Rollos Rollos_unten = true; } else if (obj.state.val > 100) { // console.log('*** Jalousie runter auf unwahr setzen'); Rollos_unten = false; } });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden