NEWS
Skript zur Bewässerung
-
Liebe Community,
habe eine Einsteigerfrage zur Programmierung einer Bewässerung. Habe einen Gardena 6-fach-Verteiler, der mechanisch durch den Wasserdruck von Kreis 1-6 durchschaltet. Davor einen mit Homematic-Schaltaktor mit Gardena-Ventil. Aktuell programmiere ich ein passendes Skript, welches weitgehend bereits funktioniert.
Allerdings möchte ich mittels Variablen unterschiedliche Dauern für die einzelnen der 6 Kreise festlegen.
Aktuell habe ich selbiges leider recht umständlich mit einer if-Abfrage gelöst:if (getState(actualcircuit).val == 2) { Dauer = Kreis2min*60000; } else if (getState(actualcircuit).val == 3) { Dauer = Kreis3min*60000; } else if (getState(actualcircuit).val == 4) { Dauer = Kreis4min*60000; } else if (getState(actualcircuit).val == 5) { Dauer = Kreis5min*60000; } else if (getState(actualcircuit).val == 6) { Dauer = Kreis6min*60000; } else { Dauer = Kreis1min*60000; }Um alles zu vereinfachen, würde ich das ungefähr wie folgt lösen:
Dauer = Kreis + Wert von actualcircuit + min (Mit zeitlichen Definitionen gibt es die Variablen Kreis1min bis Kreis6min, je nach Wert von actualcircuit, soll die richtige Variable angesprochen werden)
Mir fehlen leider die Programmierkenntnisse, wie ich das sinnvoll lösen kann.
Kann mir da evtl. jemand einen Tipp geben?
Vielen Dank im Voraus,
LG SebastianWeiss leider nicht, wie man das mit Javascript
-
Liebe Community,
habe eine Einsteigerfrage zur Programmierung einer Bewässerung. Habe einen Gardena 6-fach-Verteiler, der mechanisch durch den Wasserdruck von Kreis 1-6 durchschaltet. Davor einen mit Homematic-Schaltaktor mit Gardena-Ventil. Aktuell programmiere ich ein passendes Skript, welches weitgehend bereits funktioniert.
Allerdings möchte ich mittels Variablen unterschiedliche Dauern für die einzelnen der 6 Kreise festlegen.
Aktuell habe ich selbiges leider recht umständlich mit einer if-Abfrage gelöst:if (getState(actualcircuit).val == 2) { Dauer = Kreis2min*60000; } else if (getState(actualcircuit).val == 3) { Dauer = Kreis3min*60000; } else if (getState(actualcircuit).val == 4) { Dauer = Kreis4min*60000; } else if (getState(actualcircuit).val == 5) { Dauer = Kreis5min*60000; } else if (getState(actualcircuit).val == 6) { Dauer = Kreis6min*60000; } else { Dauer = Kreis1min*60000; }Um alles zu vereinfachen, würde ich das ungefähr wie folgt lösen:
Dauer = Kreis + Wert von actualcircuit + min (Mit zeitlichen Definitionen gibt es die Variablen Kreis1min bis Kreis6min, je nach Wert von actualcircuit, soll die richtige Variable angesprochen werden)
Mir fehlen leider die Programmierkenntnisse, wie ich das sinnvoll lösen kann.
Kann mir da evtl. jemand einen Tipp geben?
Vielen Dank im Voraus,
LG SebastianWeiss leider nicht, wie man das mit Javascript
@sebastian0010 sagte: Variablen Kreis1min bis Kreis6min
Variablenbezeichner lassen sich nicht modifizieren. Alternative: Array mit 6 Werten.
Dauer = 60000 * Kreise[getState(actualcircuit).val - 1]; // Kreise enthält ein Array mit Minutenwerten -
@sebastian0010 sagte: Variablen Kreis1min bis Kreis6min
Variablenbezeichner lassen sich nicht modifizieren. Alternative: Array mit 6 Werten.
Dauer = 60000 * Kreise[getState(actualcircuit).val - 1]; // Kreise enthält ein Array mit Minutenwerten@paul53 Genial! Genau damit war es lösbar. Vielen Dank für den Input, das war mir nicht bewusst, dass man es in dieser Form realisieren muss.

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