Ankündigung

Einklappen
Keine Ankündigung bisher.

Strukturierte Vorgehensweise bei Erstellung von Logiken gesucht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Strukturierte Vorgehensweise bei Erstellung von Logiken gesucht

    Hallo zusammen,

    da ich gerade ein wenig Zeit habe, bin ich gerade dabei einige Funktionen in Edomi / KNX einzurichten.

    Unter anderem sind noch ein paar Logiken in Edomi zu programmieren, was ich bisher erfolgreich vor mir hergeschoben habe.

    Nun sitze ich gerade an einer Logik, welche in Ahängigkeit meines Tag/Nacht-Objekts und dem Einschaltezustand des TVs verschiedene Lichtszustände (und im Idealfall Stellung Raffstore in Abhängigkeit des Lichteinfalls) "aktiviert" werden sollen.

    Irgendwie komme ich hier aber nicht so recht weiter. Wenn die eine Funktion sauber funktionert, habe ich woander plötzlich "ne 0 zuviel", so dass sich die Befehle "überdecken", hoffe ihr wisst, was ich meine....??

    Ich möchte von euch keine Lösung, sondern Ideen zu möglichen Vorgehensweisen. Aktuell versuche ich mir im Kopf die Abhängigkeiten vorzustellen und diese dann in den Edomi-hauseigenen LBS umzusetzen. Ab einem bestimmten Komplexitätsgrat komme ich hier aber nicht weiter. Entweder reicht hier meine Intelligenz nicht, oder ich habe einfach zu wenig Übung (ich hoffe ganz stark Zweites... ;-) )

    Also die Frage an euch: wie ist euer Vorgehen? Gibt es eine systematische Vorgehensweise mit welcher ich die Situation irgendwie beschrieben bekomme und ich dies dann in LBS übersetzen kann?? Wie macht ihr das? Wenn ich teilweise hier eure komplexen Logiken sehe, frage ich mich tatsächlich, wie ihr diese entwickelt habt....

    Hauptproblem ist für mich offenbar, dass hier und da Werte weitergegeben werden, die ich nicht brauchen kann. Irgendwann habe ich mal programmieren gelernt, hier habe ich in Erinnerung, dass gerade bei Fallentscheidungen nur Dinge ausgeführt werden, die dann auch kommen sollen. Das gelingt mir bei der Logikprogrammierung in Edomi so gar nicht.... Ich denke meine Herangehensweise ist einfach falsch....

    Wer mag mir Newbee ein wenig helfen, bzw. Tipps zur Vorgehensweise verraten????

    Vielen Dank vorab, bleibt gesund und

    viele Grüße
    Sven

    #2
    Ein allgemeines Rezept ist sicher schwierig - obwohl ich dem einen oder anderen hier in der Community es zutraue, derlei formulieren zu können. Ich versuche mich selbst immer zu folgendem anzuhalten:
    • Möglichst viel Standard nutzen und nur da Besonderheiten, wo der Standard nichts hat oder der Mehrwert den Mehraufwand lohnt. Für Stellen, an denen ich den Standard unglücklich fand, habe ich mir eine kleines(!) Set an Alternativen geschaffen.
    • Bei LBS lieber weniger als viele - weil jeder fremd-LBS hat auch TOC (total costs of ownership), sprich ggf. dauerhaften Aufwand bei Updates, etc.
    • Zu Deiner Frage: Große Fragestellungen in möglichst einfache "Happen" zerlegen. Ich versuche meist auch noch generische Happen, die ich für unterschiedliche Zwecke nutzen kann. Ok, das macht es nicht immer einfacher. Wenn Du vermeintlich nicht nachvollziehbae ABhängigkeiten ahst, schafft Aufteilung (zumindest für mich) meist eine Lösung.
    • Und Du kannst Dir sicher sein: Wenn man hier eine hoch-komplexe Logik als Screesnhot sieht. Die hat niemand so gebaut, die ist ganz sicher auch gewachsen. Daher: Fang mit einem vereinfachten Eingangs und Ausgabesatz an. Dann teste und wenn es gut läuft, nach und nach der Anforderung annähern. Im Zweifel auch mal eine Anforderung in Frage stellen und ggf. diese vereinfachen oder aufspalten.
    • Unterschiedliche Eingangsparameter (wenn nötig) früh (und damit nur 1x) harmonisieren, damit Folgelogiken einfacher sind.
    • So kann man an jedem Teil der Gesamtlogik arbeiten, wenn man dort einen Fehler hat. Nachfolgende und voraus liegende Logiken könne unberührt bleiben, wenn man komplexe Themen aufteilt.
    • Weder KO-Objekte, noch Logik-Seiten kosten kein Geld - egal wie viele man hat...
    • Ich habe früher liebe große Logiken gemacht. Bei meinem Neuanfang auf grüner Wiese mache ich nun lieber viele Logik-Seiten mit gut sprechenden Namen und über Ordner sinnvoll strukturiert. Dann besteht ein Anforderung nachher aus x recht einfachen Seiten als aus 1 komplexen.
    • Am Ende ist alles EVA: Eingabe - Verarbeitung - Ausgabe... hier konkret: Unterschiedliche Merkmalskombinationen sollen zu bestimmten Ausgabeparametern führen.
    • Noch konkreter für Deine Fragestellung:
      • Die Ausgabe würde ich über Szenen lösen. Das ist schöner Standard. Und lernfähig und flexibel und überhaupt ein starkes Werkzeug (für mich ist ziemlich viel im Haus eine Szene)
      • Eingang sind offenbar Tag/Nacht und der RM-Kanal einiger Geräte.
      • Wenn diese Merkmalskombination, dann diese Szene. Wenn diese andere, dann diese andere Szene.

    Hört sich - aus der Ferne - machbar an...

    Vielleicht helfen meine Gedanken. Vielleichtr haben andere ganz andere Ansätze, ich bin selber gespannt. Es gibt sicher auch nicht DEN Ansatz, sondern jeder Mensch und jeder Anforderung ist anders. Trial-and-error wird einem niemand abnehmen können.
    Zuletzt geändert von saegefisch; 29.03.2020, 15:07.

    Kommentar


      #3
      Hallo saegefisch ,

      vielen Dank für deine ausführliche Antwort. Ich werde mir das noch ein oder zweimal durchlesen und dann ggf. nochmal von vorne beginnen.

      Ich glaube besonders hilfreich ist der Hinweis mit den Szenen. Vielleicht funktioniert die Lösung so:

      Eingänge:
      -Strommesung
      -Tag/Nacht-Objekt

      Ausgänge:
      -Kombination 1= entsprechende Befehle
      -Kombination 2= entsprechende Befehle
      -Kombination 3= entsprechende Befehle

      Sprich: Ich muss versuchen den Kombinationen der verschiendenen Zustände entsprechende Zahlenwerte zuzuweisen. Das ist nochmal ein völlig anderer Ansatz als die bisherigen durchgespielten.

      Eigentlich ist es ja eine standard-Situation, bei der die Kombination von 2 und mehr Zuständen entsprechend bis zu beliebig viele Ausgangswerte generiert werden soll!?

      Ich werde versuchen......

      Danke & Grüße!
      Sven

      Kommentar


        #4
        Gerne. Du könntest aus den verschiedenen Merkmalskombinationen eine Ergebnis ableiten, wobei 0 = AUS ist, 1 = Szene A, 2 = Szene B,...

        Mit einem LBS kannst Du dann in einem 2. Schritt/Logik wunderbar die Szenen aufrufen. Damit hast die Entscheidungsfindung schön vom Aufruf der Szenen und letztlich dem Paramter-Ergebnis (Szenen) in 3 Teile getrennt und damit die zunächst komplexe Gesamtanforderung in 3 recht einfache (und vor allem ausbaufähige) Teile aufgeteilt.

        Kommentar

        Lädt...
        X