Architected Futures

EATSv5

{My} Property

Context

148 Avenida Dr., Berkeley CA 94708;

Page

Subject

{My} Property Master Plan

Date

08Dec2018


{148Avenida} Property Model

2/7/2019

Electronics needs update. Arris router has been switched out for Smart/RG with fiber installation. EEros were moved. Phone will change on the 11th. Cyber hardwire backbone for the house is able to be finalized. Cable needs update to Cat7 for backbone to support current standards. Leo should be able to help pull Cat7 to replace the existing coax.

{My} Property        9

Concerns        9

Alameda: Berkeley Hills: 148Avenida        9

Context and Approach        11

Cyber Architecture        11

Delivery Technologies        11

Services        11

YouTube As Audio-Video Delivery Channel        11

Geo-Physical Architecture        11

Down Avenida From Grizzly        16

Up Avenida From Fairlawn        17

Automation Concept        21

DIY Technology Proof of Concept        21

Home Automation Hub        21

General Strategy        22

Features        23

Issues / Questions        24

Property Configuration Worksheets        24

Operating Instructions        25

Principles of Operations        26

Time        26

Introduction        27

The Challenge        27

Solution Strategy        28

A Useful Analogy: The UCEF Orchestra        32

Eclipse SmartHome - openHAB        34

IoT Gateways        35

IoT Services        35

What is openHAB?        39

Target Audience?        40

Vision and Philosophy        40

Community        42

Ecosystem        43

GPS Logger        43

OwnTracks        43

Tasker        43

Others        43

Telegram Messenger        43

Architectural Principles        44

openHAB Structure        45

3rd Party System Integrations        46

IFTTT        47

Google Mail        48

Advertising and Spam        52

EATS Integration        52

Programming PLCs        55

Further Reading        57

Setup and Configuration        57

Reality        57

Admin        57

Advanced Functionality & Admin        58

Runtime Console        58

Runtime Commands        58

OSGi Bundle Management        58

Logging        58

JsonDB Storage        58

Add-ons        58

Bindings        58

Eclipse IoT Marketplace        58

Persistence        58

Default Persistence Service        58

Persistence Configuration        59

Persistence Triggers        59

Strategies        59

Predefined Strategies        59

Cron Persistence Triggers        59

Items        59

Restoring Item States on Restart        61

Persistence Extensions in Scripts and Rules        61

Date and Time Extensions        62

Startup Behavior        63

Workaround 1        63

Workaround 2        63

MQTT        63

User Interface        64

Panels and Sitemaps        64

Actions        67

Transformations        67

Voice Services        67

3rd Party Integrations        67

The Pitch: Overview        67

Windows Update        69

Backup        69

openHAB Cloud        69

Functional Architecture        70

myopenHAB        70

Security        70

Securing access to openHAB        71

Encrypted Communication        71

Webserver Ports        71

SSL Certificates        72

Authentication and Access Control        72

Options for Secure Remote Access        72

VPN Connection        72

myopenHAB Cloud Service        73

Running openHAB Behind a Reverse Proxy        73

Property Plan        73

Home Technology Plan        74

Overview        74

Technology Architecture        75

EATS Infrastructure        75

The Real World as a Modeled Space        76

EATS Modeled Space        78

EATS Run Mode        79

Eclipse SmartHome        79

Background        80

Why Eclipse SmartHome?        80

How does Eclipse SmartHome help?        80

Concepts        82

Categories        82

Differences between categories        82

Thing Categories        82

Channel Categories        84

Channel Group Categories        84

Widgets        84

Weather        84

Properties        85

Control        86

Purpose        86

Features        86

IT-based Systems        86

Information Technology Information Library (ITIL)        86

ITIL Continual Improvement        87

Home Security        87

Physical Security        87

Alarm Systems        87

Monitoring Systems        87

Access Management System        87

Cyber Security        87

Energy Plan        87

Solar Generation and Storage        88

City of Berkeley        89

Water Management        90

Current Systems        90

New System        91

Water / Weather Sensor Options        92

Reference Framework        93

Development        95

Community        95

Configuration        96

Equipment Placement        96

Centralized Technology        97

Wink Hub 2        97

Inventory Management        98

Network Configuration        99

Mesh Backbone        99

TCP/IP Network Hosts        99

Device, Thing & Item Configuration        102

Fire Systems Configuration        105

Description        105

Compatible Wireless Interconnect units        105

CCTV Configuration        106

Vista 20P Configuration        108

TuxWiFiW Configuration        109

Security Configuration        111

IP Network Configuration        112

Equipment        112

Integrations        112

Services        112

GeoContext        113

Location-based Notifications        113

Google Location        113

Google Personal Info & Privacy        113

Google Location Sharing        113

GPS Logger for Android        117

Geosetter        121

Maps        122

NextDoor        131

Glendale-TerraceView Neighborhood        132

Reference        133

Contacts        133

Area Concepts        134

Interior Areas        135

Exterior Areas        136

Area 0 - Upper Patio Garden (Pots)        136

Area 1 - Spa & Garden 1        136

Area 2 - Garden 2 / East Dry Creek        137

Area 3 - Garden 3        137

Area 4 - Lower (West) Garden 4        137

Area 5 - Lower Patio Garden 5        137

Area 6 - North-east Perimeter Garden 6        137

Area 7 - South Retaining Wall Garden 7        137

Area 8 - Greenhouse Garden 8        138

Area 9 - Home Entry        138

Area 10 - Driveway Extension        138

Area 11 - “146 Avenida”        138

Room Information Model        139

Eclipse SmartHome [openHAB] Base Model        139

EATS Model        140

QGIS Contextual Model        140

FreeCAD Model        140

FreeCAD        140


{My} Property

