NEWS
Variablen, oder enum als bedingung
-
Hallo, ich möchte anhand von gewissen Ereignissen bestimmte Aktoren schalten.
was findet ihr schöner, / sauberer, oder einfacher zu lesen? (Ist nur einBeispiel)
A:
let freigabWeiterschaltung = false; on("VeräderterState_1",(dp)=>{ freigabWeiterschaltung = true; }); on("VeräderterState_2",(dp)=>{ if(freigabWeiterschaltung){ freigabeWeiterschaltung = false; setState("MeinAktor",true); } });
B:
const automatikSchritt = { bereit : 0, freigabeWeiterschaltung : 1 } let automatik = automatikSchritt.bereit; on("VeräderterState_1",(dp)=>{ automatik = automatikSchritt.freigabeWeiterschaltung; }); on("VeräderterState_2",(dp)=>{ if(automatik = automatikSchritt.freigabeWeiterschaltung){ automatik = automatikSchritt.bereit; setState("MeinAktor",true); } });
-
@ben1983 sagte: einfacher zu lesen?
Variante A.
Was soll "enum" in der Überschrift? automatikSchritt ist ein Objekt. Variante B funktioniert nicht, da nicht die Variable automatic abgefragt wird, sondern ein konstanter Wert.
-
@paul53 doch das funktioniert, sonst würde gerade bei mir garnichts gehen.
Ok dann als enum deklariert und nicht als Objekt.
So war es ja gemeint. -
@paul53 Grundsätzlich könnte man es ja mi object.freez denklariern oder so.
Frage war ja nur, wie andere generell vorgehen.
Lieber einzelnen variablen deklarieren, oder entsprechend einen wert einer "automatik" zuweisen und diesen quasi als enum abfragen?EDIT: Habe das oben geändert, mein beispiel war natürlich falch, da hast du recht
-
@paul53 wie deklarierst Du denn eine enum?
Ps. Was meinst Du zu der Grubdsatzfrage?
Lieber einzelne Variablen, oder lieber richtig enum / StateId? -
@ben1983 sagte: wie deklarierst Du denn eine enum?
JavaScript kennt keinen enum-Datentyp. ioBroker kennt enums(Aufzählungen) für z.B. Räume(rooms), Gewerke(functions).
-
@paul53 ok,
Dann aber nochmal die Frage, was würdest du bevorzugen. A, oder B?Bei B wäre halt ein „Rücksetzen“ über lediglich eine Variable möglich.
Nachteil wäre man würde natürlich dann alles zurücksetzen.
-
@ben1983 sagte: was würdest du bevorzugen. A, oder B?
Ich würde die einfachere Version A bevorzugen.
-
@paul53 ok, danke für die Info / Meinung
-
@paul53 Ich habe für mich die "goldene" Mitte gewählt.
Finde ich bei mehreren Stati ganz praktisch.let automatikstatus = { freigabeWeiterschaltung : false } on("VeräderterState_1",(dp)=>{ automatikstatus.freigabWeiterschaltung = true; }); on("VeräderterState_2",(dp)=>{ if(automatikstatus.freigabWeiterschaltung){ automatikstatus.freigabeWeiterschaltung = false; setState("MeinAktor",true); } });