NEWS
[gelöst]-DutyCycle - Telegram Meldung
-
Danke, ich habe es jetzt so, scheint zu funktionieren. (verstanden habe ich es aber leider nicht :shock: )
! ````
createState("DutyCycle.DutyCycle", {
name: 'DutyCycle',
role: 'switch',
type: 'boolean',
desc: 'DutyCycle über 60%',
read: true,
write: true,
def: false,
! });
! on({id: 'hm-rega.0.6172', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("hm-rega.0.6172").val >= 60) {
setState("javascript.0.DutyCycle.DutyCycle"/DutyCycle/, true);
} else if (getState("hm-rega.0.6172").val < 60) {
setState("javascript.0.DutyCycle.DutyCycle"/DutyCycle/, false);
}
});
on({id: 'javascript.0.DutyCycle.DutyCycle', change: 'ne'}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if(value) {
sendTo("telegram", "send", {
text: (['Achtung: ','DutyCycle ist: ',getState("hm-rega.0.6172").val,'%'].join(''))
});
} else {
sendTo("telegram", "send", {
text: (['DutyCycle ','ist wieder unter 60%, ','aktuell sind es: ',getState("hm-rega.0.6172").val,'%'].join(''))
});
}
}); -
was ist in meinem Script falsch ?
Es wird auf change: "any" getriggert, also bei jeder Aktualisierung des Zeitstempels und nicht nur bei Wertänderung.Change nicht angegeben oder übersehe ich das?
Wenn nicht definiert ist default "ne"
> not equal) New value must be not equal to the old one (state.val != oldState.val) If pattern is id-string this value is used by default -
verstanden habe ich es aber leider nicht
Die [https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#on–-subscribe-on-changes-or-updates-of-some-state](https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#on–-subscribe-on-changes-or-updates-of-some-state) kennst Du ?jetzt ja.[emoji3] -
Change nicht angegeben oder übersehe ich das?
Wenn nicht definiert ist default "ne" `
@Doku:Please note, that by default "change" is equal to "any", except when only id as string is set (like on("id", function (){});). In last case change will be set to "ne". `
const idXy = '...'; on(idXy, callback); // Triggert bei Wertänderung on({id: idXy}, callback); // Triggert bei Aktualisierung des Zeitstempels -
Change nicht angegeben oder übersehe ich das?
Wenn nicht definiert ist default "ne" `
@Doku:Please note, that by default "change" is equal to "any", except when only id as string is set (like on("id", function (){});). In last case change will be set to "ne". `
const idXy = '...'; on(idXy, callback); // Triggert bei Wertänderung on({id: idXy}, callback); // Triggert bei Aktualisierung des Zeitstempels ```` `OK. Stimmt :-)
Böse Falle. :-)
-
Ich bin noch ein Newbie hier aber hab einige Jahre auf dem Buckel mit anderen Skriptsprachen etc. auch in der Entwicklung in Teams.
Nichtsdestotrotz praktiziere hier noch ein "Trial & Error", macht einfach mega Spaß mit ioBroker und Heim-Automatisierung. :D
Aus Gründen der Lesbarkeit des Quellcodes empfehle ich aber im Zweifel immer, Default-Werte entweder im Quelltext-Kommentar zu erwähnen oder dennoch mit an die Prozedur zu übergeben. Natürlich macht man das nicht bei Alltags-Funktionen und ich halte mich selbst leider auch nicht immer dran…
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