ERROR InfluxDBPersistenceService

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

CSF
Beiträge: 6
Registriert: 19. Apr 2020 08:58
Answers: 0

ERROR InfluxDBPersistenceService

Beitrag von CSF »

Hallo,
ich habe gestern eine komplette Neuinstallation von Openhab gemacht.
openHAB 4.0.2 - Release Build auf einem Raspberry 4.

Beim Installieren von Influx+Grafana über das openHABian Configuration Tool kommt es schon zu einem Fehler bzw. Abbruch.
Die Influxdatenbank wird zwar angelegt und die Grafanaoberfläche ist auch erreichbar bzw. da.

Jedoch gibt es jetzt zwei Fehler:
1. In Grafana kann ich mich nicht einloggen. (Benutzer admin - die Standart- bzw. zuvor festgelegten Passwörter funktionieren nicht)
2. Eine Fehlermeldung kommt auch im Openhab Log Viewer (frontail)

Code: Alles auswählen

2023-08-27 11:36:08.909 [ERROR] [.influxdb.InfluxDBPersistenceService] - bundle org.openhab.persistence.influxdb:4.0.2 (276)[org.openhab.persistence.influxdb.InfluxDBPersistenceService(348)] : Error during instantiation of the implementation object
java.lang.reflect.InvocationTargetException: null
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
	at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
	at org.apache.felix.scr.impl.inject.internal.ComponentConstructorImpl.newInstance(ComponentConstructorImpl.java:326) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:286) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:115) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:1002) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:975) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:920) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:220) ~[org.eclipse.osgi-3.18.0.jar:?]
	at java.security.AccessController.doPrivileged(AccessController.java:318) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:217) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:118) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:48) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:547) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:534) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:660) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:88) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BindMethod.getServiceObject(BindMethod.java:675) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2612) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager.invokeUnbindMethod(DependencyManager.java:2204) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeUnbindMethod(SingleComponentManager.java:466) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(DependencyManager.java:398) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(DependencyManager.java:304) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1258) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1152) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.untrack(ServiceTracker.java:1012) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1192) ~[?:?]
	at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:116) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:123) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:961) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:937) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:874) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:241) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:952) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:915) ~[?:?]
	at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:140) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterService(AbstractComponentManager.java:994) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.doDeactivate(AbstractComponentManager.java:844) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:825) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:589) ~[?:?]
	at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.disposeComponents(ConfigurableComponentHolder.java:722) ~[?:?]
	at org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:492) ~[?:?]
	at org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:652) ~[?:?]
	at org.apache.felix.scr.impl.Activator.access$300(Activator.java:74) ~[?:?]
	at org.apache.felix.scr.impl.Activator$ScrExtension.destroy(Activator.java:490) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender$1.run(AbstractExtender.java:216) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.destroyExtension(AbstractExtender.java:238) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.bundleChanged(AbstractExtender.java:132) ~[?:?]
	at org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:255) ~[?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:949) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:229) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:138) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:130) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:217) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.Module.publishEvent(Module.java:499) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.Module.doStop(Module.java:658) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.Module.stop(Module.java:521) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1888) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1763) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:275) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:208) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.Module.doStop(Module.java:660) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.Module.stop(Module.java:521) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:207) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:226) ~[org.eclipse.osgi-3.18.0.jar:?]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.IllegalArgumentException: Configuration invalid.
	at org.openhab.persistence.influxdb.InfluxDBPersistenceService.<init>(InfluxDBPersistenceService.java:133) ~[?:?]
	... 75 more
Kann mir hier jemand einen Tipp geben, warum die originale Installation von https://www.openhab.org/download/ nicht ordnungsgemäß funtioniert?

Vielen Dank im Voraus für Eure Hilfe bzw. einen Hinweis!
lG, CSF

CSF
Beiträge: 6
Registriert: 19. Apr 2020 08:58
Answers: 0

Re: ERROR InfluxDBPersistenceService

Beitrag von CSF »

Ergänzend noch die Fehlermeldung bei der Installation:

Code: Alles auswählen

