Vectorize architecture #2 (#4859)

* Vectorize other picture.

* Update path for .svg pictures.
This commit is contained in:
Philipp Wensauer 2018-03-14 08:44:09 +01:00 committed by Fabian Affolter
parent f7b3b06d30
commit 706f8b9ed4
2 changed files with 908 additions and 4 deletions

View File

@ -7,7 +7,7 @@ sidebar: true
comments: false
sharing: true
footer: true
og_image: /images/architecture/ha_architecture.png
og_image: /images/architecture/ha_architecture.svg
---
Before we dive into the Home Assistant architecture, let's get a clear overview of the home automation landscape as a whole. This way, we can show how the different parts of Home Assistant fit into the picture.
@ -19,9 +19,9 @@ For more information about each part in this overview, <a href='/blog/2014/12/26
* Smart Home triggers commands based on previous behavior.
<p class='img'>
<a href='{{site_root}}/images/architecture/home_automation_landscape.png' name='landscape'>
<a href='{{site_root}}/images/architecture/home_automation_landscape.svg' name='landscape'>
<img alt='Home Automation landscape'
src='{{site_root}}/images/architecture/home_automation_landscape.png' />
src='{{site_root}}/images/architecture/home_automation_landscape.svg' />
</a>
Overview of the home automation landscape
</p>
@ -34,7 +34,7 @@ The Home Assistant core is responsible for Home Control. Home Assistant contains
* **Timer**: sends a `time_changed` event every 1 second on the event bus.
<p class='img'>
<a href='/images/architecture/ha_architecture.png' name='architecture'>
<a href='/images/architecture/ha_architecture.svg' name='architecture'>
<img src='/images/architecture/ha_architecture.svg' />
</a>
Overview of the Home Assistant core architecture

View File

