[gelöst] OH3.1 Fehler beim Anlegen eines Items in der Datenbank

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
AGH
Beiträge: 21
Registriert: 18. Okt 2019 17:44
Answers: 0

[gelöst] OH3.1 Fehler beim Anlegen eines Items in der Datenbank

Beitrag von AGH »

Ich benutze OH3.1, bin von 2.5.12 umgezogen. Ging bis auf ein paar Kleinigkeiten problemlos. OH lauft auf einem Raspi4

Beim Umzug habe ich die Datenbank von OH2.5 nach OH3 mitgenommen, weil ich meine Daten nicht aufgeben und Grafana nicht neu machen wollte

Jetzt habe ich neue Items in OH angelegt und erhalte folgende Fehlermeldung:

Code: Alles auswählen

java.sql.SQLException: Field 'ItemId' doesn't have a default value
Query is: INSERT INTO items (ItemName) VALUES ('RM_Waschkeller_Batterie') Query: INSERT INTO items (ItemName) VALUES (
<------>at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:392) ~[bundleFile:?]
<------>at org.apache.commons.dbutils.QueryRunner.insert(QueryRunner.java:610) ~[bundleFile:?]
<------>at org.apache.commons.dbutils.QueryRunner.insert(QueryRunner.java:534) ~[bundleFile:?]
<------>at org.knowm.yank.Yank.insert(Yank.java:123) [bundleFile:?]
<------>at org.knowm.yank.Yank.insert(Yank.java:106) [bundleFile:?]
<------>at org.openhab.persistence.jdbc.db.JdbcBaseDAO.doCreateNewEntryInItemsTable(JdbcBaseDAO.java:276) [bundleFile:
<------>at org.openhab.persistence.jdbc.internal.JdbcMapper.createNewEntryInItemsTable(JdbcMapper.java:90) [bundleFile
<------>at org.openhab.persistence.jdbc.internal.JdbcMapper.getTable(JdbcMapper.java:260) [bundleFile:?]
<------>at org.openhab.persistence.jdbc.internal.JdbcMapper.storeItemValue(JdbcMapper.java:150) [bundleFile:?]
<------>at org.openhab.persistence.jdbc.internal.JdbcPersistenceService.store(JdbcPersistenceService.java:143) [bundle
<------>at org.openhab.core.persistence.internal.PersistenceManagerImpl.handleStateEvent(PersistenceManagerImpl.java:1
<------>at org.openhab.core.persistence.internal.PersistenceManagerImpl.stateChanged(PersistenceManagerImpl.java:473)
<------>at org.openhab.core.items.GenericItem.lambda$1(GenericItem.java:259) [bundleFile:?]
<------>at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
<------>at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
<------>at java.lang.Thread.run(Thread.java:834) [?:?]
2021-03-23 18:26:54.402 [ERROR] [persistence.jdbc.internal.JdbcMapper] - JDBC::getTable: Creating table for item 'RM_Waschkeller_Batterie'
Die Tabelle in der die Items gezählt werden heißt 'items'. Alle neuen Tabellen erhalten die _0, Beispiel: 'namexyz_0'. Die Tabellen für die Items werden angelegt und werden befüllt.

meine Persistance:

Code: Alles auswählen

url=jdbc:mariadb://localhost:3306/openhab
tableNamePrefix=items
tableUseRealItemNames=true
tableIdDigitCount=0
Die Zugriffsdaten hab ich weggelassen. Wie ihr seht, nutze ich RealItemNames.

Hat irgendwer einen Tipp, wie zu o.a. Fehler kommt? Habe mich übrigens nicht getraut die Tabelle 'items' zu löschen, weil ich nicht weiß, was dann passiert.
Zuletzt geändert von AGH am 26. Mär 2021 18:10, insgesamt 1-mal geändert.

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

Re: OH3.1 Fehler beim Anlegen eines Items in der Datenbank

Beitrag von udo1toni »

Gibt es denn in der items Tabelle einen Eintrag für das Item?

Hattest Du "schon immer" tableUseRealItemNames=true gesetzt? (insbesondere, bevor es zum Erstkontakt von openHAB mit der Datenbank kam)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

AGH
Beiträge: 21
Registriert: 18. Okt 2019 17:44
Answers: 0

Re: OH3.1 Fehler beim Anlegen eines Items in der Datenbank

Beitrag von AGH »

Moin Udo,
es gibt leider keinen Eintrag in der Tabelle "items", der sollte ja gerade generiert werden. ja ,ich arbeite schon immer mit RealItemnames, macht das Suchen deutlich einfacher :-) und ich arbeite lieber mit "sprechenden Items", vor allem dann, wenn man sich selbst an sein Schema hält.
Da ich mit Realnamen arbeite, benötige ich die diese Zählung eigentlich nicht. Wenn dieser _Index wegfallen würde, könnte ich auch leichter Diagramme in Grafana erstellen. So muss ich immer noch mal in die Datenbank sehen.
Dieses Item müsste eigentlich den Index _325 bekommen. Dies gilt ja auch für noch vier weitere Items. Es scheint so zu sein, als ich kein neues Item in der Tabelle "items" angelegt wird. Wenn alles nicht hilft, muss ich die Datenbank neu anlegen und Grafana neu einrichten.

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

Re: OH3.1 Fehler beim Anlegen eines Items in der Datenbank

Beitrag von udo1toni »

Ich nutze MySQL schon von Anbeginn, damals gab es die Option der Realnamen noch nicht. Ich hätte aber erwartet, dass die items-Tabelle gar nicht erst erzeugt wird und auch der Index entfällt. Vielleicht sollte man das im Forum mal anregen (also im englischen, da wo die Entwickler sind...
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

AGH
Beiträge: 21
Registriert: 18. Okt 2019 17:44
Answers: 0

Re: OH3.1 Fehler beim Anlegen eines Items in der Datenbank

Beitrag von AGH »

Hast recht, wäre eine Maßnahme. Machst Du das?

AGH
Beiträge: 21
Registriert: 18. Okt 2019 17:44
Answers: 0

Re: OH3.1 Fehler beim Anlegen eines Items in der Datenbank

Beitrag von AGH »

Ich hab jetzt eine neue Datenbank angelegt. Jetzt sind alle Tabellen mit Itemnamen und Index eingetragen, soweit ich gesehen habe.
Irgendetwas ist wohl beim Kopieren der Datenbank von =H2.5.12 auf 3.1 kaputt gegangen. Die Neuanlage hat jetzt den Vorteil das alte oder zum Testen angelegte Items jetzt raus sind.
Das ist auch so ein Manko, wenn nicht mehr notwendige Items gelöscht werden, dass diese in der Datenbank bleiben.

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

Re: OH3.1 Fehler beim Anlegen eines Items in der Datenbank

Beitrag von udo1toni »

AGH hat geschrieben: 26. Mär 2021 18:06 Das ist auch so ein Manko, wenn nicht mehr notwendige Items gelöscht werden, dass diese in der Datenbank bleiben.
Du vergisst dabei, dass nur, weil ein Item nicht mehr existiert, es nicht gesagt ist, dass Du die Daten nicht mehr haben willst. Der Entwickler geht hier (zurecht) davon aus, dass der Anwender schon eine gewisse Ahnung haben wird, wie MySQL funktioniert ;)
Die Daten liegen ja eh in einzelnen Tabellen vor, die kannst Du ja bequem droppen.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

AGH
Beiträge: 21
Registriert: 18. Okt 2019 17:44
Answers: 0

Re: [gelöst] OH3.1 Fehler beim Anlegen eines Items in der Datenbank

Beitrag von AGH »

Da hast Du sicher recht.

Antworten