Zeitschaltuhr und verschachtelte IF ... ELSE Befehle

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,
    Kurz zu meinem persönlichen Status, zu meinem Projekt und weiter unten zur aktuellen Problemstellung:

    Ich bin noch recht unerfahren mit Python. Habe aus der Schulzeit ein wenig Erfahrungen mit QBASIC und VisualBasic angesammelt und weiß grundsätzlich wo ich hin will.

    Das Projekt ist eine zeit- und temperaturgesteuerte Heizungssteuerung:

    1. Wenn Außentemperatur < -10° C dann Heizung an (unabhängig von allen anderen Einflussfaktoren)
    2. Wenn Außentemperatur > 15° C dann Heizung aus (unabhängig von allen anderen Einflussfaktoren)
    3. Zwischen 31.03. und 31.10. Heizung aus (außer 1. trifft zu)
    4. Zwischen 23:00 und 05:00 Heizung aus (außer 1. trifft zu)

    Die Zeitsteuerung habe ich grundsätzlich gelöst. Ich bastele mir aus Monat und Tag ein Integer z.B. 24.02. wird zu 0224 und vergleiche das dann mit dem fest eigestellten Wert (z.B. 0331)

    Die Temperaturabfrage steht noch an, sehe ich aber bisher als unkritisch. Die Forensuche wird mir helfen.

    Nun meine Frage die mich hier spezifisch für mein Projekt beschäftigt, aber auch allgemein für andere Projekte relevant sein wird (bei mir und bei anderen):

    Die ganze Steuerung besteht ja aus relativ simplen Wenn-Dann-Sonst-Verknüpfungen.
    Werde ich hier ganz viele ineinander verschachtelte IFs und ELSEs haben, oder gibt es eine Möglichkeit, das Ganze eleganter und übersichtlicher zu implementieren?

    Ich werde bei Gelegenheit auch ein Flussdiagramm hochladen um zu veranschaulichen wie das ganze aussehen soll.


    Danke vorab für Hilfen und Anregungen, gerne auch Suchbegriffe mit denen ich die Forensuche bemühen kann, denn bisher war ich dort in dieser Angelegenheit noch nicht sehr erfolgreich.


    Grüße

    Zumpfel

  • Zeitschaltuhr und verschachtelte IF ... ELSE Befehle? Schau mal ob du hier fündig wirst!

  • Verschachtelt muss da eigentlich nichts sein. Du musst nur die Bedingungen in der richtigen Reihenfolge testen.

    Code
    if Außentemperatur < -10° C
       Heizung an
    elif Datum zwischen 31.03. und 31.10. oder
            Uhrzeit Zwischen 23:00 und 05:00 oder
            Außentemperatur > 15° C
        Heizung aus
  • Hi Zumpfel;

    ...also irgendwie ist doch da was doppelt;
    Laut deinen Punkten 1-4 heißt das doch eigentlich:
    Heizung soll nur an sein, wenn AT unter -10° --wozu brauchst Du dann noch den Rest???

    rasray

    Einmal editiert, zuletzt von rasray (9. März 2016 um 17:20)

  • Hallo zusammen, danke für die beiden ersten Antworten.

    framp:
    ich glaube ich hab den Wald vor lauter bäumen nicht gesehen. Habe grad nicht an ELIF gedacht und daran dass ich ja innerhalb einer Bedingung auch noch UND-Verknüpfungen reinbasteln kann. Das wissen ist über die Jahre doch etwas angestaubt.

    rasray:
    das kam aus dem geschriebenen vielleicht nicht ganz klar rüber. Das mit dem < -10 °C soll quasi vorrangig vor den anderen Bedingungen sein. Also wenn es unter -10 °C ist soll die Heizung rennen, egal welches Datum/Uhrzeit es ist. zwischen -10 °C und +15 °C soll die Datums-/Uhrzeitsteuerung aktiv sein


    Grüße

    Zumpfel

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!