@ -0,0 +1,904 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="223.45195mm"
height="150.39879mm"
viewBox="0 0 223.45195 150.39879"
version="1.1"
id="svg8"
inkscape:version="0.92.0 r15299"
sodipodi:docname="home_automation_landscape.svg">
<defs
id="defs2">
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4983"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="TriangleInS"
orient="auto"
refY="0"
refX="0"
id="marker4981"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4979"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.2)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="TriangleInM"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4823"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="TriangleInS"
orient="auto"
refY="0"
refX="0"
id="TriangleInS"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4826"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.2)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="marker4973"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4971"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="marker4969"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4967"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4711"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Torso"
orient="auto"
refY="0"
refX="0"
id="Torso"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g4913"
transform="scale(0.7)"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1">
<path
id="path4899"
d="m -4.7792281,-3.239542 c 2.350374,0.3659393 5.30026732,1.9375477 5.03715532,3.62748546 C -0.00518779,2.0778819 -2.2126741,2.6176539 -4.5630471,2.2517169 -6.9134221,1.8857769 -8.521035,0.75201414 -8.257922,-0.93792336 -7.994809,-2.6278615 -7.1296041,-3.6054813 -4.7792281,-3.239542 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path4901"
d="M 4.4598789,0.08866574 C -2.5564571,-4.378332 5.2248769,-3.9061806 -0.84829578,-8.7197331"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path4903"
d="M 4.9298719,0.05752074 C -1.3872731,1.7494689 1.8027579,5.4782079 -4.9448731,7.5462725"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
inkscape:connector-curvature="0" />
<rect
id="rect4905"
transform="matrix(0.527536,-0.849533,0.887668,0.460484,0,0)"
y="-1.7408575"
x="-10.391706"
height="2.7608147"
width="2.6366582"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" />
<rect
id="rect4907"
transform="matrix(0.671205,-0.741272,0.790802,0.612072,0,0)"
y="-7.9629307"
x="4.9587269"
height="2.8614161"
width="2.7327356"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" />
<path
id="path4909"
transform="matrix(0,-1.109517,1.109517,0,25.96648,19.71619)"
d="m 16.779951,-28.685045 a 0.60731727,0.60731727 0 1 0 -1.214634,0 0.60731727,0.60731727 0 1 0 1.214634,0 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path4911"
transform="matrix(0,-1.109517,1.109517,0,26.8245,16.99126)"
d="m 16.779951,-28.685045 a 0.60731727,0.60731727 0 1 0 -1.214634,0 0.60731727,0.60731727 0 1 0 1.214634,0 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
inkscape:connector-curvature="0" />
</g>
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="marker4954"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4705"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<inkscape:path-effect
effect="powerstroke"
id="path-effect4685"
is_visible="true"
offset_points="0,0.13229166"
sort_points="true"
interpolator_type="CubicBezierJohan"
interpolator_beta="0.2"
start_linecap_type="zerowidth"
linejoin_type="extrp_arc"
miter_limit="4"
end_linecap_type="zerowidth" />
<marker
inkscape:stockid="Arrow2Sstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Sstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4590"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(0.3,0,0,0.3,-0.69,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="marker5272"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5270"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="marker5232"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5230"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4578"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-8"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-5"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-6"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-8"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-84"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-0"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-6-5"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-8-0"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-84-8"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-0-5"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-6-5-8"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-8-0-6"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-4"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-6"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-84-2"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-0-6"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-84-2-4"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-0-6-6"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-8-0"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-5-6"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-1"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-63"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-8-2"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-5-62"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-8-3"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-5-7"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-69"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-1"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0"
refX="0"
id="marker4985-5"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path4983-13"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.4)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.5"
inkscape:cx="672.05655"
inkscape:cy="79.162523"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1536"
inkscape:window-height="809"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-10.588714,-116.71881)"
style="display:inline">
<rect
style="display:inline;fill:#9fc5e8;fill-opacity:1;stroke:#000000;stroke-width:0.677472;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5472-3-1-9"
width="222.7041"
height="41.217026"
x="10.997826"
y="219.45093" />
<rect
style="display:inline;fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.99238181;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5474-3-8"
width="53.971424"
height="24.349827"
x="175.33235"
y="233.58411"
ry="4.6902986" />
<flowRoot
xml:space="preserve"
id="flowRoot4513"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:25px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(0.26458333,0,0,0.26458333,6.9043701,117.4865)"><flowRegion
id="flowRegion4515"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold'"><rect
id="rect4517"
width="25.714285"
height="106.42857"
x="775"
y="41.9524"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold'" /></flowRegion><flowPara
id="flowPara4519" /></flowRoot> <rect
style="display:inline;fill:#9fc5e8;fill-opacity:1;stroke:#000000;stroke-width:0.48170522;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5472-3-8-8"
width="54.339752"
height="21.388721"
x="10.829567"
y="116.95966" />
<rect
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.06500006;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5470"
width="35.01231"
height="34.210499"
x="22.322157"
y="143.95389" />
<rect
style="fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.99238175;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5474-3"
width="53.971424"
height="24.349825"
x="16.183468"
y="233.5192"
ry="4.6902981" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.46228218px;line-height:4.03892612px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.16155702"
x="36.045589"
y="235.3748"
id="text4525-5-9-5"
transform="scale(0.94728752,1.0556457)"><tspan
sodipodi:role="line"
x="36.045589"
y="235.3748"
style="line-height:0.37247187px;stroke-width:0.16155702"
id="tspan5341">Lights</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.85971832;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985)"
d="m 168.96722,166.03337 -0.0146,-1.15536 -0.0178,-26.4352"
id="path4951"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.94406116;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-8)"
d="m 182.86476,141.59973 0.0181,1.12869 0.022,25.82477"
id="path4951-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<rect
style="display:inline;fill:#9fc5e8;fill-opacity:1;stroke:#000000;stroke-width:0.48170522;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5472-3"
width="54.339752"
height="21.388721"
x="179.30098"
y="117.29016" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="214.21021"
y="125.508"
id="text4525-8-4"
transform="scale(0.9650764,1.0361874)"><tspan
sodipodi:role="line"
x="214.21021"
y="125.508"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5413-9">Smart Home</tspan></text>
<rect
style="display:inline;fill:#9fc5e8;fill-opacity:1;stroke:#000000;stroke-width:0.48170522;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5472-3-8"
width="54.339752"
height="21.388721"
x="117.56172"
y="117.22337" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="149.95982"
y="125.70148"
id="text4525-8-4-2"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="149.95982"
y="125.70148"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5413-9-6"
dy="-3.4999983">Home</tspan><tspan
sodipodi:role="line"
x="149.95982"
y="129.48259"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474">Automation</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="39.138622"
y="125.46329"
id="text4525-8-4-2-9"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="39.138622"
y="125.46329"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8">User</tspan></text>
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:1.16749406;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-84-2-4)"
d="m 114.0517,127.63726 -2.04274,0.0152 -46.737832,0.0186"
id="path4951-3-4-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="93.829681"
y="118.77126"
id="text4525-8-4-2-9-4"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="93.829681"
y="118.77126"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8-3">Configuration</tspan></text>
<rect
style="display:inline;fill:#9fc5e8;fill-opacity:1;stroke:#000000;stroke-width:0.48199999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5472-3-1"
width="222.23811"
height="20.90729"
x="10.98922"
y="168.71695" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="126.84965"
y="174.99847"
id="text4525-8-4-2-9-2"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="126.84965"
y="174.99847"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8-4">Home Control</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="44.333305"
y="144.40453"
id="text4525-8-4-2-9-2-4"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="44.333305"
y="144.40453"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8-4-6">Commands</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="32.77951"
y="157.53647"
id="text4525-8-4-2-9-2-1"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="32.77951"
y="157.53647"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8-4-9">Information</tspan></text>
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.94522905;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-8-0)"
d="m 13.434252,141.35309 0.01792,1.13976 0.02188,26.07814"
id="path4951-6-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.85722983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-1)"
d="m 61.946656,165.98792 -0.01452,-1.1553 -0.0177,-26.43364"
id="path4951-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<rect
style="display:inline;fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.99238181;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5474-3-1"
width="53.971424"
height="24.349827"
x="92.93354"
y="233.9621"
ry="4.6902986" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.46228218px;line-height:4.03892612px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.16155702"
x="112.86232"
y="235.3748"
id="text4525-5-9-5-4"
transform="scale(0.94728752,1.0556457)"><tspan
sodipodi:role="line"
x="112.86232"
y="235.3748"
style="line-height:0.37247187px;stroke-width:0.16155702"
id="tspan5341-3">Switches</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.46228218px;line-height:4.03892612px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.16155702"
x="192.84842"
y="235.36662"
id="text4525-5-9-5-4-2"
transform="scale(0.94728752,1.0556457)"><tspan
sodipodi:role="line"
x="192.84842"
y="235.36662"
style="line-height:0.37247187px;stroke-width:0.16155702"
id="tspan5341-3-8">Many more...</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="41.44257"
y="221.21707"
id="text4525-8-4-2-9-4-7"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="41.44257"
y="221.21707"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8-3-5">Internet of Things</tspan></text>
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.94489706;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-8-2)"
d="m 120.63407,141.54543 0.018,1.13664 0.0219,26.00672"
id="path4951-6-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.91256553;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-8-3)"
d="m 69.84404,192.49 0.0168,1.13361 0.0205,25.93741"
id="path4951-6-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.85846782;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-69)"
d="m 230.8668,166.05561 -0.0146,-1.15201 -0.0178,-26.35835"
id="path4951-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.86219335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-5)"
d="m 173.62583,217.27194 -0.0146,-1.16203 -0.0178,-26.58762"
id="path4951-1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="154.9097"
y="143.75829"
id="text4525-8-4-2-9-2-4-6"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="154.9097"
y="143.75829"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8-4-6-2">Commands</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="143.38155"
y="157.1857"
id="text4525-8-4-2-9-2-1-9"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="143.38155"
y="157.1857"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8-4-9-8">Information</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="207.90887"
y="157.44363"
id="text4525-8-4-2-9-2-1-2"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="207.90887"
y="157.44363"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8-4-9-3">Information</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="219.16008"
y="143.75829"
id="text4525-8-4-2-9-2-4-6-8"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="219.16008"
y="143.75829"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5474-8-4-6-2-5">Commands</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="76.223282"
y="200.77679"
id="text4525-8-4-2-9-2-1-9-6"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="76.223282"
y="200.77679"
style="line-height:0.34869605px;text-align:start;text-anchor:start;stroke-width:0.15124445"
id="tspan5474-8-4-9-8-0"
dy="-4.0999999">Information</tspan><tspan
sodipodi:role="line"
x="76.223282"
y="204.55791"
style="line-height:0.34869605px;text-align:start;text-anchor:start;stroke-width:0.15124445"
id="tspan11003">(ie. light is on)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.04977846px;line-height:3.78111124px;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="184.67532"
y="200.63307"
id="text4525-8-4-2-9-2-4-6-8-6"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
x="184.67532"
y="200.63307"
style="line-height:0.34869605px;text-align:start;text-anchor:start;stroke-width:0.15124445"
id="tspan5474-8-4-6-2-5-3"
dy="-3.5999999">Commands</tspan><tspan
sodipodi:role="line"
x="184.67532"
y="204.41418"
style="line-height:0.34869605px;text-align:start;text-anchor:start;stroke-width:0.15124445"
id="tspan11005">(ie. turn light on)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.57105827px;line-height:2.85691118px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11427645"
x="118.75391"
y="271.22955"
id="text11009"
transform="scale(1.0188363,0.98151192)"><tspan
sodipodi:role="line"
id="tspan11007"
x="118.75391"
y="271.22955"
style="stroke-width:0.11427645">Graphic by Paulus Schoutsen 2014, CC BY 4.0 </tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB