WOSH (Wide Open Smart Home) is an open source and multi-platform framework (message oriented middleware)written in ANSI C++, designed to enable (smart) home automation.
WOSH is a Service Oriented Framework (SOA) providing a (Network) OS independent infrastructure for developing component based software (services, aka bundles), but it ships with many implemented services and some end-user applications (as woshsrv, WorkShop).
WOSH and some components are (partially) based on QT4.
This project is actually released for developers, the current stage is not yet ready for end-users.
Some reasons to use and join the WOSH project are:
* It's free, open source, alive!
* It's modular and growing
* It's easy to plug-in new features (C++ required)
* It has been though to be efficient and intuitive
* It contains state-of-the-art libraries (QT4, gloox, festival, gstreamer010, ..)
* It comes with many built-in services (networking, communication, entertainment, remote control, ..)
Features:
- built-in end-user applications: console and graphical both
- distributed computing, 'zero-configuration' networking
- multi-user, role based access
- remote control using Instant Messaging (using libgloox; compatible with GTalk), SMS (send/receive) and call monitoring (on Windows-Mobile, RNDIS connected smart phone)
- appliances and sensors (X10 devices) monitor/control (on POSIX, based on Heyu)
- entertainment, multi-zone media playback (using GStreamer on POSIX or QT Phonon on Windows, VLC). Media-Director service provides a high abstraction layer, the recovery/guess multimedia status, hardware/software shortcuts and more
- centralized communication system (selecting best communication channel), using also interpreters (such as Festival for Text2Speech)
- building abstract-representation of the home and its devices (rooms, lights, audio-box, ..)
- Cron and Automation services, providing support for basic every-day tasks
- many not listed and more to come..
What is new in this release:
- build and tested on Debian Sqeeze
- added String class, many Utitilites functions have been rewritten and moved there
- significant performance improvement
- fixed some memory leaks
- many defines are now declared as C++ constants
- doing some profiling/performance tests (Windows/VS2010)
- Containers rewritten and classes were moved
- added src/common.spec.pri (contains shared stuff from old common.pri)
- string DEFINES are now declared/defined as (typed) const char[]
- removed (meyer) singleton ObjectFactory, now can be used only after allocating WoshKernel
- removed (meyer) singleton ThreadManager, now can be used only after allocating WoshKernel
- removed plugin framework (integrated in core, see ObjectLibrary)
- Core:
- Settings renamed as WoshSettings, now supports also -=, |= operators
- added modified timestamp to Properties
- fixing constructors' initializers
- ISerializable is now extending new interfaces IStringifiable, IHashable
- added Description, last-modified fields to Property
- added Stream classes (beta stage)
- added Buffer classes (beta stage)
- fixed serious bug in ThreadPool::setWorkersCount
- rewritten Containers, removed DataAdapter
- added multi-hop dynamic routing (NetworkManager)
- support registration of remote multi-hop hosts (NetworkManager)
- fixed bug in wosh::getEnumSetAsString() (macro _ENUMSET_TOSTRING)
- added procedures related to CLI for win32 and posix
- fixed deserialization of Variant[DATETIME]
- URICollector is not accessible as meyer singleton anymore, now referenced in WoshKernel (::globalURIs)
- MethodCollector is not accessible as meyer singleton anymore, now referenced in WoshKernel (::globalMethods)
- removed (meyer) singleton FileSystem::getTemporaryFiles (now is a member var)
- added ObjectLibrary, ObjectLibraryLoader (manage shared libraries)
- NetworkUtilities class added (moved** from wosh::network::NetworkUtilities)
- implemented some operators (+, -, *, /, ..) of Variant class
- added BundleGenericWorker.cpp
- renamed LogHandlerStdOut to LogHandlerStdC
- rewritten Thread class
- fixed bug in ThreadPool (used by BusMT)
- Automations:
- removed required reference to xtended::WeatherInfo, now using interfaces::various::WeatherInfo
- Communication:
- removed SessionProtocol, now using SessionEncoder and SessionInterpreter
- added defaults implementations for SessionEncoder and SessionInterpreter
- fixed some bugs in Session, SessionShell
- * SessionShell is now hiding password while logging in
- fixed bug in commadn line parsing (ShellCommand)
- Networking:
- removed/updated NetworkingUtilities ( now refer to core class or NetworkManager::utlities() )
- added NetworkingUtilities implementation for QT, Winsock2
- added network library winsock2 (stuff moved from csocket)
- fixed delay while resolving hostname (TCP protocol connection)
- SocketUdp is not an interface class
- fixed debug output on DeSerialization error
- Bundles:
- updated PlayerMPD, now: examines outputs changes, memory leaks fixed
- fixed Heyu, now using custom popen and exit gracefully (no need of CTRL-C as before)
- Gui:
- fixed deallocation of SessionGui
- fixed stop of BusRingQt
- fixed bug in DialogLogin (when already logged it does SU)
- fixed PropertiesMapper and some signals on Variant gui
- minor fixes to guis
- Xtended:
- WeatherInfo inheriting from interfaces::various::WeatherInfo class
What is new in version 0.8.462:
- Minor and major bugs were fixed in both the core and bundles.
- Weather and Gardener bundles are being introduced.
What is new in version 0.8.161:
- Core:
- critical deserialization fix on NEW_List
- minor fix to containers (naming)
- fixed permission bug of method_list (didn't allow to list methods)
- common MPC method props_get now supports wildchar
- ThreadManager released as 0.8.499(final)
- BusManager released as 0.8.499(final)
- SystemMonitor released as 0.8.161
- DeviceManager: static methods removed
- DeviceManager released as 0.8.499(final)
- ObjectFactory released as 0.8.499(final)
- introducing SharedMemory (still under development)
- wosh-core low-level memory fixes (memcheck) [about 200kb were lost]
- URI tree de-allocation fixed, URICollector now is a singleton (instead of the tree itself)
- SystemProfiler de-allocation fixed (missing free() of properties and connectors)
- Documentation:
- global revision has been started
- some doc-pages have moved nearby the implementation
- added RoadMap file
- Gui:
- rewritten FormScreenShoter, to be used for new documentation
- rewritten FormBusMonitor, to be dockable, customizable
- FormThreadManager released as 0.8.499(final)
- FormBusManager released as 0.8.499(final)
- FormSystemMonitor released as 0.8.161
- FormDeviceManager released as 0.8.499(final)
- FormObjectFactory released as 0.8.499(final)
- added GuiMapping dialog (under Tools)
What is new in version 0.8.151:
- Core:
- minor fixes
- BundleManager updated, now using BundleAction(s)
- fixed some Response formatting error (cos of previous format)
- MessageProcessingCommon update, supporting containers
- Networking:
- fixed built issues and aligned (lisockets::TCP still delayed)
- minor updates, NetworkProtocol hosts methods
- Gui: (still work in progress)
- now using ObjectFactory, ObjectAllocator
- fixed log viewer using custom handler
- many fixes to work with updated core/components
What is new in version 0.8.101:
- Core:
- minor fixes
- BundleManager updated, now using BundleAction(s)
- fixed some Response formatting error (cos of previous format)
- MessageProcessingCommon update, supporting containers
- Networking:
- fixed built issues and aligned (lisockets:TCP still delayed)
- minor updates, NetworkProtocol hosts methods
- Gui: (still work in progress)
- now using ObjectFactory, ObjectAllocator
- fixed log viewer using custom handler
- many fixes to work with updated core/components
What is new in version 0.8.013:
- Core:
- Containers totally rewritten
- Data class reimplemented as Variant (using union)
- Object: reviewed some getters/setters (removing non-const 'getters')
- Permission: added overwrite mask and some helpers
- interfaces: totally revisited
- Bundles: intrinsically revisited
- BundleRequirements: added class, not effective yet
- PropertiesProvider: rewritten, but similar interface
- MethodProvider: rewritten, standard calls changed
- Functional: introducing STL-based functional
- added Tree structure (lame btw)
- Reflection: indrocuding a naive reflection support
- Logging: rewritten to be FAST, now using dynamic handlers, run-time options, stdout coloured on win/linux
- added woshMacros.h
- applyed DRY paradigm :)
- WoshKernel: state-machine and (module) booting reviewed
- SystemProfiler: introducing an embedded tool for profiling methods, properties and bus-connectors
- Shell protocol: updated command-line parsing, now considering quoted arguments and GNU style options (--)
- fixed a bug in thread initialization (when failed), timeout optimized
- intrinsically increased performance!! (probably 100x)
- Modules:
- ObjectFactory (added): components allocation was rewritten (centralized)
- SystemLogger (replaces LogCore) : logger is now a module, even if may work standalone
- PersistenceManager (replaces DataBaseManager)
- Persistence:
- IReflection : Added, provides getClassName(), common MACROS
- Serializable: REMOVED, renamed to ISerializable
- ISerializable: RTTI/not, common MACROS, I/O using serializers (IEncoder)
- IEncoderReader: interface for de-serialization [pop(TYPE)]
- IEncoderWriter: interface for serialization [push(TYPE)]
- encoders are loaded using ObjectFactory
- Networking:
- fixed some segfault errors in NetworkManager
- framework/network: source tree/project files changed
- supporting multiple newtorking libraries at runtime, socket new-component-allocation-style (ObjectFactory)
- libSockets: introducing alternative/concurrent support to Sockets library
- SocketUdp: now fully supported and compatible with: {Qt (old), libSocket} (TCP, HTTP, SSL will come further)
- network protocols are loaded using ObjectFactory
- added timeouts to all (un)bind/(dis)connect
- Bundles:
- ALL bundles, have been updated to new specs. broken backward compatibility
- built-in registration totally revised! now using inline macros, just include source in build
- bundles are loaded using ObjectFactory
What is new in version 0.6.320 Build 2010-02-21:
- network: many classes have been RENAMED: NetworkChannel-Udp,-Tcp (and its server)
- Discovery (udp) renamed as DiscoveryUdp
- DiscoveryUdp RELEASED. (code revisioned, documentation, man)
- Thread: initializingThread now returns BOOL (and it's evaluated)
- Man: basic implementation
- SystemError: now accept CONST source
- SocketUdp: minor revision and documentation update
- gui: added DiscoveryUdp interface, added some icons
- gatalkbot: removed (renamed as JabberGloox)
- JabberGloox: reviewed, now supports glooox 0.9, 1.0 [win32, unix]
Requirements:
- Qt
Comments not found