Restarting Grafana...
+ cond_redirect systemctl restart grafana-server.service
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ systemctl restart grafana-server.service \033[39;49;00m'

$ systemctl restart grafana-server.service
+ systemctl restart grafana-server.service
+ return 0
+ cond_redirect curl -4 --retry 6 --retry-connrefused --insecure --head http://localhost:3000
+ [[ -n '' ]]
+ echo -e '\n\033[90;01m$ curl -4 --retry 6 --retry-connrefused --insecure --head http://localhost:3000 \033[39;49;00m'

$ curl -4 --retry 6 --retry-connrefused --insecure --head http://localhost:3000
+ curl -4 --retry 6 --retry-connrefused --insecure --head http://localhost:3000
curl: (7) Failed to connect to localhost port 3000: Verbindungsaufbau abgelehnt
Warning: Problem : connection refused. Will retry in 1 seconds. 6 retries
Warning: left.
curl: (7) Failed to connect to localhost port 3000: Verbindungsaufbau abgelehnt
Warning: Problem : connection refused. Will retry in 2 seconds. 5 retries
Warning: left.
curl: (7) Failed to connect to localhost port 3000: Verbindungsaufbau abgelehnt
Warning: Problem : connection refused. Will retry in 4 seconds. 4 retries
Warning: left.
curl: (7) Failed to connect to localhost port 3000: Verbindungsaufbau abgelehnt
Warning: Problem : connection refused. Will retry in 8 seconds. 3 retries
Warning: left.
HTTP/1.1 200 OK
Cache-Control: no-store
Content-Type: text/html; charset=UTF-8
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
Date: Sun, 27 Aug 2023 10:03:47 GMT

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

Re: ERROR InfluxDBPersistenceService

Beitrag von udo1toni »

Zu Grafana: die momentan ausgelieferte Version (10.1.0?) hat wohl ein grundsätzliches Problem (nicht in der Verantwortung von openHABian oder gar openHAB). Workaround: Downgrade zu 10.0.3. Ohne Gewähr:

Code: Alles auswählen

sudo apt remove grafana
sudo apt install grafana=10.0.3
Die Fehlermeldung in frontail besagt lediglich, dass die Konfiguration für InfluxDB fehlerhaft ist.

openHABian installiert Software. Konfigurieren musst Du sie aber schon selbst.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

CSF
Beiträge: 6
Registriert: 19. Apr 2020 08:58
Answers: 0

Re: ERROR InfluxDBPersistenceService

Beitrag von CSF »

Vielen Dank für die rasche Unterstützung!

Jetzt läuft wieder alles.

Nur Grafana war nach dem Neustart nicht verfügbar bzw. gestartet.

Nach folgendem Befehl läuft jetzt auch Grafana wieder automatisch nach dem Neustart.

Code: Alles auswählen

 sudo systemctl enable grafana-server

Frankinho
Beiträge: 23
Registriert: 15. Mai 2017 12:53
Answers: 0

Re: ERROR InfluxDBPersistenceService

Beitrag von Frankinho »

Hallo Neuinstallierer,
Ich hoffe ich kann es hier anhängen. Ansonsten mache ich ein neues Thema auf.

Ich habe nach vielen Versuchen eines Upgrades von 3.2 auf 4.01 entschieden die 3.2 laufen zu lassen und mit meinen bisherigen Erfahrungen und Ideen ein neues 4. 64 Bit aufzusetzen. Am Ende soll dann mal das neue das alte ersetzen. So steht mir das alte als Vorlage noch lauffähig zur Verfügung.
Nun meine Frage.
Ich möchte influxdb für die persistenten Daten benutzen. Ist installiert mit grafana und auch das Binding ist eingerichtet. Das alte rrd4j hat die Daten ja geschrumpft und nach einem Jahr war Schluß.
Muß ich nun weiter die items in einer Datei benennen oder wie ist die aktuelle Vorgehensweise um z.B Temperaturen aufzuzeichnen?

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

Re: ERROR InfluxDBPersistenceService

Beitrag von udo1toni »

Ab openHAB Version 3 gilt: wenn für einen installierten (und konfigurierten) Persistence Service keine passende <service>.persist Datei existiert, werden alle Items mit der Strategy everyChange persistiert. Bei rrd4j wird zusätzlich mit everyMinute persistiert, weil rrd4j zwingend everyMinute braucht. rrd4j wird automatisch installiert, ohne dass dies im System irgendwo ersichtlich wäre :)

