104 Commits

Author SHA1 Message Date
jenkins
0d85868465 Merge PR #702: Fix some typos in the code base 2025-09-23 14:12:43 +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
2acf7784a6 Update the entire Qt6 code to new signal slot connections
Update logging cathegories and allign coding style
2025-09-11 10:09:24 +02:00
Simon Stürz
2f0077a5d1 Add compat 2025-09-11 10:09:24 +02:00
Simon Stürz
f5c4bd16ac Add Qt6 support
Add Qt6 debian packaging
2025-09-11 10:09:24 +02:00
Simon Stürz
4e27699915 Fix some typos 2025-07-02 14:58:49 +02:00
Simon Stürz
9b4b2d9b20 Update network device info and make host address the primary idetifier instead of the MAC address
Introduce monitor mode for network device info
Update network device monitor
introduce networkdevice interface
2024-12-19 20:40:21 +01:00
Simon Stürz
311fb7bfa4 Introduce interfaces mechanism for ThingClass paramTypes 2024-12-03 16:24:07 +01:00
jenkins
4765e1174f Merge PR #651: Make possibleValues for states dynamic and translatable 2023-11-29 14:13:32 +01:00
Michael Zanetti
14de03b154 Enable more info on double ThingActionInfi::finish() calls 2023-08-01 10:52:09 +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
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
66ca0afa1f Add information for initialSetup and reconfigure to ThingSetupInfo 2022-12-14 23:39:29 +01:00
Michael Zanetti
65736e1034 Fix suggestLogging property not working for eventTypes 2022-11-05 19:04:31 +01:00
jenkins
d0e4811849 Merge PR #581: Improve warning information in thing manager 2022-10-25 02:37:11 +02:00
jenkins
264b0362f6 Merge PR #558: Fix a potential info->aborted() call after the plugin called info->finish() 2022-10-25 02:36:56 +02:00
Simon Stürz
a3b3eecde8 Update debug prints and improve information given by warnings 2022-10-13 12:07:20 +02:00
jenkins
e2544bdfda Merge PR #554: Remove displayNameEvent property from stateTypes 2022-08-26 12:58:04 +02:00
Michael Zanetti
3c7e05501e Fix a potential info->aborted() call after the plugin called info->finish()
It can happen that a plugin calls finish() in a slot which normally would be dispatched before the timeout
but due to high system load the slot is invoked only after the timeout. This in turn would cause Qt to also queue up
this timeout slot and by the time the system processes slots, the plugin comes in first and we'd fire an aborted()
signal in the plugin after it called finish(), potentially badly breaking the plugin as a plugin developer would not
expect this to happen. So we'll have to verify here that the plugin did not finish() by now before aborting.
2022-08-10 23:34:58 +02:00
Michael Zanetti
f398cd3379 Remove displayNameEvent property from stateTypes 2022-08-07 12:53:38 +02:00
Michael Zanetti
7633cfe9fa Check Info objects for finished abert aborting them
This gives plugin developers a chance to finish() an info on their
own in an aborted() handler and set a custom error code and
displayMessage without causing a "finishing an already finished object"
warning.
2022-08-04 18:34:21 +02:00
jenkins
79e8c52765 Merge PR #527: Print a better warning when setStateValue() is called with a wrong name 2022-06-16 00:20:49 +02:00
jenkins
45c20c56cc Merge PR #526: Fix Things filter by param method 2022-06-16 00:20:47 +02:00
Michael Zanetti
48095b2ced Print a better warning when setStateValue() is called with a wrong name 2022-05-31 17:17:52 +02:00
Simon Stürz
964edeee5d Things filter by param 2022-05-23 16:10:12 +02:00
Michael Zanetti
bbc585e92e Fix filters genering wrong data types
When enabling a jitter filter on integer states (e.g. a signal
strength that repeatedly jumps up and down by 1), old code
may cause integer state to be populated with floating point values
as the filtering happens after the intial validation for the new
value being valid.
2022-05-13 11:25:48 +02:00
Jenkins nymea
20956525b3 Merge PR #498: Add discoveryType thing class property 2022-03-27 19:49:35 +02:00
Michael Zanetti
5323ab2631 Add discoveryType thing class property
Some plugins may support network discovery, but may not be able to clearly
identify a device and return a list of discovery results that may
be the device, but also may not. As this breaks some app flows they
will be marked as "weak" discovery and can be excluded from said setup
wizards.

NOTE: This commit does not bump the API version even though it should
to avoid merge conflicts with other branches that do bump the version.
2022-02-10 17:38:01 +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
717b4f33cc Remove deprecated Devices, Action, Events, States namespaces from JSONRPC 2022-02-08 00:29:07 +01:00
Jenkins nymea
3d5c9b477b Merge PR #483: Add a providedInterfaces property to thingClass 2021-12-11 00:31:11 +01:00
Michael Zanetti
262e490b9b Add more "by name" thing methods and c++11 list_initializers for lists 2021-12-09 18:00:18 +01:00
Michael Zanetti
df5d3550ba Add support for dynamic min/max state values 2021-12-09 17:59:52 +01:00
Michael Zanetti
f2898b9fc8 Add a providedInterfaces property to thingClass 2021-11-10 12:57:28 +01:00
Michael Zanetti
b5768c8bf0 Fix a wrong error message from the plugininfocompiler 2021-11-02 11:02:53 +01:00
Michael Zanetti
15faf72785 Add more methods to get to states by name instead of id 2021-07-13 12:27:16 +02:00
Jenkins nymea
0404240fb7 Merge PR #438: Add a getter method for thing classes to plugin api 2021-07-06 17:18:32 +02:00
Jenkins nymea
ae92eb562b Merge PR #437: Add thingClassId to thingDescriptors json 2021-07-06 17:18:31 +02:00
Jenkins nymea
cdedaca2b7 Merge PR #436: Add some convenience methods to access states/stateTypes by name 2021-07-06 17:18:30 +02:00
Michael Zanetti
7f2261d769 Add thingClassId to thingDescriptors json 2021-06-27 00:40:33 +02:00
Michael Zanetti
3774a4adc9 Add some convenience methods to access states/stateTypes ba name 2021-06-25 13:48:44 +02:00
Michael Zanetti
f08cd6b09f Add a getter method for thing classes to plugin api 2021-06-25 13:47:10 +02:00
Michael Zanetti
d1e4aaaaa2 Allow [u]ints to be used with analog IO connections 2021-06-16 00:54:45 +02:00
Michael Zanetti
c74ca7cbe6 Also disable it for plugins 2021-05-11 16:13:43 +02:00
Jenkins nymea
c9af1280aa Merge PR #410: Add support for storing application data on the core 2021-04-19 11:38:30 +02:00
Jenkins nymea
6f6bce5dae Merge PR #407: Rename forgotten deviceParams in ThingDescriptor 2021-04-19 11:38:28 +02:00
Jenkins nymea
c5864b8428 Merge PR #405: Add support CONFIG+=asan for building with address sanitizer 2021-04-19 11:38:26 +02:00