Hauptmenü  

   

Elektronik  

   

Login  

   

Beitragsseiten

Die Programmierung der HomeMatic, hat mich am Anfang einiges an Nerven gekostet, weil die Programm-Logik etwas gewöhnungsbedürftig ist. Nachdem ich die Programmlogik verstanden hatte, waren viele Probleme gelöst.

Deshalb sollten besonders Neueinsteiger die folgenden Informationen sorgfältig lesen und auch verstehen.

 

TestprogrammA

Nehmen wir  als kleines Beispiel dieses kleine Testprogramm.

Ausgangszustand:

  • X=4
  • Y=3
  • X Ändert sich auf den Wert 5

Was passiert: Es wird das Licht eingeschaltet!

Ausgangszustand:

  • X = 6
  • Y = 2
  • Y ändert sich auf den Wert 3

Was passiert: Es wird die Heizung eingeschaltet

War das wirklich so beabsichtigt?

 



TestprogrammB

Ich vermute mal, zumindest erging es mir so, dass der tatsächliche Programmablauf nicht wie geplant abläuft. Ich ging davon aus, dass wenn sich X ändert, nur der erste Programm Abschnitt ausgeführt wird, und wenn sich Y ändert, soll der zweite Programm Abschnitt ausgeführt werden, soweit die Theorie. 

  • Es ist wichtig zu wissen, dass wenn eine Auslösebedingung innerhalb eines Programms zutrifft, das komplette Programm aufgerufen wird, nicht nur ein bestimmter Programmabschnitt!
  • Egal, ob sich jetzt X oder Y ändert, es wird das gesamte Programm, von oben nach unten abgearbeitet
  • Bei der ersten zutreffenden Bedingung die erfüllt ist, wird dann nur dieser Abschnitt abgearbeitet und danach das Programm beendet
  • In unserem Beispiel bedeutet dies, dass wenn X den Wert 6 hat und Y sich ändert, das Programm zwar aufgerufen wird, jedoch die Bedingung zum prüfen des Wertes Y nie erreicht wird, da zuvor ja schon die Bedingung X=6 zutreffend war
  • Eine Sonderstellung ergibt sich, wenn keine der Bedingungen erfüllt sind, in diesem Fall wird das Programm beendet, wenn keine Sonst-Bedingung vorhanden ist
  • Man muss also immer die Reihenfolge der "Wenn-Abfragen" beachten, um unvorhergesehene Programmabläufe zu verhindern. Deshalb ist oft von Vorteil, nur so viel wie unbedingt nötig in ein einzelnes Programm zu packen und den Programmablauf auf mehrere Programme zu verteilen.

Nur wenn man diese Logik verstanden hat, bleibt einem so manches Rätsel erspart! Ich habe das erst später so richtig realisiert und tagelang sinniert, warum so einiges verkehrt herum lief! Deshalb finde ich diesen Hinweis für Neulinge sehr wichtig!


   
© WagoTec.de