Espeasy: Zentrales Kommando- und Ereignishandling

Erstellt am 27. Jan. 2020  ·  3Kommentare  ·  Quelle: letscontrolit/ESPEasy

Derzeit haben wir die Möglichkeit, Befehle aus einer Reihe von Quellen zu erhalten.
Zum Beispiel:

  • serielle Schnittstelle
  • p2p-Controller
  • MQTT (Domotiz/OpenHAB)
  • HTTP-GET
  • Regeln

Das Problem ist, dass es keinen generischen Handler gibt, um einen Befehl zu empfangen und auszuführen.
Zum Beispiel akzeptieren zwei MQTT-Controller (C002 - Domoticz und C005 OpenHAB) Befehle oder Ereignisse.
Aber beide haben ihre eigene einzigartige spezielle Handhabung für einige Plugins.
Für einige spezifische Szenarien kann dies ein gültiger Anwendungsfall sein, aber für die meisten ist es nur Codeduplizierung und trägt zur Verwirrung bei, warum sich die Funktionalität zwischen den Controllern unterscheidet.

Also kurz:

  • Fügen Sie einen generischen Befehlshandler hinzu (oder wählen Sie ihn aus).
  • Finden Sie eine Möglichkeit, bestimmte Befehle oder Ereignisse innerhalb des Plugins und nicht in den Controllern zu behandeln.
  • Richtig erkennen, ob etwas ein Ereignis oder ein Befehl ist, damit wir nicht die "Spaghetti-Methode" verwenden müssen, um zu sehen, welcher Aufruf bei der Behandlung des eingehenden Befehls oder Ereignisses erfolgreich sein könnte.
  • Bewerten Sie die Berechtigungsanforderungen für einige Ereignisse oder Befehle. (Werksreset über MQTT klingt nicht nach einer guten Idee)
Controller Rules Enhancement

Hilfreichster Kommentar

"Spaghetti-Programmierung" versucht zufällige Dinge auszuprobieren und zu sehen, was hängen bleibt.
Analog zum Testen, ob Spaghetti gut gekocht sind. Wenn Sie es an eine Wand werfen und es klebt, ist es in Ordnung. (Na ja, zumindest wurde mir das gesagt, habe es nie ausprobiert)

Es gibt auch "Bananenprogrammierung", die es freigibt und über jede Menge Bugfixes beim Kunden reifen lässt :)

Alle 3 Kommentare

Ah ah ah!!!! Ich kann nicht aufhören zu lachen.

* Proper detect whether something is an event or a command, so we don't have to use the "spaghetti method" to see what call may be successful in handling the incoming command or event.

Was ist eine "Spaghetti-Methode"?
(Achtung: Ich bin Italiener!)
:) :) :)

"Spaghetti-Programmierung" versucht zufällige Dinge auszuprobieren und zu sehen, was hängen bleibt.
Analog zum Testen, ob Spaghetti gut gekocht sind. Wenn Sie es an eine Wand werfen und es klebt, ist es in Ordnung. (Na ja, zumindest wurde mir das gesagt, habe es nie ausprobiert)

Es gibt auch "Bananenprogrammierung", die es freigibt und über jede Menge Bugfixes beim Kunden reifen lässt :)

Analog zum Testen, ob Spaghetti gut gekocht sind. Wenn Sie es an eine Wand werfen und es klebt, ist es in Ordnung. (Na ja, zumindest wurde mir das gesagt, habe es nie ausprobiert)

Das macht zu viel Spaß!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen