Hilfe beim Strukturieren

Hi,

ich erhoffe mir von euch ein paar Tipps, denn ich denke ich mache es mir an manchen Stellen etwas zu schwer.

Ich habe mit IPS angefangen, wie wohl jeder hier mal, man legt ein paar Geräte an, dann kommen die ersten Scripte, alles einfach, nix besonderes. Dann versucht man sich in etwas ausgefeilteren Scripten oder ganzen Scenarien.

Dann stellt man fest, dass man etwas wichtiges vergessen hat, nämlich so etwas wie Grundfunktionen. Ich will es mal an einem Beispiel beschreiben:

Ich habe einen Brunnen mit dazu gehöriger Beleuchtung, beide hängen an einem 4-Kanal-Schalter. Dieser wurde zuerst Zeitgesteuert, dann hab ich nen Bewegungsmelder angebracht und der wurde der Auslöser…damit fing das Übel an. Der Einschalt-Kontakt war der Bewegungsmelder für den Brunnen. Wenn es jetzt dunkel war, sollte auch das Licht angehen. Dann hab ich noch nen grundsätzlichen „AUS“-Schalter gescriptet, welchen ich im Winter umlege, damit der Brunnen nicht an geht. Dann noch besondere Scripte, wenn der Brunnen läuft aber es dunkel wird (aktuel per Zeit gesteuert), damit dann auch das Licht dazu an geht. Dann kam noch ne Abfrage, die sicherstellt, dass der Timer des Bewegungsmelders nicht den Brunnen ausschaltet, wenn ich ihn von Hand angeschaltet hab (wenn wir abends draußen sitzen und er durchgängig laufen soll). usw. usw. … so sammeln sich zig KOnfigurationsschalter, Zustände und Scenarien-Schalter bei allen möglichen Scripten, welche ich bald nicht mehr in Abfragen unter bringe, weil die Kombinationen absolut undurchsichtig werden. zig IF-Wenn-Else-Zweige, verschachtelt , verschachtelt, verschachtelt… ich denke ihr seht was ich meine. Irgendwie hab ich das Gefühl ich fange das ganze falsch an. Wie macht ihr sowas?

Mmmh, anscheinend hat keiner meine Probleme :wink:

Vielleicht kennt ja jemand nen gutes Beispiel für die Abarbeitung von Entscheidungstabellen in PHP?

Ich würde versuchen deine Logik einfach in ein Skript zu packen, welches sich genau um diese Beleuchtungsteuerung kümmert. Viele Wege führen halt nach Rom und jeder muss da etwas finden, dass für ihn passt.

Es gibt keine optimale Antwort auf deine Frage.

paresy

Naja, das war hier auch nur als eins von vielen Beispielen gemeint… Mittlerweile hat jedes steuerbare oder steuernde Gerät ein eigenes Script, was nur für die Schaltung zuständig ist, um vorher gewisse andere Umstände abzufragen. z.B. selbst einfache Sache: Fenster geht auf (Veränderung über FHT80) … normalerweise wird nur Temperatur geschaltet… aber wenn das Scenario „bin nicht zuhause“ aktiv ist wird eine unerwartete Fensteröffnung als Alarm per Mail versendet. Und das sammelt sich halt bei jedem Gerät und jeder Eventualität. Alle Scripte haben mittlerweile 1-2 Seiten nur mit If-Else-Zweigen, durch die ich selbst nicht mehr beim 1. Blick durchsteige.

Ich suche einfach einen einfachen Weg das etwas übersichtlicher zu gestallten. Und die meisten Scripte entsprechen halt am Anfang einer Entscheidungstabelle, deswegen fragte ich ob es etwas ähnliches für PHP gibt. Für Java gibt es sowohl Klassen als auch ganze Programme die so etwas übernehmen.

Hi,

ich versuche soetwas für mich ein wenig zu abtrahieren indem ich die Variablen eines Skripts in einer Kategorie verfügbar mache und auch Skripte und Ereignisse dafür baue um auf Änderungen an den Variablen des Gerätes zu reagieren (Grundfunktion).

Die Zusatzfunktionen realisiere ich dann über weitere Skripte, die nur noch die Variablen Ändern müssen und sich nicht mehr um die Grundfunktionen kümmern müssen.

Manchmal baue ich bei den „Grundfunktionen“ schon einen Fehler ein, aber prinzipiell ist es so eigentlich ganz übersichtlich und flexibel handelbar.

Grüße, Benjamin