Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - einfacher "Taster" in OpenHAB

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

    #31
    Hallo Falk,

    das dachte ich auch erst, aber lt. dem Entrypost muß das so gehen:
    1. Item Switch definieren
    2. In der Sitemap z.B. Switch item=Garage_Gate label="Garage" mappings=[ON="Los"] definieren


    Aus diesem Grund komme ich hier so durcheinander. Wäre wirklich gut, wenn es ein Schaltflächentyp "Taster" gäbe.
    openHAB2 2.5.10 als Docker auf einen unRAID Server (Repository: openhab/openhab:latest-debian)
    Devices: KNX & ZWave

    Kommentar


      #32
      Hi Edgar,

      Zitat von EdgarWallace Beitrag anzeigen
      Hallo Falk,

      das dachte ich auch erst, aber lt. dem Entrypost muß das so gehen:
      1. Item Switch definieren
      2. In der Sitemap z.B. Switch item=Garage_Gate label="Garage" mappings=[ON="Los"] definieren


      Aus diesem Grund komme ich hier so durcheinander. Wäre wirklich gut, wenn es ein Schaltflächentyp "Taster" gäbe.
      Sorry aber das ist unlogisch, die Stelle an der das item angezeigt wird hat imho nichts mit dessen Funktionalität zu tun.

      Gruss
      Falk

      Kommentar


        #33
        Zitat von fstec Beitrag anzeigen
        Moin Edgar,

        Du musst den Switch nicht in die Sitemap schreiben, ins Untermenü kommt er über die Gruppenzugehörigkeit gFF und darin dann FF_Living was Du dem switch in der items zugewiesen hast.

        Gruss
        Falk
        Hallo Falk,
        das ist richtig, aber dann erscheint ein einfacher Switch und kein Taster.
        Nur die Lösung mit dem Sitemap stellt den "Taster", der sich dann aber im Hauptmenü befindet.

        Ich habe mal die Screenshots angehängt, die Sache lässt sich so besser darstellen.
        Angehängte Dateien
        openHAB2 2.5.10 als Docker auf einen unRAID Server (Repository: openhab/openhab:latest-debian)
        Devices: KNX & ZWave

        Kommentar


          #34
          Du nutzt die automatische Gruppenfunktion. Damit erstellt openHAB auch eine Unterseite mit Deinen Items, die Du der Gruppe zugeordnet hast. Das ist aber eher als Funktion für den schnellen Erfolg zu verstehen.
          Wenn Du statt des Group item eine eigene Unterseite einfügst, kannst Du für alle Items auf dieser Seite das Aussehen einstellen.
          Schau mal in der Demo nach, da sind verschiedene Unterseiten händisch erzeugt.

          Kommentar


            #35
            Vielen Dank Udo, jetzt wurde das klar.
            Hier wurde das auch schon mal diskutiert und das ist der Absatz, der das auch noch einmal deutlich macht:
            Derzeit ist die Logik so, dass die .sitemap automatisch ihre Gruppen nach den Gruppen der .items erzeugt. Konzeptionell haben die beiden Dinge aber nichts miteinander zu tun.

            Die .items enthält eben die echten Items die auch eine Bindung zur Hardware herstellen können und .sitemap stellt lediglich EINE Möglichkeit dar, wie diese Items anzuzeigen sind. Du könntest Dir auch für Smartphone und Tablet unterschiedliche Sitemaps erzeugen. In diesem Fall würdest Du mit der automatischen Gruppenauswertung nicht mehr weiterkommen.

            Der Normalfall ist also, dass Du in der Sitemap die jeweiligen Items direkt referenzierst. Nur so kannst Du bspw. auch Einfluß auf die Reihenfolge der Darstellung nehmen.
            Ich werde meine items Datei nun ausschliesslich für die Bindung an die HW verwenden und die sitemap so umstellen, dass diese den Präsentationslayer übernimmt.

            Nochmals herzlichen Dank.
            openHAB2 2.5.10 als Docker auf einen unRAID Server (Repository: openhab/openhab:latest-debian)
            Devices: KNX & ZWave

            Kommentar


              #36
              Hallo,

              wie bekomme ich folgenden Anwendungsfall in openhab abgebildet:

              Ich will auf der sitemap einen Pushbutton haben "Öffner". Beim betätigen will ich ein ON an ein Item schicken. Wenn ich wieder loslasse dann soll ein OFF an das Item geschickt werden.

              Ich habe folgendes probiert aber, damit wird nur ein ON geschickt, und dann nichts mehr:

              items
              Code:
              Switch  HAUSTUER_OEFFNER        {knx="10/0/1", autoupdate="false"}
              sitemap
              Code:
              Switch item=HAUSTUER_OEFFNER mappings=[ON="öffnen"]

              Kommentar


                #37
                Du kannst Dafür das Expire Binding verwenden, ob Du dann autoupdate="false" setzt, ist egal. Alternativ kannst Du eine Rule erstellen, die das Rückstellen übernimmt.

                Kommentar


                  #38
                  Habe etwas ähnliches, ich habe es über eine Regel gemacht.

                  rule "Kochen"
                  when
                  Item Kochen changed to ON
                  then
                  sendCommand(Kochen,OFF)
                  end

                  Kommentar


                    #39
                    Genau. Wobei man bei der Aufgabe (Türöffner) zumindest eine kleine Wartezeit einplanen sollte, entweder mittels
                    Code:
                    Thread::sleep(Zeit in ms)
                    oder mit einem Timer, wenn die Wartezeit etwas länger sein soll, beim Türöffner ist aber sicher die erste Variante passender, da geht es ja um eine Zeitspanne von 1 - 2 Sekunden.

                    Kommentar


                      #40
                      Hi, ich habe ein ähnliches Problem, bin aber was die Tasterzeit angeht etwas stärker eingeschränkt....
                      Ich habe 12V-LED-Pool-Spots, die den Farbton über ein erneutes kurzes "aus und wieder ein" ändern.
                      Ich habe also einen normalen Switch für Ein/Aus und hätte gerne einen Taster, der beim Drücken ganz kurz die Gruppenadresse für den Ein/Aus-Schalter kurz sendet und dann erneut nach einher halben Sekunde, also nach dem die Spots an sind soll er aus und wieder an innerhalb von einer Sekunde oder weniger schicken..
                      Hat dazu jemande eine Idee ?

                      Saludos,

                      Oliver

                      Kommentar


                        #41
                        Es gibt mehrere Möglichkeiten. Ganz tumb:
                        Code:
                        rule "Farbton ändern"
                        when
                            Item myTaster received command ON
                        then
                            if(myLamp.state == ON) {
                                myLamp.sendCommand(OFF)
                                Thread::sleep(480)
                                myLamp.sendCommand(ON)
                            }
                        end
                        oder eleganter mittels Timer:
                        Code:
                        var Timer tFarbe = null
                        
                        rule "Farbton ändern"
                        when
                            Item myTaster received command ON
                        then
                            if(myLamp.state == ON && tFarbe === null) {
                                myLamp.sendCommand(OFF)
                                tFarbe = createTimer(now.plusMillis(480),[|
                                    myLamp.sendCommand(ON)
                                ])
                            }
                        end
                        In diesem Fall spielt es eher keine Rolle, ob man Thread::sleep() verwendet oder den Timer, bei langen Laufzeiten wäre aber der Timer die bessere Wahl.

                        Kommentar


                          #42
                          Hi Udo/Toni,
                          danke für den Tipp.
                          Tut es nun perfekt.
                          Ich hatte anstatt "received command ON" leider "changed to ON".. das ging nicht!
                          Nun werde ich noch versuchen den change color taster dynamisch ein zu blenden.. nur wenn die spots an sind.. und perfekt wäre anstatt des schiebeschalters nur einen taster/eine fläche zu haben... das geht per mapping .. aber wohl nicht wenn das item in einer gruppe angezeigt wird...
                          es gibt noch viel zu basteln....

                          saludos,

                          oliver

                          Kommentar


                            #43
                            Zitat von ollys Beitrag anzeigen
                            das geht per mapping .. aber wohl nicht wenn das item in einer gruppe angezeigt wird...
                            Formuliere die Sitemap komplett aus, dann hast Du alle Freiheiten.
                            Statt also Group item=gItem zu schreiben, schreibst Du
                            Code:
                            Text item=gItem {
                                Default item=firstGroupMember
                                Default item=secondGroupMember
                               ...
                            }
                            und statt Default kannst Du natürlich jedes passende Widget angeben.

                            Kommentar


                              #44
                              Danke für den Tipp..habe ich schon probiert und da kann ich dann mapping benutzen.. aber ich krieg es irgendwie nicht hin, dass die vorher in Gruppen zusammengefassten "Stockwerke" z.B. dann auch in verschiedenen Reitern sind, also nicht alles endlos in der ersten Seite der sitemap ist.. irgend eine Kleinigkeit übersehe ich da immer..
                              Aktuell habe ich :

                              Frame {
                              Group item=gP4KNX label="Licht P4"
                              Group item=gP3KNX label="Licht P3"

                              Group item=gP2KNX label="Licht P2"

                              Group item=gP1KNX label="Licht P1"
                              }

                              und somit das anklickbare label "Licht P4" z.B. dass dann alle in de Gruppe liegenden items in einer Unterseite öffnet...
                              Muss mir die Sitemap Doc noch mal anschauen...

                              Kommentar


                                #45
                                Meine Definition aus dem vorigen Post ist genau das: Du bekommst exakt ein Text Item, wenn Du das anklickst, öffnet sich eine Unterseite mit den Gruppenmembern. Du kannst das beliebig tief schachteln. Wichtig ist nur, dass auf derselben Ebene entweder ausschließlich normale Widgets oder ausschließlich Frame Widgets liegen. Ob Du eine (Unter-)Seite mit oder ohne Frames gestaltest, ist egal. Sieht dann so aus:
                                Code:
                                sitemap zuhause label="Zuhause" {
                                    Frame label ="Gebäude" {
                                        Text label="1. Obergeschoss" {
                                            Text label="Zimmer 1" {
                                                Frame label="Licht" {
                                                    Default item=OG1Z1Licht1
                                                    Default item=OG1Z1Licht2
                                                    Default item=OG1Z1Licht3
                                                }
                                                Frame label="Rollläden" {
                                                    Default item=OG1Z1Roll1
                                                    Default item=OG1Z1Roll2
                                                }
                                            }
                                            Text label="Zimmer 2" {
                                                ...
                                            }
                                        }
                                        Text label="Erdgeschoss"{
                                            ...
                                        }
                                    }
                                    Frame label="Infrastruktur" {
                                        Text label="Alle Läden" {
                                            Frame label="Rollläden OG" {
                                                Default item=OG1Z1Roll1
                                                Default item=OG1Z1Roll2
                                            }
                                            Frame label="Rollläden EG" {
                                                Default item=EG1Z1Roll1
                                                Default item=EG1Z1Roll2
                                            }
                                           
                                        }
                                    }
                                }

                                Kommentar

                                Lädt...
                                X