Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktion ob ein Licht brennt

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

    Funktion ob ein Licht brennt

    Sehr geehrte Damen und Herren.
    Ich möchte gerne in der Visu ein Symbol, dass aufleuchtet, wenn irgendein Licht im Haus brennt (so wie eine Oder Funktion). Und wenn ein Licht brennt, dann soll das Status LED (Zentral Aus Button) von meinem MDT Glastaster auch leuchten und wenn ich jetzt zum Beispiel den Zentral Aus Knopf drücke, dann soll natürlich das Status LED erlöschen, da ja dann kein Licht mehr im Haus brennt.
    Meine Smartvisu.conf :

    [first]
    [[Abstellraum]]
    name = Abstellraum
    sv_page = room
    sv_img = scene_cubby.png

    [[[Beleuchtung]]]
    name = Beleuchtung
    sv_widget = {{ basic.switch ('Deckenlicht', 'first.Abstellraum.Deckenlicht', icon1~'light_light_dim_100.png' , icon0~'light_light_dim_100.png', '1', '0') }} Deckenlicht

    [[[Deckenlicht]]]
    name = Deckenlicht
    type = bool
    visu_acl = rw
    knx_dpt = 1
    knx_listen = 0/0/3
    knx_send = 0/0/1
    knx_cache = 0/0/3

    [second]
    [[Bad]]
    name = Bad
    sv_page = room
    sv_img = scene_bathroom.png

    [[[Beleuchtung]]]
    name = Beleuchtung
    sv_widget = {{ basic.switch ('Deckenlicht', 'second.Bad.Deckenlicht', icon1~'light_light_dim_100.png' , icon0~'light_light_dim_100.png', '1', '0') }} Deckenlicht

    [[[Deckenlicht]]]
    name = Deckenlicht
    type = bool
    visu_acl = rw
    knx_dpt = 1
    knx_listen = 0/1/2
    knx_send = 0/1/0
    knx_cache = 0/1/2

    Bitte um Hilfe
    LG Michael
    Zuletzt geändert von Koksi; 11.10.2015, 19:47.

    #2
    Mach ein Item bspw. "Status" mit einem "eval = or" und einem "eval_trigger = Licht-Item1 | Licht-Item2".

    Kommentar


      #3
      Ich hab jetzt meinen Post bearbeitet. Wie würde das genau aussehen, könntest du mir das bitte einfügen. LG

      Kommentar


        #4
        Code:
        [zentral]
        [[LichtStatus]]
        sv_widget = {{ basic.symbol('item_Icon1', 'item', 'Licht Status', icon1~'light_light.png', 1) }} | {{ basic.symbol('item_Icon0', 'item', 'Licht Status', icon0~'light_light.png', 0) }}
        type=bool
        eval = or
        eval = first.Abstellraum.Beleuchtung.Deckenlicht | second.Bad.Beleuchtung.Deckenlicht
        oder sogar noch einfacher... Hier wird auf alle Items "Deckenlicht" geprüft.
        Code:
        [zentral]
        [[LichtStatus]]
        sv_widget = {{ basic.symbol('item_Icon1', 'item', 'Licht Status', icon1~'light_light.png', 1) }} | {{ basic.symbol('item_Icon0', 'item', 'Licht Status', icon0~'light_light.png', 0) }}
        type=bool
        eval = or
        eval = *.Deckenlicht

        Kommentar


          #5
          Habs jetzt getestet und es klappt.
          Sieht ein bisschen anders aus:

          [eighth]
          [[Zentral]]
          name = Zentral
          sv_page = room
          sv_img = light_light_dim_00.png

          [[[Zentral_AUS]]]
          name = Zentral AUS
          type = bool
          visu_acl = rw
          sv_widget = {{ basic.button('Zentral_AUS', 'eighth.Zentral.Zentral_AUS', 'AUS', 'item', '0', 'mini') }} Zentral AUS

          [[[Zentral_AUS]]]
          name = Zentral_AUS
          knx_dpt = 1
          enforce_updates = yes
          knx_send = 1/0/0

          [[[Rolladen_Zentral]]]
          name = Rolladen Zentral
          sv_widget = {{ device.shutter ('Rolladen_Zentral', '', 'eighth.Zentral.Fahren', '') }}

          [[[Fahren]]]
          name = Fahren
          type = num
          visu_acl = rw
          enforce_updates = yes
          knx_dpt = 1
          knx_send = 1/1/1

          [[[LichtStatus]]]
          name = LichtStatus
          type=bool
          visu_acl = rw
          knx_dpt = 1
          sv_widget = {{ basic.symbol('s2', ['first.Abstellraum.Deckenlicht', 'second.Bad.Deckenlicht', 'third.Balkon.Aussenlicht', 'fourth.Kinderzimmer.Deckenlicht', 'fifth.Schlafzimmer.Deckenlicht', 'sixth.Wohnbereich.Licht_Wohnen', 'sixth.Wohnbereich.Licht_Kueche', 'sixth.Wohnbereich.Licht_Essen', 'seventh.WC.Deckenlicht'], 'Light on', icon1~'light_light.png') }}
          {{ basic.symbol('s3', ['first.Abstellraum.Deckenlicht', 'second.Bad.Deckenlicht', 'third.Balkon.Aussenlicht', 'fourth.Kinderzimmer.Deckenlicht', 'fifth.Schlafzimmer.Deckenlicht', 'sixth.Wohnbereich.Licht_Wohnen', 'sixth.Wohnbereich.Licht_Kueche', 'sixth.Wohnbereich.Licht_Essen', 'seventh.WC.Deckenlicht'], 'Light off', icon1~'light_light.png', 0) }}

          Ich möchte den Status von dem Symbol jetzt noch an das Status LED von meinem Zentral Taster senden.
          Also wenn irgendein Licht brennt, dann soll auch das Status LED aufleuchten und nur wenn alle Lichter aus sind, dann soll auch das Status LED ausgehen.
          Ich habs über ETS nur so hinbekommen, dass es leider nur auf ein seperaten Status reagiert (Ich habe den LED Status zu jedem Aktor Status hinzugefügt, aber leider bräuchte ich da die Funktion zyklisches senden, dann würde es über ETS auch funktionieren).

          Kann Ich zum Beispiel mit "knx_listen =" auf das basic.symbol zugreifen und dann mit "knx_send =" auf das Status LED senden?
          Zuletzt geändert von Koksi; 12.10.2015, 20:59.

          Kommentar


            #6
            daran wäre ich auch interessiert...

            Ich möchte das gleiche nur ohne Visu machen, quasi die Item-Logik alleine....
            Bei mir funktioniert die LED-an am Zentral-Aus Taster wie gewünscht, die LED geht auch wieder aus wenn die Lampen einzeln alle abgeschaltet sind.
            Nur wenn per Zentral-Aus alles abgeschaltet wird, leuchtet die LED weiterhin...

            Kommentar


              #7
              Schau mal unter meine Beiträge, dort ist ein Thread der heißt :"Funktion um auf item zu hören und dann senden." Ich hoffe das löst dein Problem

              Kommentar


                #8
                Hi Koksi,

                hat mir nicht weitergeholfen.... hab das ganze Wochenende mit lesen und testen verbracht...
                wie gesagt ich möchte dass die LED des Zentral-Aus Tasters leuchtet wenn mindestens ein Licht an ist und aus geht wenn alle Lichter im Haus auch aus sind.
                Klappt im Moment mit unten angehängter config aber nur wenn die Lichter über den jeweiligen Taster ausgeschaltet werden. Wenn die Lichter über den Zentral-Aus (6/1/0) ausgeschaltet werden, bleibt die LED an (die Lichter gehen aus (KNX config funzt schon)).
                Die 7/1/0 ist die GA der Status LED des Zentral-Aus.

                Ist meine Logik falsch? Ich bin hier leider erst Anfänger und suche und lese mich per Forum in das System erst ein.
                Kann mir hier evtl. jemand weiterhelfen?

                hier mal meine config:

                items:
                Code:
                #light.conf
                [light_sideboard]
                    type = bool
                    enforce_updates = true
                    knx_dpt = 1
                    knx_send = 1/1/1
                    knx_listen = 1/1/1
                [light_dinning_table]
                    type = bool
                    enforce_updates = true
                    knx_dpt = 1
                    knx_send = 1/1/6
                    knx_listen = 1/1/6
                Code:
                #central.conf
                [central_off]
                    type = bool
                    enforce_updates = true
                    knx_dpt = 1
                    knx_listen = 6/1/0
                [central_off_eval]
                    type = bool
                    enforce_updates = true
                    knx_dpt = 1
                    knx_status = 7/1/0
                    knx_reply = 7/1/0
                    eval = or
                    eval_trigger = light_sideboard | light_dinning_table
                logic.conf:
                Code:
                #logic.conf
                [cent_off_stat]
                    filename = cent_off_stat.py
                    crontab = init
                Logik:
                Code:
                #cent_off_stat.py
                if sh.central_off() == 0 and sh.central_off_eval() == 0:
                  sh.central_off_eval(0)

                Kommentar


                  #9
                  Hi,

                  wenn Du die knx_listen in den beiden light_* Items auf den Status des Aktors und nicht auf die Taster hören läßt, kannst Du Dir die Logik (und den logik.conf-Eintrag) sparen und es funktioniert...

                  Gruß, Waldemar

                  P.S.: Mach ausserdem statt knx_listen ein knx_cache draus...
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    tja,... warum einfach...

                    Dank an Mumpf der meine komplizierte Denkweise geradegerückt hat.
                    So geht's wunderbar.

                    Kommentar


                      #11
                      Hi,

                      freut mich, dass es klappt.

                      Noch ein Tip: Mir ist noch aufgefallen, dass Du überall enforce_updates drin hast. Das ist in diesem Kontext nicht nötig und Du müllst Dir nur den Bus mit überflüssigen Telegrammen zu. Ich würde die nur bei Items verwenden, bei denen es notwendig ist.

                      Gruß, Waldemar
                      OpenKNX www.openknx.de

                      Kommentar


                        #12
                        heisst bei knx_send ?

                        Kommentar


                          #13
                          Wieso? Im obigen Beispiel brauchst Du es gar nicht. Du hast doch nur wechselnde Zustände, die Du auf den Bus bringen willst. Keinerlei Wiederholungen, die irgend etwas triggern sollen...

                          Normalerweise triggert ein Item in sh.py abhängige Objekte sobald es seinen Wert ändert. Mit abhängigen Objekten ist alles gemeint, was getriggert werden kann, Plugins, Logiken, Items mit eval_trigger etc.

                          enforce_updates bewirkt, dass nicht nur bei Wertänderungen, sondern bei allen Wertzuweisungen getriggert wird. In Deinen obigen Items willst Du ja nur Wertänderungen behandeln, somit braucht man hier keinen enforce_updates.

                          Gruß, Waldemar
                          Zuletzt geändert von mumpf; 09.12.2015, 11:58. Grund: Korrektur: Versehentlich eval_trigger statt enforce_updates geschrieben
                          OpenKNX www.openknx.de

                          Kommentar

                          Lädt...
                          X