Ankündigung

Einklappen
Keine Ankündigung bisher.

Fensterkontakte inkl. gekippt (Logik)

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

    #16
    Code:
    [Fenster]
      [[geschlossen]]
       type=bool
       [[[counter]]]
          type=num
          sqlite=true
    
          
    [eg]
        [[Fenster]]
          [[[geschlossen]]]
           type=bool
           [[[[counter]]]]
              type=num
              sqlite=true
    	   [[[geschlossen_invertiert]]]
           type=bool
           knx_send=10/3/0
           knx_dpt=1
           [[[[[counter]]]]]
              type=num
              sqlite=true
     	  [[Schuppen]]
            [[[Reed]]]
                [[[[Aussentuer]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/1
                        sqlite = true
                [[[[Innentuer]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/0
                        sqlite = true
                [[[[Fenster_links]]]]
                    [[[[[gekippt]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/3
                        sqlite = true
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/2
                        sqlite = true
                [[[[Fenster_rechts]]]]
                    [[[[[gekippt]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/5
                        sqlite = true
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/4
                        sqlite = true
        [[Flur]]
            [[[Reed]]]
                [[[[Hintertuer]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/6
                        sqlite = true
                [[[[Abstellkammer]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/7
                        sqlite = true
        [[Gaestebad]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[gekippt]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/9
                        sqlite = true
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/8
                        sqlite = true
        [[Kueche]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/10
                        sqlite = true
                [[[[Mikrowellenschrank]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/11
                        sqlite = true
        [[Esszimmer]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/15
                        sqlite = true
        [[Wohnzimmer]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/20
                        sqlite = true
        [[Arbeitszimmer]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/25
                        sqlite = true
        [[Gaestezimmer]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/31
                        sqlite = true
                    [[[[[gekippt]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/1/30
                        sqlite = true
    [og]
        [[Fenster]]
          [[[geschlossen]]]
           type=bool
           [[[[counter]]]]
              type=num
              sqlite=true
        [[Lina]]
            [[[Reed]]]  
                [[[[Fenster]]]]
                     type=num
                     eval=sh.og.Lina.Reed.Fenster_links.geschlossen()+2*sh.og.Lina.Reed.Fenster_rechts.geschlossen()
                     eval_trigger=og.Lina.Reed.Fenster_links.geschlossen()|og.Lina.Reed.Fenster_rechts.geschlossen()
                [[[[Fenster_links]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/0
                        sqlite = true
                [[[[Fenster_rechts]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/1
                        sqlite = true
        [[Schlafzimmer]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/11
                        sqlite = true
                    [[[[[gekippt]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/10
                        sqlite = true
        [[Till]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/15
                        sqlite = true
                    [[[[[gekippt]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/16
                        sqlite = true
        [[Kinderbad]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/20
                        sqlite = true
                    [[[[[gekippt]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/21
                        sqlite = true
        [[Dachterrasse]]
            [[[Reed]]]
                [[[[Fenster]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/25
                        sqlite = true
                    [[[[[gekippt]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/26
                        sqlite = true
        [[Elternbad]]
            [[[Reed]]]  
                [[[[Fenster]]]]
                     type=num
                     eval=sh.og.Elternbad.Reed.Fenster_links.geschlossen()+2*sh.og.Elternbad.Reed.Fenster_rechts.geschlossen()
                     eval_trigger=og.Elternbad.Reed.Fenster_links.geschlossen()|og.Elternbad.Reed.Fenster_rechts.geschlossen()
                [[[[Fenster_links]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/5
                        sqlite = true
                [[[[Fenster_rechts]]]]
                    [[[[[geschlossen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 8/2/6
                        sqlite = true
    Visu (Smartvisu, Quad-Design):
    Code:
    		<li data-icon="false">
    			<div class="nw_table">
    				<div class="nw_table_cell nw_border">Schuppen</div>
    				<div class="nw_table_cell">
    					<div class="nw_table">
    						<div class="nw_table_cell nw_border">{{
    							basic.symbol('eg.Schuppen.Aussentuerstatus1',
    							'eg.Schuppen.Reed.Aussentuer.geschlossen', '',
    							icon0~'fts_door_locked.svg', 1) }} {{
    							basic.symbol('eg.Schuppen.Aussentuerstatus2',
    							'eg.Schuppen.Reed.Aussentuer.geschlossen', '',
    							icon1~'fts_door_open.png', 0) }}</div>
    						<div class="nw_table_cell nw_border">L{{
    							basic.symbol('eg.Schuppen.Fenster_linksstatus1',
    							['eg.Schuppen.Reed.Fenster_links.geschlossen','eg.Schuppen.Reed.Fenster_links.gekippt'],
    							'', icon1~'fts_window_1w_open.png', 0, 'and') }} {{
    							basic.symbol('eg.Schuppen.Fenster_linksstatus2',
    							'eg.Schuppen.Reed.Fenster_links.geschlossen', '',
    							icon0~'fts_window_1w.svg', 1) }} {{
    							basic.symbol('eg.Schuppen.Fenster_linksstatus3',
    							'eg.Schuppen.Reed.Fenster_links.gekippt', '',
    							icon1~'fts_window_1w_tilt.png', 1) }} R{{
    							basic.symbol('eg.Schuppen.Fenster_rechtsstatus1',
    							['eg.Schuppen.Reed.Fenster_rechts.geschlossen','eg.Schuppen.Reed.Fenster_rechts.gekippt'],
    							'', icon1~'fts_window_1w_open.png', 0, 'and') }} {{
    							basic.symbol('eg.Schuppen.Fenster_rechtsstatus2',
    							'eg.Schuppen.Reed.Fenster_rechts.geschlossen', '',
    							icon0~'fts_window_1w.svg', 1) }} {{
    							basic.symbol('eg.Schuppen.Fenster_rechtsstatus3',
    							'eg.Schuppen.Reed.Fenster_rechts.gekippt', '',
    							icon1~'fts_window_1w_tilt.png', 1) }}</div>
    						<div class="nw_table_cell nw_border nw_min_landscape">
    							Flurtür {{ basic.symbol('eg.Schuppen.Innentuerstatus1',
    							'eg.Schuppen.Reed.Innentuer.geschlossen', '',
    							icon0~'fts_door.png', 1) }} {{
    							basic.symbol('eg.Schuppen.Innentuerstatus2',
    							'eg.Schuppen.Reed.Innentuer.geschlossen', '',
    							icon1~'fts_door_open.png', 0) }}</div>
    					</div>
    				</div>
    			</div>
    		</li> {{ listc.door_symbol('eg.Flur.Hintertuerstatus', 'Hintertür',
    		'eg.Flur.Reed.Hintertuer.geschlossen',
    		icon0~'fts_door_locked.svg',icon1~'fts_door_open.png')}} {{
    		listc.window_symbol('eg.Gaestebad.Fensterstatus', 'Gästebad',
    		'eg.Gaestebad.Reed.Fenster.geschlossen','eg.Gaestebad.Reed.Fenster.gekippt'
    		, icon1~'fts_window_1w_open.png',icon0~'fts_window_1w.svg',
    		icon1~'fts_window_1w_tilt.png')}} {{
    		listc.door_symbol('eg.Kueche.Fensterstatus', 'Küche',
    		'eg.Kueche.Reed.Fenster.geschlossen',
    		icon0~'fts_window_2w.svg',icon1~'fts_window_2w_open_l.png')}} {{
    		listc.door_symbol('eg.Esszimmer.Fensterstatus', 'Esszimmer',
    		'eg.Esszimmer.Reed.Fenster.geschlossen',
    		icon0~'fts_window_2w.svg',icon1~'fts_window_2w_open_l.png')}} {{
    		listc.door_symbol('eg.Wohnzimmer.Fensterstatus', 'Wohnzimmer',
    		'eg.Wohnzimmer.Reed.Fenster.geschlossen',
    		icon0~'fts_door.svg',icon1~'fts_door_open.png')}} {{
    		listc.door_symbol('eg.Arbeitszimmer.Fensterstatus', 'Arbeitszimmer',
    		'eg.Arbeitszimmer.Reed.Fenster.geschlossen',
    		icon0~'fts_door.svg',icon1~'fts_door_open.svg')}} {{
    		listc.window_symbol('eg.Gaestezimmer.Fensterstatus', 'Gästezimmer',
    		'eg.Gaestezimmer.Reed.Fenster.geschlossen','eg.Gaestezimmer.Reed.Fenster.gekippt'
    		, icon1~'fts_window_1w_open.png',icon0~'fts_window_1w.svg',
    		icon1~'fts_window_1w_tilt.png')}}
    		<li data-role="list-divider">Dachgeschoss</li> {{
    		listc.twin_window_symbol('og.Lina.Fensterstatus', 'Lina',
    		'og.Lina.Reed.Fenster' ,
    		icon0~'fts_window_2w.png',icon1~'fts_window_2w_open_lr.png',
    		icon1~'fts_window_2w_open_l.png', icon1~'fts_window_2w_open_r.png')}}
    		{{ listc.twin_window_symbol('og.Elternbad.Fensterstatus', 'Elternbad',
    		'og.Elternbad.Reed.Fenster' ,
    		icon0~'fts_window_2w.png',icon1~'fts_window_2w_open_lr.png',
    		icon1~'fts_window_2w_open_l.png', icon1~'fts_window_2w_open_r.png')}}
    		{{ listc.window_symbol('og.Schlafzimmer.Fensterstatus',
    		'Schlafzimmer',
    		'og.Schlafzimmer.Reed.Fenster.geschlossen','og.Schlafzimmer.Reed.Fenster.gekippt'
    		, icon1~'fts_window_1w_open.png',icon0~'fts_window_1w.svg',
    		icon1~'fts_window_1w_tilt.png')}} {{
    		listc.window_symbol('og.Till.Fensterstatus', 'Till',
    		'og.Till.Reed.Fenster.geschlossen','og.Till.Reed.Fenster.gekippt' ,
    		icon1~'fts_window_1w_open.png',icon0~'fts_window_1w.svg',
    		icon1~'fts_window_1w_tilt.png')}} {{
    		listc.window_symbol('og.Kinderbad.Fensterstatus', 'Kinderbad',
    		'og.Kinderbad.Reed.Fenster.geschlossen','og.Kinderbad.Reed.Fenster.gekippt'
    		, icon1~'fts_window_1w_open.png',icon0~'fts_window_1w.svg',
    		icon1~'fts_window_1w_tilt.png')}} {{
    		listc.window_symbol('og.Dachterrasse.Fensterstatus', 'Dachterrasse',
    		'og.Dachterrasse.Reed.Fenster.geschlossen','og.Dachterrasse.Reed.Fenster.gekippt'
    		, icon1~'fts_window_1w_open.png',icon0~'fts_window_1w.svg',
    		icon1~'fts_window_1w_tilt.png')}}
    
    	</ul>
    Screenshot im Anhang.

    Gruß,
    Hendrik
    Angehängte Dateien

    Kommentar


      #17
      Dynamische Statusanzeige

      Hallo Hendrik,
      vielen Dank für den Code der statischen Statusanzeige.

      Da ich ca. 35 überwachte Fensterflügel habe, hatte ich wegen der Übersicht an die dynamische Statusanzeige der "offenen" Fenster gedacht (siehe auch Bild im Post #8 von Martin).
      Kann mir jemand sagen, wie man dieses anstellt?

      Gruß Sönke

      Kommentar


        #18
        ...ich meinte natürlich Post #9

        Kommentar


          #19
          Hallo,
          Schau dir mal das Beispiel aus Post 11 an. So habe ich es auch gemacht.

          Michael

          Kommentar


            #20
            Hallo,

            ich hätte da ach mal eine Frage.

            Wie bekomme ich denn die Symbole in Rot dargestellt (wie in Post #9)
            wo wird denn die Farbeinstellung getroffen. Und geht das nur mit den SVG`s ?
            Gruß

            Guido

            Kommentar


              #21
              Hi,

              kennt jemand eine solche Lösung für den Gira Homeserver. Die Besonderheit bei mir ist, das alle Fenster drei Kontake haben (gekippt, offen, Stulp offen).

              Danke
              Sylvio

              Kommentar


                #22
                Zur Darstellung bei png's brauchst Du diese dann logischer weise in rot.
                Die Auswahl der anzuzeigenden Icons selber machst Du dabei dann im Widegt-Code.
                z.B. 'icons/Name.des.Ordner/status_away_1.png'

                Bei svg's kannst Du das via "stroke" und bei Beadarf "fill" in der css festelegen.

                Ich glaube in der Kurzanleitung wird es bald eine Anleitung zum Thema Einfärben der svg's geben. Icon-Pakete in erweiterter Form und in verschiedenen Farben (png) gibt es dort bereits.
                Ansonsten kannst Du die png auch selber machen. z.B. mit Gimp

                EDIT:
                @Höhlenbär
                Die Frage gehört aber eher in das sV-Forum.
                Vieleicht solltest Du Dir angewöhnen nicht die Thrads zu "kapern".

                Kommentar


                  #23
                  Danke für den Hinweis

                  @Höhlenbär
                  Die Frage gehört aber eher in das sV-Forum.
                  Vieleicht solltest Du Dir angewöhnen nicht die Thrads zu "kapern".
                  Ok sorry dafür
                  Gruß

                  Guido

                  Kommentar


                    #24
                    Zitat von melodoi Beitrag anzeigen
                    kennt jemand eine solche Lösung für den Gira Homeserver.
                    das mit dem Kapern gilt auch für Dich. Davon abgesehen sind wir im SH.py-Subforum.

                    Deine Frage passt wesentlich besser ins Hauptforum.

                    Bis bald

                    Marcus

                    Kommentar


                      #25
                      Ich muss hier mal fleddern.

                      Folgender Vorrausetzung bei mir:

                      2 Reeds je Fenster:
                      Reed 1 mit Magnet am "Gestänge" (erkennen ob Fenstergriff in auf/zu Stellung)
                      Reed 2 unten im Fenster (gekippt Erkennung)

                      Als bei quasi folgende "Matrix":
                      Reed 1 Reed 2
                      Fenster zu 1 1
                      Gekippt/Angelehnt 0 1
                      Offen 0 0
                      Wie bekomme ich das nun zuverlässig dargestellt ohne große Logik Schleifen.

                      Ich habe vor allem das Problem mit gekippt bei den oben gezeigten Lösungen.
                      Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

                      Kommentar


                        #26
                        Habe bei meinen Enocean Griffen eine ähnliche Situation mit 2 Zuständen und kann Dir da gerne helfen, allerdings müßtest Du etwas präziser sein was Du nun machen willst (Visu, Logik,?)... Hilfreich wäre es m.E. wenn Du den Offen und Geschlossen invertieren könntest, sprich 1/1=Offen, dann kann man einiges vereinfachen. Bspw. prüfst Du dann nur auf Offen=1 ab wenn Du wissen willst ob Offen oder Gekippt ist, analog Offen=0 wäre geschlossen.

                        Kommentar


                          #27
                          Zitat von Sandman60 Beitrag anzeigen
                          allerdings müßtest Du etwas präziser sein was Du nun machen willst (Visu, Logik,?)
                          Ich will vorerst in der Visu in der Übersicht der Räume jeweils darstellen, ob ein Fenster geschlossen ist (Kein Icon anzeigen), Offen ist (Offenes Fenster), Gekippt (gekipptes Fenster)
                          Zitat von Sandman60 Beitrag anzeigen
                          ... Hilfreich wäre es m.E. wenn Du den Offen und Geschlossen invertieren könntest, sprich 1/1=Offen, dann kann man einiges vereinfachen
                          Invertierung sollte nicht das Problem darstellen (eval: not value).

                          Zitat von Sandman60 Beitrag anzeigen
                          Bspw. prüfst Du dann nur auf Offen=1 ab wenn Du wissen willst ob Offen oder Gekippt ist, analog Offen=0 wäre geschlossen.
                          Hier komme ich jetzt nicht ganz mit.

                          Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

                          Kommentar


                            #28
                            Du könntest drei Items anlegen:

                            Code:
                            fenster:
                                reed1:
                                    ...
                                reed2:
                                    ...
                                zu:
                                    type: bool
                                    eval: True if reed1 == 1 and reed2 == 1 else False
                                    eval_trigger:
                                    - reed1
                                    - reed2
                            
                                gekippt:
                                    type: bool
                                    eval: True if reed1 == 0 and reed2 == 1 else False
                                    eval_trigger:
                                    - reed1
                                    - reed2
                            
                                offen:
                                    type: bool
                                    eval: True if reed1 == 0 and reed2 == 0 else False
                                    eval_trigger:
                                    - reed1
                                    - reed2
                            Viele Grüße
                            Martin

                            There is no cloud. It's only someone else's computer.

                            Kommentar


                              #29
                              Zitat von Msinn Beitrag anzeigen
                              Du könntest drei Items anlegen:
                              Das liest sich schlüssig....werde ich heute Abend mal austesten!
                              Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

                              Kommentar


                                #30
                                Zitat von magiczambo Beitrag anzeigen
                                Das liest sich schlüssig...
                                ...stimmt aber nicht, denn offen ist ja eigentlich “nicht zu“. Ich will darauf hinaus, dass gekippt auch offen ist, den dritten Status braucht man eigentlich nicht.

                                Aber es ist natürlich deine Sache, wie du das auswerten willst...

                                Gruss, Waldemar
                                OpenKNX www.openknx.de

                                Kommentar

                                Lädt...
                                X