83 Commits

Author SHA1 Message Date
Simon Stürz
4d170061fd Update license text and add SPDX identifier 2025-11-17 16:42:41 +01:00
Simon Stürz
73e7c975af Update lib search paths for all plugin types 2025-09-11 10:09:56 +02:00
Simon Stürz
d71ce85f12 Fix interface allowed values loading and debug cathegories for thing and thing manager 2025-09-11 10:09:56 +02:00
Simon Stürz
f5c4bd16ac Add Qt6 support
Add Qt6 debian packaging
2025-09-11 10:09:24 +02:00
Michael Zanetti
4b3ec64e58 Make possibleValues for states dynamic and translatable 2023-08-01 10:45:41 +02:00
Michael Zanetti
4e509841b0 Rework the log engine to use influxdb instead of sql 2023-05-08 23:38:34 +02:00
jenkins
9355694c24 Merge PR #620: Refactor NymeaCore class 2023-02-21 17:43:34 +01:00
jenkins
8cb4a264e9 Merge PR #618: Use dynamic min/max values for io connections 2023-02-21 17:43:33 +01:00
jenkins
e248bffcf2 Merge PR #611: Add information for initialSetup and reconfigure to ThingSetupInfo 2023-02-21 17:43:23 +01:00
Michael Zanetti
92197cb97c Refactor NymeaCore class
This moves all the things and rules logic away from NymeaCore
into their respective modules where it belongs.

One major change is the removal of the removePolicy functionality.
This was somewhat broken as it was only working for rules but not
for all the other modules like scripts, experiences etc. After
an attempt to create something that works with all modules it
really seemed that this does not make a lot of sence after all,
given that updating rules would in most cases leave something
very broken behind and removing them was the only sane thing to do.

On the other hand, experience plugins may not work well with such
a policy eithre as they may require to do their own special thing.

So in the end the removePolicy was dropped altogether. Apps should
instead figure out themselves what removal of a thing may imply and
inform the user about that beforehand.
2023-01-24 17:56:04 +01:00
Michael Zanetti
937b032f3c Use dynamic min/max values for io connections 2023-01-12 22:54:25 +01:00
Michael Zanetti
66ca0afa1f Add information for initialSetup and reconfigure to ThingSetupInfo 2022-12-14 23:39:29 +01:00
Michael Zanetti
5f8f8b2e62 Fix a crash when the same plugin file is loaded twice
If the same directory is passed twice QPluginLoader
would return the same object for the instance() call.
Deleting that would lead to deleting the instance for
the originally loaded plugin too.
2022-11-25 11:17:02 +01:00
jenkins
d59a6edd27 Merge PR #584: Allow to override default paths using new env variable 2022-10-25 02:37:15 +02:00
jenkins
d0e4811849 Merge PR #581: Improve warning information in thing manager 2022-10-25 02:37:11 +02:00
Michael Zanetti
22e75b08df Add Thing and Things types to script engine 2022-10-13 15:18:06 +02:00
Simon Stürz
6734de4b45 Allow to override default paths using new env variable and rename additional paths to *EXTRA_PATH 2022-10-13 15:16:18 +02:00
Simon Stürz
a3b3eecde8 Update debug prints and improve information given by warnings 2022-10-13 12:07:20 +02:00
Simon Stürz
ecaa0c8dc5 Update discovery and action timeouts and make JSONRPC timeout the last timeout 2022-07-21 16:27:11 +02:00
Michael Zanetti
db65beb202 Migrate pluginid in thing settings when a thing class moves between plugins 2022-05-13 11:27:21 +02:00
Jenkins nymea
d83fed97d8 Merge PR #496: Don't generate events for state changes any more 2022-03-27 19:49:32 +02:00
Michael Zanetti
7bfb48feac Split thing state cache into individual files 2022-02-09 12:04:08 +01:00
Michael Zanetti
2a91dad1f0 Don't generate events for state changes any more
Up until now, nymea would generate EventTypes for every StateType
as well as emit an Event (along with a StateChanged notification) for
every change. This results in a lot of duplicated network traffic
which is of not much use. The StateChanged notification contains
all the information in the Event too and nymea:app actually never
really used Events for state changes.

