Comfort  Automation/ Security System Forums Home
Home Search search Menu menu Not logged in - Login | Register

ComfortClient
 Moderated by: juwi_uk, Ingo
 New Topic   Reply   Printer Friendly 
 Rate Topic 
AuthorPost
 Posted: Saturday Oct 15th, 2011 10:12 am
   PM  Quote  Reply 
1st Post
juwi_uk
Member


Joined: Friday May 25th, 2007
Location: Newbury, United Kingdom
Posts: 1255
Status: 
Offline

  back to top

The theme for this next version of the ComfortClient will be on plugins.

My plan is to have a documented and common framework for adding plugins to the ComfortClient and to rework the existing Modbus plugin to fit if necessary.

I hope also to create a sample boiler plate plugin that people can use as a reference.

Could all end horribly wrong but that's my challenge if I'm willing to accept it which will self-destruct in 5 seconds.....

:)

Julian

Last edited on Saturday Dec 24th, 2011 04:27 pm by juwi_uk



 Posted: Saturday Dec 24th, 2011 04:48 pm
   PM  Quote  Reply 
2nd Post
juwi_uk
Member


Joined: Friday May 25th, 2007
Location: Newbury, United Kingdom
Posts: 1255
Status: 
Offline

  back to top

So, for all of yer's that are following my ComfortClient development just a quick post to say that development is going well on the new plugin framework and hopefully I'll release a new update sometime in the New Year (late January).

I've recoded the Modbus plugin to work with the new framework and have created a new "World Weather" plugin (that uses the framework) as a test bed for developing a plugin from scratch. World Weather allows you to get at current and forecast (up to 5 days) conditions via a web service at http://www.worldweatheronline.com/free-weather-feed.aspx. The attached screenshot shows a few of the many attributes returned that I've just thrown onto a floorplan to test. Note that the Client now also supports runtime images from plugins so you can place an image placeholder at design time which is populate at runtime; the world weather icons (which are read on-the-fly from the web at runtime) are a good example of this feature.

I'm also creating a sample plugin that demo's a lot of the features you can achieve when writing a plugin and I'll release as a project for you guys to play with.

I'm hoping there are going to be some "guinea pigs" out there that'll write some more and work with Ingo and I on building more hooks into the Client to make this feature "fly".

Until then though, Merry Christmas everyone,

Regards

Julian

Attachment: Sample.png (Downloaded 86 times)

Last edited on Sunday Dec 25th, 2011 12:23 pm by juwi_uk



 Posted: Sunday Dec 25th, 2011 02:11 am
   PM  Quote  Reply 
3rd Post
ident
Administrator


Joined: Wednesday Aug 9th, 2006
Location: Singapore
Posts: 3493
Status: 
Offline

  back to top

Congratulations on your fantastic work on the ComfortClient
Merry Christmas and have a good break



 Posted: Friday Dec 30th, 2011 05:53 pm
   PM  Quote  Reply 
4th Post
juwi_uk
Member


Joined: Friday May 25th, 2007
Location: Newbury, United Kingdom
Posts: 1255
Status: 
Offline

  back to top

One of the issues I've been mulling over with with the plugins concept is ensuring that any developed plugins come from a reputable source, given the nature of the application's focus that they'll plug into. I want to encourage authors to add new fuctionality but only if this maintains security!

I've thus decided to implement a "Trusted Plugins WhiteList" for the ComfortClient. Any plugins developed must produce a plugin DLL that has been compiled against a strong name key file (dont worry about this as it's a couple of clicks to produce one of these in Visual Studio). A single Strong Name Key file will suffice for any plugins derived by that author. The author can then supply the Plugins's PublicKeyToken and their Comfort forum user ID to me and I'll add to the WhiteList DLL such that any plugins they develop can be validated. Any plugins not on the WhiteList will not load in ComfortClient. I'll distribute a new WhiteList DLL whenever a new plugin Author is added.

For this to work I also plan to change the licencing model for ComfortClient. It will no longer apply the open source model for the fully compiled release but I'm happy to provide subsets of the code on request if that helps people in their own developments. I code in VB.NET BTW!

All plugins I develop will be open source.

If ever my development of ComfortClient needs to end (I dont foresee this BTW) then I'm happy the secured source either passes to Cytech or nominee to continue as they see fit or I will otherwise revert to open source.

Regards

Julian

Last edited on Friday Dec 30th, 2011 05:54 pm by juwi_uk



 Posted: Wednesday Apr 4th, 2012 10:44 pm
   PM  Quote  Reply 
5th Post
juwi_uk
Member


Joined: Friday May 25th, 2007
Location: Newbury, United Kingdom
Posts: 1255
Status: 
Offline

  back to top

So just a brief note on where I am with the latest ComfortClient development....well I'm almost there.

