Table of Content

Disclaimer

Tutorial Videos and Bonus Material for Download

Notification on Updates and New Releases

About the Author

1 Read Me

1.1 Who is this Book for?

1.2 What You Will NOT Find

1.3 What You WILL Find

1.4 Safety First!

1.5 Take no Risks

1.6 Formatting Rules

2 The Big Picture

2.1 Smart Buildings and the Internet of Things (IoT)

2.2 The Potential for Energy Conservation

2.3 Safety Management and Assistive Domotics

2.4 Changing the World (a bit) to the Better

2.5 Bibliography

3 Key Concepts

3.1 Devices under Control

3.2 Sensors and Actuators

3.3 Home Automation Network (HAN)

3.4 Controller (Smart Hubs)

3.5 Remote Control Devices

3.6 Cloud Services

3.7 Bibliography

4 Home Automation Network Protocols

4.1 Network Address Translation (NAT)

4.2 Open Ports and Port Forwarding (Port Sharing)

4.3 UPnP

4.4 Dynamic DNS

4.5 HTTP REST

4.6 HTTP Server Push

4.7 Bibliography

5 You Don’t Know What You Don’t Know – Smarthome Security

5.1 Attacking the HAN

5.2 IoT Search Engines – Shodan and friends

5.3 Bibliography

6 Home & Building Automation: Markets and Trends

6.1 Market Size and Growth

6.2 Smart Devices & Deep Learning Technologies

6.3 Bibliography

7 Smart Homes for the Masses: Google, Apple, Samsung, Amazon and more …

7.1 Google’s Nest Labs and Google Home

7.2 One More Thing … Apple HomeKit

7.3 Samsung’s SmartThings

7.4 Amazon’s Echo

8 To Cloud or not to Cloud – This is the Question

8.1 Securing your Project Cloud Account

9 The Project

9.1 Overview

9.2 Equipment and Prerequisites

10 The Home Control Centre: Open Remote

10.1 OpenRemote Overview

10.2 OpenRemote Controller Installation

10.3 Java Installation and Configuration under macOS

10.4 Java Installation and Configuration under Windows

10.5 First Synchronization between Designer and Controller

10.6 The Importance of Directory and File Management

10.7 OpenRemote Professional Designer

10.8 The “Hello World” App

11 A Pretty Smart Sensor: Internet Weather

11.1 OpenRemote Control via HTTP: Retrieving Internet Weather Data

11.2 Designing the App Layout

11.3 Bibliography

12 Integration of Multimedia: iTunes Remote

12.1 Scripting Basics: Shell what?

12.2 Testing it Right – Best Practice for Script Writing

12.3 Script Based iTunes Control in macOS

12.4 Smartphone Remote for iTunes (macOS)

12.5 Script Based MediaPlayer Control (Windows 10)

12.6 Script Based iTunes Control (Windows 10)

12.7 Talk to Me

13 A Little AI: Drools Rules

13.1 Wake me up Early if it Rains: iAlarm

13.2 Remember me: Maintaining State Information

13.3 From Sunrise to Sunset

14 More iDevices

14.1 Denon / Marantz Audio System Control

14.2 Device Control Using Z-Wave

14.3 Bibliography

15 Where are you? Geo-fencing!

15.1 Google Drive

15.2 If This Then That (IFTTT)

15.3 A Geo-Fencing Database on Google Drive

15.4 Google Sheets Manipulation

15.5 Writing a Geo-fencing Sheet Management Script

15.6 A Smartphone App for the Geo-Fence Database

15.7 Further considerations for using a Geo-Fencing Database: Concurrency and Hysteresis

15.8 Google Sheets Integration with OpenRemote

15.9 A Cloud Based Smarthome Control Platform

16 Industry Grade Home Infrastructure Control: KNX

16.1 What is KNX?

16.2 How does KNX Work?

16.3 The KNX Software Infrastructure: ETS

16.4 Which Operating Systems does ETS Support?

16.5 ETS on a Mac

16.6 Other KNX.org Software Tools

16.7 ETS5 Installation

16.8 Importing Vendor Catalogs

16.9 ETS5 Infrastructure Configuration

16.10 ETS5: Adding the Building Infrastructure

16.11 ETS5: Configuring the KNX Elements

16.12 ETS5: Connecting Infrastructure to Controls

16.13 Notes on Configuring KNX Devices

17 KNX Control via OpenRemote Designer

17.1 Background Pictures for the Smartphone and Tablet App

17.2 Configuring KNX Based Heating Mode Control

17.3 Smartphone Based Heating Control

17.4 Drools Based Heating Automation

18 Remote Smarthome Control

19 Cold Start: Launch Automation

19.1 Windows 10 Task Scheduler

19.2 macOS launchd

20 Troubleshooting and Testing

20.1 Preventive Maintenance

20.2 OpenRemote Heartbeat and Watchdog

21 We Proudly Present: Reporting

21.1 A Drools Reporting Rule

22 Appendix

22.1 Upgrading from OpenRemote Designer to Professional Designer (2.1 to 2.6)

22.2 Troubleshooting Strategies

22.3 Problem Symptom – Cause Pairs

22.3 A Brief Introduction to JavaScript and Google Script

23 Bibliography