This repository has been archived on 2026-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
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
2019-10-08 15:55:37 +02:00
2019-11-01 20:55:45 +01:00
2019-10-19 14:13:48 +02:00
2019-04-08 13:55:15 +02:00
2019-11-15 18:33:10 +01:00
2019-11-01 20:55:45 +01:00
2019-11-15 18:33:10 +01:00
2019-04-02 01:02:45 +02:00
2019-04-08 13:55:15 +02:00
2019-04-08 13:55:15 +02:00
2019-11-01 20:55:45 +01:00
2019-10-16 17:56:49 +02:00
2019-06-25 21:42:22 +02:00

nymea - open source IoT edge server


nymea (/[n'aiːmea:]/ - is an open source IoT edge server. The plug-in based architecture allows to integrate protocols and APIs. With the build-in rule engine you are able to interconnect devices or services available in the system and create individual scenes and behaviours for your environment.

Quick Install on Ubuntu

In order to install nymea on Ubuntu, you simply need to download this bash script:

wget https://downloads.nymea.io/install-nymea.sh

Extract into your Home folder and just run

chmod +x install-nymea.sh
sudo ./install-nymea.sh

Once the success message has printed on your screen, simply run: sudo nymead -n to start nymea!

Quick Install on a Raspberry Pi

We have created an image for your Raspberry Pi (2/3) that comes with an array of plugins for different smart devices! Download

Get the nymea mobile app here:

iOS Badge

Android Badge

Get the nymea desktop app here:

macOS Badge

Snap Badge

Windows Badge

Getting help

If you want to present your project or want to share your newest developments you can share it in Our Forum

If you are facing any troubles, don't hesitate to reach out for us or the community members, we will be pleased to help you: Chat with us on Telegram

Wiki and Documentation

License


nymea is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License.

Description
No description provided
Readme 38 MiB
Languages
C++ 92.2%
C 4.8%
QMake 1%
Shell 0.6%
Python 0.4%
Other 0.9%