{San Francisco: Portola Valley: Dwight, Hale

Napa: Oakville: Walnut Drive

Concerns

Alameda: Berkeley Hills: 148Avenida

Daytime View To East (North to left / South to Right) [Double Lot]

Nighttime View From Exterior CCTV Cameras

Channel 1 - Driveway View

Channel 2 - Entryway View

Channel 3 - Intersection View

Channel 4 - Annie’salytical View

Context and Approach

Cyber Architecture

Delivery Technologies
Services
YouTube As Audio-Video Delivery Channel

Geo-Physical Architecture

I’m working on lighting related to approach. Some is being enhanced by approach as a Christmas lighting effort. Using some Smart Home DIY stuff that has built up in the house to configure the experiment set I’ve been wanting to do. Mapping areas with lights, and controlling light effects in areas outside for general ambiance, security lighting, and holiday decorations. More positive feedback loops on design concepts. I have now put some IoT selectable light strands into the first set of exterior areas I want to map, including those below. It’s working well as a wire-frame exercise. (12/8/18)

148 Residence / 146 Garden Rough Bisection


Down Avenida From Grizzly

Approach From North (House at Bottom Left, behind foliage)

Follows Turn to West (Toward Ocean / Downhill) Off Grizzly Blvd

Then Sharp Left Around Congested Blind Corner

Then This View where Grey house with paver driveway appears in Redwoods to left.

Up Avenida From Fairlawn

Related Documentation

Chief Architect Home Designer Pro project files. Chief Architect is a vendor of both professional and DIY home architecture design specification and blueprint generation systems. Home Designer Pro is a fully functioned DIY level product which bridges into the professional level product capabilities in limited form[2]. Generation and maintenance of house plans for the property is accomplished using Home Designer Pro. Import and export with QGIS for terrain purposes is via DXF files.

Automation Concept

See also: Imagining the Internet: A HIstory and Forecast for technical context.

Property Management, on an extended HAS time horizon, is a metaphor and framework for planetary management. The planet Earth is the definitional form of planet, and the origin of the concept of property, ownership, and rights of exploitation. One key to “architecting the future” is understanding how property [the physical reality of our environment] can, and should be managed, as it tends to be what we fight over and it is the foundation for how we interact economically. Coming up real soon now: who owns the moon and the asteroids, and toward what purpose(s). The pathway towards the stars which was once, in my lifetime, considered only wishful thinking is the next real frontier, which we have already begun to embark on as motivated individuals. These are no longer questions of science fiction. They are real questions of social and economic fact. And the answers, IMHO, are to be found in the intelligent use of automation as an intelligence augmentation facility. Thus, I’m trying to use home automation of my own property as a proof-of-concept, real life demonstration model of a version of an intelligence augmentation capability which I refer to as Annie. Conceptually, the core of Annie should be affordable to every person on the planet if cost of computing trends continue. For an indefinite[3] future forecast we assume all citizens have at least one Annie clone as a digital assistant (aka personal AI).

The MGP, MBF and all other efforts remain in play. A version of Annie, trained for property management, as an assistant to the property owners, become a target physical form for the technology. It provides a “foot on the ground” systems instance for the CPS framework.

DIY Technology Proof of Concept

Home Automation Hub

Our general architecture is based on hierarchical cascade. Use of a COTS hub provides an abstraction layer between critical EATS decision technology and “operational mechanics” of interface with the real world through sensors and activators. The critical factor is bridging and integration between components.

General Strategy

Features

Issues / Questions

Property Configuration Worksheets

Not Quite! But very close.

Google 3-D Map Roof Image, pre-2016 garden (old spa)

Base image for solar energy panel map generation

Property plan wire frame for house hip roof structure

based on outline of Google 3-D map, defined as planes and directional slopes

Solar Panel Arrangement showing expected yields based on shading from Redwood Trees affecting the degree of solar access.

Operating Instructions

Operating instructions for the property, by polymorphic inheritance, are tailorings of standard operating instructions for an [openHAB] Eclipse SmartHome. The content of this documentation is cut-and-paste from Eclipse SmartHome and openHAB documentation with local tailoring, or provided via direct link to the source web documentation as the available documentation for the features / capabilities as implemented for the property. Specialized EATS capabilities will be supplemented by EATS documentation, which may be in the form of web links to an Architected Futures website(s), or content that is derived dynamically and generated in the form of displays or interactions with other connected services (e.g., generated email alerts relative to changing conditions or circumstances). Documentation for integrations with 3rd party systems and applications may be referenced via generic documentation based on protocol standards (e.g., Z-Wave), of by reference to specific products.

Principles of Operations

Time

 figure 13.13 Simple time from UML specification

Define your own behavior. Intentional behavior modeling is inevitable, the question is, what form?

AI is scripted human intention, implemented by a machine.

Introduction

The Challenge

More and more new cool devices and technologies are introduced into our lives and arrive at our homes every day. But though they are all aimed at enhancing our lifestyle they all lack a number of important features. Among these include:

The size and scope of the problem, over time, can be seen in the following IoT marketplace conceptual diagram developed by Libelium, a supplier of products into this space:

It is also exemplified by the onslaught of advertising (see WebChoices Ad Personalization) and the intense unidirectional application of digital technology by business interests focused on individuals who have no defensive shields relative to the onslaught.

Solution Strategy

The solution strategy for EATS has been based on industry standards, and Eclipse as an operational ecosystem. Existing aspects include EMF-based OMG modeling facilities and other extensions. New elements related to IoT include those identified below. Not all of the identified projects are included specifically, but some are included indirectly. For consistency of operation and overall effectiveness, reuse of capability within the architecture is something to be managed.

The top left part of the graphic is labeled “Sectors”, and it shows examples of three different sectors—one related to drones, one related to autonomous vehicles, and one related to the electric power grid.  The bottom left part of the graphic is labeled “Real and Virtual Components”, and it shows examples of three different components—one is a rack of computer servers, one is a house, and one is a piece of electrical equipment.  The right side of the graphic is labeled “Technologies”, and it shows four puzzle pieces, with each piece labeled with a different technology—one is “GridLAB-D”, one is “MATLAB”, one is “OMNeT++”, and one is “Opal-RT”.

Eclipse SmartHome - openHAB

The main goal of openHAB is to provide an integration platform to fix the common language issue for home automation. The goal of Architected Futures is to implement home automation in a manner that is focused on the personal aspect of home, more so than the aspect of house automation, and yet implement in a manner that conforms with industry standards and protocols. In this regard the approach taken by Architected Futures exposes a number of inadequacies in the openHAB model for the resolution of additional concerns defined above. These additional feature are to be developed in EATS, or as openHAB extensions, or by incorporation of other Eclipse or external open source project development, depending on where the facilities may be most appropriately integrated and placed. In this matter of EATS configuration, EATS software code assumes responsibility for relational coordination and management of openHAB “Things, Items” and related information mapping, the same as with other “encapsulated” systems.

openHAB, OH2, can be defined as a community open source application solution packaging of the Eclipse SmartHome framework. Other vendor products based on Eclipse SmartHome also exist, primarily in the European market at this time. openHAB is also primarily a European community. Eclipse SmartHome is only one significant IoT framework available within the Eclipse ecosystem. This ecosystem, and its tool frameworks, can provide an industrial quality virtual machine that can be configured and outfitted with software that is model-driven, and MBSE generated.  EATS operates within this space and naturally utilizes API’s.

IoT Gateways

IoT Gateways help manage the interaction between sensors and actuators, and the enterprise and cloud services. Implementing these types of gateways requires specialized knowledge in communication protocols, device management, software update, and hardware configurations. We believe a better way to build IoT gateways is to use a set of common services that can be reused in IoT applications.

IoT Services

Building IoT applications for specific industries also requires dedicated services to be available. Providing developers with some of the basic building blocks makes it easier to develop and deploy these types of applications. Eclipse IoT currently has the following services:

----------------------------------------------------------------------------------

-- Copyright (c) 2013 Jürgen Rose and others.

-- All rights reserved. This program and the accompanying materials

-- are made available under the terms of the Eclipse Public License v1.0

-- which accompanies this distribution, and is available at

-- http://www.eclipse.org/legal/epl-v10.html

--

-- Contributors:

--     Jürgen Rose - initial API and implementation

----------------------------------------------------------------------------------

CREATE TABLE es_ae_events

(

  id                           CHAR(36) NOT NULL,

  source_timestamp             TIMESTAMP,

  entry_timestamp              TIMESTAMP,

  instance_id                  VARCHAR(32),

  monitor_type                 VARCHAR(32),

  event_type                   VARCHAR(32),

  value_type                   VARCHAR(32),

  value_string                 VARCHAR(4000),

  value_integer                BIGINT,

  value_double                 DOUBLE PRECISION,

  message                      VARCHAR(4000),

  message_code                 VARCHAR(255),

  priority                     SMALLINT,

  source                       VARCHAR(255),

  actor_name                   VARCHAR(128),

  actor_type                   VARCHAR(32),

  severity                     VARCHAR(32),

  replicated                   SMALLINT,

  CONSTRAINT es_ae_events_pkey PRIMARY KEY (id)

);

CREATE TABLE es_ae_events_attr

(

  id                           CHAR(36) NOT NULL,

  key                          VARCHAR(64) NOT NULL,

  value_type                   VARCHAR(32),

  value_string                 VARCHAR(4000),

  value_integer                BIGINT,

  value_double                 DOUBLE PRECISION,

  CONSTRAINT es_ae_events_attr_pkey PRIMARY KEY (id , key),

  CONSTRAINT es_ae_events_attr_id_fkey FOREIGN KEY (id)

      REFERENCES es_ae_events (id) ON DELETE CASCADE

);

From: Enabling High Level Application Development for IoT

What is openHAB?

openHAB is a software for integrating different home automation systems and technologies into one single solution that allows over-arching automation rules and that offers uniform user interfaces. openHAB software integrates different home automation systems, devices and technologies into a single solution. It provides uniform user interfaces, and a common approach to automation rules across the entire system, regardless of the number of manufacturers and sub-systems involved.

This means that openHAB

  1. is designed to be absolutely vendor-neutral as well as hardware/protocol-agnostic
  2. can run on any device that is capable of running a JVM (Linux, Mac, Windows)
  3. lets you integrate an abundance of different home automation technologies into one
  4. has a powerful rule engine to fulfill all your automation needs
  5. comes with different web-based UIs as well as native UIs for iOS and Android
  6. is fully open source
  7. is maintained by a passionate and growing community
  8. is easily extensible to integrate with new systems and devices
  9. provides APIs for being integrated in other systems

Target Audience?

openHAB is highly flexible and customizable, but this comes at a cost. You have to invest some time for learning its concepts and to set up an individual system tailored to your needs. Many parts of the setup require textual configuration, potentially accessing log files for debugging, etc. Therefore setting up openHAB is mainly a job for tech-savvy people - it is not a commercial off-the-shelf product that you plug in and that is ready to go.

Nonetheless, this only applies to the setup and configuration of the system, which is usually done by a single person in the household, while all other family members are merely using the system. And here is where openHAB shines: It is very stable, has apps for all different end devices, allows voice interaction, etc.

Vision and Philosophy

There are many home automation solutions and Internet-of-Things (IoT) gadgets on the market, which are all useful on their own. They come with their own way on how to setup and configure devices and are perfect for their intended use cases.

The problem with all of these systems and devices is that these use cases are defined by the manufacturer - but as a user, you will quickly come up with wishes that are not supported out of the box or which require interaction between the different systems. openHAB fills this gap: It puts the user in the focus and allows him to do what he wants to do. It thus serves as an integration point for all your home automation needs and lets systems talk to each other across any vendor or protocol boundaries.

It is an infrastructure system for the administration of a real time, physical sensor-based, [[[Personal] Home] Automation and Alerting], event monitoring and response assignment management system.

From our point of view, a commercial product can never stay up to date with all interesting things that can be integrated. So the only way to be sure that you do not bet on a dead horse is by using an open source solution that is maintained by a big community and which does not depend on the fate of a single company. openHAB is hence the best choice for a future-proof Smart Home setup.

It is an infrastructure component in the [personal] administration of a risk, trust and privacy management policy involving exposures and consequences in the real world.

Considering the user perspective also means caring for data privacy. With openHAB, all data (like sensor data or actuator commands) belongs to the user and it is up to him to decide, what data should potentially leave his house and where it is sent. Furthermore, there is no remote access possible, if it is not desired - everything works nicely within the intranet and does not even require an Internet connection. We therefore also like to call it the “Intranet of Things”.

Desire is to accurately integrate smart home management and control into an overall home management and control system. A version of a BIM structural management system which incorporates full CAD specifications for the home is the target. Initial concepts are toward integration of FreeCAD as the CAD component to be integrated.

Fundamental network architecture is web-based UI on a variety of clients connected via the internet to a controller server. Controller is responsible for the management of “attached” or “assigned” sensors and activators.

Community

openHAB is not just software - it is also a community of users, contributors and maintainers, working together on an open-source, interoperable approach to home and personal automation. The center of this community is the openHAB community forum. You can search previous conversations and issues to see if your question has already been answered. You can post your own question as well (although it is generally considered to be good etiquette to check fairly thoroughly before posting). One of the great things about openHAB is that it has an active and responsive community of developers and maintainers who generally respond quite quickly to forum questions. We believe you will find that our community works diligently to make newcomers feel at home.

Ecosystem
GPS Logger
OwnTracks

OwnTracks is an open source, location tracking service for iPhones and Android devices. It is a reactive, event-driven application that can post HTTP or MQTT event messages to an HTTP or MQTT server when “significant” movement is detected by the smartphone.

Tasker

Tasker is a low cost, paid service application, maintained by a single individual(?), for Android only, which performs tasks based on contexts (application, time, date, location, event, gesture) in user-defined profiles, clickable or timer home screen widgets. It controls an Android device without the need for root or a special home screen.

a/o 5/11/18 Tasker is on hold until we see how openHAB and OwnTracks works out.

Others
Telegram Messenger

Telegram is a secure message system with an open client and closed host/server architecture.

MQTT / Eclipse Mosquitto

 Eclipse Mosquitto project contains both mosquitto, and a fully open-sourced Really Small Message Broker from IBM, which also happens to support MQTT-SN. Will be needed and useful as a PUB/SUB facility.

Architectural Principles

openHAB does not try to replace existing solutions, but rather wants to enhance them - it can thus be considered as a system of systems. It therefore assumes that the sub-systems are setup and configured independently of openHAB as this is often a very specific and complex matter (including “pairing” processes, direct device links etc.). Instead, openHAB focuses on the “daily use” side of things and abstracts from the devices themselves.

From: https://www.eclipse.org/forums/index.php/t/668424/

A core concept for openHAB is the notion of an “item”. An item is a data-centric functional atomic building block - you can think of it as an “capability”. openHAB does not care whether an item (e.g. a temperature value) is related to a physical device or some “virtual” source like a web service or an calculation result. All features offered by openHAB are using this “item” abstraction, which means that you will not find any reference to device specific things (like IP addresses, IDs etc.) in automation rules, UI definitions and so on. This makes it perfectly easy to replace one technology by another without doing any changes to rules and UIs.

Sample Appliance Binding

A very important aspect of openHAB’s architecture is its modular design. It is very easy to add new features (like the integration with yet another system through a “binding”) and you can add and remove such features at runtime. This modular approach has been a huge enabler for the active community around openHAB with many engaged contributors.

openHAB Structure

openHAB 2 is developed in Java and mainly based on the Eclipse SmartHome framework. It uses Apache Karaf together with Eclipse Equinox to create an Open Services Gateway initiative (OSGi) runtime environment. Jetty is used as an HTTP server.

openHAB is highly modular software that can be extended through “Add-ons”. Add-ons give openHAB a wide array of capabilities, from User Interfaces, to the ability to interact with a large and growing number of physical Things. Add-ons may come from the openHAB 2 distribution, the Eclipse SmartHome project Extensions, or from the openHAB 1 distribution.

The overall architecture of openHAB is shown in the figure below:

openHAB defines an established, open foundation supported, maker/user community for Eclipse SmartHome-based home automation. SmartHome, Jetty, and Karaf combined as an openHAB packaging constitutes an optional assembly, but not an arbitrary one. And it fits well with the architecture of the current EATS code base.

3rd Party System Integrations

openHAB supports services that enable integration with various technologies that don’t fall into other add-on categories. Most of the systems mentioned below are integrated via a Misc add-on, installed e.g. through Paper UI. Detailed instructions and requirements may be found in the corresponding documentation pages.

Name

Description

Amazon Alexa Skill

An intelligent voice guided personal assistant. Amazon Alexa became famous by the Amazon Echo speaker but is also available through independent solutions. The certified openHAB Alexa skill allows to naturally control the openHAB smart home by voiced commands.

Azure IoT Hub Connector

The Azure IoT Hub connector replicates your local things to a Microsoft Azure IoT Hub.

Dropbox Content Synchronization

This service will synchronize files on the openHAB server, such as configuration and log files, to and/or from a Dropbox account.

Google Calendar Scheduler

The Google Calendar Scheduler allows you to control items in openHAB at scheduled times in the future. It will send commands to items or update the state of items when defined on one of your Google Calendars.

An additional persistence service, the Google Calendar Presence Simulator, writes item state changes as events on the calendar that will occur again some number of days in the future, to stimulate your activity at home (such as turning lights on and off) when on vacation

HomeKit Add-on

This is an add-on that exposes your openHAB system as a bridge over the HomeKit protocol.

openHAB Hue Emulation

Hue Emulation exposes openHAB items as Hue devices to other Hue HTTP API compatible applications like an Amazon Echo.

ImperiHome integration service

This IO service exposes openHAB Items to the Evertygo ImperiHome dashboard app for Android and iOS.

Mycroft AI Skill

Mycroft AI is the world’s first open source voice enabled assistant.

openHAB Cloud Connector

The openHAB Cloud Connector allows connecting the local openHAB runtime to a remote openHAB Cloud instance, such as myopenHAB.org, which is a shared, community instance of openHAB.

REST API

The REST API can be used to integrate openHAB with other systems, as it allows read access to items and item states, as well as status updates or the sending of commands for items. It gives access to sitemaps, so that it is the interface to be used by remote user interfaces (e.g. fat clients or JavaScript-based web clients). The REST API also supports server-push, so you can subscribe on change notification for certain resources.

The Eclipse IoT Marketplace hosts third-party add-ons that can be browsed and installed to openHAB through this integration.

IFTTT/openHAB

Activating IFTTT integration is easy. Just log in to your IFTTT account and activate the openHAB channel. You will be forwarded to the myopenHAB website to authorize the IFTTT channel connection. Before you start creating IFTTT recipes you need to make sure that you have your runtime configured to expose certain items to myopenHAB. Only those items will be visible to IFTTT. You will also be able to send commands to those items from IFTTT Applets. Items will appear in myopenHAB and thus in IFTTT only after at least one state update has been received by myopenHAB from your runtime.

IFTTT

Besides the new kinds of integration possibilities, IFTTT is also a perfect start for new openHAB users as it makes the creation of rules dead simple - no need to do any scripting, no complex setup routines, it all works through a few mouse clicks! We have also integrated with IFTTT’s Do Button. The Do button allows you to access often required functionality very quickly - either through the Do app, as a widget or even as a floating button, that is always present on your screen.”

  1. Expose your Items to IFTTT using the OpenHab Cloud Connector.
  1. Open Services in the PaperUI and hit Configure
  2. Click on items to expose. Select items
  1. Create an IFTTT Applet to accomplish a task based on, or with, the item. Every rule has two parts:
  1. Trigger: The condition that will trigger the rule. In our case, the rule will be executed when the temperature goes above 90 degrees.
  2. Action: The action that you want IFTTT to execute. In my case, it is a call to my cell phone.
  1. Available Apps
  1. (x) Notification of new apps
  2. (-) turn on a presence indicator based on geo location
  3. (-) turn off a presence indicator based on geo location
  4. (-) monitor state of garage door, or front door, open
Google Mail

For distinctions between asset management using personal Google accounts and G Suite accounts, this video is useful.

Following screen capture shows current capabilities that can be incorporated as part of a generic utility platform which taps the Google API. These are minimal services that can be made available at varying degrees of vanilla passthru, with or without masking, with or without creation of combinatorial services. What is required in EATS is access to consist forms of maps related to the actual information logistics operation to be performed.

In this case the objective is to capture and collect all comments which have been posted to a NYTimes  article discussion forum.

Google: GMail Help: Organize Emails: Create Rules to filter your emails.

Provides for import /export of filter specifications as standardized XML data files.

Advertising and Spam

WebChoices Ad Personalization

EATS Integration

[The following needs update to incorporate HLA via UCEF references. Basically, we need an expanded map of an Eclipse Ecosystem with EATS as a message bus manager module on an Eclipse bus system, on a Java bus, on a ISO/W3C bus, on a TCP/IP bus; where bus system managers navigate between layers and across spaces via protocol standards.

This TCP/IP connected world is where various other “open” systems exist, with varying degrees of “openness” relative to their APIs and content. Hypothetically, if we base our modeling and simulation environment on HLA standards, where we implement both FOM and SOM elements, then we can “interplay” with any other HLA modeling or simulation environment which conforms to the same element model specification.]

openHAB shares deep technical infrastructure integration with EATS, and EATS with openHAB, through the shared Eclipse foundation for both systems. Effectively, Eclipse provides a product line framework for a common software architecture which is conformed to by openHAB, Jetty, EATS, and a variety of other software systems, including the entire Eclipse IoT product line of frameworks.

EATS is a networked application architecture, message-based, document-oriented, infrastructure communications management system. It’s primary current functionality is to maintain information models in abstract form as XML documents, and to dynamically assemble such models on demand as intelligent state representations of the characteristics of the elements being modeled.

openHAB effects an a model Customer Application for EATS which has been built with a similar foundation on a common Deployed Technology Infrastructure. “Customer Applications adapt the core architecture models to specific organization, environment, entity or purpose.”

 

http://architectedfutures.net/content/infrastructure-engineering-viewpoints

Eclipse SmartHome becomes an embedded PLC (Programmable Logic Controller) within a shared, configured deployment of the technology.  In the specific SmartHome case, the PLC is dedicated to home (and smart personal) automation. SmartHome becomes a device management and logical device driver implementation layer for EATS with respect to input sensors, sensor state tracking content storage and value translation capabilities, and other technology which effects monitoring of, or implementation in, the real world on a real time basis, relative to aspects within its domain: Home Automation. Input can consist of IFTTT economic statistic updates, to temperature alerts or location detection within the space of a monitored property.

Integration between EATS and SmartHome is via incorporation of SmartHome concepts and implementations in terms of the EATS Metamodel and the OMG Meta-Object Facility (MOF).

SmartHome defines an M0 Object Set and attributes in terms of SmartHome concepts of Things, Items, etc. This also corresponds to a technical/operational level within a Zachman conceptual hierarchy of systems architecture specifications. The SmartHome DSL defines the M1 Model of the Object Set for these elements. EATS Metamodels primarily exist at the M2 Model of the Model level, based on an EATS Metamodel which is defined at an M3 Meta-MetaModel level. At the M3 level, EATS, by specification, interfaces and interacts similar to ECore and EMF.

While EATS has M2 and M3 oversight for a federated space conforming to the common architectural specification, EATS also has M1 and M0 facilities to effect fundamental operations within the architected space. However, these facilities become “plug-ins” to the overall architecture, for example use of a MariaDB as a PLC to achieve data persistence. Originally, all of these PLC functions were developed as EATS code. Recently, additional functions have been added in the form of interfaces to reasoners, etc. Effectively, openHAB become a PLC for SmartHome management and UI, and SmartHome becomes a shared PLC for information and device management in concert with other Eclipse IoT offerings.

Programming PLCs

Even though for each PLC vendor there's a specific IDE, the programming languages for PLC were standardized in IEC-61131 part 3. Five different programming languages are part of the standard:

This is very different from "normal" programming, such as C, C++, java, python, and so on. The programming languages given above, specially the graphical ones, are easier to program with due to its abstraction. Of course, this doesn't mean that you cannot program a PLC using the normal programming languages at all, but this feature is not always present.

Function Block Diagrams

We'll focus on the Function Block Diagram programming language. The image below shows a small example of how a Function Block (FB) diagram looks like

IEC 61499 FB Interface Specification

The image below shows the new look of the FB. It encapsulates the desired functionality. Again, the inputs are on the left and the outputs on the right, but now the interface is divided in events and data. The events are on the top part of the FB, as red, and the data on the lower part as blue. The events trigger the functionalities of the FBs, and the data inputs are the data use by these functionalities. The exact sequence happening in the FB when an event arrives is shown in the next image. Events and data connections are not compatible, meaning that you cannot connect them together, in any way. You can fan in (many outputs to the same input) and fan out (same output to many inputs) events connections, and you can fan out data connections. What you cannot do is a fan in of data connections, because the FB won't know which data to get for its input.

The lines and small squares that connect an event with data inputs (both in inputs and outputs) represent the data inputs that are refreshed when an input/output event arrives/leaves. The Event Execution Control (ECC) is the state machine that receives the event input, and according to the actual state, call the encapsulated functionality.

FB Internal Sequence

The following image shows how a FB is triggered to execute its functionality.

  1. An input events arrives to the FB
  2. The data inputs related to the incoming event are refreshed
  3. The event is passed to the ECC
  4. Depending on the type and execution control, the internal functionality is triggered for execution
  5. The internal functionality finishes the execution, and provides new output data
  6. The output data related to the output event are refreshed
  7. Output event is sent

Step 4 to 7 may repeat several times, and an output event is not mandatory to trigger.

Further Reading

Setup and Configuration

Reality

Written 2nd, after having gone through The Pitch: Overview for an initial getting started.

Admin

Advanced Functionality & Admin
Runtime Console

https://docs.openhab.org/administration/console.html

Runtime Commands

https://docs.openhab.org/administration/runtime.html

OSGi Bundle Management

https://docs.openhab.org/administration/bundles.html

Logging

https://docs.openhab.org/administration/logging.html

JsonDB Storage

https://docs.openhab.org/administration/jsondb.html

Add-ons

Bindings

Eclipse IoT Marketplace

With the Eclipse IoT Marketplace installed, you will see additional entries in the “Bindings” tab of the Add-ons menu. As the new entries come with logos and descriptions, the card layout (instead of the list layout, can be selected in the top right) is best for browsing the entries. To filter the view to show only third-party add-ons from the marketplace, you can simply type “market” in the search bar.

Persistence

openHAB can trigger the persistent storage of item state data to be retrieved at a later time, for such uses as restoring your system at startup, or to prepare graphs for display on a UI. openHAB persists Item states in a database, and most popular databases are supported. You may have more than one persistence add-on loaded, and each of these may be configured independently.

Default Persistence Service

It is important to select a default persistence service. You should do this even if you have only one persistence add-on installed. Note that you must first install a persistence add-on before you make this selection.

Persistence Configuration

The information below allows you to determine which Item states are persisted, when they are persisted, and where they are stored.

Persistence Strategies are configured in a file named <persistenceservice>.persist, stored in $OPENHAB_CONF/persistence. Replace “persistenceservice” with the name of your persistence add-on (e.g. rrd4j.persist).

Persistence Triggers

The persistence of an Item’s state may be triggered when that Item changes state or when the Item is updated (even if its state did not change). Persistence may also be triggered by a time-related event (see Cron Persistence Triggers below).

Strategies

This section allows you to name and define one or more Strategies and to select a default strategy. The syntax is as follows:

Strategies {

  <strategyName1> : "cronexpression1"

  <strategyName2> : "cronexpression2"

  ...

  default = everyChange

  ...

}

The default parameter assigns a strategy to be used if one is not specified in the Items section below. The default parameter may be omitted from the Strategies section, but only if a strategy is provided in each line of the Items section. If the strategy portion of the itemlist is omitted in the Items section, the default strategy specified in the Strategies section will be applied.

Predefined Strategies

The following strategies are defined internally and may be used in place of strategyName above:

Cron Persistence Triggers

openHAB uses the Quartz scheduler for time-related cron events. See the Rules article for more information concerning time-based triggers.

Items

This section defines which items should be persisted with which strategy. The syntax is as follows:

Items {

    <itemlist1> [-> "<alias1>"] : [strategy = <strategy1>, <strategy2>, ...]

    <itemlist2> [-> "<alias2>"] : [strategy = <strategyX>, <strategyY>, ...]

    ...

}

where <itemlist> is a comma-separated list consisting of one or more of the following options:

The example Items section below takes advantage of a default entry in the Strategies section. Assume the Strategies section contains the line:

  default = everyChange

then the following section,

Items {

    GF_Hall_Light

}

will cause the state of GF_Hall_Light to be persisted on every change.

Below you will find a complete example persistence configuration file:

// persistence strategies have a name and definition and are referred to in the // "Items" section

Strategies {

        everyHour : "0 0 * * * ?"

        everyDay  : "0 0 0 * * ?"

       // if no strategy is specified for an Item entry below,

// the default list will be used

       default = everyChange

}

/*

 * Each line in this section defines for which Item(s) which strategy(ies)

 * should be applied. You can list single items, use "*" for all items or

 * "groupitem*" for all members of a group

 * Item (excl. the group Item itself).

 */

Items {

       // persist the Item state of Heating_Mode and Notifications_Active

//  on every change and restore them from the db at startup

       Heating_Mode, Notifications_Active: strategy = everyChange,

 restoreOnStartup

        // additionally, persist all temperature and weather values every hour

        Temperature*, Weather* : strategy = everyHour

}

Restoring Item States on Restart

When restarting your openHAB installation you may find there are times when your logs indicate some Items have the state, UNDEF. This is because, by default, Item states are not persisted when openHAB restarts - even if you have installed a persistence add-on. In order for items to be persisted across openHAB restarts, you must define a restoreOnStartup strategy for all your items. Then, whatever state they were in before the restart will be restored automatically. The following example persists all items on every change and restores them at startup:

Strategies {

  default = everyUpdate

}

Items {

  * : strategy = everyChange, restoreOnStartup

}

Persistence Extensions in Scripts and Rules

To make use of persisted states inside scripts and rules, a few useful extensions have been defined on items. Note that these extensions are only available to be applied to Items. They are not generally available for use in Scripts or Rules.

Example:

The statement

Temperature.historicState(now.minusDays(1))

will return the state of the Item “Temperature” from 24 hours ago. You can easily imagine that you can implement very powerful rules using this feature.

Here is the full list of available persistence extensions:

all take ItemName.extensionFunction format

Persistence Extension

Description

.persist

Persists the current State of the Item

.lastUpdate

Queries for the last update timestamp of a given Item

.historicState(AbstractInstant)

Retrieves the State of an Item at a certain point in time

.changedSince(AbstractInstant)

Checks if the State of the Item has (ever) changed since a certain point in time

.updatedSince(AbstractInstant)

Checks if the state of the Item has been updated since a certain point in time

.maximumSince(AbstractInstant)

Gets the maximum value of the State of a persisted Item since a certain point in time

.minimumSince(AbstractInstant)

Gets the minimum value of the State of a persisted Item since a certain point in time

.averageSince(AbstractInstant)

Gets the average value of the State of a persisted Item since a certain point in time

.deltaSince(AbstractInstant)

Gets the difference in value of the State of a given Item since a certain point in time

.previousState()

Gets the previous State of a persisted Item (returns HistoricItem)

.previousState(true)

Gets the previous State of a persisted Item, skips Items with equal State values and searches the first Item with State not equal the current State (returns HistoricItem)

.sumSince(AbstractInstant)

Gets the sum of the previous States of a persisted Item since a certain point in time

        

These extensions use the default persistence service. (Refer to ‘Default Persistence Service’ above to configure this.) You may specify a different persistence service by appending a String as an optional additional parameter at the end of the extension.

Example To persist an Item called Lights in an rrd4j database, you would enter the following: Lights.persist("rrd4j")

Date and Time Extensions

A number of date and time calculations have been made available in openHAB through incorporation of Jodatime.[4] This makes it very easy to perform actions based upon time. Here are some examples:

Lights.changedSince(now.minusMinutes(2).minusSeconds(30))

Temperature.maximumSince(now.toDateMidnight)

Temperature.minimumSince(parse("2012-01-01"))

PowerMeter.historicState(now.toDateMidnight.withDayOfMonth(1))

The “now” variable can be used for relative time expressions, while “parse()” can define absolute dates and times. See the Jodatime documentation for information on accepted formats for string parsing.

Startup Behavior

Persistence services and the Rule engine are started in parallel. Because of this, it is possible that, during an openHAB startup, Rules will execute before Item states used by those Rules have been restored. (In this case, those unrestored Items have an “undefined” state when the Rule is executed.) Therefore, Rules that rely on persisted Item states may not work correctly on a consistent basis.

Workaround 1

A workaround which helps in some cases is to create an Item e.g. “delayed_start” that is set to “OFF” at startup and to “ON” some time later (when it can be assumed that persistence has restored all items). You can then write a Rule that restores Items from your persistence service after the delay has completed. The time of the delay must be determined by experimentation. How long you need to wait before changing your “delayed_start” Item from “OFF” to “ON” depends upon the size of your home automation project and the performance of your platform.

Workaround 2

Create $OPENHAB_CONF/rules/refresh.rules with the following content (This rule runs only once when openHAB starts):

var boolean reloadOnce = true

rule "Refresh rules after persistence service has started"

  when System started

then

  if(reloadOnce)

    executeCommandLine("$OPENHAB_CONF/rules/rules_refresh.sh")

  else

    println("reloadOnce is false")

  reloadOnce = false

end

Create a refresh script $OPENHAB_CONF/rules_refresh.sh and make it executable (chmod +x rules_refresh.sh):

#!/bin/bash

#This script is called by openHAB after the persistence service has started

sleep 5

cd [full_path_to_openhab_config_directory]/rules

FileList="$(find *.rules | grep -v refresh.rules)"

for File in $FileList

do

  touch $File

done

The script waits for five seconds and then touches all *.rules files (except refresh.rules). This causes openHAB to reload all rules (openHAB automatically reloads rules when their creation date/time changes). Other rules files may be added on new lines. Note - you will have to experiment to find the appropriate sleep value for your specific system.

MQTT

https://jaxenter.de/smarthome-in-action-mit-openhab-und-mqtt-20108

User Interface

Panels and Sitemaps

There does not appear to be a single “map” that describes the organization of all of the things and items in the system inventory. There are instead multiple ways and places to define things, and items; and ways to group them by creating more items. There are some organizing principles around the defined sensors and actuators.

The core system is principally defined as a headless, reactive, transformative event broker. At this level the system’s operational architecture can be understood as similar to EATS.

While the “artificial intelligence” portion of home automation runs in the background as a headless activity, primarily producing log files as an aid to management in the event of issues, there is a need for UI in two dimensions:

  1. Routine operational interaction with the system
  1. Dashboards to review and monitor
  2. Control panels to make selections and trigger events
  1. Configuration and Maintenance

Actions

Transformations

Voice Services

3rd Party Integrations

The Pitch: Overview

This part covers all the basics to use openHAB after you installed it: how to perform the first-time setup, add some bindings, discover and configure things for the first time and finally how to create a sitemap and some basic rules.

The goal of this tutorial is to cover the first steps for new users. After performing the first-time setup, you will learn how to install a very simple “binding”, the “Network Binding”. A binding is an additional package for openHAB to be able to interact with all kinds of devices or situations. To show you the use and configuration of a more complex binding, we’ll guide you through the installation of the “Zwave Binding”, a binding to control devices in a Zwave network. At the end of this tutorial, you will be able to create a local sitemap and your first simple rules.

This tutorial assumes that you already installed openHAB on your preferred system. If you’re looking for installation instructions for your platform, please have a look here before continuing with this tutorial!

Let’s proceed to step 1, the First-Time setup

// Your persistence configuration goes here.

// All persistence files have to have the ".persist" file extension and must follow a special syntax.

//

// persistence strategies have a name and a definition and are referred to in the "Items" section

Strategies {

    // if no strategy is specified for an item entry below,

    // the default list will be used

       everyMinute     : "0 * * * * ?"

       every5Minutes : "0 */5 * * * ?"

       everyHour   : "0 0 * * * ?"

       everyDay    : "0 0 0 * * ?"

       default = everyChange

}

/*

* Each line in this section defines for which item(s) which strategy(ies) should be applied.

* You can list single items, use "*" for all items or "groupitem*" for all members of a group

* item (excl. the group item itself).

*/

Items {

   // persist all items once a day and on every change and restore them from the db at startup

   * : strategy = everyChange, everyDay, restoreOnStartup

   // additionally, persist all temperature and weather values every hour

      gTemperatur* : strategy = every5Minutes, restoreOnStartup

}

Windows Update

Backup

Make sure that you make regular backups of the conf and userdata folders, you can zip and unzip these folders to and from openHAB installations (even across most versions). When you have a setup that you are happy with, it would be a good idea to make a backup of the whole C:\openHAB2 folder. Which can be used any time after a failure.

openHAB Cloud

openHAB Cloud is a companion cloud service and backend for the openHAB open-source home automation software. The openHAB Cloud backend provides secure remote access and enables openHAB users to remotely monitor, control and steer their homes through the internet, collect device statistics of their openHABs, receive notifications on their mobile devices or collect and visualize data etc. The main core features of openHAB Cloud are an user-management frontend, secure remote access, remote proxy-access, device registry & management, messaging services and data management & persistence. The openHAB Cloud also serves as core backend integration point for cloud-based features (e.g. IFTTT) and provides an OAuth2 application enablement.

Functional Architecture

myopenHAB

myopenHAB is an instance of the openHAB Cloud service, which is hosted by the openHAB Foundation e.V. They offer the service completely for free. It is meant to allow users to quickly check out openHAB features without having to set up and host a personal instance. Although it is mainly meant as a demonstrator, it is free to use it for your production system as well. However, you must be aware that they cannot offer any SLAs regarding availability etc, but promise to keep it up and running to the best of their capabilities. Please read the Terms of Use for all details.

The myopenHAB Cloud Service is “an instance of” openHAB that can be defined as a component in a composite nesting hierarchy. openHAB instances can be defined and managed in an object hierarchy.

Security

UUID: C:\openHAB2\userdata\uuid

SECRET: C:\openHAB2\userdata\openhabcloud\secret

Local Instance (s)

Instance security methods and techniques are specific the operating environment. The openHAB runtime is designed as a home automation daemon. On Windows, the natural way to run a daemon is as a service. This is the background, continuously operating, event and state managed communications model that is native[5] to the EATS architecture.

Securing access to openHAB

openHAB has mainly two ways to be accessed:

  1. Through the command line console, which is done through SSH and thus always authenticated and encrypted. You will find all details about this in the Console documentation.
  2. Through HTTP(S), which we will look at in the following.
Encrypted Communication

Webserver Ports

openHAB has a built-in webserver, which listens on port 8080 for HTTP and 8443 for HTTPS requests. In general, it is advised to use HTTPS communication over HTTP.

The default ports 8080 and 8443 can be changed by setting the environment variables OPENHAB_HTTP_PORT resp. OPENHAB_HTTPS_PORT. In an apt installation, you would best do this in the file /etc/default/openhab2.

SSL Certificates

On the very first start, openHAB generates a personal (self-signed, 256-bit ECC) SSL certificate and stores it in the Jetty keystore (in ${USER_DATA}etc/keystore). This process makes sure that every installation has an individual certificate, so that nobody else can falsely mimic your server. Note that on slow hardware, this certificate generation can take up to several minutes, so be patient on a first start - it is all for your own security.

Authentication and Access Control

openHAB does not (yet) support restricting access through HTTP(S) for certain users - there is no authentication in place, nor is there a limitation of functionality or information that different users can access.

Security Warning: It is vitally important that you MUST NOT directly expose your openHAB instance to the Internet (e.g. by opening a port in your firewall)!

If you want to limit access to only certain network interfaces, you can do so by setting the environment variable OPENHAB_HTTP_ADDRESS. Setting it to

OPENHAB_HTTP_ADDRESS=127.0.0.1

will e.g. only allow requests through the local loopback interface.

Options for Secure Remote Access

Clearly, having remote access to your openHAB instance is something most users would not want to miss. There are different options to do so.

VPN Connection

The most secure option is probably to create a VPN connection to your home network. Doing so will allow you to access your openHAB instance in the same way as if you were at home. There are many different solutions for VPN, so we cannot give any specific advice here, what to use and how to set in up.

myopenHAB Cloud Service

You can use an openHAB Cloud instance to which openHAB creates a tunnel connection and which forwards all requests through this tunnel. openHAB will see these incoming requests as originating from the local loopback interface.

The simplest way to get hold of such an openHAB Cloud is to register an account at myopenHAB.org, which is operated by the openHAB Foundation.

Running openHAB Behind a Reverse Proxy

A reverse proxy simply directs client requests to the appropriate server. This means you can proxy connections to http://mydomain_or_myip to your openHAB runtime. You just have to replace mydomain_or_myip with either an internal or external IP (e.g. xx.xx.xx.xx) or a domain if you own one that links to the external IP of openHAB (e.g. openhab.mydomain.tld).

Running openHAB behind a reverse proxy allows you to access your openHAB runtime via port 80 (HTTP) and 443 (HTTPS). It also provides you a simple way of protecting your server with authentication and secure certificates.

The good news is that openHABian already offers the possibility to activate a preconfigured NGINX reverse proxy, which includes setting up authentication and a valid Let’s Encrypt certificate.

Property Plan

The property plan is a consolidation of other property management related materials into the form of a consolidated property information model and property management plan. Conceptually, it is intended to be the “how things work on this property” model which functions as “living documentation” in a digital form for operational use and management of the property. Conceptually, it is the personalized, home sized implementation of a BIM model, with sustainability and contextual sensitivity as managed factors in design processes.

As “living documentation” for the property, the plan is being developed incrementally as adjustments and enhancements are made to the property. It is being “evolved” as a multiple generation plan, portions of which assume and include standardized property management maintenance[6] issues.

The property plan exists within the context of the physical ecosystem in which the property is located. IN the case of 148 Avenida Drive, That context involves a specific neighborhood in Berkeley, and emanates outward in terms of resources and environmental entanglements. Initial studies in that regard were undertaken and documented as part of a community college exercise in 2009.

The importance of the GIS contextual framework is how it places the functional system into the real world of physics and biological ecosystems. It becomes the linkage between personal and social on a geographic basis… Current plans are to integrate the open source Open GISS framework into the EATS tool suite, along with open CAD as a graphical modeling and drawing interface. In this way the property plan tool includes the graphical interfaces for its own self[7] development.

Home Technology Plan

Overview

The EATS layered product architecture is described in the  discussion of the EATS e4 Infrastructure Model. Specifically, that discussion identifies the role of Java and Eclipse in the EATS technology architecture. The existing EATS e4 UI Management Framework has been implemented on the Eclipse E4 Application Model (most recently the JavaFx version), which incorporated model driven UI for model management; and, in a web environment, has been implemented as a framework for UI interface and session management in both PHP and Java. The Java code was recently modified experimentally for use in a GCP cloud environment.

The direction of the EATS code is toward supporting the generalized understanding and management of dynamic systems architectures through analysis of models of dynamic and systemic behavior. EATS is primarily about concept modeling, and the measuring and understanding of feedback, and how feedback and understanding enhance decision making and accountability, trust and acceptance of decisions. Conceptual things, measured in standardized conceptual ways.

Home automation is physical and it is about the real world. EATS has a concept of Worlds. In it, the Real World is described as an M0 Model in the context of a MOF Metamodel. In SmartHome and openHAB things are different from bindings. In M0, SmartHome things and bindings are both instances of EATS object types that are defined as existing at the same level, as Elements of a particular M0 Element Type. In one case a SmartHome Thing, and in the other case a SmartHome Binding. Things in SmartHome can be either physical or abstract, but the abstractions tend to be compositional abstractions for physical things.

Technology Architecture

EATS Infrastructure

EATS operates as an application operating system designed for distributed operation. It is technology agnostic at both the hardware and operating system level. Instead it is based on an operating environment specification as implemented by Eclipse as an OSGi processing kernel. By design it can be implemented across a mixed environment of hardware and software operating environments and provide gateway access to other environments where it has no native physical componentry. Variations of the EATS design model have been implemented on, or interfaced to: MSDos, OS/2, Windows in various forms, and IBM S/360/370/390 series mainframes. The current Eclipse-based implementation is targeted for operation as cloud, smartphone, desktop, notebook and/or RasPi instance footprints.

The abstract model and implementation for the baseline EATSv5 has the following meta model management relationships:

The Real World as a Modeled Space

Diagrams and framing for some of this discussion is taken from Dynamic Systems for Everyone: Understanding How Our World Works. However, the larger framing requires a wider and deeper understanding of concepts of systems.

The Real World, as defined within our architecture definition, is a generally accepted scheme of operations which we all[8] generally accept as what we call reality. Reality is explained by the laws of “the natural order” as we know it, including, but not limited to, physics and chemistry, and a general acceptance of cosmology, anthropology, and the history of the evolution of the planets and the solar system in which we find ourselves. Reality exists as a forward flow through an event space in 9 distinct “regions” as defined by two significant attributes: time and causal intention.

Time is the mechanism that powers the analysis of dynamics within models of the real world. It drives physics, chemical reactions, biological processes and social interactions. It also drives human perceptions of reality and aspirations about the future and the meaning of life. Philosophy and belief systems are how we integrate our concepts of reality between natural, coincidental and intentional. For purposes of these models our intention is to be able to provide traceability to influences based on beliefs expressed as core principles. Time is generally understood and modeled in terms of past, present and future.

Known Past

Understood Present

Confident Future

Natural

Past events and circumstances which can be attributed to natural processes in conformance with the scientific laws and principles of the natural sciences (e.g., physics, chemistry, biology).

That part of the real world that comes from the natural progression of the combined natural, coincidental and intentional activities and events of the past.

That perception of the real world that will in fact happen comes from the natural progression of the combined natural, coincidental and intentional decisions made in the present.

Coincidental

Past real events that can’t be attributed to a specific cause that was natural or intentional.

Things happen.

Unknowable consequences.

Intentional

Past real events, conditions and situations that we brought about by intentional systems with a defined purpose.

New decisions regarding starting of new or stopping or changing of current intentional activities.

Conscientious planning (direction setting), issue resolution (navigation), and maintenance of existing systems.

The purpose of modeling is to better understand how to achieve a natural, confident future with minimal intentional management effort and maximal beneficial coincidental effects. Tools include optimized system flows through recognition of balancing and positive reinforcing loops, and holistic understanding of systems in their context.

Logically derived causal intention is how we explain purpose and derive meaning and significance to aspects of reality. Home automation and issues around it relate to how we use automation in an intentional form related to our homes and personal lives. Cyber Physical Systems (CPS) relate to how we use automation in an intentional form in all matters related to our physical lives in both personal and interpersonal forms. It is the scheme by which we teach our appliances to act in concert as integrated systems, and how they perform dynamic operations and activities according to scripted intentions which we set forth.

EATS Modeled Space

The EATS Modeled Space framework provides the foundation for systems modeling in EATS. In the application of systems modeling as supported by EATS, the basis is a mathematical schema which defines a geometry[9] for model integration across disciplines. The EATS schema for the Modeled Space is itself composed of an integrated framework of orthogonal frameworks covering distinct concerns. Each of the frameworks defines a system addressing issues relative to a specific set of concerns, and EATS provides a focused system of systems (SoS) as an integration manager. Rather than a domain oriented SoS administration tool, EATS is designed as a general systems architectural management tool. The design is derived through the integration of a number of engineering standards. Understanding the EATS approach to home automation is best understood through the lens of the Object Management Group Meta-Object Facility.

EATS Run Mode

EATS employs a run mode control variable on messages to distinguish between “real world” and “non-real world” information, activity and events.

Run Mode was originally developed as a scheme to separate test code from production code for purposes of version selection on processing modules and databases and as a result is defined as an exposed, critical key component used in EATS message dispatching algorithms. This allows similar processes to occur in different contexts with different state conditions and different outcomes being persisted.

Content in a database does not have a specific “mode” attached, however the database as a whole is considered to have a mode, not the individual records. If, or when, mode defines a domain, the database would define elements owned by the domain. In the original scheme, domain databases act as filters and extensions to the base “production” domain. In addition, domains can stack in a hierarchical form.

Eclipse SmartHome

Eclipse SmartHome is not an end user product, but a framework to enable the building of end user solutions. The “product” being implemented, openHAB, is based on this framework in combination with other elements (e.g., a web server) to create a functional solution.

The Eclipse SmartHome technical documentation is split into the following sections:

Background
Why Eclipse SmartHome?

Since the emergence of broadband internet connections, smartphones and tablets the smart home market shows a remarkable upsurge. This has led to a very fragmented market, which makes it difficult for customers to “bet on the right horse”. In fact, there is not one system, protocol or standard that could possibly fulfill all potential requirements. There is hence a need for platforms that allow the integration of different systems, protocols or standards and that provide a uniform way of user interaction and higher level services.

How does Eclipse SmartHome help?

The goals of the Eclipse SmartHome project can be summarized as:

The stack is meant to be usable on any kind of system that can run an OSGi stack - be it a multi-core server, a residential gateway or a Raspberry Pi.

The project focuses on services and APIs for the following topics:

  1. Data Handling: This includes a basic but extensible type system for smart home data and commands that provides a common ground for an abstracted data and device access as well as event mechanisms to send this information around. It is the most important topic for integrating with other systems, which is done through so called bindings, which are a special type of extension.
  2. Rule Engines: A flexible rule engine that allows changing rules during runtime and which defines extension types that allow breaking down rules into smaller pieces like triggers, actions, logic modules and templates.
  3. Declarative User Interfaces: A framework with extensions for describing user interface content in a declarative way. This includes widgets, icons, charts etc.
  4. Persistence Management: Infrastructure that allows automatic data processing based on a simple and unified configuration. Persistence services are pluggable extensions, which can be anything from a log writer to an IoT cloud service.

Besides the runtime framework and implementation, the Eclipse SmartHome projects also provides different kinds of tools and samples:

Concepts

Categories

Categories in Eclipse SmartHome are used to provide meta information about things channels, etc. UIs can use this information to render specific icons or provide a search functionality to for example filter all things for a certain category (e.g., heating things, alarm things, presence things). Things can belong to multiple categories.

Differences between categories

We seperate the categories into functional and visual.

Thing Categories

The thing type definition allows to specify a category. User interfaces can parse this category to get an idea how to render this thing. A binding can classify each thing into one of the existing categories. The list of all predefined categories can be found in our categories overview:

Category

Icon

Description

Battery

Batteries, Energy Storages

Blinds

Roller shutters, window blinds, etc.

Camera

camera.png

All kinds of cameras

Car

Smart Cars

CleaningRobot

Vacuum robots, mopping robots, etc.

Door

door.png

Door

FrontDoor

frontdoor.png

Front Door

GarageDoor

garagedoor.png

Garage Door

HVAC

Air condition devices, Fans

Inverter

Power inverter, such as solar inverters etc.

LawnMower

lawnmower.png

Lawn mowing robots, etc.

Lightbulb

lightbulb.png

Devices that illuminate something, such as bulbs, etc.

Lock

lock.png

Devices whose primary purpose is locking something

MotionDetector

Motion sensors/detectors

NetworkAppliance

Bridges/Gateway need to access other devices like used by Philips Hue for example, Routers, Switches

PowerOutlet

poweroutlet.png

Small devices to be plugged into a power socket in a wall which stick there

Projector

projector.png

Devices that project a picture somewhere

RadiatorControl

Controls on radiators used to heat up rooms

Receiver

receiver.png

Audio/Video receivers, i.e. radio receivers, satellite or cable receivers, recorders, etc.

RemoteControl

Any portable or hand-held device that controls the status of something, e.g. remote control, keyfob etc.

Screen

screen.png

Devices that are able to show a picture

Sensor

Device used to measure something

Siren

siren.png

Siren used by Alarm systems

SmokeDetector

Smoke detectors

Speaker

Devices that are able to play sounds

Valve

Valves used to control water or gas. e.g. a flow stop valve.

WallSwitch

wallswitch.png

Any device attached to the wall that controls the status of something, e.g. a light switch, dimmer

WebService

Account with credentials for a website

Window

window.png

Window

WhiteGood

whitegood.png

Devices that look like Washingmachines, Dishwashers, Dryers, Fridges, Ovens, etc.

Channel Categories

The channel type definition allows to specify a category. A binding should classify each channel into one of the existing categories or leave the category blank, if there is no good match. There are different types of categories for channels, which are listed below.

Channel Group Categories

Channel groups can be seen as a kind of sub-device as they combine certain (physical) abilities of a thing into one. For such group channels one can set a category from the thing category list.

Widgets

Category

Icon

Description

Colorpicker

colorpicker

Number

number

Rollershutter

rollershutter

Slider

slider

Switch

switch

Text

text

Group

group

Weather

Category

Icon

Description

Sun

sun

Moon

moon

Clouds

clouds

Sun_Clouds

sun_clouds

Rain

rain

Snow

snow

Wind

wind

Humidity

humidity

Temperature

temperature

Properties

Category

Icon

Description

BatteryLevel

LowBattery

CarbonDioxide

Energy

Gas

Oil

Water

Light

ColorLight

Temperature

Smoke

SoundVolume

Pressure

Fire

Motion

QualityOfService

Moisture

Noise

Flow

Price

Time

Control

Category

Icon

Description

Heating

MediaControl

MoveControl

Zoom

Purpose

Category

Icon

Description

Alarm

Presence

Vacation

Party

Features

IT-based Systems

Information Technology Information Library (ITIL)

See: The Visible OPS Handbook.

What is needed here is a DevOps system on a RasPi that is fully functional for long term management as a utility process by standards based and trained technicians.

The ITIL library is a digital asset, the first version of which exists as a Google Drive. The book defines the mapping to the MGP process:

ITIL Continual Improvement

ITIL process, see yellow book.

File inventory is first step in metrics needed to go into next phase of EATSv5 development. It is also the first step of MBF in a hard measured way. (8/7/2018)

Home Security

Physical Security

Alarm Systems
Monitoring Systems
Access Management System

Cyber Security

Cyber security is an issue that has been largely ignored, with the exception of discussions about the need for passwords and security on residential wireless networks, similar to the initial ignorance that applied when commercial LANs and networks were originally rolled out.

Energy Plan

The energy plan for the property is to take the property “off-grid” for electrical demand and to serve as a net energy supplier to the local community grid. Gas will continue to be acquired from local utility resources (PG&E). Monitoring of new gas smart meters will allow whole house monitoring of use, and eventually leak detection with alerts based on circumstances (e.g., no one home, no functional reason for “normal” use).

Solar Generation and Storage

Replace the need for a generator with the solar panels, batteries provide both storage and power buffer. Some fraction of the house circuits would be connected to the battery system using the battery as a partial house UPS for selected appliances.

City of Berkeley

Office of Energy & Sustainable Development (OESD)

https://news.energysage.com/how-much-does-the-average-solar-panel-installation-cost-in-the-u-s/


Water Management

EPA.gov WaterSense Homes

See home management directory on G-Drive for downloaded PDF documents

Current Systems

New System

Hydrawise, by Hunter, provides a self contained, water management home automation facility which can independently service the automation needs for garden operations. It also provides an open API for an OpenHab automation solution to be able to monitor system operations, minimally via periodic inquiry. Future OpenHab automation solutions will be able to independently order water operation actions on behalf of higher level management algorithms as a supplement, or replacement, to smart phone based software as provided.

EBMUD Rebates

EPA Irrigation Controller Specifications

Water / Weather Sensor Options

Installing Clik sensors allows a controller to sense rapidly changing weather and react to individual conditions like rain, high wind, or freezing temperatures.

Ideally, a minimal number of units should be able to be combined into a local environmental conditions (weather) monitoring station. Daily temperature, humidity, etc. which keeps a log and factors into garden management. Data can then also be correlated to info from the solar panels for weather condition correlation to solar energy harvest (e.g., knowledge of rainy days vs sunny days) for looking at solar collection data, use of battery system, etc.

Rain

Rain-Clik

Used to determine actual rain and freeze conditions on site.

Freeze

included in Rain-Clik

Wind

Wind-Clik

Flow

Flow-Clik

Soil

Soil-Clik

Reference Framework

The two diagrams below (we are looking at a WI-FI system) show the reference framework for the Hunter technology. Minimally, a flow meter on the main line into the valve structure, when correlated to which valve is in operation, can provide detailed flow data about each area; and allows the garden water usage to be independently identified as a portion of the total house usage -- which is defined by the water bill. This hypothetically eliminates the primary need for flow measurement sensors for initial installation.

Hunter Residential System Overview

Hunter WI_FI System Overview

Development
Community

Configuration

Equipment Placement

Centralized Technology
Wink Hub 2

Wink Hub 2

Our current Editors' Choice for home automation hubs, the Wink Hub 2works with devices that use Z-Wave, Zigbee, Lutron Clear Connect, Kidde, Bluetooth, and Wi-Fi. It is also for the future. That includes just about everything in the smart home spectrum, from Philips Hue lighting and the Netgear Arlo camera, to Google Home. It's the most reliable, widely supported hub we've tested.

Place

Function

Product

Compare

Count

Price

Front

Notification

Signage

Saftey Sign

~3

~$50.00

Equ

Home Automation Hub

Wink Hub 2

Amazon

1

99.00

Control4 EA-5 Home Controller

Music Lovers

Office

Control Panel[10]

Wink Relay

1

99.96

Front Door

Keyless Deadbolt

Schlage Deadbolt

(KwickSet, Yale?)

Wink

1

199.00

Cameras

Eg Arlo package

Arlo

6[11]

1099.00

Water Main Shut-off

Dome Water Valve shut off

Wink

1

99.00

Garage Door Control

GoControl Smart Garage Door Controller[12]

Wink

1

99.00

Smoke/CO Alarms

Kidde / Wink

Wink

4[13]

50.00

Door/Window Sensor

Wink

29.00

Siren Chime

Wink

1

39.00

Great Room, Dining Room, Downstairs Guest Room

Indoor Motion Sensor[14]

Wink

3

39.00

Heating Automation

Honeywell Thermostat

Wink

1

99.00

Equ

Lutron lighting and electrical scene management[15]

Lutron - Caseta Wireless Smart Bridge

Best Buy

1

79.99

Inventory Management

Network Configuration

Mesh Backbone

Mesh Plan Concept

ID

Location

Device

IP

W1

W2

USB

Notes

e1

Office

Eero

192.168.7.1

c1

Hub1

Gateway

e2

Garage

Eero

192.168.7.43

Hub2

e3

Studio

Eero

192.168.7.42

HUb3

b1

Living Room

Beacon

192.168.7.57

n/a

n/a

n/a

b2

Dining Room

Beacon

192.168.7.59

n/a

n/a

n/a

b3

Family Room

Beacon

192.168.7.58

n/a

n/a

n/a

TCP/IP Network Hosts

ID

Location

Device

IP

Host

Type

Notes

RTR

Office

Router

10.0.0.1

Comcast

Wire

Comcast Internet Gateway

DVR

Garage

DW DVR

192.168.7.54

Hub2

Wire

DG CCTV System

PTR

Office

EPSONWF7520

192.168.7.26

Hub1

2.4 GHz

Epson Print Server

HP1

Office

JVS201801

192.168.7.41

Hub1

Wire

Win10 Master Server

DJ1

Office

JVS201101

192.168.7.38

Hub1

Wire

Win10 Old Master

NB1

Office

ASUSQ553

192.168.7.23

SEC

Safe Room

TuxWiFiW

192.168.7.55

e1

WiFi

BayAlarm Security Access Gateway

DOT

Office

Echo Dot

192.168.7.45

e1

5 GHz

Alexa

x1

Garage

VISTA20

e1

2.4 GHz

Security Alarm System

NAS

Garage

Synology

192.168.7.63

Hub2

Wire

AvenidaNASSynology01

ST

Garage

SmartThings

192.168.7.62

Hub2

Wire

Zigbee Host

HUE

Studio

Hue

192.168.7.

Hub3

Wire

Phillips Hue Exterior Lighting

Original Network Overview showing Office Subnet

Garage and Studio Subnets

 

Device, Thing & Item Configuration

ID

Location

Device

Address

Host

Type

Notes

1

Garage

Vista 20P Control Panel w/enclosure

Z-Wave Controller

1

Garage

Tamper Sw

Z-Wave Zone 008

1

Safe Room

Tuxedo WiFi Keypad

192.168.7.55

Server

IP Gateway for Vista 20P and Z-Wave Automation

Safe Room

Keypad Fire Sw

Z-Wave Zone 095

Safe Room

Keypad Panic Sw

Z-Wave Zone 099

1

Garage

Indoor Siren

Z-Wave Zone 0

1

Garage

Cellnet Radio Communicator[16]

Honeywell Ademco GSMX4G Digital Cellular Communicator

1

Living Room

Motion Detector

067-1842

Z-Wave Zone 015

1

Central Foyer

Motion Detector

001-4996

Z-Wave Zone 017

1

Family Room

Motion Detector

046-2984

Z-Wave Zone 016

1

Front Door

Contact Sw

086-2340

Z-Wave Zone 009

1

Garage Access Door

Contact Sw

070-0292

Z-Wave Zone 010

1

Lower Garden Door

Contact Sw

086-4641

Z-Wave Zone 011

1

Pantry Exit Door

Contact Sw

086-3872

Z-Wave Zone 012

1

Guest Bath Window

Contact Sw

082-8291

Z-Wave Zone 013

1

Laundry Window

Contact Sw

083-4433

Z-Wave Zone 014

1

Office

Smoke Detector

027-9843

Z-Wave Zone 018

1

Family Room

Smoke Detector

029-3453

Z-Wave Zone 019

1

North Door

Garage Door Opener

Z-Wave Zone

1

South Door

Garage Door Opener

Z-Wave Zone

1

Hallie: Panic

Key FOB Switch

017-9388

Z-Wave Zone 052

1

Joe: Panic

Key FOB Switch

036-9569

Z-Wave Zone 060

1

FOB2: Panic

Key FOB Switch

013-7636

Z-Wave Zone 056

1

FOB4: Panic

Key FOB Switch

074-8582

Z-Wave Zone 064

Hallie: Away

Key FOB Switch

Z-Wave Zone 049

Joe: Away

Key FOB Switch

Z-Wave Zone 057

FOB2: Away

Key FOB Switch

Z-Wave Zone 053

FOB4: Away

Key FOB Switch

Z-Wave Zone 061

Hallie: Disarm

Key FOB Switch

Z-Wave Zone 050

Joe: Disarm

Key FOB Switch

Z-Wave Zone 058

FOB2: Disarm

Key FOB Switch

Z-Wave Zone 054

FOB4: Disarm

Key FOB Switch

Z-Wave Zone 062

Hallie: Stay

Key FOB Switch

Z-Wave Zone 051

Joe: Stay

Key FOB Switch

Z-Wave Zone 059

FOB2: Stay

Key FOB Switch

Z-Wave Zone 055

FOB4: Stay

Key FOB Switch

Z-Wave Zone 063

1

Garage

DG VMax IP 4 Channel NVR

1

Garage

Minuteman UPS 1500VA / 1200W Rackmount

1

Entryway

Dome Camera

1

North Porch

Dome Camera

1

South Porch

Dome Camera

1

Joe’s Location[17]

Joe’s Pixel Phone

Device network connection via tcp/ip (?)

1

Hallie’s Location

Hallie’s iPhone

Device network connection via tcp/ip

1


Fire Systems Configuration

Fire Alarm systems are based on Kidde Battery Operated Wireless Interconnect Combination Carbon Monoxide, Fire & Smoke Alarm (KN-COSM-B-RF) technologies.

https://www.instructables.com/id/Home-IOT-Security-System/

https://www.hackster.io/Jade7272/complete-raspberry-pi-nova-wireless-home-monitoring-329e4d

Description

The Kidde KN-COSM-B-RF Combination Smoke & Carbon Monoxide Alarm provides two important safety devices in a single unit. This alarm includes a voice warning system that announces “Fire”, “Warning, Carbon Monoxide”, “Low Battery”, and “Caution, Carbon Monoxide Previously Detected.” The voice alarm eliminates any confusion and clearly warns you and your family of a smoke or carbon monoxide danger, or if your battery is in need of replacement.

This alarm can be installed as a single unit, or in a multiple station configuration that will enable wireless communication with the other alarms in the case of a smoke or CO event. Installation of the interconnect system is quick and easy, and avoids the hassle of extensive wiring and labor. Per NFPA guidelines, the interconnected system should not exceed the limit of 12 smoke alarms, or 24 total devices.

Compatible Wireless Interconnect units

Strategy is to follow with a Lync bridge, rather than needing to go to the circuit board level. But this should also work and connect via a WiFi API

RemoteLync Wireless Bridge SBR101

  • Turns Every Alarm into a First Responder
  • Kidde P4010 Wire-Free Alarms Compatible
  • Kidde RemoteLync Camera Compatible
  • Wireless SoftAP
  • Small 3.5” size ideal for shelf or table top installation

WIRE-FREE INTERCONNECTED AC HARDWIRED COMBO SMOKE AND CARBON MONOXIDE ALARM

P4010ACSCO-W

3

82.97

        

WIRE-FREE INTERCONNECTED BATTERY POWERED COMBO SMOKE & CARBON MONOXIDE ALARM

P4010DCSCO-W

2

72.00

CCTV Configuration

ID

Location

Device

IP

Host

Type

Notes

dvr1

Garage

DVR

192.168.7.54

h1a

Wire

DG VMAX IP+ 4CH 2TB W/POE

dvr1c3

Entryway

Dome Camera

10.0.0.1

dynlink

POE

DG 2.1 MP 2.8-12MM

dvr1c1

North Porch

Dome Camera

10.0.0.2

dynlink

POE

DG 2.1 MP 2.8-12MM

dvr1c2

South Porch

Dome Camera

10.0.0.3

dynlink

POE

DG 2.1 MP 2.8-12MM

dvr1c4

n/a

dvr1

ups2

Garage

UPS

Minuteman UPS 1500VA / 1200W Rackmount

baynet

Web

Acct Mgmt Sys

System is accessed external to the eero network different than it is access internally. sInternally, it is referenced by other devices in the Eero network using it’s Eero local IP address. It is accessed via the internet with logon through vansteen.dynlink.net. Once connected, the available ports and services are as identified in the screenshot below.

Channel  1 - Camera web page:          http://{NVR ip address}:18001

Channel  2 - Camera web page:          http://{NVR ip address}:18002

Channel  3 - Camera web page:          http://{NVR ip address}:18003

Channel  4 - Camera web page:          http://{NVR ip address}:18004

NVR Server Access (Code required)

Local

192.168.7.54

Remote

vansteen.dynlink.net

Admin Login: http://192.168.7.54/cgi-bin/login.cgi

System Architecture:

Vista 20P Configuration

The Vista 20P

TuxWiFiW Configuration

TuxWiFiW is installed as a self-contained, touch screen, GUI control panel-based housing with both RJ45 and WiFi access ports to a built-in web server application. It also runs a 4-wire physical interface to the Ademco Vista20 panel which is the hardwired assembly for the security alarm system. Tamper detection circuits, devices and logic provide tamper resistance and allows the TuxWiFi and the Vista20 panel to serve as a functionally unitized alarm and home management system.

Scenes (scripts) programmed into the

Security Configuration

The security system for the property is based on standardized, commercial home automation devices, customized software controls, and interface and interaction with a local security service. For purposes of the example / prototype[18] plan, the following services and equipment models are incorporated:

IP Network Configuration

Equipment
Integrations
Services

Communications: Digital Cellular Alarm

Service Fee $59/mo

GeoContext

Location-based Notifications

Google Location

Google Personal Info & Privacy
Google Location Sharing

Location Sharing lets you share your real-time location from your devices (using Location History) with people you choose.

Where in the world has Joe’s phone been?

See WebChoices Ad Personalization for examples of Google location history of my Android phone being tracked since 2014. This is a double-edged sword. Personal security program intelligent automation is strongly enhanced when it includes awareness of owner geographical presence. If your device is right outside your house and it wants to open a door, that is a different contextual significance than if it is a thousand miles away.

Test case:

Share my location, for the next 59 minutes[19],  via writing to a text file Joe Location.txt on the root of my G-Drive.

This seems backwards for what I want to do. I want to track my devices, including my car, which might define where I am; not necessarily track my phone, in my car, by sending its location to my car. It would make more sense, for me, to send my car’s location to my phone, or a logger.

However, for a different purpose, this seems to be working toward a different end, where a common set of locations and points of concern can be shared with a car’s navigation system through Google Maps. Google locations seems useful as a scheme for shared content. It has problems when trying to be used as a security and privacy device due to its purpose being to try to associate location event awareness with nearby shared public locations. It is essentially a geographic information sharing application

GPS Logger for Android

General Capabilities at Scale

Vector Path Tracking for Neighborhood Walk

Tracks Elevation/Time

Erratic Granularity at Room-to-Room Motion Determination

Tracks Moving/Not Moving

Driving vs Walking

Elevation for Grizzly Peak Trail

Activity Granularity At Home

Granularity Driving and Trail Walking

Color = Speed

July 4th Map shows range of altitude, travel, reverse direction, etc.

Restaurant Breakfast

Orinda Dinner

Home Activity

Dog / Photo Walk

Current Location

Start / Stop Logging

Left

Right

Satellites

Accuracy

Elevation

Bearing

Duration

Speed

Distance Travelled

Points Logged

Current File Name

Geosetter

The program GeoSetter is a freeware program for Windows (requires Internet Explorer 10 or higher) for storing and displaying geo-coordinates / IPTC data in image files (eg recordings of digital cameras).

Maps

Alameda County provides GIS support via data.acgov.org for parcel maps. The critical neighborhood around 148 Avenida is on the northern edge of Alameda County and shown in the zoomed county image below. The diagonal straight going from the near top of the parcels, to the left and downward, is Marin Avenue as it climbs the hill from the circle. The green on the right defines Tilten Park, and the dark green at the bottom defines University of California property.

The image below is zoomed for the immediate 148 Avenida neighborhood in front and behind the house. The house faces left, over the city on the left, toward San Francisco and the Golden Gate Bridge. Behind the house is the park on the right, including indications of established trails.

Assessor map, topographical map and Google Maps terrain image of the area surrounding the parcel.

Avenida Drive in the above image cuts through the L in GRIZZLY to the left of the Water Tanks. The Y sits on the 1400 Grizzly Peak property.

USGS Viewer

Property Boundary from Assessor Map, Page 1


Vicinity Map

Assessor’s Map

Original Plot Architecture

Showing original configuration of plots in the natural swale between 2 spines of the hill.

House is well settled,  on rock with minimal pier requirements. Wall foundation, with partial slab in East (rear) of house.

Site Map

Matches to original plot architecture. See site-map for absorption of 144 Avenida Dr.

Functional Area Map

Security Concept

Security scheme is focused for frontal approached from Avenida Drive. Detection is via motion sensors in three zoned spaces at front of property.

Security Plan V1.0

Security plan is for CCTV reconnaissance and use of architectural decorative lighting to deter intrusion attempts; and home sensors to detect actual intrusion.

NextDoor

Glendale-TerraceView Neighborhood

Extends North along Grizzly Peak Blvd to Tilden Path

Membership Map by Parcel

Geographic Satellite Image Overlay showing primary perimeter and entry/exit roads

Immediate Neighbors

Reference

Contacts

Area Concepts

Figure 1 below provides an overview map for the unified property. It was created as a 1/8" plot plan of the existing space for a recent garden remodel. It is the basis for the security concept and security plan maps shown above.

Figure 1. Unified Property Plan

Figure 2 below provides a detailed zone map for the unified property as developed for the garden project. Security zones defined in the security concept maps referenced above include three basic areas:

Figure 2. Property “Area” Map

The SmartHome Site Map defines the home interior by rooms and levels described within the property site plan. Interior and Exterior maps are organized under one property map which can be configured within local and regional zoning and geophysical maps.

Interior Areas

Exterior Areas

Area 0 - Upper Patio Garden (Pots)

This is outdoor dining and cooking area.

Area 1 - Spa & Garden 1

Primary function and use of this area is the spa.

Area 2 - Garden 2 / East Dry Creek

This is a major focal area when viewing the garden from the MBR and LR, also enjoyment from lower patio space. Reclaimed from a Dogwood thicket to the south of the dry creek.

Area 3 - Garden 3

This is a major focal area when enjoying the garden from the upper and lower patios.

Area 4 - Lower (West) Garden 4

This is a major focal area for enjoyment of the garden from the LR. Lighting on the Camellias at Christmas provides a festive effect. The higher elements also provide a "green barrier" for privacy between the street and the garden.

Area 5 - Lower Patio Garden 5

This area is a focal space from the LR and MBR. It includes the lower patio and DG space, and is "people space" for the enjoyment of the whole extended garden area.

Area 6 - North-east Perimeter Garden 6

Primarily viewed when enjoying upper patio, and as visual from MBR and MBR bath.

Area 7 - South Retaining Wall Garden 7

Walkway behind redwoods is seldom use.

Area 8 - Greenhouse Garden 8

Storage area and old greenhouse space.

Area 9 - Home Entry

Primary Home and garage entry area.

Area 10 - Driveway Extension

Planting beds along front extended driveway. Needs convenience lighting for better utilization.

Area 11 - “146 Avenida”

The ivy forest

Room Information Model

Property management for [148 Avenida] is based on implementation of open source home automation, built over COTS component architectures.

Eclipse SmartHome [openHAB] Base Model

openHAB is a runnable instance of  an open architecture for home automation implemented in Java for implementation as an Eclipse runtime. The Eclipse SmartHome system provides the core application in the package. openHAB is a “wrapper” and “add-on” or “extension” to Eclipse SmartHome. It “wraps” or “encapsulates” the Eclipse SmartHome base system and its capabilities with a specific web server (Jetty, which also happens to be based on standardized Eclipse kernel capabilities). I also allows for configurations where home automation is integrated, but separate from EATS through various degrees of integration to implementations where openHAB functionality and EATS functionality can be tightly integrated as elements of the same containerized, Eclipse runtime for cloud, or standalone server, or cluster server set installation. This provides the basis for design opportunities to minimize attack surfaces when addressing architectural issues such as privacy and security concerns. It also provides a scheme that affords continued leverage of Eclipse ecosystem develops and leverages them in the property and energy management modeling and decision support domains.

[Task for containerization granularity of management as a leverage point: Automated assembly of Java byte code strings into jar files for execution on target machines. This is almost the exact opposite of what Leon did with Rene, or what Rene did, at Delta Dental, and all of the old systems programmers did when reverse engineering and patching code in CICS Systems.

Manipulation of bytecode is a double edged sword. Manipulation from the outside is invasive. Manipulation from inside is generative. Generating bytecode according to architectural patterns can be accomplished using OCL. DNA is an OCL that defines and describes the core model for [AF openHAB Things] as a SET JOIN and a SET INTERSECTION between two closely associated sets. In the operational space of the set, the two are considered equal, as are all members of the plane defined by the set.

In today’s [2018] world, the Ultimate Modeler’s Workbench is a Virtual Reality Game Developer’s Workstation Observation Deck [AF Viewpoint] Simulation Modeler. The modeler’s conceptual formula becomes context which enables holographic analysis, effectively an abstract fMRI. Standard practice can be modeled. We have a combined Berkeley City / PG&E / Electric / Gas / Street Lighting project that is being subjected to analysis by an evolving body of evidence.]

EATS Model

This defines EATSv5, configured to integrate with SmartHome, and related[20] software systems.

In EATS:

QGIS Contextual Model

QGIS is a premier open GIS software system for geospatial model development and visualization. The QGIS Contextual Model defines the property plan in the GIS context of the surrounding environment.

FreeCAD Model

FreeCAD is a parametric modeling system which is capable of producing documentation from architectural drawings to 3D component visualizations. For initial installation, FreeCAD is implemented as a Windows desktop managed program.  Hypothetically, is could be implemented as a utility on the home network and accessed from any “terminal.”

FreeCAD


Copyright © 2018, Joe VaAll Rights Ren Steen

served


[1] Call Berkeley PD, ask for Community Relations. Ask to talk to person regarding CCTV registration.

[2] For example, number of floors in a single building is limited to 5, rather than 10 or 30 in the professional series products.

[3] Forecasts into the future looking to achieve an infinite time horizon all should fail before achieving a state of infinite CPU spin. Rather than “infinite” goal seeking, infinity horizons are used to perform indefinite timed horizons. They determine, according to the model, how long it will take to crash, and why. Achieving equilibrium without crashing is cause to terminate via crash with the cause defined as “insufficiently detailed model.” A “no-op” model crashes on start-up with that reasoning. A “no op” model is any model without change effected as a function of time.

[4] JodaTime.org advocates migration to JSR-310.

[5] Versions of the EATS architecture were (still are?) implemented on Windows clusters as service-routine managed, application  processor,s as a headless distributed server network for banking applications

[6] From a home automation basis, this can include evolution to include genetic learning of automated vacuum cleaners to sweep for seasonal Redwood Tree seed droppings on the front deck.

[7] Self is a matter of cyclic, recursive iterations of development; not that the code is developing itself. This is an architecturally significant distinction from an artificial intelligence perspective.

[8] All and none are examples of “inclusion rules” where  we accept that there may be some outlier exclusions, but for the sake of modeling and managing an environment that is “reasonably accurate within tolerances” we assume closure over the population of concern.

[9] the branch of mathematics concerned with questions of shape, size, relationship of position, the properties of space, and higher dimensional analogs.

[10] Smart Home Touchscreen Control Panel includes Intercom,

[11] 6 smart (audio/visual) camera, + base (with smart siren) + 7 day rolling, free cloud storage. Integrated motion/sound/camera (Arlo Pro 2). Mounts? Can camera be panned and zoomed?

[12] Controller to automate existing garage door openers. Activate or monitor existing doors.

[13] Min count per code.

[14] Use your Wink Motion Sensor with our free, in-app Lookout service to get alerts about motion in your home while you're away. Conveniently dial 911 or a contact if there's suspicious activity.Low profile and small footprint, Mount on walls or ceiling, or rest on tables. Recommended for indoor use. Wireless, 3 year Lithium CR123A battery, 110 degree motion detection, ADJUSTABLE SENSITIVITY: Very low, low, medium, high, very high. PROTOCOL: Z-Wave Plus Certified COMPATIBILITY: Wink Hub/Wink Hub 2, Wink Lookout Service

[15] IOT interfaces: Amazon Alexa, Apple HomeKit, Google Assistant, Harmony, Honeywell, IFTTT, Logitech, Lutron, Nest, SmartThings, Vera, Wink

[16] Variant of Total Access Communications System (TACS). “TACS is an analogue FM system operating in the 890-915 MHz / 935-960 MHz band; the band in which GSM was introduced later. The radio channel bandwidth was 25 kHz, offering 1000 duplex channels in the 900 MHz band. Because TACS used a reduced radio channel bandwidth compared to AMPS, which has a bandwidth of 30 kHz, the data signalling rate had to be reduced.”

[17] Online presence of the phone is one factor in authentication of the person. A second factor is sending a txt to the phone with a code which must be entered or the presence or use of a secondary mechanism (garage door opener, FOB, etc.) in combination with the presence of the phone. System needs an option to connect (or disconnect) an active link to the person assumed to be in possession of the phone if the phone is given up from custody, lost, stolen, etc.

[18] Example/Prototype/Model == 148 Avenida

[19] I soon became aware that I had a history of location data in fragments dating back to 2014, including a nice summary of my recent trip to France, based on a fuzzy version of data associated with my Google Photo uploads

[20] Related systems can include things like Kumu or TheBrain for concept mapping and visualization. Google Sheets, JSON data sets, etc. Part of the issue is map navigation and recognition of shared resources as physically tracked, common resources. And then, content confidentiality and sharing arrangements.

[21] Other native versions available for Linux, etc.