Hello @lewie,
I tried JDBC and SQLite (sqlite-jdbc-3.21.0.jar) file
on ESH repository. But it shows something
15:34:07.166 DEBUG [FelixStartLevel] BundleEvent STARTING - org.openhab.persistence.jdbc
15:34:07.260 DEBUG [FelixStartLevel] JDBC::activate: persistence service activated
15:34:07.318 DEBUG [FelixStartLevel] JDBC::updateConfig
15:34:07.356 DEBUG [FelixStartLevel] JDBC::JdbcConfiguration
15:34:07.420 DEBUG [FelixStartLevel] JDBC::updateConfig: configuration size = 5
15:34:07.516 DEBUG [FelixStartLevel] No jdbc:user parameter defined in openhab.cfg
15:34:07.536 DEBUG [FelixStartLevel] No jdbc:password parameter defined in openhab.cfg.
15:34:07.556 WARN [FelixStartLevel] JDBC url is missing - please configure in openhab.cfg like 'jdbc:<service>:<host>[:<port>;<attributes>]'
15:34:07.606 DEBUG [FelixStartLevel] JDBC::pingDB
15:34:07.617 DEBUG [FelixStartLevel] JDBC::openConnection isDriverAvailable: false
15:34:07.623 WARN [FelixStartLevel] JDBC::openConnection: no driver available!
15:34:07.730 DEBUG [FelixStartLevel] JDBC::pingDB
15:34:07.746 DEBUG [FelixStartLevel] JDBC::openConnection isDriverAvailable: false
15:34:07.756 WARN [FelixStartLevel] JDBC::openConnection: no driver available!
15:34:07.760 DEBUG [FelixStartLevel] JDBC::checkDBAcessability, second try connection: false
15:34:07.952 DEBUG [FelixStartLevel] JDBC::getName: returning name 'jdbc' for queryable persistence service.
15:34:08.014 DEBUG [FelixStartLevel] JDBC::updateConfig: configuration complete for service=jdbc.
15:34:08.026 DEBUG [FelixStartLevel] ServiceEvent REGISTERED - [org.openhab.core.persistence.PersistenceService, org.openhab.core.persistence.QueryablePersistenceService] - org.openhab.persistence.jdbc
15:34:08.030 DEBUG [FelixStartLevel] BundleEvent STARTED - org.openhab.persistence.jdbc
15:34:08.083 DEBUG [FelixStartLevel] JDBC::setItemRegistry
15:34:08.092 DEBUG [FelixStartLevel] JDBC::getName: returning name 'jdbc' for queryable persistence service.
15:34:08.096 DEBUG [FelixStartLevel] JDBC::getName: returning name 'jdbc' for queryable persistence service.
15:34:08.103 DEBUG [FelixStartLevel] JDBC::getName: returning name 'jdbc' for queryable persistence service.
15:34:08.108 DEBUG [FelixStartLevel] JDBC::getName: returning name 'jdbc' for queryable persistence service.
15:34:08.118 DEBUG [FelixStartLevel] JDBC::getName: returning name 'jdbc' for queryable persistence service.
15:34:08.122 DEBUG [FelixStartLevel] JDBC::getName: returning name 'jdbc' for queryable persistence service.
15:34:08.142 DEBUG [FelixStartLevel] JDBC::pingDB
15:34:08.148 DEBUG [FelixStartLevel] JDBC::openConnection isDriverAvailable: false
15:34:08.154 WARN [FelixStartLevel] JDBC::openConnection: no driver available!
15:34:08.159 DEBUG [FelixStartLevel] JDBC::pingDB
15:34:08.165 DEBUG [FelixStartLevel] JDBC::openConnection isDriverAvailable: false
15:34:08.169 WARN [FelixStartLevel] JDBC::openConnection: no driver available!
15:34:08.172 DEBUG [FelixStartLevel] JDBC::checkDBAcessability, second try connection: false
15:34:08.176 WARN [FelixStartLevel] JDBC::query: database not connected, query aborted for item 'light'
16:09:29.297 WARN [items-1] JDBC::store: No connection to database. Cannot persist item 'light (Type=SwitchItem, State=OFF)'! Will retry connecting to database when error count:0 equals errReconnectThreshold:0
I will be using org.openhab.persistence.jdbc binding.
According to openhab offical documentation my jdbc.cfg file like below showing
services/jdbc.cfg
############################ JDBC Persistence Service ##################################
# I N S T A L L J D B C P E R S I S T E N C E S E R V I C E
#
# https://github.com/openhab/openhab/wiki/JDBC-Persistence
#
# Tested databases/url-prefix: jdbc:derby, jdbc:h2, jdbc:hsqldb, jdbc:mariadb, jdbc:mysql, jdbc:postgresql, jdbc:sqlite
#
# derby, h2, hsqldb, sqlite can be embedded,
# If no database is available it will be created, for example the url 'jdbc:h2:./testH2' creates a new DB in OpenHab Folder.
#
# Create new database, for example on a MySQL-Server use:
# CREATE DATABASE 'yourDB' CHARACTER SET utf8 COLLATE utf8_general_ci;
# D A T A B A S E C O N F I G
# Some URL-Examples, 'service' identifies and activates internally the correct jdbc driver.
# required database url like 'jdbc:<service>:<host>[:<port>;<attributes>]'
# url=jdbc:derby:./testDerby;create=true
# url=jdbc:h2:./testH2
# url=jdbc:hsqldb:./testHsqlDb
# url=jdbc:mariadb://192.168.0.1:3306/testMariadb
# url=jdbc:mysql://192.168.0.1:3306/testMysql
# url=jdbc:postgresql://192.168.0.1:5432/testPostgresql
# url=jdbc:sqlite:./testSqlite.db
# url=
url=jdbc:sqlite:./testSqlite.db
# required database user
#user=
user=TEST
# required database password
#password=
password=TEST
# E R R O R H A N D L I N G
# optional when Service is deactivated (optional, default: 0 -> ignore)
#errReconnectThreshold=
# I T E M O P E R A T I O N S
# optional tweaking SQL datatypes
# see: https://mybatis.github.io/mybatis-3/apidocs/reference/org/apache/ibatis/type/JdbcType.html
# see: http://www.h2database.com/html/datatypes.html
# see: http://www.postgresql.org/docs/9.3/static/datatype.html
# defaults:
#sqltype.CALL = VARCHAR(200)
#sqltype.COLOR = VARCHAR(70)
#sqltype.CONTACT = VARCHAR(6)
#sqltype.DATETIME = DATETIME
#sqltype.DIMMER = TINYINT
#sqltype.LOCATION = VARCHAR(30)
#sqltype.NUMBER = DOUBLE
#sqltype.ROLLERSHUTTER = TINYINT
#sqltype.STRING = VARCHAR(65500)
#sqltype.SWITCH = VARCHAR(6)
# For Itemtype "Number" default decimal digit count (optional, default: 3)
#numberDecimalcount=
# T A B L E O P E R A T I O N S
# Tablename Prefix String (optional, default: "item")
# for Migration from MYSQL-Bundle set to 'Item'.
#tableNamePrefix=Item
# Tablename Prefix generation, using Item real names or "item" (optional, default: false -> "item")
# If true, 'tableNamePrefix' is ignored.
#tableUseRealItemNames=
# Tablename Suffix length (optional, default: 4 -> 0001-9999)
# for Migration from MYSQL-Bundle set to 0.
#tableIdDigitCount=
# Rename existing Tables using tableUseRealItemNames and tableIdDigitCount (optional, default: false)
# USE WITH CARE! Deactivate after Renaming is done!
#rebuildTableNames=true
# D A T A B A S E C O N N E C T I O N S
# Some embeded Databases can handle only one Connection (optional, default: configured per database in packet org.openhab.persistence.jdbc.db.* )
# see: https://github.com/brettwooldridge/HikariCP/issues/256
# jdbc.maximumPoolSize = 1
# jdbc.minimumIdle = 1
# T I M E K E E P I N G
# (optional, default: false)
#enableLogTime=true
my jdbc.persist file
// persistence strategies have a name and a definition and are referred to in the "Items" section
Strategies {
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
// if no strategy is specified for an item entry below, the default list will be used
default = everyChange
}
/*
* Each line in this section defines for which item(s) which strategy(ies) should be applied.
* You can list single items, use "*" for all items or "groupitem*" for all members of a group
* item (excl. the group item itself).
*/
Items {
// persist all items once a day and on every change and restore them from the db at startup
* : strategy = everyChange, everyDay, restoreOnStartup
// additionally, persist all temperature and weather values every hour
Temperature*, Weather* : strategy = everyHour
}
How I can successfully connect jdbc databse.
Does it any configuration required for connecting JDBC DB.
Thanks,
Amar.