NEWS
[gelöst] Skript Frage - 2tes Gerät 10 Minuten später
-
keine Ahnung, aber jetzt wo du das schreibst. Musste ESP/FHEM doppelt
invertieren. Am ESP hängt ein Relais, in ESPeasy muss ich auf invert setzen,
sonst zeigt der nen falschen Status.
In FHEM musste ich das wieder umbiegen und nochmal invertieren, da FHEM
sonst den falschen Status zeigt.
Nur wenn ich beide invertiere, ist der Status in ESPeasy und FHEM korrekt.
Mag das das Problem sein? Hatte ich nicht auf dem Schirm, das das ein Problem
sein könnte, da das manuelle schalten im iobroker auch ohne Probleme geht.
In FHEM sieht das entprechende Attribut so aus:
eventMap /gpio 0 on:off/gpio 0 off:on/status gpio 0:check/
Das Innenlicht ist schonmal angesprungen:
21:46:00.612 [info] javascript.0 script.js.common.Hühnerstall: Innenlicht: true 22:00:00.618 [info] javascript.0 script.js.common.Hühnerstall: Innenlicht: false 22:00:00.639 [info] javascript.0 script.js.common.Hühnerstall: Notlicht: true
Gruß
2880_1.png -
In FHEM sieht das entprechende Attribut so aus: `
Damit kann ich nichts anfangen, denn ich kenne FHEM nicht.Wichtiger wäre herauszufinden, ob es Konfigurationsparameter gibt, die das zyklische Aktualisieren veranlassen.
-
In FHEM sieht das entprechende Attribut so aus: `
Damit kann ich nichts anfangen, denn ich kenne FHEM nicht.Wichtiger wäre herauszufinden, ob es Konfigurationsparameter gibt, die das zyklische Aktualisieren veranlassen. `
FHEM und iobroker weiß ich nicht. Evtl ESPeasy, der sollte eigentlich alle
60 Sekunden den Status an FHEM schicken.
2880_1.png -
Evtl ESPeasy, der sollte eigentlich alle 60 Sekunden den Status an FHEM schicken. `
Das kann schon sein, aber dass FHEM dann auch alle 60 s die Daten an Telnet weiter reicht, kann doch sicherlich verhindert werden (nur bei Änderung senden) ?
@noxx:Das Innenlicht ist schonmal angesprungen: `
Um 22:10 hat sicherlich auch das Notlicht ausgeschaltet ? -
Ja, ging pünktlich aus
Gesendet von meinem GT-I9195 mit Tapatalk
-
Du kannst es natürlich so lassen (change: 'ne'), wobei das die Reaktion auf das setState(id, val) im gleichen Skript ist, während mit ack:true auf die Bestätigung des Aktors (hat tatsächlich reagiert) getriggert wird, was aufgrund der zyklischen Aktualisierung leider nicht funktioniert. Was Du noch versuchen kannst (anstelle change: 'ne' ack: true, oldAck: false
-
danke, probiere ich aus.
! ````
var debug = true; // nach Test auf false setzen !
! var idTemp = "fhem.0.ESP03_Temperatur.Temperature"/ESP03_Temperatur Temperature/;
var idAktor_Innenlicht = "fhem.0.ESP03_Innenlicht.state"/ESP03_Innenlicht state/;
var idAktor_Notlicht = "fhem.0.ESP03_Notlicht.state"/ESP03_Notlicht state/;
var idAktor_Heizung = "fhem.0.ESP03_Heizung.state"/ESP03_Heizung state/;
! var temp = getState(idTemp).val;
var aktor_Innenlicht = getState(idAktor_Innenlicht).val;
var aktor_Notlicht = getState(idAktor_Notlicht).val;
var aktor_Heizung = getState(idAktor_Heizung).val;
var timer = null;
! function Zeitschaltung() {
var tag = compareTime('06:00', '22:00', 'between');
if(tag && !isAstroDay()) {
if(!aktor_Innenlicht) setState(idAktor_Innenlicht, true);
}
else if(aktor_Innenlicht) setState(idAktor_Innenlicht, false);
}
! function heizung() {
if (temp < 0 && !aktor_Heizung) setState(idAktor_Heizung, true);
else if (temp > 1 && aktor_Heizung) setState(idAktor_Heizung, false);
}
! schedule('* * * * *', Zeitschaltung);
! on(idTemp, function(dp) {
temp = dp.state.val;
heizung();
});
! on({id: idAktor_Innenlicht, ack: true, oldAck: false}, function(dp) {
aktor_Innenlicht = dp.state.val;
if(debug) log('Innenlicht: ' + aktor_Innenlicht);
if(!aktor_Innenlicht) setState(idAktor_Notlicht, true); // Notlicht ein
});
! on({id: idAktor_Notlicht, ack: true, oldAck: false}, function(dp) {
aktor_Notlicht = dp.state.val;
if(debug) log('Notlicht: ' + aktor_Notlicht);
if(aktor_Notlicht) { // hat eingeschaltet
if(timer) clearTimeout(timer);
timer = setTimeout(function() {
setState(idAktor_Notlicht, false);
}, 600000); // nach 10 Minuten aus
}
});
! on({id: idAktor_Heizung, ack: true, oldAck: false}, function(dp) {
aktor_Heizung = dp.state.val;
if(debug) log('Heizung: ' + aktor_Heizung);
});Notlicht geht nicht an, gucke mal, ob alles sauber durchläuft. ` > Das kann schon sein, aber dass FHEM dann auch alle 60 s die Daten an das Terminal weiter reicht, kann doch sicherlich verhindert werden (nur bei Änderung senden) ? ` In Fhem ist ja nichts dergleichen eingestellt. Der FHEM Adapter macht ja alles per Telnet. Bin erstmal froh, das es läuft. danke nochmal
-
probiere ich aus. `
Funktioniert es mit ack: true, oldAck: false ? -
Ja, sieht so aus. Danke
Gesendet von meinem GT-I9195 mit Tapatalk
-