Ankündigung

Einklappen
Keine Ankündigung bisher.

OH2/KNX1.x funktioniert nicht

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

    OH2/KNX1.x funktioniert nicht

    Ich komme alleine einfach nicht weiter, und hab mir schon die Finger wundgegoogelt, also bitte nicht böse sein, falls erfahrenere User sofort wissen, wo es steht: Ich kriege einfach keine richtige Verbindung zu meiner KNX-Anlage hin.

    Unser Haus ist über KNX automatisiert, und ich möchte Logik-aufwändige Funktionen (Einbruchmeldung, Abwesenheits-Sim, evtl. Visu) über einen Server laufen lassen und da eine Synology DS216j vorhanden ist, gern darüber. Inzwischen konnte ich das aktuelle OH2-Paket finden und installieren, ebenso das mitgelieferte KNX1.9 Binding. Allerdings habe ich keine Ahnung, ob die Verbindung zum MDT IP Interface (SCN-IP000.02) über den zentralen Haus-Switch funktioniert.

    Die Fritzbox zeigt das Gerät mit IP an, das Network-Binding auch. Ich habe inzwischen verstanden, dass OH2 nicht einfach per GUI läuft, sondern elementare Funktionen (KNX!) noch per Config-Dateien konsol-idiert werden müssen. Obwohl ich einfach kein Linux Server Crack bin, habe ich mich soweit durchgewurschtelt, dass ich den im Paket auskommentierten Symlink zu public manuell erstellt habe und dort eine knx.cfg Datei mit der IP des MDT und der der DS216j und ignorelocalevents = true angelegt habe. Außerdem habe ich mir den Designer installiert und damit / mit notepad++ mir ein paar .item Dateien und eine erste kleine haus.sitemap in den entsprechenden Verzeichnissen erstellt.

    Aber
    1) Unter classicui/app?sitemap=haus reagiert die Anlage nicht auf die angezeigten Switches.

    2) Ich habe nicht die geringste Ahnung, woran ich erkenne, ob überhaupt das IP Interface angesprochen werden kann (in PaperUI habe ich das add-on installiert, taucht aber in bindings nirgends auf, auch die items und sitemap nicht).
    Immerhin habe ich eben beim Durchgehen der Dateien noch einen Flüchtigkeitsfehler in der knx.cfg gefunden, seither gab's die erste Rückmeldung:
    Code:
    WARN ] [nx.internal.connection.KNXConnection] - KNX link has been lost (reason: server request on object tunneling link link (closed) 192.168.178.<xxx>:3671 TP1 medium, device 0.0.0, hopcount 6)
    [ERROR] [.binding.knx.internal.bus.KNXBinding] - Received detach Event.
    3) Das openhab.log zeigt immer wieder item-Fehler an:
    Code:
    [ERROR] [ficate.internal.CertificateGenerator] - Failed to generate a new SSL Certificate.
    java.security.cert.CertificateException: Failed to generate the new certificate.
    ...
    Caused by: java.security.NoSuchAlgorithmException: EC KeyPairGenerator not available
    ...
    [WARN ] [org.apache.karaf.shell.ssh.SshUtils ] - Configured keyexchange 'ecdh-sha2-nistp521' not available
    ...
    [WARN ] [assic.internal.render.SwitchRenderer] - Cannot determine item type of '<item>' {novamax: Details für www verallgemeinert}
    org.eclipse.smarthome.core.items.ItemNotFoundException: Item '<item>' could not be found in the item registry...
    ...
    [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item '<item>' for widget org.eclipse.smarthome.model.sitemap.Switch
    Ich habe schon mitbekommen, dass openHAB2 auch nicht mitbekommt, wenn man Dinge aus dem item-files löscht, habe aber noch nicht herausgefunden, wie ich die in der internen Datenbank lösche. Das ganze Gefrickel ist irgendwie alles Andere nicht Anwender-freundlich, im Prinzip muss man dafür konsolenfest sein und am Besten noch Quellcode-Insider sein - Nach einer guten Woche rumbasteln und nächtlichem Lösungs-googeln bin ich kurz davor, das Handtuch zu werfen und mir für 700 € einen Gira miniserver in den Schrank einbauen zu lassen...

    Bevor ich also verzweifle, die Preisfrage an die Profis: Was muss ich ändern, damit es klappt? Was braucht Ihr für Infos?
    Synology DS216j, OpenHAB2 2.1.0.008-DSM6 Snapshot (conf verlinkt nach /volume1/public/openhab2/conf)

    #2
    In dem knx.cfg muss noch die IP vom NAS stehen und ich habe di Option TUNNEL angegeben, obwohl es ein default Parameter ist. Wie sieht denn deine .items und.sitemaps aus?
    ich hatte am Anfang Probleme mit der Installation auf dem NAS aber seitdem dies geklappt hat läuft es einwandfrei.

    Kommentar


      #3
      Zitat von novamax Beitrag anzeigen
      habe ich mich soweit durchgewurschtelt, dass ich den im Paket auskommentierten Symlink zu public manuell erstellt habe und dort eine knx.cfg Datei mit der IP des MDT und der der DS216j und ignorelocalevents = true angelegt habe.
      Ist drin (NAS = DS216j).

      EG.item:
      Code:
      // Gruppen
      Group gEG
      
      Group EG_Flur            "Flur (EG)"        <corridor>            (gEG)
      Group EG_Bad             "Bad (EG)"         <bath>                 (gEG)
      Group EG_HWR            "HWR"            <washingmachine_2-1>(gEG)
      Group EG_kueche         "Küche"            <kitchen>             (gEG)
      Group EG_Wohnzimmer     "Wohnzimmer"    <sofa>                (gEG)
      Group EG_Arbeitszimmer    "Arbeitszimmer"    <office>            (gEG)
      
      /*Licht*/
      Switch Licht_EG_Flur_Decke    "Licht Flur Decke"        (EG_Flur)    { knx="0/0/1S+0/0/1, 0/0/2" }
      Switch Licht_EG_Flur_Wand    "Licht Flur Wand"        (EG_Flur)    { knx="1/0/18S+0/0/1" }
      Switch Licht_EG_Flur_Treppe    "Licht Flur Treppe"        (EG_Flur)    { knx="1/0/16S+0/0/1" }
      Switch Licht_EG_Bad_Decke    "Licht Bad EG Decke"    (EG_Flur)    { knx="1/0/22S+0/0/1, 0/0/2" }
      Switch Licht_EG_Bad_Wand    "Licht Bad EG Spiegel"    (EG_Flur)    { knx="1/0/24S+0/0/1" }
      Switch Licht_EG_HWR_Decke    "Licht HWR Decke"        (EG_Flur)    { knx="0/0/12S+0/0/1, 0/0/2" }
      Switch Licht_EG_HWR_Wand    "Licht HWR Wand"        (EG_Flur)    { knx="1/0/20S+0/0/1" }
      
      /*Dimmer*/
      Dimmer Licht_EG_Wohnzimmer_Decke    "Licht Wohnzimmer Decke"    (EG_Wohnzimmer)    { knx="1/0/5S+0/0/1, 0/0/2, 1/0/39" }
      Die haus.sitemap:
      Code:
      sitemap haus label="Haus"
      {
          Frame label="EG"    icon=“firstfloor“
          {
              Frame    label=“Flur (EG)“        icon=“corridor“
              {
                  Switch item=Licht_EG_Flur_Decke     label="Decke"    icon="light"
                  Switch item=Licht_EG_Flur_Wand         label="Wand"     icon="light"
                  Switch item=Licht_EG_Flur_Treppe     label="Treppe"    icon="light"
              }
              Frame label="Bad (EG)"    icon="bath"
              {
                  Switch item=Licht_EG_Bad_Decke        label="Decke"    icon="light"
                  Switch item=Licht_EG_Bad_Wand        label=“Spiegel"        icon="light"
              }
              Frame label="HWR"    icon="waschingmachine_2-1"
              {
                  Switch item=Licht_EG_HWR_Decke        label=“Decke"    icon="light"
                  Switch item=Licht_EG_HWR_Wand        label=“Wand"        icon="light"
              }
          }
      }
      Alle icons der Frame-Zeile werden offenbar grundsätzlich ignoriert. Aber ist ja eh erstmal eine Test-Konfiguration.

      Ich bin mir nicht sicher, ob die KNX-Bus-Adressen richtig eingetragen sind - Ich habe kein ETS und muss mich auf die Angaben vom Eli verlassen, der die Anlage programmiert und übergeben hat. Bisher habe verstanden, dass es nur eine Hauptadresse, aber mehrere Listening-Adressen geben kann, daher die Aufteilung.

      Es gab je mehrere items-Fehler, ich habe das in meinem ersten Post erstmal nur exemplarisch mit <item> beschrieben.

      Ich bin davon ausgegangen, dass der Bezeichner in er .item eindeutig sein muss, aber in der .sitemap nicht (ist ja nur eine Anzeige).
      Synology DS216j, OpenHAB2 2.1.0.008-DSM6 Snapshot (conf verlinkt nach /volume1/public/openhab2/conf)

      Kommentar


        #4
        Ohje, ich würde mal mit einem Item anfangen:
        Code:
        Group gTest
        
        Switch eg_Licht "Lich test" <light> (gTest) { knx="<5/1/41" }
        Gruppenadresse natürlich anpassen.

        Entsprechende haus.sitemap:
        Code:
        sitemap meinHaus label="Test"{
        
        Frame label="Items" {
           Switch item=eg_Licht
        }
        }

        und das mit
        Code:
        xxx.xxx.xxx.xxx:8080/basicui/app?sitemap=haus
        aufrufen

        Kommentar


          #5
          Ahso die items Datei muss EG.items heißen

          Kommentar


            #6
            Zitat von ampere84 Beitrag anzeigen
            Ahso die items Datei muss EG.items heißen
            Ähm... Kleine Ursache, große Wirkung. Ich hab natürlich alles kontrolliert außer der Datei-Endung Habe gerade mein erstes Licht über Handy geschaltet - Es war zwar nicht das Licht, dass ich wollte, aber ist trotzdem ein Riesen-Erfolg nach dem Frust - Danke!

            Jetzt muss ich nur noch rausfinden, warum einige gelöschte items noch da sind, und durch die KNX-Adressen durchsteigen (wann das “<“ davor kommt, ob das S nach den Zahlen dahin gehört usw. - Nicht, dass ich nur mal das Licht anschalten will, und der Alarm geht los...

            Dann hat sich die Mühe ja ausgezahlt und ich kann in die Details absteigen!
            Zuletzt geändert von novamax; 20.01.2017, 23:23.
            Synology DS216j, OpenHAB2 2.1.0.008-DSM6 Snapshot (conf verlinkt nach /volume1/public/openhab2/conf)

            Kommentar


              #7
              Da es sich um ein 1.x-Binding handelst, findest Du hier die nötigen Informationen: https://github.com/openhab/openhab1-...ki/KNX-Binding oder Du fragst hier im Forum, funktioniert halt meist mit erheblicher Verzögerung.

              Aber ganz grob: Die Itemdefinition setzt sich ja aus verschiedenen Teilen zusammen:
              Code:
              Switch myItem "Mein Label [%s]" <icon> (gruppe) {binding=""}
              Zuerst kommt die Art des Items, also Schalter, Kontakt, Rollladen, Dimmer, Zahl, usw.
              Als zweites folgt dann der eineindeutige Name des Items.
              An dritter Stelle steht optional das Label, welches in der UI angezeigt wird. Wenn der Wert (oder Zustand) des Items angezeigt werden soll, kommen innerhalb des Labels die eckigen Klammern zum Einsatz, dann gibt %s an, dass der Status in einen String umgesetzt werden soll, %d gibt eine Ganzzahl zurück, %.1f gibt eine Float-Zahl mit einer Nachkommastelle zurück. Das gilt aber ausschließlich für die Anzeige! Man könnte hier auch ein Mapping setzen, dann schaut openHAB in einer Datei nach, was es für den aktuellen Wert einsetzen soll (damit kann man z.B. aus dem Status ON und OFF die Worte oben und unten machen. Dieser Teil des Labels wird immer rechtsbündig dargestellt.
              An vierter Stelle steht optional das zu verwendende icon, ansonsten wird ein Default verwendet, z.B. eine Glühlampe für den Switch, oder ein Rollladen für Rollershutter.
              An fünfter Stelle steht optional, welchen Gruppen das Item angehört.
              An sechster Stelle steht optional, welche Bindings an das Item gebunden sind. Alle optionalen Parameter können einfach weggelassen werden, wenn man sie nicht gezielt setzen will, jedoch muss die Reihenfolge eingehalten werden.
              Innerhalb der Binding-Definition kommt es auf das Binding selbst an, also bei knx:

              Code:
              Switch mySwitch {knx="1.001:1/1/1+<1.001:1/1/2"}
              Du siehst einen ganz einfachen knx Switch, dabei ist 1/1/1 die sendende GA, und zwar mit dem DPT1.001, zusätzlich gibt es noch eine Status-GA 1/1/2, ebenfalls mit dem DPT1.001, diese wird also nur gehört, aber nie von openHAB gesetzt. Wenn openHAB startet, schickt es einen Read Request auf diese Status-GA (das ist das <), wenn Dein knx System korrekt konfiguriert ist, kannst Du damit also beim Hochfahren gezielt die Zustände Deines Systems erfragen.
              Natürlich ist auch hier das meiste optional, der DPT muss bei einfachen GA meist nicht angegeben werden, anders sieht es aber bei Zahlen aus, da geht die Übertragung gerne schief, wenn der DPT nicht angegeben ist.
              Weiterhin gibt es Items, die bestimmte Datenpunkte erwarten, wenn Du dann welche weglassen willst, musst Du evtl. für andere den DPT mit angeben, damit openHAB die GA korrekt zuordnen kann (z.B. Dimmer ohne INCREASE/DECREASE GA). Außerdem musst Du auch nicht unbedingt eine Status-GA angeben (ist aber ungemein praktisch).
              Damit ein Read Request funktioniert, muss exakt ein Gerät pro angefragter GA so konfiguriert sein, dass es das Lesen erlaubt (L-Flag gesetzt), das ist normalerweise der zugehörige Aktor, oder, z.B. bei Messwerten, der Sensor, der ohnehin als einziger auf der GA sendet.
              Zuletzt geändert von udo1toni; 21.01.2017, 19:33.

              Kommentar


                #8
                Ich weiß nicht, wie ich Dir danken kann (Lass es mich per PM wissen, falls Du selbst ein Projekt hast, für das man spenden kann oder so!) - Soviel Geduld, Hilfsbereitschaft und Präzision weiß ich riesig zu schätzen! Da fühlt man sich auch als Einsteiger sehr ernst genommen und willkommen! Du leistest hier echt was mit den ganzen Hintergrund-Erklärungen!

                Und Ampere84: Auch ein Riesen Dankeschön, ich war schon kurz vor'm Aufgeben (ebenfalls: Wenn ich was tun kann...).

                Ich fühle mich hier wirklich ermutigt und willkommen, ist in IT-Foren nicht immer selbstverständlich, kenne ich auch anders!
                Zuletzt geändert von novamax; 22.01.2017, 03:55.
                Synology DS216j, OpenHAB2 2.1.0.008-DSM6 Snapshot (conf verlinkt nach /volume1/public/openhab2/conf)

                Kommentar


                  #9
                  Gern geschehen. Da ich selbst schon sehr oft Hilfe in verschiedenen Foren erfahren habe, sehe ich das als Möglichkeit, ein klein bisschen davon wieder zurück zu geben

                  Kommentar

                  Lädt...
                  X