Commit Graph

750 Commits (7e4afba7693e4e8933154cc2eac708d79a6a4e90)

Author SHA1 Message Date
jenkins 4765e1174f Merge PR #651: Make possibleValues for states dynamic and translatable 2023-11-29 14:13:32 +01:00
Michael Zanetti 0c09e07112 Add support for connection to actionExecuted in scripts 2023-08-01 10:53:14 +02:00
Michael Zanetti 4b3ec64e58 Make possibleValues for states dynamic and translatable 2023-08-01 10:45:41 +02:00
jenkins 21061e91a0 Merge PR #637: Rework the log engine to use influxdb instead of sql 2023-05-23 11:49:12 +02:00
jenkins 2cd6db2b8f Merge PR #630: Add location setting 2023-05-23 11:49:05 +02:00
Michael Zanetti 4e509841b0 Rework the log engine to use influxdb instead of sql 2023-05-08 23:38:34 +02:00
jenkins 4c29386bbd Merge PR #629: Drop cloud settings which aren't used any more 2023-02-21 17:43:45 +01:00
jenkins 9f4c3bc27a Merge PR #628: Allow users with ControlThings permission to read things logs 2023-02-21 17:43:44 +01:00
jenkins e9e734dc60 Merge PR #625: Stabilize logging tests 2023-02-21 17:43:41 +01:00
jenkins 9355694c24 Merge PR #620: Refactor NymeaCore class 2023-02-21 17:43:34 +01:00
Michael Zanetti 3a8fa74fcf Add location information to NymeaConfiguration 2023-02-18 22:35:02 +01:00
Michael Zanetti 15bcff1e6f Drop cloud settings which aren't used any more
Actually not bumping the jsonrpc version which in theory is a violation,
however, the largest part of this has been gone already with the bump to
7.0 and no known client applications are using this anways any more.
2023-02-16 14:07:35 +01:00
Michael Zanetti 5ea014a507 Allow users with ControlThings permission to read things logs 2023-02-13 14:29:03 +01:00
Michael Zanetti 2be6032718 Bind a client connection to the token given in the hello call.
This is a prerequisite for enabling dispatching notifications
based on user permissions.
2023-02-13 14:15:10 +01:00
Michael Zanetti 51d08f94cf Stabilize logging tests 2023-02-08 19:45:14 +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
jenkins 15ab9c06d1 Merge PR #606: Drop old nymea:cloud support 2022-12-13 21:05:05 +01:00
Michael Zanetti 7c4b6494bb Drop old nymea:cloud support 2022-12-01 16:37:51 +01:00
Michael Zanetti 9296c1183c Fix permissions for tags and appdata
This ties those namespaces to the things permissions but won't
allow having different tags/appdata per user, which arguably would
be desirable. However, that's currently not that straight forward
to do, as at the moment there is no way to direct jsonrpc notifications
to a single user.
2022-11-30 15:30:50 +01:00
jenkins 6008303b5b Merge PR #583: Rework air quliaty interfaces 2022-10-25 02:37:14 +02:00
jenkins 1d5144fb66 Merge PR #582: Add API to configure the wired network 2022-10-25 02:37:13 +02:00
jenkins 8c67dd8bd8 Merge PR #580: Remove extern plugin info from testlib header 2022-10-25 02:37:10 +02:00
jenkins 3e5e9ac738 Merge PR #574: Add Thing and Things types to script engine 2022-10-25 02:37:03 +02:00
jenkins 094c32ecf1 Merge PR #572: Add API to interact with ZigBee bindings 2022-10-25 02:37:01 +02:00
jenkins 68c0fad975 Merge PR #564: Expose Zigbee neighbor tables to jsonrpc 2022-10-25 02:36:57 +02:00
Michael Zanetti 7c7955b66b Rework air quliaty interfaces
Removes the indoorairquality and airquality interfaces as the
plugin isn't the right place for these sort of voncersion.
Instead, this PR specifies the individual compounds that
for the base for air quality measurements and ties them down
to export raw data.

It's the client apps responsibility to translate those values
into Air Quality Index scales based on the location of user. I.e.
while Europe would use the CAQI (Common Air Quality Index), the
US would use the EPA AQI etc.
2022-10-17 23:00:39 +02:00
Michael Zanetti 22e75b08df Add Thing and Things types to script engine 2022-10-13 15:18:06 +02:00
Michael Zanetti b4eca2a94f Add API to interact with ZigBee bindings 2022-10-13 11:05:04 +02:00
Michael Zanetti 1fc4c7f2d7 Expose Zigbee neighbor and routing tables to jsonrpc 2022-10-13 10:59:24 +02:00
Michael Zanetti baab4ed8c6 Add API to configure the wired network 2022-10-06 13:41:30 +02:00
Simon Stürz 41a5d2caf0 nymea testbase: remove extern plugin info from testlib header 2022-10-03 15:17:29 +02:00
Michael Zanetti 327fba5797 Fix creating rules without giving action params that have a default value 2022-09-07 20:25:33 +02:00
jenkins f3b9441861 Merge PR #549: Add support for Z-Wave 2022-08-26 12:57:56 +02:00
jenkins c4ea75a809 Merge PR #540: Provide experience manager access in core instance 2022-08-26 12:57:45 +02:00
Michael Zanetti a8b02a4869 Add support for Z-Wave 2022-08-26 00:28:56 +02:00
Simon Stürz 3e1e7b5a01 Update nymea-tests and provide libnymea-tests as development package 2022-08-05 15:33:18 +02:00
Michael Zanetti c004c0d81d Make thingclassId optional in AddThing() when there's already a ThingDescriptor 2022-07-28 19:55:32 +02:00
Michael Zanetti f6da6d47a9 Properly use pkgconfig to find nymea-mqtt 2022-05-31 17:19:33 +02:00
jenkins 8a3f85ca25 Merge PR #518: Fix webserver tests 2022-05-03 23:27:15 +02:00
Simon Stürz e4ff2d9422 Update mac address test naming 2022-04-25 08:06:17 +02:00
Michael Zanetti 192bdac209 Fix webserver tests
canonicalFilePath() behavior seems to have changed at some point
and not existing files outside the public dir will return a 404
rather than a 403. Ideally the logic would be fixed to first
check for the file being outside the public directory, directly
returning a 403, then checking if the file exists, return a 404
if not, and lastly check for permissions on the file and return
a 403 again of denied. However, that would result in a bigger
change.

Also, the tests were failing all along if syslog exists but is
not readable (code is ok, just bad test) but none of our
autotesters seemed to have such a setup till now.
2022-04-23 00:23:21 +02:00
Simon Stürz c59185672f Add mac address class and unit tests
Finish updated network discovery
Improve ARP and monitor handling
Introduce network device info cache housekeeping
2022-04-13 11:08:29 +02:00
Jenkins nymea 20956525b3 Merge PR #498: Add discoveryType thing class property 2022-03-27 19:49:35 +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
Jenkins nymea 223c0c130b Merge PR #489: Make SSL certificate loading and generating more robust 2022-03-27 19:49:25 +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 47add31e63 Add configuration for the tunnel proxy server 2022-02-08 11:00:09 +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 6ab4d49ee1 Add multi user support 2022-02-08 10:36:14 +01:00
Michael Zanetti 717b4f33cc Remove deprecated Devices, Action, Events, States namespaces from JSONRPC 2022-02-08 00:29:07 +01:00