Ankündigung

Einklappen
Keine Ankündigung bisher.

Lichtwert auswerten

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

    Lichtwert auswerten

    Hallo zusammen,

    irgendwie bekomme ich es nicht hin: Wenn ein Helligkeitswert unter 500LX gemeldet wird soll eine Lampe angehen.

    2 byte float DPT_Value_Lux (in der ETS)

    Code:
    if event("Dämmerung-0/0/6"f16<500)then\\
            write("LedTreppenstufen-2/1/11",EIN)endif
    Was mache ich hier gerade falsch?

    Vielen Dank!

    #2
    Moin,

    Zitat von DerMitdemBusSpricht Beitrag anzeigen
    irgendwie bekomme ich es nicht hin: Wenn ein Helligkeitswert unter 500LX gemeldet wird soll eine Lampe angehen.
    Meinst Du sowas?

    [highlight=epc]
    if event("Dämmerung-0/0/6"f16) and "Dämmerung-0/0/6"f16<500f16 then { \\
    write("LedTreppenstufen-2/1/11",EIN);
    } endif[/highlight]

    Dann solltest Du Dir zusätzlich noch die Funktion Hysteresis() im Handbuch anschauen.

    Gruß,
    Bernd

    Kommentar


      #3
      Hallo Bernd,

      schon mal danke für deine Hilfe. Lass mich bitte mal nachfragen:
      Code:
      if event("[COLOR=#8a0808]Dämmerung-0/0/6"[/COLOR][COLOR=#0b610b]f16[/COLOR][COLOR=#000000])[/COLOR]
      bedeutet das alles was von dieser GA kommt ein Trigger für die nachfolgende Auswertung ist:
      Code:
      [COLOR=#e63ec3]and[/COLOR] [COLOR=#8a0808]"Dämmerung-0/0/6"[/COLOR][COLOR=#0b610b]f16[/COLOR]<[COLOR=#0b610b]500f16[/COLOR] [COLOR=#e63ec3]then[/COLOR]
      Wenn meine Interpretation so richtig ist, warum kann ich nicht gleich
      Code:
      if event("[COLOR=#8a0808]Dämmerung-0/0/6"[/COLOR][COLOR=#0b610b]f16[/COLOR]<[COLOR=#0b610b]500f16) then...[/COLOR]
      schreiben?

      Mein Problem drehte sich aber mehr um den Wert den es auszuwerten gilt. Er ist ja vom Typ 2byte float und egal wie ich den Typ geschrieben habe, der Kompiler hat immer gemeckert. Ich denke ich weiß nun auch warum, die Bedingung die erfüllt sein soll (500) muß ja auch im Typ float deklariert sein..?

      Vielen Dank!!

      Kommentar


        #4
        Moin,

        die Funktion event() erwartet eine GA (S. 53 im Handbuch V22) und liefert ein Boolean (EIN/AUS). Darum kannst Du auf einen Ausdruck GA < Wert auch keine Funktion event() anwenden.

        Aufgrund des Validierungsschemas würde der Ausdruck "Dämmerung-0/0/6"f16<500f16 nur einmal auf EIN gehen wenn der Wert unter 500 fällt. Erst wenn er wieder größer als 500 wird, wird dieser Ausdruck erneut beim nächsten Sinken unter 500 ausgewertet.

        Du kannst das event auch weglassen und schreiben:

        [highlight=epc]
        if "Dämmerung-0/0/6"f16 < 500f16 then {
        write("LedTreppenstufen-2/1/11",EIN);
        } endif
        [/highlight]


        Hier wird einmalig bei unterschreiten der 500 eben Dein Licht bei den Treppenstufen eingeschaltet. Solange der Wert < 500 ist, passiert dann gar nichts mehr.
        Nachteil: Wenn zufällig das Telegramm EIN auf "LedTreppenstufen-2/1/11" vom Bus verschluckt wird, dann bleibt es damit die ganze Nacht dunkel.
        Vorteil: geringere Buslast

        In der Variante mit event() wird bei jedem Telegramm das auf der "Dämmerung-0/0/6"f16 eintrifft geprüft ob der Wert < 500 ist und dann ein Telegramm auf die Treppenstufen-LED gesendet.
        Vorteil: Dein Licht wird immer wieder eingeschaltet auch wenn es bereits an ist.
        Nachteil: Höhere Buslast.


        Gruß,
        Bernd



        Kommentar


          #5
          Ah perfekt! Danke für deine Erläuterung!!

          Im Grunde reicht es wenn die Nachricht tatsächlich nur einmal geschickt wird. Denn ich möchte die Lampen mit htime um 23oo ausschalten. Da der Dämmerungswert zyklisch kommt würden die Lampen dann kurz danach wieder eingeschlaltet werden...

          oder ... vielleicht die Kombination:
          Code:
          [COLOR=#e63ec3]
          FreigabeTreppe=AUS
          if htime(18,00,00) then (FreigabeTreppe=EIN)
          if htime(23,00,00) then (FreigabeTreppe=AUS)
          
          if[/COLOR] [COLOR=#e63ec3]event[/COLOR][COLOR=#000000]([/COLOR][COLOR=#8a0808]"Dämmerung-0/0/6"[/COLOR][COLOR=#0b610b]f16[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#e63ec3]and[/COLOR] [COLOR=#8a0808]"Dämmerung-0/0/6"[/COLOR][COLOR=#0b610b]f16[/COLOR]<[COLOR=#0b610b]500f16 and FreigabeTreppe=EIN[/COLOR] [COLOR=#e63ec3]then[/COLOR] [COLOR=#000000]...{[/COLOR]
          (die genaue Syntax habe ich hier gerade nicht vorliegen,) aber so in etwa würde doch funktionieren!?

          Kommentar

          Lädt...
          X