Releases: BeeeOn/server
2018.11.2, Forever Young
- Fixed parsing of MAC addresses.
- Using fixed GWNewDevice(Group)Request.
- Fixed broken device-accept due to nested transaction that is
unsupported by the system. - The deviceService is now configured to use cryptoConfig to
encrypt/decrypt device properties. - Fixed timeout in GWS tests.
- Minor documentation fixes related to format of access_level entry.
- Query devices.remove_unused now cascades into table device_properties.
The query has been also optimized and protected against failures.
2018.11.1, Forever Young
- Added REST-UI & GWS protocol documentation and generating scripts
- New REST-UI endpoints: gateway messages, device properties
- REST-UI reports last activity timestamp of gateways
- Fixed updating of control change status in database
- REST-UI control change request API has changed and improved
- Fixed timestamp update in device discovery status
- GWS limits messages from gateways with limits per minute and per hour
- Optimized receiving of message from gateways
- GWS reports I/O stats into log
- GWS uses all metadata from new-device reports
- GWS accepts notice messages from gateways
- GWS delivers refresh time to gateways for each device
- GWS understands that all responses are ackable
- Class GatewayConnection has been generalized
- Unified logging of messages in GWS
- Dropped useless GWPingRequest message
- Fixed the way how AsyncGatewayRPC uses timeouts
- Fixed Revogi and IQRF device definitions
- Fixed an old read-after-free in DeviceServiceImpl
- XML-UI fixed invite false positive in tests
- Server performs a sort of security checks on startup
- Using ThreadNamer to give names to threads
- Using class RefreshTime in the whole server code base
- Tests using ZeroMQ works (hopefully) without race conditions
- CMakeLists.txt divided into modules
- Linking to PocoDataSQLite is now optional
- Loggers configuration is now generated by script
- Script beeeon-db-admin has been extended
2018.07.1, Little Lazy Llama
- Some GWS-related services have been merged
- Extracted generic WebSocket-related code out of GWS
- GWS responses to device_list_request also with last sensor values
(this more-less replaces last_value_request) - GWNewDeviceRequest can be handled in simplified format
- Supported certain BLE Smart devices
- Supported certain IQRF devices
- Supported new Z-Wave devices
- Support for reworked Jablotron (Turris Gadgets) devices
- We can handle TYPE_UNKNOWN
- New data types: color, color_temperature, smoke, heat, pm25
- Controllable devices can be change repeatedly to the same value
- ZeroMQ event on-new-device contains details about sensors and controls
- Server-like classes were unificated to report events onUp() and onDown()
- ZeroMQ propagates onUp() and onDown() events out of the system
- Server can start a Cassandra DB instance (usually for testing)
- New SQL preprocessing subsystem for testing scripts
- Clean-up of database settings to make space for Cassandra
- PostgreSQL scripts have been moved to subdirectory
- Defined tag in DI for preevaluation of expressions
- Fixed build order
- Added ability for loading code from shared libraries during startup
- ODBC and Cassandra connectors are built as separate shared libraries
- Packaging was divided into components, Cassandra support is separated
- Prepared helper script beeeon-db-admin, wrapper around sqitch
2018.04.1, Late Grasshopper
-
news:
-
type ID in type.xml is now a string (name) and not a number
-
server now supports type bitmap with a subtype specification
-
devices.xml now refers to types also with attributes
-
new device definitions (IQRF, BeeWi)
-
new developer tool - DeviceMatchingTester
-
it is possible to server static (fixed) HTTP headers in responses
-
default generation of recommended HTTP headers in responses
-
server exports events via ZeroMQ API
-
GWS tests consume those ZeroMQ events
-
GWS new-device message can update a device name
-
GWS can handle registration of grouped devices
-
GWS can handle GWUnpairResponse and unpair different devices
-
infrastructure for limiting too high gateway traffic
-
SequentialAsyncExecutor now finishes its tasks on stop()
-
assumed at least PostgreSQL 9.5+
-
important DB schema changes to save space and improve performance
-
DB queries are loaded from filesystem instead of INI file
-
PostgreSQL can be started by C++ application (useful for testing)
-
querying enum data can be aggregated into frequencies
-
querying avg, min, max can be done in a single request
-
querying of sensor history is now stricter to avoid DoS
-
on startup, unpaired unused devices are deleted from DB
-
using newer DevicePrefix with backwards compatibility support
-
new auth provider based on a static file with API keys
-
JWToken can hold certain OpenID properties
-
JWT supports RSA signatures
-
-
refactoring:
- OAuth provider refactored to be more modular
- removed obsolete NotificationDispatcher and related stuff
- use ::Ptr for SSLClient, SSLServer, AsyncExecutor
- using StopControl instead of Poco::Event and Poco::AtomicCounter
-
fixes:
- XML-UI tests were prone to timeshifts
- DB now checks gateway name more strictly
- improved sanitization of device name (both application and DB)
- fix compatibility with ICU61
- LoopRunner stops loops in reverse order now
- config files should not be blindly overriden when installing from RPM
2018.01.1, Running Rabbit
-
news:
- full support for controls
- gateways verification based on TLS certificate
- support for sensor types current, power, voltage
- basic SQL query usage statistics at application level
- XML-UI extended to contain devices and types metadata
- BeeeOn Temperature sensor definition and support for RSSI
- modules' types of new devices are now verified
-
refactoring:
- separated SessionVerifier and SessionVerifiedImpl
- contents of ExpirableSession moved into Session
- GatewayRPC have better interface, dropped unused code
- only one runner named all (restui, xmlui, gws were removed)
- SQL queries' loading was generalized
- SQL queries are not implemented via SQL functions anymore
- SQL schema redefined to be maintainable (backwards incompatible change)
- HTTP clients are using generic code from base
-
fixes:
- gateway scan did not restart if finished very recently
- sqitch initializer didn't cope with rewords well
- sensor IDs were wrong when mixed with control IDs
- timestamp in sensor history data on XML-UI was wrong
- users' locales were not loaded from database
- devices.xml were inconsistent with gateway code
- PocoSQLSensorHistoryDao was loading results slowly
- NaN in sensor history data was allowed and breaking data retrieval
- paired devices with no record in devices.xml was broke device listing
- ultraviolet type was using non-existent unit "UV"
2017.11.1, Mass Gift
- support for sending basic Firebase Cloud Messaging push notifications
- fixed HTTP 500 on FCM token reinsert attempt
- watching gateways for disconnections (push notifications)
- avoid loosing sensor data in batch on DB exception
- support for OAuth via access-token (Facebook)
- support for custom enum data types
- GW Server replies to WS ping
- introduced GWS tests
- XML-UI returns also last sensor data
- timezones defined via offset are handled in a more generic way
- session language can be overriden from HTTP request
- partial fix of handling locales per users
- fixed matching of VPT zones
- logging duration of certain high-level operations
- small refactoring of transactions
- rework of pairing/unpairing without work-framework
- work-framework dropped
2017.10.1, Dead Alive
- code base moved to the top directory
- dropped obsolete unused code - thank you and good bye!
- Gateway Server (GWS)
- REST-UI Service
- XML-UI Service
- Facebook OAuth 2.0 support
- multiple AuthProvider instances prepared for different clients
- Firebase Cloud Messaging frontend
- HTML+JS builtin tester interface
- rework of devices.xml
- CORS support
- support for time zones
- Gateway knows its timezone
- improved reinstall via RPM
v2016.08.0
- Cleanup of old files and unused libraries
ADA server
- Makefile refactoring
- used Poco for configuration reading
- improved coding style
- code refactoring
- get-set parameters support (ping message, etc.)
BAF (BeeeOn Automation Framework)
- build by CMake
- code cleanup
v2016.05.0
- Integrated BAF and unified_logger
- bugfixes in ada_server
unified_logger
- library for unified logging accross the whole BeeeOn system
- optimizied for further log processing via td-agent and elasticsearch/kibana
- easy to use API - stringstreams
- solution to string interleaving in multithread applications
BAF (BeeeOn Automation Framework)
- framework for autonomous task execution
- create your own algorithms and tasks
- already specified task: AliveCheck, WatchDog, FireHazard
- JSON easy to use interface
- much more is to come!