„sonst falls“

Sie müssen wissen, ich liebe Updates. Das Corona-Wochenende habe ich dazu genutzt den Server für die Heimautomatisierung auf Stand zu bringen und das war mehr als nur ein apt-get update. Wobei es genau damit begonnen hat, aber das Setup ist etwas komplizierter und das Update hat sich entwickelt. Aber irgendwann waren alle LXD- und Docker-Container auf Stand und ich war sehr froh dass alles wieder lief! Das eigentliche Drama hat etwas zeitversetzt angefangen weil die Skripte der Heimautomatisierung nicht mehr funktioniert haben. Konkret konnten wir das Licht zwar ein, aber nicht mehr ausschalten.

Es hat mich bestimmt eine Stunde Log-File Analyse gekostet bis ich es endlich verstanden hatte: Der falls Baustein aus Blocky (eine if-than Kombination in bunt) wurde geändert! Absoluter Skandal, aber absolut nachvollziehbar. Vor dem Update war es nämlich so dass der mache-Zweig in dem man gelandet ist, abgearbeitet und der Auswerteblock anschließend beendet wurde. Nach dem Update war das nicht mehr der Fall, der Auswerteblock wurde einfach weiter abgearbeitet. Das hat dazu geführt dass die Lampen zwar kurz aus, aber danach sofort wieder eingeschaltet wurden. Die Lösung heißt „sonst falls“ und ist ungefähr ein else-if. Wenn man das weiß, dann ist die Lösung leicht:

AltNeu
falls: Licht ein
mache: schalte Licht aus
falls: Licht aus
mache: schalte Licht ein
falls: Licht ein
mache: schalte Licht aus
sonst falls: Licht aus
mache: schalte Licht ein

Jetzt läuft wieder alles und alle sind froh. Ich hab ein Update gemacht und die Chefin kann wieder Lampen ausschalten. Alle sind zufrieden.

Schreibe einen Kommentar