* Using vectorized version.

* Vectorized it.

* Forgot to upload...
This commit is contained in:
Philipp Wensauer 2018-03-07 15:35:55 +01:00 committed by Fabian Affolter
parent 91a0bab212
commit c7e78ce394
2 changed files with 857 additions and 1 deletions

View File

@ -35,7 +35,7 @@ The Home Assistant core is responsible for Home Control. Home Assistant contains
<p class='img'>
<a href='/images/architecture/ha_architecture.png' name='architecture'>
<img src='/images/architecture/ha_architecture.png' />
<img src='/images/architecture/ha_architecture.svg' />
</a>
Overview of the Home Assistant core architecture
</p>

View File

@ -0,0 +1,856 @@
<?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="267.40555mm"
height="143.58057mm"
viewBox="0 0 267.40555 143.58057"
version="1.1"
id="svg8"
inkscape:version="0.92.0 r15299"
sodipodi:docname="ha_architecture.svg">
<defs
id="defs2">
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4985"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4983"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInS"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4981"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4979"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(-0.2)" />
</marker>
<marker
inkscape:stockid="TriangleInM"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleInM"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4823"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(-0.4)" />
</marker>
<marker
inkscape:stockid="TriangleInS"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleInS"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4826"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(-0.2)" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4973"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4971"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.6) translate(0,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4969"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4967"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4711"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.6) translate(0,0)" />
</marker>
<marker
inkscape:stockid="Torso"
orient="auto"
refY="0.0"
refX="0.0"
id="Torso"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g4913"
transform="scale(0.7)"
style="stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1">
<path
id="path4899"
d="M -4.7792281,-3.2395420 C -2.4288541,-2.8736027 0.52103922,-1.3019943 0.25792722,0.38794346 C -0.0051877922,2.0778819 -2.2126741,2.6176539 -4.5630471,2.2517169 C -6.9134221,1.8857769 -8.5210350,0.75201414 -8.2579220,-0.93792336 C -7.9948090,-2.6278615 -7.1296041,-3.6054813 -4.7792281,-3.2395420 z "
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-opacity:1" />
<path
id="path4901"
d="M 4.4598789,0.088665736 C -2.5564571,-4.3783320 5.2248769,-3.9061806 -0.84829578,-8.7197331"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" />
<path
id="path4903"
d="M 4.9298719,0.057520736 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:1pt;stroke-opacity:1" />
<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-rule:evenodd;stroke-width:1pt;stroke:#000000;stroke-opacity:1;fill:#000000;fill-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-rule:evenodd;stroke-width:1pt;stroke:#000000;stroke-opacity:1;fill:#000000;fill-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 15.565317,-28.685045 A 0.60731727 0.60731727 0 1 0 16.779951 -28.685045 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" />
<path
id="path4911"
transform="matrix(0,-1.109517,1.109517,0,26.82450,16.99126)"
d="M 16.779951 -28.685045 A 0.60731727 0.60731727 0 1 0 15.565317,-28.685045 A 0.60731727 0.60731727 0 1 0 16.779951 -28.685045 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4954"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4705"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,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.0"
refX="0.0"
id="Arrow2Sstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4590"
style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.3) translate(-2.3,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker5272"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5270"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker5232"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5230"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4578"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,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>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.9899495"
inkscape:cx="523.48437"
inkscape:cy="158.30244"
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="1920"
inkscape:window-height="1137"
inkscape:window-x="1912"
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(-3.8805606,-107.28114)"
style="display:inline">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:10.58333302px;line-height:6.61458302px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="268.43951"
y="123.67271"
id="text4509"><tspan
sodipodi:role="line"
id="tspan4507"
x="268.00031"
y="123.67271"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:end;letter-spacing:-0.43920839px;text-anchor:end;stroke-width:0.26458332"
dy="-4.7600002">Home Assistant</tspan><tspan
sodipodi:role="line"
x="268.00031"
y="130.28729"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:end;letter-spacing:-0.43920839px;text-anchor:end;stroke-width:0.26458332"
id="tspan4511">Core Architecture</tspan></text>
<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="fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4521"
width="42"
height="23"
x="204.7749"
y="165.25009" />
<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;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="225.69725"
y="173.02853"
id="text4525"
transform="scale(0.9650764,1.0361874)"><tspan
sodipodi:role="line"
id="tspan4523"
x="225.69725"
y="173.02853"
style="line-height:0.34869605px;stroke-width:0.15124445">Timer</tspan></text>
<rect
style="fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4521-6"
width="42"
height="23.000002"
x="114.79425"
y="164.52242" />
<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;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="125.60648"
y="172.14389"
id="text4525-5"
transform="scale(0.9650764,1.0361874)"><tspan
sodipodi:role="line"
id="tspan4523-3"
x="125.60648"
y="172.14389"
style="line-height:0.34869605px;stroke-width:0.15124445">Event Bus</tspan></text>
<rect
style="fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4521-2"
width="42"
height="23.000002"
x="114.37717"
y="109.73598" />
<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;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="140.76022"
y="118.67937"
id="text4525-8"
transform="scale(0.9650764,1.0361874)"><tspan
sodipodi:role="line"
id="tspan4523-8"
x="140.76022"
y="118.67937"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
dy="-2.2199998">State</tspan><tspan
sodipodi:role="line"
x="140.76022"
y="122.46048"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5413">Machine</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.80284786px;line-height:3.62678003px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14507121"
x="76.203026"
y="156.70473"
id="text5417-6"
transform="scale(0.9748707,1.0257771)"><tspan
sodipodi:role="line"
id="tspan5415-9"
x="76.203026"
y="156.70473"
style="stroke-width:0.14507121"
dy="-3.8942432">listen for events/</tspan><tspan
sodipodi:role="line"
x="76.203026"
y="160.33151"
style="stroke-width:0.14507121"
id="tspan5419-3">fire event</tspan></text>
<rect
style="fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.86500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4521-2-1"
width="42"
height="23.000004"
x="114.9117"
y="221.45465" />
<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;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15124445"
x="141.31412"
y="226.4964"
id="text4525-8-7"
transform="scale(0.96507639,1.0361874)"><tspan
sodipodi:role="line"
id="tspan4523-8-4"
x="141.31412"
y="226.4964"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
dy="-2.2199998">Service</tspan><tspan
sodipodi:role="line"
x="141.31412"
y="230.27751"
style="line-height:0.34869605px;text-align:center;text-anchor:middle;stroke-width:0.15124445"
id="tspan5413-0">Registry</tspan></text>
<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:#9fc5e8;fill-opacity:1;stroke:#000000;stroke-width:1.06500006;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5472"
width="60.937454"
height="135.02786"
x="7.8895965"
y="110.62202" />
<rect
style="fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.79502076;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5474"
width="55.228729"
height="15.271934"
x="10.810782"
y="124.82534"
ry="2.9417019" />
<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.16155703"
x="32.544708"
y="127.35789"
id="text4525-5-9"
transform="scale(0.94728752,1.0556457)"><tspan
sodipodi:role="line"
id="tspan4523-3-6"
x="32.544708"
y="127.35789"
style="line-height:0.37247187px;stroke-width:0.16155703">Light</tspan></text>
<rect
style="fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.79502076;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5474-6"
width="55.228729"
height="15.271934"
x="10.61033"
y="158.23402"
ry="2.9417019" />
<rect
style="fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.79502076;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5474-3"
width="55.228729"
height="15.271934"
x="10.743965"
y="226.1205"
ry="2.9417019" />
<rect
style="fill:#cfe2f3;fill-opacity:1;stroke:#000000;stroke-width:0.79502076;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1"
id="rect5474-4"
width="55.228729"
height="15.271934"
x="10.743966"
y="192.17728"
ry="2.9417019" />
<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="20.24564"
y="223.22211"
id="text4525-5-9-5"
transform="scale(0.94728752,1.0556457)"><tspan
sodipodi:role="line"
id="tspan4523-3-6-7"
x="20.24564"
y="223.22211"
style="line-height:0.37247187px;stroke-width:0.16155702">Many more...</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;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.16155702"
x="17.28315"
y="191.70107"
id="text4525-5-9-4"
transform="scale(0.94728752,1.0556457)"><tspan
sodipodi:role="line"
id="tspan4523-3-6-3"
x="17.28315"
y="191.70107"
style="line-height:0.37247187px;stroke-width:0.16155702">Device Tracker</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;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.16155702"
x="30.40275"
y="159.92683"
id="text4525-5-9-2"
transform="scale(0.94728752,1.0556457)"><tspan
sodipodi:role="line"
id="tspan4523-3-6-6"
x="30.40275"
y="159.92683"
style="line-height:0.37247187px;stroke-width:0.16155702">Switch</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.86684513px;line-height:3.66677809px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14667109"
x="11.098916"
y="120.1047"
id="text4525-5-9-54"
transform="scale(1.0066282,0.9934154)"><tspan
sodipodi:role="line"
id="tspan4523-3-6-0"
x="11.098916"
y="120.1047"
style="line-height:0.33815217px;stroke-width:0.14667109">Components</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.80284834px;line-height:3.62678027px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14507121"
x="76.623322"
y="116.72686"
id="text5417-6-0"
transform="scale(0.97487067,1.0257771)"><tspan
sodipodi:role="line"
x="76.623322"
y="116.72686"
style="stroke-width:0.14507121"
id="tspan5419-3-8">set state</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.87828809;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985)"
d="m 134.36663,161.72833 -0.0146,-1.20582 -0.0178,-27.58952"
id="path4951"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.9664281;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-8)"
d="m 143.6486,190.71339 0.0168,1.27138 0.0205,29.08959"
id="path4951-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1.10393262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-6)"
d="m 159.711,175.37009 1.89837,-0.0147 43.43538,-0.0179"
id="path4951-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1.08912098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-84)"
d="m 111.54159,166.92655 -1.77427,0.0152 -40.595547,0.0186"
id="path4951-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1.08779776;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-6-5)"
d="m 72.342632,186.06141 1.764254,-0.0153 40.366654,-0.0186"
id="path4951-7-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1.08871329;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-84-8)"
d="m 111.39173,223.45319 -1.76627,0.0153 -40.412633,0.0187"
id="path4951-3-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1.08904195;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-6-5-8)"
d="m 72.431037,242.88507 1.774682,-0.0152 40.605411,-0.0186"
id="path4951-7-6-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.80284834px;line-height:3.62678027px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14507121"
x="76.486244"
y="175.48161"
id="text5417-6-6"
transform="scale(0.97487067,1.0257771)"><tspan
sodipodi:role="line"
x="76.486244"
y="175.48161"
style="stroke-width:0.14507121"
id="tspan5419-3-89"
dy="-3.8900001">call event </tspan><tspan
sodipodi:role="line"
x="76.486244"
y="179.1084"
style="stroke-width:0.14507121"
id="tspan4609">listeners</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.80284834px;line-height:3.62678027px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14507121"
x="76.617371"
y="211.42024"
id="text5417-6-6-7"
transform="scale(0.97487066,1.0257771)"><tspan
sodipodi:role="line"
x="76.617371"
y="211.42024"
style="stroke-width:0.14507121"
id="tspan4609-8"
dy="-3.8900001">publish</tspan><tspan
sodipodi:role="line"
x="76.617371"
y="215.04703"
style="stroke-width:0.14507121"
id="tspan4634">service</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.80284834px;line-height:3.62678027px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14507121"
x="76.617371"
y="229.13786"
id="text5417-6-6-3"
transform="scale(0.97487066,1.0257771)"><tspan
sodipodi:role="line"
x="76.617371"
y="229.13786"
style="stroke-width:0.14507121"
id="tspan4609-9"
dy="-3.8900001">call</tspan><tspan
sodipodi:role="line"
x="76.617371"
y="232.76465"
style="stroke-width:0.14507121"
id="tspan4648">service</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.90474069;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-4)"
d="m 121.36058,218.55632 -0.0146,-1.28211 -0.0178,-29.33525"
id="path4951-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<rect
style="fill:#fffff3;fill-opacity:1;stroke:none;stroke-width:0.47357163;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-dashoffset:0.50078738;stroke-opacity:1;paint-order:markers fill stroke"
id="rect4773"
width="1.4365727"
height="12.76212"
x="120.5771"
y="197.74188" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.80284834px;line-height:3.62678027px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14507121;stroke-opacity:1;"
x="124.50616"
y="200.86783"
id="text5417-6-6-7-6"
transform="scale(0.97487066,1.0257771)"><tspan
sodipodi:role="line"
x="124.50616"
y="200.86783"
style="text-align:center;text-anchor:middle;stroke-width:0.14507121;stroke:none;stroke-opacity:1;"
id="tspan4634-1"
dy="-3.8900001">call_service</tspan><tspan
sodipodi:role="line"
x="124.50616"
y="204.49461"
style="text-align:center;text-anchor:middle;stroke-width:0.14507121;stroke:none;stroke-opacity:1;"
id="tspan4673">events</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1.08978689;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:8.30000019;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4985-84-2)"
d="m 111.70898,121.35631 -1.77986,0.0152 -40.723236,0.0186"
id="path4951-3-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.80284834px;line-height:3.62678027px;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14507121"
x="149.49513"
y="200.99426"
id="text5417-6-6-7-6-3"
transform="scale(0.97487066,1.0257771)"><tspan
sodipodi:role="line"
x="149.49513"
y="200.99426"
style="text-align:start;text-anchor:start;stroke-width:0.14507121"
id="tspan4634-1-4"
dy="-3.8900001">service_called</tspan><tspan
sodipodi:role="line"
x="149.49513"
y="204.62105"
style="text-align:start;text-anchor:start;stroke-width:0.14507121"
id="tspan4673-1">events</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.80284834px;line-height:3.62678027px;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14507121"
x="166.82645"
y="180.94534"
id="text5417-6-6-7-6-3-3"
transform="scale(0.97487066,1.0257771)"><tspan
sodipodi:role="line"
x="166.82645"
y="180.94534"
style="text-align:start;text-anchor:start;stroke-width:0.14507121"
id="tspan4634-1-4-4"
dy="-3.8900001">time_changed</tspan><tspan
sodipodi:role="line"
x="166.82645"
y="184.57213"
style="text-align:start;text-anchor:start;stroke-width:0.14507121"
id="tspan4673-1-0">events</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.80284834px;line-height:3.62678027px;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.14507121"
x="140.479"
y="145.89252"
id="text5417-6-6-7-6-3-9"
transform="scale(0.97487066,1.0257771)"><tspan
sodipodi:role="line"
x="140.479"
y="145.89252"
style="text-align:start;text-anchor:start;stroke-width:0.14507121"
id="tspan4634-1-4-0"
dy="-3.8899999">state_changed</tspan><tspan
sodipodi:role="line"
x="140.479"
y="149.5193"
style="text-align:start;text-anchor:start;stroke-width:0.14507121"
id="tspan4673-1-2">events</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 36 KiB