openhab grafana and influxdb

63
IOT&HOME AUTOMATION WARSAW PROJECT DATE CLIENT 2017.07.24 OPENHAB INFLUX UND GRAFANA BACNET DATASOURCE

Upload: code-house

Post on 21-Jan-2018

554 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Openhab Grafana and Influxdb

IOT&HOME AUTOMATION WARSAW

PROJECT

DATE CLIENT2017.07.24

OPENHAB INFLUX UND GRAFANABACNET DATASOURCE

Page 2: Openhab Grafana and Influxdb

DISCLAIMERTECH STUFF IS SUBJECT OF CHANGE OVER TIME AND MIGHT NOT BE 100% RELEVANT NOW. CHECK BEFORE USE. VIEWS ARE MY OWN.

Page 3: Openhab Grafana and Influxdb

GARTNER HYPE CYCLE 2016

Page 4: Openhab Grafana and Influxdb

HOW ABOUT SMART HOMES?

Page 5: Openhab Grafana and Influxdb

“Adoption of newer connected home solutions is still at the early adopter phase,

according to a recent survey by Gartner, Inc. The survey, of nearly 10,000 online

respondents in the U.S., the U.K. and Australia during the second half of 2016,

found that only about 10 percent of households currently have connected home

solutions.”–Gartner

source http://www.gartner.com/newsroom/id/3629117

Page 6: Openhab Grafana and Influxdb

WHERE WORLD IS GOING

Page 7: Openhab Grafana and Influxdb

Global Google Trends 2011-2017

source https://trends.google.com/trends/explore?date=2011-06-23%202017-07-23&q=smart%20home

Page 8: Openhab Grafana and Influxdb

WHERE POLAND IS GOING

Page 9: Openhab Grafana and Influxdb

Local Google Trends 2011-2017

source https://trends.google.com/trends/explore?date=2011-06-23%202017-07-23&geo=PL&q=inteligentny

%20dom

Page 10: Openhab Grafana and Influxdb

SMART HOME, IOT AND HOME AUTOMATIONIS LIKE TEENAGERS SEX, (GLOBALLY) EVERYONE WANTS IT, EVERYONE TALKS ABOUT IT, VERY LITTLE ACTUALLY DO IT

Page 11: Openhab Grafana and Influxdb

SO LETS TALK ABOUT IT

Page 12: Openhab Grafana and Influxdb

FOUNDED IN 2010source openhab.org

story https://www.slideshare.net/egutierrezru/javamagazine20131112-dl

Page 13: Openhab Grafana and Influxdb

FOUNDED IN 2013

source eclipse.org

Page 14: Openhab Grafana and Influxdb
Page 15: Openhab Grafana and Influxdb

HOME AUTOMATION BUS

Page 16: Openhab Grafana and Influxdb

source https://docs.oracle.com/cd/E17904_01/doc.1111/e15020/introduction.htm#OSBCA122

Enteprise Service Bus

Page 17: Openhab Grafana and Influxdb

OPENHAB 1.X ARCHITECTURE IS RELEVANT AND 2.X USES SAME CONCEPTWHAT IS DIFFERENT THEN?

Page 18: Openhab Grafana and Influxdb

BINDING INTERNALS

Page 19: Openhab Grafana and Influxdb

NEW THING CONCEPT

Page 20: Openhab Grafana and Influxdb

What is present with OH 1.x

Item Registry

Binding Provider

Page 21: Openhab Grafana and Influxdb

Remarks

One thing (device) may have multiple channels

Things have a state

Item is linked to an channel

One bridge wires one or more things

Bridge is optional

Page 22: Openhab Grafana and Influxdb

Thing state diagram

Page 23: Openhab Grafana and Influxdb

Main improvements in 2.xUser perspective

Lower entry level

Discovery of things

Developer perspective

Cleaner separation of concerns

A bit more declarative approach (XML definitions)

(Slightly bigger framework complication)

Page 24: Openhab Grafana and Influxdb

BACNETBUILDING AUTOMATION AND CONTROL NETWORK

Page 25: Openhab Grafana and Influxdb

“BACnet was designed to allow communication of building automation and

control systems for applications such as heating, ventilating, and air-conditioning control (HVAC), lighting control, access

control, and fire detection systems and their associated equipment. The BACnet protocol

provides mechanisms for computerised building automation devices to exchange information, regardless of the particular

building service they perform.”source https://en.wikipedia.org/wiki/BACnet

Page 26: Openhab Grafana and Influxdb

Remarks

Started in 1987

ANSI standard since 1995

ISO standard since 2003

Most popular in HVAC area

OSI layers

Physical

Data link

network

Application

Page 27: Openhab Grafana and Influxdb

Shortcut Map

source BACnet specification

Page 28: Openhab Grafana and Influxdb

BACnet Application Layer

source https://sunilsavanur.wordpress.com/2012/08/12/

Page 29: Openhab Grafana and Influxdb

BACnet object typesAnalog Input/Output/Value

Binary Input/Output/Value

Multi-state Input/Output/Value

Averaging

Command

File

…… 60 standard object types

source http://www.bacnet.org/

Page 30: Openhab Grafana and Influxdb

BACnet services

File Access

Object Access

Read/Write property

Remote device management

Virtual terminal

.. etc

