Zentralschalter

  • Moin,

    hab heute mein erstes eigenes Script erstellt und wollte es einfach mal zeigen. Ich hab hier nen Sonoff RF und den Taster wollte ich eigentlich nur als zentralen Ausschalter an der Haustür benutzen. Ich hab der Einfachheit halber hier nur eine Lampe geschaltet.

    Jetzt hab ich daraus auch nen zentralen Einschalter (Paniktaster) gemacht. Es funktioniert wie ich will die Frage ist nur ob das eleganter zu lösen ist. Für eventuelle Kritik bin ich gerne offen.

    1 Tastendruck = aus, 3 Tastendrücke innerhalb von 5 Sekunden = an

    40x Shelly/Sonoff (Tasmota)

    2 x Yeelight (Xiaomi)

    Raspberry Pi4b mit ioBroker und ner kleinen VIS

    Conbee2 mit Ikea, Xiaomi und Philips Aktoren

  • jou da kann man für das erste Blockly nicht meckern.

    Da kann man 2 Dinge änder.

    Erstens den zweiten Falls Block durch Erweiterung des ersten durch falls sonst, wobei das so ne Sache ist und getestet werden muss. Hab da selber schon komische Sachen gesehen.

    Zweitens, was in dem Fall aber auch nicht so tragisch ist, vor dem timeout sollte immer genau dieser timeout gestoppt werden damit nicht mehrere timeout gestartet werden.

    In dem Blockly wird jedesmal der timeout gestartet, wenn mehr oder weniger als 3 mal getestet wird und somit das Rücksetzen selten wirklich noch 5 Sekunden durchgeführt, was nicht wirklich tragisch ist, aber nicht gewollt.

  • wobei das so ne Sache ist und getestet werden muss. Hab da selber schon komische Sachen gesehen.

    Wenn ich das richtig sehe, lautet die angesprochene Kontrollstruktur in klassisch Text basierter Programmierweise if Prüfung 1 ... elif Prüfung 2 ... elif Prüfung 3 ... else . Da hatte ich auch schon "komische" Sachen, was meist (oder immer?) mit der Reihenfolge der zu prüfenden Bedingungen zusammenhing. Nur mal so als Gedanke für den Hinterkopf.

  • Genaue, da muss man bisschen aufpassen wie man was abfragt und wie es mit den andern if Prüfungen in die Quere kommen kann. Getrennte Blöcke sind da weniger problematisch, aber auch unschöner und er wollte ne Optimierung.

    Optimieren heißt auch immer verkürzen und da werden eben in der Regel doppelte oder auf den ersten Blick unnötige Dinge entfernt. Wenn alles passt, ändert sich am gewünschten Ergebnis des Script nichts.