InfluxDB lässt sich intern so konfigurieren, dass auch hier Daten nach einer Zeit X verworfen werden, dies geschieht über die Eigenschaften der Buckets. Außerdem kann man ebenfalls innerhalb InfluxDB auch Regeln definieren, welche automatisch - ähnlich wie rrd4j das auch tut - Daten aus einem Bucket zusammenfassen und in einen anderen Bucket speichern, um ohne großen Platzbedarf eine längere Historie mit geringerer zeitlicher Auflösung vorhalten zu können.
Das ist aber außerhalb der openHAB-Konfiguration - und anders als bei rrd4j handelt es sich um komplett getrennte Datenbereiche, die auch getrennt ausgewertet werden müssen. Heißt, wenn man mit diesen Daten Ansichten z.B. in Grafana erstellen will, so müssen das getrennte Ansichten sein. Eine Datenabfrage bezieht sich gewöhnlich immer auf exakt einen Bucket.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Frankinho
Beiträge: 23
Registriert: 15. Mai 2017 12:53
Answers: 0

Re: ERROR InfluxDBPersistenceService

Beitrag von Frankinho »

Danke für die sehr detaillierte Antwort. Gibt's da ein howtodo? Da ich bisher nur mitder item Datei gearbeitet habe bin ich jetzt doch verunsichert ob der fluxdb weg zu aufwendig für mich ist

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

Re: ERROR InfluxDBPersistenceService

Beitrag von udo1toni »

Nein, aufwändig ist InfluxDB eigentlich nicht. Letztlich musst Du InfluxDB installieren, eine Datenbank anlegen und die Zugangsdaten in openHAB hinterlegen.
Aber ich möchte einen Schritt zurück gehen. Auf welcher Plattform läuft openHAB? Auf welcher Plattform soll InfluxDB laufen?

Wenn Du einen (immer noch aktuellen) Raspberry Pi4 mit mindestens 4 GByte RAM hast - wobei Du mit 8 GByte RAM nicht wirklich was anfangen kannst, solange das (empfohlene) 32-Bit-OS zum Einsatz kommt - kannst Du relativ bequem mit dem openHABian Image arbeiten. openhabian-config bietet InfluxDB und Grafana als Drittanbieter Software mit an. Auf Pis mit weniger RAM wird es aber schnell eng.

Wenn Du auf der anderen Seite ein potentes System nutzt, meinetwegen einen Pi4 mit 8 GByte RAM oder eine ganz andere flotte Plattform, böte sich Docker als Unterbau an.
Leider gibt es keinen offiziellen "vollständigen" Docker Stack (der optional alles mit bringt, was auch openHABian anbietet), aber tatsächlich lässt sich mit ein wenig Recherche die openHABian Umgebung zu 99% nachbauen - incl. FronTail, knxd, mosquitto, zigbee2mqtt, InfluxDB, Grafana, Samba usw., mit dem Unterschied, dass die Dienste dann alle in einzelnen Docker Containern getrennt laufen.

Falls Du ein NAS von Synology oder QNAP hast, könntest Du InfluxDB auch dort laufen lassen (natürlich nur, wenn das Gerät Container unterstützt)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Frankinho
Beiträge: 23
Registriert: 15. Mai 2017 12:53
Answers: 0

Re: ERROR InfluxDBPersistenceService

Beitrag von Frankinho »

Ich habe für die Neuinstallation einen Rpi4 mit 2GB zur Verfügung.
Ich habe beide 32 Bit und 64 Bit openhabian Images schon mal kurz drauf gehabt. Aktuell 64 Bit, da ich gelesen habe das z.B die Influxdb 2.0 und höher nur auf 64 Bit läuft.
Auf dem alten 3.2 läuft noch mqtt. Fast alle Daten und Signale kommen bei mir von der Homematic, HomematicIP. Ein paar über mqtt( Tasmota Lüfter, Espeasy Temperatur und LED). Vieles wird über Alexa gesteuert
Da ich mit dem neuen Ansetzen gerade spiele ist jeder Ansatz zum neuen System sehr willkommen. Ich würde eben auch gern dann die aufgenommenen Daten sichern. Aktuell ist die Temperatur Aufzeichnung nach dem Neuaufsetzen verloren.

Frankinho
Beiträge: 23
Registriert: 15. Mai 2017 12:53
Answers: 0

Re: ERROR InfluxDBPersistenceService

Beitrag von Frankinho »

@Udo, macht es Sinn mit meiner Hardware/Software?
Aktuell fehlt mir, zum ersten Test, nur der Influx Persistence Ansatz. Kann ich schon über die UI ein Item anlegen beim dem die Daten von einem Temperatur Item in einstellbare Sequenz gespeichert werden.

Vielleicht ist es auch besser das als neues Thema zu starten.

Danke

Antworten