I've put a huge amount of work into the plugin API over the last few months and hopefully people will see some great advances in the product as a result. I've developed 4'ish plugins in the new API in the course of trying the API out for real (and filling in any holes where found) which I'll release as well as a sample plugin to stimulate some ideas with people. On top of that I've focussed on stability (how to protect the Client from a flaky plugin) and security in the Client.

But that's not all; also new in the release will be support for Time Programs (realtime to Comfort) and Reminder Message configuration (probably CCLX sourced data as Comfort doesnt current support live query at the moment).

Plus the following fixes/changes (so far):


• Object Level Defaults dropdown for “Auto” setting in Floorplan Activity Settings form also incorrectly included itself; “Auto”.
• Exception could occur if the Window Tab Activity Tooltip is being updated during logout.
• Changed System Information to cater for greater number of Slaves in recent firmware. Slaves would overrun into the door station table section otherwise.
• The u? incorrectly reported subtype 6 as a KP04 instead of a KP06.
• The HELP File now opens in the last opened screen position.
• Improved the locking logic in ComfortClient when objects are updated from different threads.
• When opening Floorplan Editor inside ComfortClient the UI does not now block as the Editor now runs on its own thread. When changes are made in the Editor and saved the Floorplans will refresh as usual (because the Editor was started from within the Client). Data feeds were also incorrectly halted whilst inside the Editor but now fixed. The ComfortClient UI is also now completely available for navigation when in the Editor.
• The Target Result items in Condition Manager are now numeric spin boxes for types “COUNTER” and “SENSOR”. Others types remain as dropdown boxes.
• Allow for Eth02 firmware now disconnecting the connection on logout.
• Fix error on exit that ComfortClientConfig,xml file was already being used by another process.
• Modules are now correctly shown in System Information when subtype is zero; principally affected Doorstations which otherwise don’t have a subtype.
• System and Floorplan Conditions Module has now been completely re-written to include support for plugins.
• Floorplan Condition functionality is changed such that as soon as a condition item is updated the whole condition will be re-evaluated and the Floorplan Object(s) impacted immediately updated. Previously the condition was re-evaluated but the affected objects not updated until the value of that object was subsequently updated.
• Improved Floorplan rendering logic dramatically reduces the number of unnecessary refreshes to increase performance.
• The Sound and Go-Home menu actions on the ComfortClient Application Menu now adhere to the persist-configuration-menu option and will grey out accordingly with logon state if this option is set.
• Added option to disable/enable Tibbo connection checking; useful when connecting from the Internet (rollup patch from last 3.1.2.20 release) and you don’t want to open firewall for UDP port 65535.
• Changing Condition Name in ConditionManager did not rename and instances used on Gauge Objects. Improved the determination logic in this area too.
• Changed UI for ConditionManager; plugins can now be used in conditions.
• System Information (InformationComfort Modules) would request updated values from Comfort even though a Refresh was currently in progress and contrary to the message displayed.


I hope you'll enjoy the improvements.

Regards

Julian

Last edited on Wednesday Apr 4th, 2012 10:45 pm by juwi_uk



 Posted: Saturday Apr 21st, 2012 05:58 pm
   PM  Quote  Reply 
6th Post
juwi_uk
Member


Joined: Friday May 25th, 2007
Location: Newbury, United Kingdom
Posts: 1255
Status: 
Offline

  back to top

All,

I am just soak-testing the release candidate for the next version of ComfortClient. The fix list is below (including some issues that Thanasis found this week).

The main focus for this major release was the PLUGIN FRAMEWORK but as you'll see there is something in here for all current users of ComfortClient and I encourage you all to upgrade once it is released. This one is faster and more stable than any i've produced to date as I've built in extra checks and measures to work alongside the plugins architecture.

Assuming no major bugs are found then I will be releasing this one shortly together with a few plugins to kick start the plugin revolution; Modbus, WorldWeather and DataMonitor respectively. I have a few more in the pipeline too that I am working on but I also hope there are some budding plugin authors out there too; you just need Visual studio express and code in VB or C# etc.

After the main ComfortClient and initial plugins are released I will focus on creating the API programming manual, tidying up the programming sample and visual studio template and sitting back with a beer to help out anyone that wants to get started adding their own functionality into the Client.

Plugins ( I just need a few details for the list) can be submitted for inclusion to the "authorised plugins" list which acts as a shop window for plugins within ComfortClient (see attached).

Hope you'll enjoy this one! :)

Julian


Version 3.1.3.28 – (21 Apr 2012)

Architecture:

• Microsoft .NET 4 (Client Framework) console application developed under Visual Studio 2010

Tested against Comfort version:

• Comfort II Ultra: Firmware – 6.020, File System – 34
• UCM05: Firmware – 6.019

Bug Fixes/Changes