This commit removes the events from the ThingClass, making it a lot
smaller and stops emitting Events for state changes.

As this is breaking the behavior, the JSONRPC API major version
is bumped.
2022-02-08 10:38:41 +01:00
Michael Zanetti
df5d3550ba Add support for dynamic min/max state values 2021-12-09 17:59:52 +01:00
Michael Zanetti
59011c0387 Add PluginTimer API to python plugins 2021-08-26 14:15:43 +02:00
Michael Zanetti
1e008fd60d Fix erraneous state changes during thing setup 2021-05-19 16:11:31 +02:00
Jenkins nymea
a81b484635 Merge PR #396: Don't call thingRemoved() when a thing didn't complete the setup 2021-04-19 11:38:17 +02:00
Jenkins nymea
2050ac23cb Merge PR #382: Silence plugin dir debug print 2021-02-25 11:27:05 +01:00
Michael Zanetti
dab8764584 Refresh setup status before proceeding 2021-02-24 17:42:16 +01:00
Michael Zanetti
b2f9e911ad Don't cal thingRemoved() when a thing didn't complete the setup 2021-02-20 22:56:57 +01:00
Michael Zanetti
a95b2de303 Silence plugin dir debug print
This is printed before logging filters are set because it's needed
for generating the --help text. There shouldn't be a debug print at
this place yet.
2021-01-09 11:48:59 +01:00
Michael Zanetti
3fb74cc9e4 Add API to configure logging/filtering by the client 2021-01-04 16:43:28 +01:00
Michael Zanetti
32eb6d6dd7 tune filter 2021-01-03 21:58:10 +01:00
Michael Zanetti
eeb1feade0 Add a jitter filtering mechanism 2021-01-02 14:33:15 +01:00
Michael Zanetti
ae38e185b6 more work... not really working yet 2021-01-02 14:33:15 +01:00
Michael Zanetti
d1b57be370 Make python plugins optional during the build process 2020-11-30 20:00:04 +01:00
Jenkins nymea
c956988f32 Merge PR #341: Add an API keys provider plugin mechanism 2020-10-28 19:07:39 +01:00
Jenkins nymea
694b070f05 Merge PR #310: Add support for Python plugins 2020-10-28 19:07:25 +01:00
Jenkins nymea
db98f60556 Merge PR #309: Don't call thingRemoved() on the plugin in case of reconfiguring 2020-10-28 19:07:24 +01:00
Michael Zanetti
dcae305625 Add an API keys provider plugin mechanism 2020-10-20 19:44:47 +02:00
Michael Zanetti
8aa2feb7c6 Make python plugins appear in the logging categories list 2020-10-15 22:34:06 +02:00
Michael Zanetti
e50eece45c Fix metatype registering for old Qt versions 2020-10-15 22:34:06 +02:00
Michael Zanetti
fdbdb02c16 Make it compatible with python 3.5 2020-10-15 22:34:06 +02:00
Michael Zanetti
1018083052 add 2 missing data type conversions 2020-10-15 22:34:06 +02:00
Michael Zanetti
78e37f0d87 Fix shutdown 2020-10-15 22:34:06 +02:00
Michael Zanetti
c7f957f201 some more python plugin work 2020-10-15 22:34:06 +02:00
Michael Zanetti
125aee7153 Some more python plugin stuff 2020-10-15 22:34:06 +02:00
Michael Zanetti
13d10b8aa0 some more python plugin work 2020-10-15 22:34:06 +02:00
Michael Zanetti
380e962bd1 some more work on python plugins 2020-10-15 22:34:06 +02:00
Michael Zanetti
d17b44c83d Initial attempt to support python plugins 2020-10-15 22:34:06 +02:00