[gelöst] openHAB2 - Konfigurationsprobleme bei Things (speziell Homematic-Bridge)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Tachy
Beiträge: 3
Registriert: 1. Dez 2018 12:27

[gelöst] openHAB2 - Konfigurationsprobleme bei Things (speziell Homematic-Bridge)

Beitrag von Tachy »

Hallo zusammen,

Ich habe openHAB2 auf einem linux-Rechner aus rpm neu installiert und habe mir auch Tutorials und Dokus dazu durchgesehen. Ich habe leider ein Verständnisproblem, was Config-Dateien unter/etc/openhab2/things betrifft.

Zuerst habe ich zwei Addons für KNX und Homematic von der PaperUI aus installiert, das klappte auch.

Die Config für KNX hat funktioniert - habe mein KNX-IP-Gatway als Thing "KNX/IP-Gateway" angelegt und dort die IP eingetragen. Es zeigt zwar im Connection-Status ein "unknown" an, aber ok. Das Gateway liegt mit 192.168.179.10 im selben /24-Subnet wie der Linuxrechner mit openHAB (192.168.179.4)

Die Homematic-CCU3 liegt in einem über Fritzbox-VPN erreichbaren Intranet 192.168.177.29 und ist auch über PING problemlos erreichbar. Für diese habe ich auch ein "thing" "Homematic-Bridge" angelegt und das versuche ich gerade zu konfigurieren.

Als "configuration parameters" gebe ich bei "Gateway Address" die 192.168.177.29 an, Gateway-Type "CCU. Als "Callback Network Address" versuche ich jetzt die 192.168.179.4 (also die Adresse des Linuxrechners mit openHAB2) anzugeben, was er aber beim Speichern nicht annimmt. Nach dem Speichervorgang mit dem Haken zeigt er rechts unten kurz eine Fehlermeldung "500 - Internal Server Error" an und gibt im Log diese Fehlermeldung aus:

Code: Alles auswählen