source http://www.bacnet.org/

Page 31: Openhab Grafana and Influxdb

BACnet IP frame(IP header)

source http://www.bacnet.org/

Page 32: Openhab Grafana and Influxdb

BACnet frame(Virtual Network)

source http://www.bacnet.org/

Page 33: Openhab Grafana and Influxdb

BACnet IP frame(Network Protocol)

source http://www.bacnet.org/

Page 34: Openhab Grafana and Influxdb

BACnet APDU typesUnconfirmed PDU

Confirmed PDU

Simple-ACK PDU

Complex-ACK PDU

Segment-ACK PDU

Reject PDU

Error PDU

Abort PDU

source http://www.bacnet.org/

Page 35: Openhab Grafana and Influxdb

DEPLOYMENT

Page 36: Openhab Grafana and Influxdb

THE UNIT

Page 37: Openhab Grafana and Influxdb

Thing

THE UNIT

Page 38: Openhab Grafana and Influxdb

Thing

Bridge THE UNIT

Page 39: Openhab Grafana and Influxdb

Thing

Bridge

extra one wire sensors

THE UNIT

Page 40: Openhab Grafana and Influxdb

Measurements

Page 41: Openhab Grafana and Influxdb

Copy of dashboard data

Preview of copy of this dashboard available online:https://snapshot.raintank.io/dashboard/snapshot/NCCJk3J79xsWtaRXlbI8Kj6u2Wnp3fas?refresh=30s&orgId=2

Page 42: Openhab Grafana and Influxdb

GrafanaData visualisation tool

Supports multiple data sources

InfluxDB

Graphite

Elasticsearch

Can draw a bar, pie charts as well as expose single values

Page 43: Openhab Grafana and Influxdb

InfluxDB

Timeseries database

SQL-a-like query language

Page 44: Openhab Grafana and Influxdb

WHAT I DID

Page 45: Openhab Grafana and Influxdb

I GOOGLED FOR JAVA LIB IN SPRING 2016

C library

Fork of 1st result

Legacy

Page 46: Openhab Grafana and Influxdb
Page 47: Openhab Grafana and Influxdb

I LOOKED AT MVNREPOSITORY.COM

Page 48: Openhab Grafana and Influxdb

NO EXAMPLES NO TESTS NO SUPPORT, POOR DOCUMENTATION

Page 49: Openhab Grafana and Influxdb

WITH PROPER QUERY GOOGLE GOT IT

With some love I made it deployable

Page 50: Openhab Grafana and Influxdb

BUT IT DIDNT WORK

Page 51: Openhab Grafana and Influxdb

BACNET4J IS/WAS THREAD SENSITIVE

Page 52: Openhab Grafana and Influxdb

I BOUGHT BAC SPECIFICATION

Page 53: Openhab Grafana and Influxdb

I BOUGHT BAC SPECIFICATION

Page 54: Openhab Grafana and Influxdb

I WRAPPED BACNET4J LOGIC

Raw bacnet main() used during tests https://gist.github.com/splatch/3216feba4bcad3cfd741644552f93870

Page 55: Openhab Grafana and Influxdb
Page 56: Openhab Grafana and Influxdb

HOW IT WORKS

Page 57: Openhab Grafana and Influxdb

Items (OH 1.x syntax)Number Air_Flow "Temperatura nawiewu [%.1f] °C" <temperature> (Ventilation) { bacnet="device=2251,type=analogInput,id=0,refreshInterval=10000" }

Number Air_Recirculation "Wymiennik [%.1f]%" <fan> (Ventilation) { bacnet="device=2251,type=analogOutput,id=1" }

Number Air_Suply_Fan "Wentylator nawiew. [%.1f]%" <fan> (Ventilation) { bacnet="device=2251,type=analogOutput,id=2,refreshInterval=1000" }

Number Air_Exhaust_Fan "Wentylator wywiew. [%.1f]%" <fan> (Ventilation) { bacnet="device=2251,type=analogOutput,id=3,refreshInterval=1000" }

Page 58: Openhab Grafana and Influxdb

Persistence configurationStrategies {

everyMinute : "0 * * * * ?"

default=everyUpdate, restoreOnStartup

}

Items {

* : strategy = everyUpdate, everyMinute, restoreOnStartup

}

Page 59: Openhab Grafana and Influxdb

Sitemap (basic ui)Frame label=“Rekuperator" { Text item=Air_Flow

Setpoint item=Air_Setpoint step=0.2 minValue=15 maxValue=30

Text item=Air_Recirculation icon="bypass"

Selection item=Air_Season icon="sun" mappings=[ "1.0" = "Lato", "2.0" = "Zima", "3.0" = "Auto"]

Text item=Air_Suply_Fan

Text item=Air_Exhaust_Fan

Selection item=Air_Mode mappings=[ "1.0" = "Tryb 1", "2.0" = "Tryb 2", "3.0" = "Tryb 3", "4.0" = "Program"]

}

Page 60: Openhab Grafana and Influxdb

Basic UI on mobile

Page 61: Openhab Grafana and Influxdb

OH2 discovery result

Page 62: Openhab Grafana and Influxdb

THE END

Page 63: Openhab Grafana and Influxdb

HOW TO FIND METwitter: ldywicki https://community.openhab.org