Michael Zanetti
3eac06de6e
Threaded log database
...
This
a) makes the log db threaded by using QtConcurrent to run queries in a
different thread but still keeps ordering of the queries and always
only allows a single query at a time (QSql is not threadsafe). This fixes
removeDevice calls failing if we take more than $jsonprc_timeout to clean
a deleted device from the DB and keeps nymead responsive during that too.
b) generally improces performance of the system by not requiring operations
(emitting events, changing states) to wait for the sync log db entry to be
made.
c) drops some of the houskeeping code on nymea startup. While this will still
do log db housekeeping if the DB exceeds maxDbSize, it will not run
housekeeping on the DB any more at application startup. Reasoning for this
is that there have been reports of rules/log entries beimg destroyed if a
plugin can't be found at application startup. Given our general direction
of working towards more dynamic plugin loading, this might happen more often
in the future and we sure don't want to destroy rules etc when we just
temporarily miss a plugin.
d) tries to fix issue #226 by rotating the DB not only when it fails to open
initially, but also when it fails to insert new entries.
2019-11-15 18:33:10 +01:00
Michael Zanetti
ec15e664e1
cleanup warnings and allow setting "unknown" debug categories
2019-11-06 13:38:22 +01:00
Michael Zanetti
3cbd01c1d2
drop all pack/unpack methds
2019-11-03 21:24:16 +01:00
Michael Zanetti
feee5ef23a
Fix tests
2019-11-01 20:55:45 +01:00
Michael Zanetti
baaa719b6a
Restructuring json done
2019-11-01 20:55:45 +01:00
Michael Zanetti
5e3bc2acbd
Drop JsonTypes class by distributing logic to json handlers
...
This is required in order to be able to be more flexible in registering
new types/methods.
2019-11-01 20:46:55 +01:00
Michael Zanetti
0d00342b3a
fix tests
2019-10-30 17:35:43 +01:00
Michael Zanetti
9b1b6d86e6
Allow more granular notification subscriptions in API
2019-10-19 14:13:48 +02:00
Michael Zanetti
7f0f2d1d09
Rework devicemanager and plugin api
2019-10-16 17:56:49 +02:00
Michael Zanetti
51f5538772
Improve the PIC to detect duplicate UUIDs, give metter messages. Clean up mock plugin.
2019-07-15 22:55:11 +02:00
Michael Zanetti
d24abfe3d0
Move devicemanager's implementation out of libnymea into libnymea-core
2019-07-15 22:52:52 +02:00
Michael Zanetti
299052d2f7
Fix processing of rule action params and make tests pass again
2019-04-10 13:40:16 +02:00
Michael Zanetti
5fcfe1a11c
Update removeConfiguredDevice to update rules as appropriate
2019-04-10 13:40:16 +02:00
Michael Zanetti
774452ff7c
Add support for state based rule action params
2019-04-10 13:40:16 +02:00
Michael Zanetti
49bcfe72f5
Fix Scenes getting activated by state changes
2019-04-08 13:55:15 +02:00
Michael Zanetti
81e4db3a90
Handle binding loops in rules properly
2019-04-08 13:55:15 +02:00
Michael Zanetti
635a4e3ef2
fix mock device and introduce tests logging category
2019-04-08 13:55:15 +02:00
Michael Zanetti
15938cafb3
Fix an issue where Rules might not be initialized properly at startup
2019-04-08 13:55:15 +02:00
Michael Zanetti
371c2f76c2
move servers into subdir, cleanup some includes
2019-04-08 13:55:15 +02:00
Michael Zanetti
cdf5c63b59
remove rules which are left without any action after a device removal
2019-04-08 13:55:15 +02:00
Michael Zanetti
6cf060aa93
fix an issue where state values in rules could be casted wrong from string to double
2019-04-08 13:55:15 +02:00
Michael Zanetti
157b0b2b2c
use exitActions for else-action in event based rules
2019-04-08 13:55:15 +02:00
Michael Zanetti
abd2305bc0
add support for paramTypes by name
2019-04-08 13:55:15 +02:00
Michael Zanetti
e21c2f16a5
add support for interface based StateDescriptors
2019-04-08 13:55:15 +02:00
Michael Zanetti
11d56d1020
allow passing params if QVariant can convert them
2019-04-08 13:55:15 +02:00
Michael Zanetti
67a535619f
fix typos as reported by Krazy2
2019-04-08 13:55:15 +02:00
Michael Zanetti
0f46245230
fix stateevaluator bug where it would not properly use the OR operator
2019-04-08 13:55:15 +02:00
Michael Zanetti
84854868ea
fix packing rules for interface based events and actions
2019-04-08 13:55:15 +02:00
Michael Zanetti
b8a86b095d
copyright headers guh -> nymea
2019-04-08 13:55:15 +02:00
Michael Zanetti
36d4f89b24
namespace guhserver -> namespace nymeaserver
2019-04-08 13:55:15 +02:00
Michael Zanetti
34d68ab38a
guhtestbase -> nymeatestbase
2019-04-08 13:55:15 +02:00
Michael Zanetti
559a8be1f6
guhcore -> nymeacore
2019-04-08 13:55:15 +02:00
Michael Zanetti
dca764fafd
guhsettings -> nymeasettings
2019-04-08 13:55:15 +02:00
Michael Zanetti
d5a1a03e5f
dpon't emit Rules.RuleAdded notification upon rule editing.
2019-04-08 13:55:15 +02:00
Michael Zanetti
a1880c1be9
fix comparison of eventDescriptor params in rule evaluation
2019-04-08 13:55:15 +02:00
Michael Zanetti
58c83e9072
add support for interface based rules
2019-04-08 13:55:15 +02:00
Simon Stürz
1766cec6b6
clean up debug outputs
2019-04-02 01:02:45 +02:00
Simon Stürz
434f1599a1
add child evaluator tests
2019-04-02 01:02:45 +02:00
Simon Stürz
2d7070417f
enable maxwarnings again
2019-04-02 01:02:45 +02:00
Michael Zanetti
ac0c035566
add some housekeeping
2019-04-02 01:02:45 +02:00
Simon Stürz
9c8097919d
update license header
2019-04-02 01:02:06 +02:00
Simon Stürz
8c90550c63
bump api and fix all tests
2019-04-02 01:01:21 +02:00
Simon Stürz
859c5b0df8
add paramTypesId and close #302
2019-04-02 01:01:21 +02:00
Simon Stürz
f5ee163c48
update copy right line
2019-04-01 20:48:17 +02:00
Simon Stürz
9d2ab92d42
add remove policy tests
2019-04-01 20:48:17 +02:00
Simon Stürz
574bbcd7b6
prepare for removepolicy tests
2019-04-01 20:48:17 +02:00
Simon Stürz
3b639cb0e1
prepare remove policy tests
2019-04-01 20:48:17 +02:00
Simon Stürz
e7ee05f017
add load / save timeDescriptor
2019-04-01 20:48:17 +02:00
Simon Stürz
e5d9823c2b
add missing docs
...
first working calendarItem
2019-04-01 20:48:17 +02:00
Simon Stürz
76cc3577e1
improve ruleengine test coverage
2019-04-01 20:48:17 +02:00