2018-12-01 12:40:28.553 [ERROR] [st.core.internal.thing.ThingResource] - Exception during HTTP PUT request for update config at 'things/homematic:bridge:39587cdb/config'
java.lang.NullPointerException: null
	at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.waitForScanFinishing(HomematicDeviceDiscoveryService.java:174) [205:org.openhab.binding.homematic:2.3.0]
	at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.stopScan(HomematicDeviceDiscoveryService.java:121) [205:org.openhab.binding.homematic:2.3.0]
	at org.openhab.binding.homematic.handler.HomematicBridgeHandler.dispose(HomematicBridgeHandler.java:143) [205:org.openhab.binding.homematic:2.3.0]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.handleConfigurationUpdate(BaseThingHandler.java:196) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
	at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.updateConfiguration(ThingRegistryImpl.java:92) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
	at org.eclipse.smarthome.io.rest.core.internal.thing.ThingResource.updateConfiguration(ThingResource.java:425) [118:org.eclipse.smarthome.io.rest.core:0.10.0.oh230]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [169:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [169:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [169:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [169:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [169:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [169:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) [170:org.glassfish.jersey.core.jersey-server:2.22.2]
	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) [167:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) [167:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) [167:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) [167:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) [167:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
	at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) [15:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [183:org.ops4j.pax.web.pax-web-jetty:6.0.9]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [82:org.eclipse.jetty.security:9.3.21.v20170918]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) [183:org.ops4j.pax.web.pax-web-jetty:6.0.9]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [183:org.ops4j.pax.web.pax-web-jetty:6.0.9]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.Server.handle(Server.java:534) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [76:org.eclipse.jetty.io:9.3.21.v20170918]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [76:org.eclipse.jetty.io:9.3.21.v20170918]
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [76:org.eclipse.jetty.io:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at java.lang.Thread.run(Thread.java:748)



plus "Status: OFFLINE - COMMUNICATION_ERROR java.net.ConnectException: Verbindungsaufbau abgelehnt"

Wenn ich die Homematic-Bridge wieder bearbeiten will, ist nur noch die IP der Homematic-Bridge da, die Callback Network Address ist leer.

Grundsätzliche Verständnisfrage: Wo speichert die UI die Configs ab? unter /etc/openhab2/things/ ist nichts dazugekommen. ist vielleicht das schon das Problem? Das Verzeichnis hat Schreibrechte für den "openhab"-User, soweit ok, oder?

Wo muss ich suchen?


Viele Grüße

Tachy
Zuletzt geändert von Tachy am 3. Dez 2018 09:52, insgesamt 1-mal geändert.

Benutzeravatar
udo1toni
Beiträge: 13854
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: openHAB2 - Konfigurationsprobleme bei Things (speziell Homematic-Bridge)

Beitrag von udo1toni »

Nein, "was in Paper UI passiert, bleibt in Paper UI..." (hach, Filmzitate...) ;)

Im Ernst: openHAB hat eine interne json Datenstruktur, die etwas versteckt (bei einer Installation über apt) im Ordner /var/lib/openhab2/jsondb/ liegt, weil man von diesen Dateien die Finger lassen sollte, solange man nicht wirklich sehr genau weiß, was man tut. Die Updatemechanismen greifen nicht für diese Dateien, entsprechend muss man auch darauf achten, vor manuellen Änderungen openHAB2 zu beenden. Reingucken ist aber nicht verboten :) nur Änderungen sollte man tunlichst unterlassen.

Grundsätzlich hat man bei openHAB2 zwei Wege, zu konfigurieren. Für OH1 Bindings (also solche, die schon mit OH1 funktionier(t)en, ist die Textmethode über die Dateien unterhalb /etc/openhab2/ zwingend. Für OH2 Bingings (vornehmlich solche, die Autodiscovery bieten...) kann man die Konfiguration alternativ auch über die GUI erledigen, oder über Karaf, die REST API, HABmin,... normalerweise lassen sich aber auch diese Bindings über Textdateien konfigurieren, natürlich geht es dann um Things oder Bridges, also ist das Verzeichnis dann ./things/ und nicht ./addons/.
Items werden im ersten Fall direkt mit der Konfiguration für das Binding gespeichert, was ebenfalls nur per Textdatei geht, im zweiten Falls nutzt man als Binding immer den Channel, dieses Linken geht dann wieder per Paper UI oder eine der anderen Optionen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Tachy
Beiträge: 3
Registriert: 1. Dez 2018 12:27

Re: openHAB2 - Konfigurationsprobleme bei Things (speziell Homematic-Bridge)

Beitrag von Tachy »

Danke..

Im json waren auch nicht alle Werte abgespeichert. Neu anlegen des Homematic-Bridge-Things hat es jetzt wenigstens korrekt eingetragen - aber nun steht dort nach einer Weile mit "initializing" jetzt:

Status: OFFLINE - COMMUNICATION_ERROR Unknown XML-RPC tag: title

Wenigstens kommt im Log keine Java-Exception mehr und die Callback IP ist jetzt drin.

Das ist doch verbuggt, oder?

Sollte ich vielleicht die GUI lassen und die Config rein 1.x textbasiert machen? Muss ich da dann nur noch die Addons über die GUI einrichten und die Things etc. gänzlich in Ruhe lassen?

Tachy
Beiträge: 3
Registriert: 1. Dez 2018 12:27

Re: openHAB2 - Konfigurationsprobleme bei Things (speziell Homematic-Bridge)

Beitrag von Tachy »

Nach längerem Suchen bin ich auf etwas gestoßen:

https://community.openhab.org/t/homemat ... itle/57510

Die sagen, die CCU3 ginge nicht mit openHAB <2.4xxx. Stable ist aber momentan nur 2.3.

Fehler gefunden: in der CCU3 war unter Systemeinstellungen -> Sicherheit der Zugriff nur mit Authentifizierung auf die API möglich. Haken raus, geht.

Ambo
Beiträge: 2
Registriert: 19. Apr 2020 23:18

Re: [gelöst] openHAB2 - Konfigurationsprobleme bei Things (speziell Homematic-Bridge)

Beitrag von Ambo »

... die CCU2 hat eine Firewall konfiguriert --- die einfach abschalten, dann gings bei mir
Einstellungen > Systemsteuerung - alles auf Vollzugriff stellen

Antworten