• Object Level Defaults dropdown for “Auto” setting in Floorplan Activity Settings form also incorrectly included itself; “Auto”.
• Exception could occur if the Window Tab Activity Tooltip is being updated during logout.
• Changed System Information to cater for greater number of Slaves in recent firmware. Slaves would overrun into the door station table section otherwise.
• The u? incorrectly reported subtype 6 as a KP04 instead of a KP06.
• The HELP File now opens in the last opened screen position.
• Improved the locking logic in ComfortClient when objects are updated from different threads.
• When opening Floorplan Editor inside ComfortClient the UI does not now block as the Editor now runs on its own thread. When changes are made in the Editor and saved the Floorplans will refresh as usual (because the Editor was started from within the Client). Data feeds were also incorrectly halted whilst inside the Editor but now fixed. The ComfortClient UI is also now completely available for navigation when in the Editor.
• The Target Result items in Condition Manager are now numeric spin boxes for types “COUNTER” and “SENSOR”. Others types remain as dropdown boxes.
• Allow for Eth02 firmware now disconnecting the connection on logout.
• Fix error on exit that ComfortClientConfig,xml file was already being used by another process.
• Modules are now correctly shown in System Information when subtype is zero; principally affected Doorstations which otherwise don’t have a subtype.
• System and Floorplan Conditions Module has now been completely re-written to include support for plugins.
• Floorplan Condition functionality is changed such that as soon as a condition item is updated the whole condition will be re-evaluated and the Floorplan Object(s) impacted immediately updated. Previously the condition was re-evaluated but the affected objects not updated until the value of that object was subsequently updated.
• Improved Floorplan rendering logic dramatically reduces the number of unnecessary refreshes to increase performance.
• The Sound and Go-Home menu actions on the ComfortClient Application Menu now adhere to the persist-configuration-menu option and will grey out accordingly with logon state if this option is set.
• Added option to disable/enable Tibbo connection checking; useful when connecting from the Internet (rollup patch from last 3.1.2.20 release) and you don’t want to open firewall for UDP port 65535.
• Changing Condition Name in ConditionManager did not rename and instances used on Gauge Objects. Improved the determination logic in this area too.
• Changed UI for ConditionManager; plugins can now be used in conditions.
• System Information (InformationComfort Modules) would request updated values from Comfort even though a Refresh was currently in progress and contrary to the message displayed.
• A net socket (Eth UCM only) exception could occur if you pressed “UCM logoff” and “Disconnect“ buttons in sequence very close together.
• Removed restriction whereby “Comfort Modules” could not be selected from the menu whilst a system refresh was in progress. Also renamed to “Comfort System Info”.
• User announced at logon (Sound) was not converted from HEX value; e.g. User 16 was incorrectly announced as “User 10”
• Exception in WindowManager if you selected a floorplan in the properties section without first adding a tree node; now the properties section is disabled until you adds tree nodes.
• In WindowManager the tree node buttons (to the right) would sometimes not correctly enable after the last tree node was deleted.
• The Home Page was not reset correctly in WindowManager when the node in the tree it was connected too had been deleted.
• The Home Page was not moved with the Window when the tree node was moved UP/DOWN.

New Features

• New Plugin framework architecture for ComfortClient. The major focus for this release is an extensible architecture for authors who wish to develop plugin functionality for ComfortClient. Security and reliability have been fundamental drivers in the development of the architecture. Users can control plugin privileges and whitelist checking is used to allow only authenticated plugins to load.
• Time Programs are now supported. Time Programs are read from Comfort, can be modified and saved back to Comfort if changed.
• Reminder Messages are now supported. Reminder Messages are read from Comfort if the firmware supports the query command, can be modified and saved back to Comfort if changed.

Attachment: Plugins.png (Downloaded 28 times)

Last edited on Saturday Apr 21st, 2012 06:04 pm by juwi_uk



 Posted: Saturday Apr 28th, 2012 01:03 pm
   PM  Quote  Reply 
7th Post
juwi_uk
Member


Joined: Friday May 25th, 2007
Location: Newbury, United Kingdom
Posts: 1255
Status: 
Offline

  back to top

Here's a tech tip for the 3.1.3.30 release.

The floorplan XML file format has been upgraded to support the new plugin capabilities.

You can open and save your floorplans to the new format. You can also run ComfortClient as usual without converting the files as it'll convert them on-the-fly in memory only; this isnt recommended though.

To convert ALL of your floorplans in one go run floorplan editor with the "/Upgrade" switch. ie

C:\Program Files (x86)\ComfortClient\FloorplanEditor.exe /Upgrade

The old versions will be saved to a sub folder and then all will be upgraded and saved.

I havent included this in the installer yet as I wanted to use this release to gather feedback.

The progress will be output to a log file in the floorplan folder but otherwise no UI is shown as it's a silent upgrade.

If any fail then send me a PM and the XML file and log file and I'll investigate.

I've tested with a whole range of old and new floorplan files though and it's worked pretty well so far.

Regards

Julian



 Current time is 07:22 am
Top




UltraBB 1.172 Copyright © 2007-2014 Data 1 Systems