Ankündigung

Einklappen
Keine Ankündigung bisher.

Fensterkontakt - KNX - Openhab

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

    Fensterkontakt - KNX - Openhab

    Hallo Beisammen,

    ich bräuchte leider wieder ein bisschen Input, da ich momentan nicht weiter weiß. Folgende Ausgangssituation:

    Die Fensterkontakte sind auf einem Gira Binäreingang. Dieser sendet momentan die Werte zyklisch. Zum Testen jetzt mal so schnell als möglich. Zudem bei jedem Status wechsel.

    Der Openhab-server hat folgende Code- Zeile

    Contact KG_Buegelraum_Fenster "Buegelraum [MAP(de.map):%s]" (KG_Buegelraum) {knx="<6/0/51"}

    Der Busmonitor zeigt folgendes:
    # Zeit Dienst Flags Prio Quell-Adresse Quell-Name Ziel-Adresse Ziel-Name Rout Typ DPT Info
    5 01.11.2017 21:50:48,360 vom Bus Low 1.1.19 Binäreingang 6fach 24V REG 6/0/51 Fenster Status Bügel Ost 6 Schreiben 1.019 Fenster/Tür $00 | closed
    in logischerweise ganz schneller Abfolge.

    Die Anzeige bei der Visu ist leider nur -.

    Was mach ich falsch. Was mus ich noch definieren? Irgendwie komme ich grade nicht weiter. Könnt Ihr mir bitte helfen?

    Vielen Dank!

    Markus

    #2
    Das erste wäre, Dir den Bus nicht vollzumüllen. (Wobei ich ja nicht weiß, was "so schnell als möglich" bedeutet, aber mir schwanen Telegramme im Sekundentakt.)
    Das zweite wäre: geht knx in openHAB grundsätzlich?
    Punkt 3: was steht in de.map drin?
    Punkt 4: ist das mit GA 6/0/51 verbundene Objekt des Geräts 1.1.19 mit einem L-Flag versehen?

    Gibt es bezüglich KG_Buegelraum_Fenster Meldungen in events.log ? Gibt es bezüglich knx Meldungen in openhab.log?
    Zuletzt geändert von udo1toni; 02.11.2017, 05:14.

    Kommentar


      #3
      OK.

      Erstens Danke für die Rückmeldung.

      Des mit den Sekundentakt stimmt. :-) Aber ich habe mir gedacht ich mach es halt mal testweise, damit es ja funktioniert.
      Im Endstadium hab ich mir gedacht nur bei Statusänderung und sonst nur sehr große Intervalle um den Bus nicht zuzumüllen...

      Schalten und Rückmeldungen gehen in knx.

      deine Frage 3 Verstehe ich nicht. Leider verstehe ich auch wenn ich es recht überlege meinen eigenen Befehl nicht. was löst den .map aus? Wo kann ich da irgendwas nachlesen? Wenn ich ehrlich bin hab ich mir den Befehl einfach nur aus dem Internet zusammengestückelt, weil die offizielle Anleitung nach dem Switch einfach aufhört (leider).

      Punkt 4 war nicht, hab ich jetzt gemacht (ich hab es halt jetzt in ETS auf lesend gesetzt (den Binäreingang mit 1.1.19)). Das war mir soo nicht bewusst.


      In events.log sind Meldungen für KG_Buegelraum_Fenster:

      2017-11-01 20:30:14.231 [ItemUpdatedEvent ] - Item 'KG_Buegelraum' has been updated.

      In openhab.log sind auch jede Menge knx Meldungen:. 7300

      Aber ich glaube ich muss als erstes als die an die map- geschichte ran...

      2017-11-02 12:33:50.426 [WARN ] [.core.transform.TransformationHelper] - Cannot get service reference for transformation service of type MAP
      2017-11-02 12:33:50.446 [WARN ] [.core.transform.TransformationHelper] - couldn't transform value because transformationService of type 'MAP' is unavailable

      Danke für die Hilfe!


      Zuletzt geändert von Markus784; 02.11.2017, 13:46.

      Kommentar


        #4
        Also, "Buegelraum [MAP(de.map):%s]" als Label bedeutet: Auf der linken Seite steht der statische Teil des Labels, nämlich Buegelraum (in Labeln dürfen auch Umlaute eingesetzt werden, Du könntest also auch Bügelraum schreiben. Soweit sollte es klar sein. Der interessante Teil ist der in den [] Klammmern, das ist der dynamische Teil des Labels. %s steht für den Status des Items in Form eines Strings, also als Text. Ein Item vom Typ Contact kann drei verschiedene Status annehmen, nämlich NULL (es gab seit Programmstart kein gültiges Statusupdate für dieses Item) OPEN und CLOSED. Dies sind dann die drei Texte, die im Label auftauchen können.
        Nun ist der englische Begriff in einem deutschen Label nicht ideal, also gibt es einen Service, der es erlaubt, ein Mapping herzustellen, eben der Mapping Service. MAP(de.map): bedeutet: Nimm das hinter dem Doppelpunkt (also den String mit dem Status des Items) und schau in der Datei de.map nach, ob es dort ein passendes Wertepaar gibt. Nimm dann den entsprechenden Teil.

        Wenn Du keine de.map anlegst, kann das Ganze also nicht funktionieren.
        Diese Datei muss im Konfigurationsverzeichnis unterhalb ./transform/ liegen, der Inhalt sieht dann so aus:
        Code:
        OPEN=offen
        CLOSED=geschlossen
        NULL=-
        -=-
        Das heißt, der Service schaut links vom Gleichheitszeichen nach der Zeichenkette und liefert die rechte Zeichenkette (oder das - als Default, falls er keinen passenden Wert findet) Zu beachten ist, dass viele Sonderzeichen escaped werden müssen, also
        Code:
        a value=ein Wert
        another\ value=ein anderer Wert
        die erste Zeile wird nicht umgesetzt, die zweite funktioniert.

        Auch für Testzwecke ist eine Wertübertragung im Sekundentakt nicht zielführend, denn mitunter könnte dadurch die Kommunikation gestört werden, dann geht also gar nichts mehr, was ja nun das Gegenteil von dem ist, was Du erreichen willst. Also zum Testen eher meinetwegen alle 20 Sekunden senden lassen, wenn es denn sein soll.
        Das L-Flag steht für Lesbar, heißt also, dieses Gerät (bzw. dieses Objekt) wird auf Leseanforderungen antworten. Deshalb ist es wichtig, dieses Flag nur exakt einmal pro GA zu setzen, und unbedingt im richtigen Objekt, also z.B. bei einem Temperaturfühler und nicht in einem Display, das die Temperatur nur anzeigt, oder eben in einem Aktor, aber dort in dem Rückmeldeobjekt, nicht im Schaltobjekt. Dieses Flag ist wichtig, damit openHAB beim Systemstart diese GA lesen kann. Nach dem Systemstart sollte es keine Rolle mehr spielen.

        Wenn Du das Fenster mal öffnest und schließt, sollte im events.log eine Zeile ähnlich wie
        Code:
        2017-11-01 20:30:14.231 [ItemChangedEvent ] - Item 'KG_Buegelraum' has changed to OPEN.
        2017-11-01 20:30:14.231 [ItemChangedEvent ] - Item 'KG_Buegelraum' has changed to CLOSED.
        auftauchen. In diesem log ist der echte Status zu sehen, nicht ein eventuelles Mapping, deshalb sollte es da trotzdem korrekte Werte geben.

        Die Fehlermeldungen hast Du ja schon richtig zugeordnet, und erklärt hab ich es oben schon.

        Kommentar


          #5
          Hallo udo1toni,

          vielen Dank für deine Hilfe! Jetzt klappt es! Sag mal woher weißt du das denn - ich mein das mit den Syntax von openhab. Ich finde das nicht so in den offiziellen Handbüchern... Hättest du da noch eine Quelle?

          PS.: Das einzige was ich nicht so verstanden habe, ist das:

          Das heißt, der Service schaut links vom Gleichheitszeichen nach der Zeichenkette und liefert die rechte Zeichenkette (oder das - als Default, falls er keinen passenden Wert findet) Zu beachten ist, dass viele Sonderzeichen escaped werden müssen, also
          Code:
          a value=ein Wert another\ value=ein anderer Wert
          die erste Zeile wird nicht umgesetzt, die zweite funktioniert.
          ich verstehe es so, dass alles super ist solange vor und nach dem Gleichheitszeichen nur ein Wort (bzw. eine Zeichenkette) ist. Sollte dazwischen ein Leer sein, so muss ich links zwischen den beiden Zeichenketten "\ " schreiben. Hab ich das so richtig verstanden?

          Sorry. Nur falls ich das mal brauche...
          Zuletzt geändert von Markus784; 03.11.2017, 19:09.

          Kommentar


            #6
            Ja, das hast du richtig verstanden. Ein Beispiel aus meiner map: Returning\ Dock=fahre zur Ladestation
            Zuletzt geändert von trant; 03.11.2017, 19:59.
            lg
            Stefan

            Kommentar


              #7
              Super! Danke für die Rückmeldung!

              Kommentar


                #8
                Zitat von Markus784 Beitrag anzeigen
                Sag mal woher weißt du das denn - ich mein das mit den Syntax von openhab. Ich finde das nicht so in den offiziellen Handbüchern... Hättest du da noch eine Quelle?
                Leider ist das etwas verstreut, zum einen in der Doku, zum anderen in Verweisen zu externen Dokumenten. Aber alles zu finden:

                http://docs.openhab.org/addons/transformations.html -> http://docs.openhab.org/addons/trans...ap/readme.html -> https://docs.oracle.com/javase/8/doc...ava.io.Reader-

                Oder Du suchst hier im Forum (letztlich ist irgendwann mal jemand drüber gestolpert, den Thread hab ich damals auch gelesen und in meinem Gedächtnis abgespeichert - bei bestimmten Dingen funktioniert das ganz gut.)
                Mein Englisch ist leider nur gut, um zu lesen und vielleicht an der einen oder anderen Stelle einen Satz zu korrigieren, aber sicher nicht, um eine englische Dokumentation zu schreiben. Entsprechend liefere ich da auch nicht zu...

                Kommentar

                Lädt...
                X