Ankündigung

Einklappen
Keine Ankündigung bisher.

Mit welchen Befehlsfolgen Fensterzustände abfragen

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

    Mit welchen Befehlsfolgen Fensterzustände abfragen

    Hintergrunddetails:

    Haus mit 23 Fenstern (größtenteils zweiflügelig), 4 Dachflächenfenster, 2 Haustüren und eine Garage mit Sektionaltor. Alles mit Reedkontakten versehen. Die zweiflügeligen Fenster sind mit 3 Reedkontakten ausgestattet, einflügelige Fenster und Sektionaltor mit 2 Reedkontakten, Haustüren und Dachflächenfenster mit einem Reedkontakt.

    In KG, EG und OG befindet sich je eine mdt 12-fach LED-Anzeige.

    Im KG soll je Raum und Haustür eine LED zur Anzeige aller Zustände der Fenster je Raum genutzt werden. Ein gekipptes Fenster soll zu einer blau leuchtenden LED führen, ein geöffnetes Fenster zu einer rot blinkenden LED und bei einem geschlossenen Fenster soll die zugehörige LED aus sein. Ein geöffnetes Fenster hat einen höheren Stellenwert als ein geschlossenes. Bei Räumen mit mehreren Fenstern alle Fenster in Kombination, d.h. wenn mindestens ein Fenster offen ist blinkt die zugehörige LED. Im OG gilt die gleiche Vorgehensweise. Im EG ebenso, nur gibt es hier für KG und OG noch eine einzelne LED (für alle Fenster / Türen der jeweiligen Etage) die in gleicher Art und Weise angesteuert werden soll.

    Soweit so gut von Seiten der mdt LED-Anzeige.

    Meine Frage hierzu, da hier sehr viele Zustände abgefragt / überwacht werden müssen:

    Mit welchen Abfragen löse ich dass am

    a) einfachsten (einfache Programmierung)
    b) schnellsten (schnelle Programmierung)
    c) effektivsten (kurze Programmmierung)
    d) schonensten für den eibPC?

    IF THEN ELSE

    oder

    CASE

    oder

    ON CHANGE

    oder noch einer anderen Abfrage?

    Wie habt ihr sowas bei Euch umgesetzt?
    Zuletzt geändert von Hell; 28.05.2015, 21:08. Grund: eibPC, Fensterkontakt, Reedkontakt, Abfrage, LED
    Danke & Liebe Grüße

    #2
    case?
    Wusste gar nicht dass der eibPC "Case" kann

    Im Handbuch find' ich auch nix....
    am "sichersten" ist IF THEN...
    "else" ist das gleiche nur werden die Parameter negiert (also "Intern" wird aus einer if the else wieder 2 If then erzeugt)
    on change gibt's auch nicht sondern nur change, da brauchts du dann aber auch weitere Fallunterscheidungen (Bedingungen)

    am einfachsten zu programmieren ist es sicher, wenn du ein universelles Makro machst und das dann entsprechend "fütterst"
    also Erfassung der Zustände incl. Ansteuerung des mdt und auch gleich der Visu
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    Kommentar


      #3
      Hallo Stefan,

      bei uns läuft sowas mit "or". Also z.B. so:
      Code:
      FensterOffen = "Fenster1offen-1/0/1" or "Fenster2offen-1/0/2"
      Voraussetzung: Du benutzt geschlossen als 0b01 (=AUS) und offen als 1b01 (=EIN).
      Die Auswertung, ob sich von den Werten was geändert hat, macht der EibPC automatisch.

      Wenn du das allerdings wieder auf eine Gruppenadresse schreiben möchtest, um das logische Ergebnis an deine Anzeige zu bringen, dann brauchst du ein "write". Und das geht meines Wissens nur hinter einem "if". Also z. B. so:
      Code:
      if change(FensterOffen) then write ("FensterOffen-1/0/3", FensterOffen) endif;
      Gruß,
      Jens.

      Kommentar

      Lädt...
      X