Page 1 of 1

atHomeApp - Private Open Source App Android & Windows

Posted: Friday 19 October 2018 9:11
by rwblinn
Sharing my private (Open Source) App atHomeApp for Android & Windows.

Objectives: create a flexible Home Automation Android & Windows App to view & control devices atHome.
  • atHome is a private project building a Home Automation Solution based on Domoticz v4, running on a Raspberry Pi 3B+ Stretch
  • Make the app as generic as possible, means data of the Domoticz server used as is without making dedicated changes in the app
  • Keep the App SIMPLE – not overcomplicating - fast access to view & control is key
  • Supported selective hardware & devices, i.e. only the ones for the atHome project - more to be added in the future
  • atHomeApp is created with B4A v8.50 and B4J v6.51 - more about B4A&B4J https://www.b4x.com
  • First private showcase learning Mobile Development B4A / B4J + XUI
  • Open Source GNU Lesser General Public License
  • The Windows version requires Java to run
More information on the B4X forum:
https://www.b4x.com/android/forum/threa ... ion.97645/

Re: atHomeApp - Private Open Source App Android & Windows

Posted: Friday 19 October 2018 9:40
by EdddieN
Nice work! B4X does not do iOS?

Re: atHomeApp - Private Open Source App Android & Windows

Posted: Friday 19 October 2018 9:50
by rwblinn
Thanks.

B4X supports iOS development with B4i - see https://www.b4x.com/b4i.html.
My focus is on Android development (B4A), Windows (B4J) and Arduino/ESP (B4R). I do not have a developers licence for B4i.

Re: atHomeApp - Private Open Source App Android & Windows

Posted: Friday 19 October 2018 9:56
by EdddieN
Ah! Ok maybe is something that can be addressed later.

Is there a place where I can see all the screens of the app in operation? (Don’t have android to test)

Re: atHomeApp - Private Open Source App Android & Windows

Posted: Friday 19 October 2018 10:12
by rwblinn
The link at the bottom of the first post shows more info about the app with screenshots of the 4 tabs covering Weather, Lights, Information, Settings.
See https://www.b4x.com/android/forum/threa ... ion.97645/

I also have scribbled a (draft) PDF document with more development information. It is too large to attach (1MB).
Drop me a PN with email and I can send it to you.

Additional (specific info) as shared on the link mentioned.
Functionality
  • View & control devices which are added to the Domoticz Dashboard ("favorites")
  • Devices are grouped and displayed in tabs (B4A TabStripViewPager Custom View, B4J TabPane)
  • Own device grouping used (not Domoticz menus) to build the tabs: Weather, Lights, Information
  • Tabs containing xCustomListView to view or control devices and to manage settings via CheckBox/InputDialog
  • xCustomListView items are build at runtime using Domoticz Favorite Devices data
  • Domoticz Favorite Devices data is requested via HTTP (okhttputils2) and the JSON rersponse is parsed to get the relevant data
  • Data refreshed is triggered manually via menu item (Tab Settings shows time refreshed)
  • If Domoticz favorite devices are changed (added/removed/updated), these are reflected on the next manual updated (no changes required in the App, full flexible to handle change)
  • Clicking on xCustomListView item shows short toastmessage with additional information
  • Tab Lights enabled to control switches (on/off), lights (on/off) and dimmer. When dimming, a short toastmessage shows the dim level. Mainly used for Philips Hue Bulbs
  • Tab Information enables to send a message to the Alert Message device via InputDialog
  • Settings are managed via Tab Settings and stored using map file (in file internal)
  • At App resume (B4A), data is refreshed
  • Menus added to refresh the data as mentioned, jump to tabs (pages)
Outline next version
  • Extend parsing device Types & Subtypes as not all Domotict types are supported yet
  • Handle devices thresholds, i.e. change data color depending level
  • Consider to update real time or use a timer to autorefresh - but will cause high network traffic
  • Consider selective devices from all devices data - needs customizing (=effort to maintain, non standard), high data volume
  • Various smaller improvements