Ankündigung

Einklappen
Keine Ankündigung bisher.

Openhab 3 und Mariadb

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

    Openhab 3 und Mariadb

    Hallo nach dem Unstig von OH2 auf OH3 habe ich leider Probleme mit der Datenbank Anbindung,
    Die Datenbank läuft wie auch inter OH2 auf der Synology und da hat sich nichts verändert.
    die Konfiguration erfolgt in Datein und im Log kann ich keinen Fehler sehen. Ich habe auch schon einen neue DB angelegt aber es werden einfach keine Daten geschrieben.

    Hier die Config Dateien ev fällt jemanden etwas auf.

    jdbc.cfg

    PHP-Code:
      # the database url like 'jdbc:mysql://<host>:<port>/<database>' (without quotes)  
    url=jdbc:mariadb://192.168.xxx.xx:3306/openhabv3  
    #?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=CET    
    # the database user  
    user=openhab    
      
    # the database password password=123456789    tableNamePrefix=Item  
    tableUseRealItemNames=false  
    tableIdDigitCount
    =0    
    # the reconnection counter  reconnectCnt=1    
    # the connection timeout (in seconds)  waitTimeout=300    
    # Use MySQL Server time to store item values (=false) or use openHAB Server time (=true).  
    # For new installations, its recommend to set "localtime=true".  
    # (optional, defaults to false)  
    #localtime=true
    ​ 
    und die jdbc.persist


    PHP-Code:
     Strategies {            
     
    everyMinute "0 * * * * ?"              
    everyfiveMinutes "0 */5 * * *  ?"              
    everyHour "0 0 * * * ?"              
    everyDay "0 0 0 * * ?"              }          
    // If no strategy is specified for an item entry below, the default list will be used.          
    //default =
    Items {  //  KNX_Items        knx_Heizung_Ferienwohnung_Schlafzimmer_Istwert              : strategy = everyfiveMinutes}
    ​ 
    Gruß

    Guido

    #2
    Weil manchmal das Offensichtliche zuletzt gefragt wird... Hast Du den Service installiert?

    2. Da die Zeile im Code auskommentiert ist: Hast Du das Passwort gesetzt? Meines Wissens ist das nicht optional, also, man muss eines setzen, damit der User die Datenbank nutzen kann.
    3. Die jdbc.persist wird in der Form, in der Du sie hier gepostet hast, ganz sicher verhindern, dass überhaupt ein Item persistiert wird. Lass sie testweise komplett weg, dann sollte einfach alles in der Datenbank landen.
    Zuletzt geändert von udo1toni; 28.11.2022, 18:46.

    Kommentar


      #3
      Hallo Udo,

      ja der Service ist installiert und auch der von Mysql. (habe beides probiert)
      2. Ja das Password ist gesetzt leider ist es hier im dem Codeblock falsch formatiert ich habe es auch nicht anders hinbekommen
      was meinst du mit ise?

      Diese Datei habe ich auch in der in der V2 verwendet.
      Gruß

      Guido

      Kommentar


        #4
        Buchstabendreher. ise --> sie Lass die Datei jdbc.persist (zunächst) komplett weg.

        Kommentar


          #5
          🤣🤣🤣

          Okay ich habe das mal probiert, die Datei nicht zu benutzen. (im Ordner gelöscht)
          Doch leider ohne Erfolg die DB bleibt immer noch leer.
          Gruß

          Guido

          Kommentar


            #6
            Dann stimmt was mit den eingegebenen Daten nicht. Schau in die UI, dort werden die Daten ja im Klartext angezeigt. Passt da alles? Falls nicht, ist vieleicht irgendwo in der Textdatei ein Zeichen, was openHAB nicht passt (und in der Folge ignoriert er dann vielleicht die ganze Datei...)

            Kommentar


              #7
              Hallo,

              das habe ich probiert das passt alles. im Logg gab es dann ständig die Meldung.

              Code:
              2022-11-29 18:30:41.660 [WARN ] [org.openhab.core.items.GenericItem  ] - failed notifying listener 'org.openhab.core.persistence.internal.PersistenceManagerImpl@66d955b5' about state update of item MB_VentstellungSchlafen2: null
              java.lang.ClassCastException: null​
              nachdem ich dann die jdbc.persist wieder eingefügt habe, waren die Meldungen nicht mehr im Log. Aber auch nichts in der Datenbank
              Gruß

              Guido

              Kommentar


                #8
                Wie gesagt, Deine jdbc.persist verhindert, dass überhaupt Daten geschrieben werden, weil kein einziges Item zum Persisstieren eingetragen ist, das ist also nicht weiter verwunderlich.

                Wo läuft openHAB? Wie wurde es installiert? Irgendwelche Besonderheiten im Netzwerk?

                Kommentar


                  #9
                  Hallo Udo,

                  openHAB läuft bei mir unter Windows und wurde entsprechend der Anleitung installiert. Besonderheiten im Netz gibt es nicht beide Systeme hängen am gleichen Switch.
                  Die JDBC habe ich mit Items befüllt leider auch ohne Erfolg.
                  Gruß

                  Guido

                  Kommentar


                    #10
                    Hallo in die Runde,
                    nach dem ich nun verschiedene Varianten mit verschieden Fehlermeldungen durchprobiert haben. Von Treiber ist nicht vorhanden bis Datenbank kann nicht gefunden werden, bin ich wieder bei den Status wo kein für mich lesbarer Fehler mehr in dem Log steht.

                    Darum hier mal ein Auszug vom Log. ev kann ja jemand helfen. Es wird einfach kein item in die DB geschrieben.

                    Code:
                    2022-12-14 20:45:00.493 [WARN ] [ore.internal.scheduler.SchedulerImpl] - Scheduled job '<unknown>' failed and stopped
                    java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.Long (java.lang.Integer and java.lang.Long are in module java.base of loader 'bootstrap')
                        at org.openhab.persistence.jdbc.db.JdbcMariadbDAO.doPingDB(JdbcMariadbDAO.java:92) ~[?:?]
                        at org.openhab.persistence.jdbc.internal.JdbcMapper.pingDB(JdbcMapper.java:78) ~[?:?]
                        at org.openhab.persistence.jdbc.internal.JdbcMapper.checkDBAccessability(JdbcMapper.java:248) ~[?:?]
                        at org.openhab.persistence.jdbc.internal.JdbcPersistenceService.internalStore(JdbcPersistenceService.java:149) ~[?:?]
                        at org.openhab.persistence.jdbc.internal.JdbcPersistenceService.store(JdbcPersistenceService.java:135) ~[?:?]
                        at org.openhab.core.persistence.internal.PersistItemsJob.run(PersistItemsJob.java:60) ~[?:?]
                        at org.openhab.core.internal.scheduler.CronSchedulerImpl.lambda$0(CronSchedulerImpl.java:62) ~[?:?]
                        at org.openhab.core.internal.scheduler.CronSchedulerImpl.lambda$1(CronSchedulerImpl.java:69) ~[?:?]
                        at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$12(SchedulerImpl.java:191) ~[?:?]
                        at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$1(SchedulerImpl.java:88) ~[?:?]
                        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
                        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
                        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
                        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:829) [?:?]​
                    Gruß

                    Guido

                    Kommentar


                      #11
                      Lass bitte die jdbc.persist für den Augenblick weg, die ist nur eine zusätzliche Fehlerquelle. Du musst erst mal überhaupt Kontakt zur Datenbank erhalten, danach reden wir davon, welche Items Du persistieren lässt.

                      Schau bitte in MariaDB mal in die Logs rein, ob es überhaupt einen Versuch gibt, dass openHAB sich verbindet.
                      • Typische Fehler: in der my.cfg ist das Interface nicht auf 0.0.0.0 gesetzt. Dann funktioniert MariaDB nur lokal und nicht über Netzwerk.
                      • Passwort/User verkehrt geschrieben
                      • Rechte auf die Datenbank sind nicht ausreichend
                      Es mag sein, dass Du sicher bist, alles genau nach Anleitung gemacht zu haben, allein, der Zugriff funktioniert ja nicht.
                      Ich habe gerade vorletzte Woche ein neues openHAB System aufgesetzt, von 0 aus, deshalb weiß ich, dass MariaDB mit openHAB3.3 einwandfrei funktioniert.

                      Kommentar


                        #12
                        Hallo Udo,

                        danke für die Tipps,

                        die Datenbank sowie die Dateien jdbc.cfg und jdbc.persist habe ich schon mit oh2 benutzt. Leider ist mir der Server abgestürzt und ich habe dann OH3 aufgesetzt.
                        Leider weis ich nicht wo ich den Log der Maria DB einsehe. In PHmyadmin habe ich nur gesehen das es Zugriffe gibt.

                        image.png​meinst Du mit der my.cfg eine Datei für die DB ?

                        Die Datenbank läuft auf einer Synology. ist also nicht von Hand aufgesetzt sondern über "klicki bunti" Installiert. aber wie gesagt das lief bisher mit oh2 so das ich vermute das eine Einstellung in oh3 für das Problem verantwortlich ist.
                        Gruß

                        Guido

                        Kommentar


                          #13
                          Die Datenbank läuft auf einer Synology. ist also nicht von Hand aufgesetzt sondern über "klicki bunti" Installiert. aber wie gesagt das lief bisher mit oh2
                          Aber das ist ja schon mal was.
                          hat das OH3-System noch die gleiche IP? Wie sehen die User-Berechtigungen auf die Datenbank aus (das kannst Du in PHPmyAdmin einsehen)? Datenbankzugriff über Netzwerk ist immer abhängig vom Quell- und ZielInterface, es gibt also im Zweifel mehrere Einträge für den selben User in der MariaDB.

                          Kommentar


                            #14
                            Hallo Udo,

                            nein die IP ist nicht die Gleiche.

                            Die Rechte sind eigentlich auch nicht geändert.

                            image.png​es gibt auch nur einen Eintrag​
                            Angehängte Dateien
                            Gruß

                            Guido

                            Kommentar


                              #15
                              Dieser Eintrag hat nichts mit dem User zu tun. (oder genauer gesagt: das sind nur die Berechtigungen für die globalen Rechte, gewöhnlich hat nur root bzw. der entsprechende MariaDB User diese Rechte. Ich nutze PHPmyAdmin nicht mehr, deshalb weiß ich nicht genau, an welcher Stelle das ist, aber es ist auf jeden Fall eine globale Konfiguration, also nicht auf eine bestimmte Datenbank bezogen. Es gibt eine Liste aller User, die berechtigt sind, auf MariaDB zuzugreifen. Dort ist auch festgelegt, welcher User auf welche Datenbank zugreifen darf, welches Passwort erverwenden darf usw.

                              Dort gibt es auch für jeden User ein Feld namens Host, dort muss die korrekte IP des Clients eingetragen sein, alternativ kann man auch mit Wildcards arbeiten, z.B. 192.168.178.% würde auf alle Rechner des Segments 192.168.178.0/24 matchen.

                              Kommentar

                              Lädt...
                              X