study.com work

This commit is contained in:
Zakaria
2025-11-28 12:06:47 -05:00
commit f2b14c75c2
86 changed files with 2525 additions and 0 deletions
+160
View File
@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2023-06-13T06:46:42.677Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" etag="2dm6wh7Nnmh6Q2141RGR" version="21.3.8">
<diagram name="Page-1" id="Pp5D8NyYfTdBCvUGVL6m">
<mxGraphModel dx="655" dy="849" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="uLgKkJphqwm_8STbQmNH-7" value="Thermostat" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="60" y="80" width="240" height="424" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-11" value="currentTemperature: float" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-8" value="&lt;div&gt;desiredTemperature: float&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="52" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-13" value="heatingSystem: HeatingSystem" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="78" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-12" value="&lt;div&gt;coolingSystem: CoolingSystem&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="104" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-14" value="&lt;div&gt;fan: Fan&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="130" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-46" value="&lt;div&gt;&lt;div&gt;temperatureSensor: Sensor&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="156" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-9" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="182" width="240" height="8" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-10" value="&lt;div&gt;setDesiredTemperature(temp: float): void&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="190" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-15" value="&lt;div&gt;&lt;div&gt;getCurrentTemperature(): float&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="216" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-16" value="&lt;div&gt;&lt;div&gt;startHeating(): void&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="242" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-17" value="&lt;div&gt;&lt;div&gt;stopHeating(): void&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="268" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-18" value="&lt;div&gt;&lt;div&gt;startCooling(): void&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="294" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-19" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;stopCooling(): void&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="320" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-20" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;startFan(speed: int): void&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="346" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-21" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;stopFan(): void&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="372" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-47" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;getTemperatureSensorValue(): float&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-7">
<mxGeometry y="398" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-26" value="HeatingSystem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
<mxGeometry x="360" y="80" width="240" height="112" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-27" value="&lt;div&gt;heatingStatus: boolean&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-26">
<mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-32" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-26">
<mxGeometry y="52" width="240" height="8" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-33" value="&lt;div&gt;&lt;div&gt;startHeating(): void&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-26">
<mxGeometry y="60" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-34" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;stopHeating(): void&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-26">
<mxGeometry y="86" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-41" value="CoolingSystem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="360" y="290" width="240" height="112" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-42" value="&lt;div&gt;&lt;div&gt;coolingStatus: boolean&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-41">
<mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-43" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-41">
<mxGeometry y="52" width="240" height="8" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-44" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;startCooling(): void&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-41">
<mxGeometry y="60" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-45" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;stopCooling(): void&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-41">
<mxGeometry y="86" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-48" value="Sensor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1">
<mxGeometry x="60" y="550" width="240" height="86" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-49" value="&lt;div&gt;&lt;div&gt;sensorValue: float&lt;br&gt;&lt;/div&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-48">
<mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-50" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-48">
<mxGeometry y="52" width="240" height="8" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-51" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;getSensorValue(): float&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-48">
<mxGeometry y="60" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-54" value="Fan" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="360" y="498" width="240" height="138" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-55" value="&lt;div&gt;&lt;div&gt;fanStatus: boolean&lt;br&gt;&lt;/div&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-54">
<mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-59" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;fanSpeed: int&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-54">
<mxGeometry y="52" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-56" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-54">
<mxGeometry y="78" width="240" height="8" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-57" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;startFan(speed: int): void&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-54">
<mxGeometry y="86" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-58" value="&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;stopFan(): void&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="uLgKkJphqwm_8STbQmNH-54">
<mxGeometry y="112" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-60" value="" style="endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;rounded=0;entryX=-0.003;entryY=0.127;entryDx=0;entryDy=0;entryPerimeter=0;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#ffe6cc;strokeColor=#d79b00;" edge="1" parent="1" source="uLgKkJphqwm_8STbQmNH-13" target="uLgKkJphqwm_8STbQmNH-26">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="300" y="94" as="sourcePoint" />
<mxPoint x="490" y="410" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-63" value="" style="endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;rounded=0;entryX=-0.004;entryY=0.179;entryDx=0;entryDy=0;entryPerimeter=0;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1" source="uLgKkJphqwm_8STbQmNH-12" target="uLgKkJphqwm_8STbQmNH-41">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="300" y="135.57999999999998" as="sourcePoint" />
<mxPoint x="359" y="135.57999999999998" as="targetPoint" />
<Array as="points">
<mxPoint x="340" y="197" />
<mxPoint x="340" y="310" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-65" value="" style="endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;rounded=0;entryX=-0.001;entryY=0.132;entryDx=0;entryDy=0;entryPerimeter=0;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.553;exitDx=0;exitDy=0;exitPerimeter=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1" source="uLgKkJphqwm_8STbQmNH-14" target="uLgKkJphqwm_8STbQmNH-54">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="300" y="220" as="sourcePoint" />
<mxPoint x="359" y="333" as="targetPoint" />
<Array as="points">
<mxPoint x="310" y="224" />
<mxPoint x="330" y="224" />
<mxPoint x="330" y="516" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="uLgKkJphqwm_8STbQmNH-66" value="" style="endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.553;exitDx=0;exitDy=0;exitPerimeter=0;fillColor=#f5f5f5;strokeColor=#666666;" edge="1" parent="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="300" y="250" as="sourcePoint" />
<mxPoint x="300" y="560" as="targetPoint" />
<Array as="points">
<mxPoint x="320" y="250" />
<mxPoint x="320" y="560" />
<mxPoint x="300" y="560" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+260
View File
@@ -0,0 +1,260 @@
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2025-09-17T01:00:00.000Z" agent="diagrams.net" etag="detailed_deployment_v1" version="21.3.8">
<diagram name="Page-1" id="detailed-thermostat-deployment">
<mxGraphModel dx="1400" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- Title -->
<mxCell id="2" value="Smart Thermostat System - Detailed Deployment Diagram" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=18;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="500" y="30" width="600" height="30" as="geometry" />
</mxCell>
<!-- Mobile Device Node -->
<mxCell id="3" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Mobile Device" style="html=1;whiteSpace=wrap;strokeWidth=3;fillColor=#4285f4;strokeColor=#ffffff;fontFamily=Arial;fontSize=14;fontColor=white;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="80" y="120" width="300" height="400" as="geometry" />
</mxCell>
<!-- Mobile App Component -->
<mxCell id="4" value="&lt;&lt;artifact&gt;&gt;&lt;br&gt;Smart Thermostat&lt;br&gt;Mobile App" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="110" y="180" width="240" height="80" as="geometry" />
</mxCell>
<!-- Mobile Database -->
<mxCell id="5" value="&lt;&lt;database&gt;&gt;&lt;br&gt;Local Cache DB" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="130" y="290" width="100" height="60" as="geometry" />
</mxCell>
<!-- User Interface -->
<mxCell id="6" value="&lt;&lt;interface&gt;&gt;&lt;br&gt;User Interface" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="250" y="290" width="100" height="60" as="geometry" />
</mxCell>
<!-- User Actor -->
<mxCell id="7" value="" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;fillColor=#ff6b6b;" vertex="1" parent="1">
<mxGeometry x="215" y="420" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="8" value="User" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=12;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="190" y="490" width="80" height="20" as="geometry" />
</mxCell>
<!-- Cloud Server Node -->
<mxCell id="9" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Smart Thermostat Cloud Server" style="html=1;whiteSpace=wrap;strokeWidth=3;fillColor=#4285f4;strokeColor=#ffffff;fontFamily=Arial;fontSize=14;fontColor=white;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="480" y="120" width="300" height="400" as="geometry" />
</mxCell>
<!-- Server Application -->
<mxCell id="10" value="&lt;&lt;artifact&gt;&gt;&lt;br&gt;Smart Thermostat&lt;br&gt;Server Application" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="510" y="180" width="240" height="80" as="geometry" />
</mxCell>
<!-- Server Database -->
<mxCell id="11" value="&lt;&lt;database&gt;&gt;&lt;br&gt;Thermostat Data DB" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="530" y="290" width="100" height="60" as="geometry" />
</mxCell>
<!-- User Management DB -->
<mxCell id="12" value="&lt;&lt;database&gt;&gt;&lt;br&gt;User Management DB" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="650" y="290" width="100" height="60" as="geometry" />
</mxCell>
<!-- Analytics DB -->
<mxCell id="13" value="&lt;&lt;database&gt;&gt;&lt;br&gt;Analytics &amp; Logs DB" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="590" y="370" width="100" height="60" as="geometry" />
</mxCell>
<!-- Database Server Node -->
<mxCell id="14" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Database Server" style="html=1;whiteSpace=wrap;strokeWidth=3;fillColor=#4285f4;strokeColor=#ffffff;fontFamily=Arial;fontSize=14;fontColor=white;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="880" y="120" width="300" height="400" as="geometry" />
</mxCell>
<!-- SQL Server -->
<mxCell id="15" value="&lt;&lt;artifact&gt;&gt;&lt;br&gt;SQL Server&lt;br&gt;Database Engine" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="910" y="180" width="240" height="80" as="geometry" />
</mxCell>
<!-- Temperature History DB -->
<mxCell id="16" value="&lt;&lt;database&gt;&gt;&lt;br&gt;Temperature History DB" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="930" y="290" width="120" height="50" as="geometry" />
</mxCell>
<!-- Energy Usage DB -->
<mxCell id="17" value="&lt;&lt;database&gt;&gt;&lt;br&gt;Energy Usage DB" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="1060" y="290" width="120" height="50" as="geometry" />
</mxCell>
<!-- Device Registry DB -->
<mxCell id="18" value="&lt;&lt;database&gt;&gt;&lt;br&gt;Device Registry DB" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="930" y="360" width="120" height="50" as="geometry" />
</mxCell>
<!-- Settings & Config DB -->
<mxCell id="19" value="&lt;&lt;database&gt;&gt;&lt;br&gt;Settings &amp; Config DB" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="1060" y="360" width="120" height="50" as="geometry" />
</mxCell>
<!-- Smart Thermostat Device Node -->
<mxCell id="20" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Smart Thermostat Control Unit" style="html=1;whiteSpace=wrap;strokeWidth=3;fillColor=#4285f4;strokeColor=#ffffff;fontFamily=Arial;fontSize=14;fontColor=white;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="80" y="600" width="300" height="400" as="geometry" />
</mxCell>
<!-- Thermostat OS -->
<mxCell id="21" value="&lt;&lt;artifact&gt;&gt;&lt;br&gt;Smart Thermostat&lt;br&gt;Operating System" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="110" y="660" width="240" height="80" as="geometry" />
</mxCell>
<!-- Local Settings DB -->
<mxCell id="22" value="&lt;&lt;database&gt;&gt;&lt;br&gt;Local Settings DB" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="130" y="770" width="100" height="60" as="geometry" />
</mxCell>
<!-- Control Panel Interface -->
<mxCell id="23" value="&lt;&lt;interface&gt;&gt;&lt;br&gt;Physical Control Panel" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="250" y="770" width="100" height="60" as="geometry" />
</mxCell>
<!-- User Interface (Physical) -->
<mxCell id="24" value="" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;fillColor=#ff6b6b;" vertex="1" parent="1">
<mxGeometry x="215" y="880" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="25" value="Physical Access" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=12;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="180" y="950" width="100" height="20" as="geometry" />
</mxCell>
<!-- Smart Home Components Node -->
<mxCell id="26" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Smart Home Components" style="html=1;whiteSpace=wrap;strokeWidth=3;fillColor=#4285f4;strokeColor=#ffffff;fontFamily=Arial;fontSize=14;fontColor=white;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="480" y="600" width="300" height="400" as="geometry" />
</mxCell>
<!-- Temperature Sensors -->
<mxCell id="27" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Temperature Sensors" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="510" y="660" width="120" height="60" as="geometry" />
</mxCell>
<!-- Humidity Sensors -->
<mxCell id="28" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Humidity Sensors" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="650" y="660" width="120" height="60" as="geometry" />
</mxCell>
<!-- Motion Sensors -->
<mxCell id="29" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Motion/Occupancy&lt;br&gt;Sensors" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="510" y="750" width="120" height="60" as="geometry" />
</mxCell>
<!-- Smart Vents -->
<mxCell id="30" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Smart Air Vents" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="650" y="750" width="120" height="60" as="geometry" />
</mxCell>
<!-- HVAC Interface -->
<mxCell id="31" value="&lt;&lt;interface&gt;&gt;&lt;br&gt;HVAC Control Interface" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="580" y="840" width="120" height="60" as="geometry" />
</mxCell>
<!-- HVAC System Node -->
<mxCell id="32" value="&lt;&lt;device&gt;&gt;&lt;br&gt;HVAC System" style="html=1;whiteSpace=wrap;strokeWidth=3;fillColor=#4285f4;strokeColor=#ffffff;fontFamily=Arial;fontSize=14;fontColor=white;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="880" y="600" width="300" height="400" as="geometry" />
</mxCell>
<!-- Heating Unit -->
<mxCell id="33" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Heating Unit&lt;br&gt;(Furnace/Boiler)" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="910" y="660" width="120" height="60" as="geometry" />
</mxCell>
<!-- Cooling Unit -->
<mxCell id="34" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Cooling Unit&lt;br&gt;(Air Conditioner)" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="1050" y="660" width="120" height="60" as="geometry" />
</mxCell>
<!-- Ventilation System -->
<mxCell id="35" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Ventilation System&lt;br&gt;(Fans &amp; Ducts)" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="910" y="750" width="120" height="60" as="geometry" />
</mxCell>
<!-- Air Quality Control -->
<mxCell id="36" value="&lt;&lt;device&gt;&gt;&lt;br&gt;Air Quality Control&lt;br&gt;(Filters &amp; Purifiers)" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#ffffff;strokeColor=#333333;fontFamily=Arial;fontSize=11;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="1050" y="750" width="120" height="60" as="geometry" />
</mxCell>
<!-- HVAC Controller -->
<mxCell id="37" value="&lt;&lt;artifact&gt;&gt;&lt;br&gt;HVAC Control System" style="html=1;whiteSpace=wrap;strokeWidth=2;fillColor=#f0f0f0;strokeColor=#666666;fontFamily=Arial;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="980" y="840" width="120" height="60" as="geometry" />
</mxCell>
<!-- Communication Lines -->
<!-- HTTPS Connection Mobile to Server -->
<mxCell id="38" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;strokeColor=#ff9800;fontFamily=Arial;fontSize=11;" edge="1" parent="1" source="3" target="9">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="39" value="HTTPS / REST API&lt;br&gt;TCP/IP over Internet" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Arial;fontSize=11;fontStyle=1;backgroundColor=white;" connectable="0" vertex="1" parent="38">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- SQL Connection Server to DB -->
<mxCell id="40" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;strokeColor=#9c27b0;fontFamily=Arial;fontSize=11;" edge="1" parent="1" source="9" target="14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="41" value="SQL / TCP-IP&lt;br&gt;Database Queries" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Arial;fontSize=11;fontStyle=1;backgroundColor=white;" connectable="0" vertex="1" parent="40">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- MQTT/WiFi Connection Server to Thermostat -->
<mxCell id="42" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;strokeColor=#4caf50;fontFamily=Arial;fontSize=11;" edge="1" parent="1" source="9" target="20">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="43" value="MQTT over TLS&lt;br&gt;WiFi / TCP-IP" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Arial;fontSize=11;fontStyle=1;backgroundColor=white;" connectable="0" vertex="1" parent="42">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- IoT Connection Thermostat to Smart Components -->
<mxCell id="44" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;strokeColor=#2196f3;fontFamily=Arial;fontSize=11;" edge="1" parent="1" source="20" target="26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="45" value="Zigbee / Bluetooth LE&lt;br&gt;IoT Mesh Network" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Arial;fontSize=11;fontStyle=1;backgroundColor=white;" connectable="0" vertex="1" parent="44">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Wired Connection Smart Components to HVAC -->
<mxCell id="46" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;strokeColor=#f44336;fontFamily=Arial;fontSize=11;" edge="1" parent="1" source="26" target="32">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="47" value="24V DC Wired Control&lt;br&gt;Direct Physical Connection" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Arial;fontSize=11;fontStyle=1;backgroundColor=white;" connectable="0" vertex="1" parent="46">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Protocol Legend -->
<mxCell id="48" value="Communication Protocols:" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=14;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="1300" y="150" width="200" height="30" as="geometry" />
</mxCell>
<mxCell id="49" value="• HTTPS/REST = Secure web API communication" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=11;strokeColor=#ff9800;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="1300" y="185" width="280" height="20" as="geometry" />
</mxCell>
<mxCell id="50" value="• SQL/TCP-IP = Database server communication" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=11;strokeColor=#9c27b0;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="1300" y="210" width="280" height="20" as="geometry" />
</mxCell>
<mxCell id="51" value="• MQTT/TLS = IoT messaging protocol" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=11;strokeColor=#4caf50;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="1300" y="235" width="280" height="20" as="geometry" />
</mxCell>
<mxCell id="52" value="• Zigbee/BLE = Low-power IoT mesh network" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=11;strokeColor=#2196f3;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="1300" y="260" width="280" height="20" as="geometry" />
</mxCell>
<mxCell id="53" value="• 24V DC Wired = Direct HVAC control signals" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=11;strokeColor=#f44336;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="1300" y="285" width="280" height="20" as="geometry" />
</mxCell>
<!-- Footer -->
<mxCell id="54" value="The completed UML deployment diagram showing detailed smart thermostat system architecture" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Arial;fontSize=12;fontStyle=2;" vertex="1" parent="1">
<mxGeometry x="400" y="1050" width="800" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+178
View File
@@ -0,0 +1,178 @@
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2023-09-17T10:00:00.000Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" etag="thermostat_seq_v2" version="21.3.8">
<diagram name="Page-1" id="thermostat-sequence-improved">
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1400" pageHeight="900" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- User Lifeline -->
<mxCell id="2" value="Home Owner/User" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;rounded=1;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;size=40;" parent="1" vertex="1">
<mxGeometry x="80" y="80" width="120" height="650" as="geometry" />
</mxCell>
<mxCell id="3" value="" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;" vertex="1" parent="2">
<mxGeometry x="55" y="5" width="10" height="20" as="geometry" />
</mxCell>
<mxCell id="4" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="2" vertex="1">
<mxGeometry x="55" y="80" width="10" height="40" as="geometry" />
</mxCell>
<mxCell id="5" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="2" vertex="1">
<mxGeometry x="55" y="320" width="10" height="40" as="geometry" />
</mxCell>
<mxCell id="6" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="2" vertex="1">
<mxGeometry x="55" y="480" width="10" height="120" as="geometry" />
</mxCell>
<!-- Mobile App Lifeline -->
<mxCell id="7" value="Mobile APP" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;rounded=1;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;size=40;" parent="1" vertex="1">
<mxGeometry x="280" y="80" width="120" height="650" as="geometry" />
</mxCell>
<mxCell id="8" value="" style="shape=umlBoundary;whiteSpace=wrap;html=1;" vertex="1" parent="7">
<mxGeometry x="48" y="5" width="24" height="20" as="geometry" />
</mxCell>
<mxCell id="9" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="7" vertex="1">
<mxGeometry x="55" y="80" width="10" height="60" as="geometry" />
</mxCell>
<mxCell id="10" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="7" vertex="1">
<mxGeometry x="55" y="280" width="10" height="80" as="geometry" />
</mxCell>
<mxCell id="11" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="7" vertex="1">
<mxGeometry x="55" y="480" width="10" height="120" as="geometry" />
</mxCell>
<!-- Thermostat System Lifeline -->
<mxCell id="12" value="Smart Thermostat System" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;rounded=1;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;size=40;" parent="1" vertex="1">
<mxGeometry x="480" y="80" width="150" height="650" as="geometry" />
</mxCell>
<mxCell id="13" value="" style="ellipse;shape=umlEntity;whiteSpace=wrap;html=1;" vertex="1" parent="12">
<mxGeometry x="65" y="5" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="14" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="12" vertex="1">
<mxGeometry x="70" y="120" width="10" height="120" as="geometry" />
</mxCell>
<mxCell id="15" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="12" vertex="1">
<mxGeometry x="70" y="420" width="10" height="180" as="geometry" />
</mxCell>
<!-- HVAC System Lifeline -->
<mxCell id="16" value="HVAC System" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;rounded=1;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;size=40;" parent="1" vertex="1">
<mxGeometry x="720" y="80" width="120" height="650" as="geometry" />
</mxCell>
<mxCell id="17" value="" style="ellipse;shape=umlEntity;whiteSpace=wrap;html=1;" vertex="1" parent="16">
<mxGeometry x="50" y="5" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="18" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="16" vertex="1">
<mxGeometry x="55" y="160" width="10" height="80" as="geometry" />
</mxCell>
<mxCell id="19" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="16" vertex="1">
<mxGeometry x="55" y="450" width="10" height="150" as="geometry" />
</mxCell>
<!-- Message 1: User to Mobile App -->
<mxCell id="20" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="4" target="9">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="21" value="1. Set Temperature" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="20">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Message 2: Mobile App to Thermostat -->
<mxCell id="22" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="9" target="14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="23" value="2. Send Temperature Command" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="22">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Message 3: Thermostat to HVAC -->
<mxCell id="24" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="14" target="18">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="25" value="3. Adjust HVAC Settings" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="24">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Message 4: HVAC to Thermostat (return) -->
<mxCell id="26" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;" edge="1" parent="1" source="18" target="14">
<mxGeometry relative="1" as="geometry">
<mxPoint x="775" y="280" as="sourcePoint" />
<mxPoint x="560" y="280" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="27" value="4. Status Acknowledgment" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Message 5: Thermostat to Mobile App (return) -->
<mxCell id="28" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;" edge="1" parent="1" source="14" target="10">
<mxGeometry relative="1" as="geometry">
<mxPoint x="550" y="320" as="sourcePoint" />
<mxPoint x="345" y="320" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="29" value="5. Send Confirmation" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="28">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Message 6: Mobile App to User (return) -->
<mxCell id="30" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;" edge="1" parent="1" source="10" target="5">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="31" value="6. Display Confirmation" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="30">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Loop Frame for continuous monitoring -->
<mxCell id="32" value="loop" style="shape=umlFrame;whiteSpace=wrap;html=1;width=60;height=30;boundedLbl=1;" vertex="1" parent="1">
<mxGeometry x="480" y="400" width="380" height="220" as="geometry" />
</mxCell>
<mxCell id="33" value="[Continuous Operation]" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;" vertex="1" parent="1">
<mxGeometry x="550" y="405" width="120" height="20" as="geometry" />
</mxCell>
<!-- Message 7: HVAC to Thermostat (continuous updates) -->
<mxCell id="34" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="19" target="15">
<mxGeometry relative="1" as="geometry">
<mxPoint x="775" y="520" as="sourcePoint" />
<mxPoint x="560" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="35" value="7. Temperature Updates" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="34">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Message 8: Thermostat self-call -->
<mxCell id="36" value="8. Monitor &amp; Control" style="html=1;align=left;spacingLeft=2;endArrow=block;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=0;rounded=0;" edge="1" parent="1" target="15">
<mxGeometry relative="1" as="geometry">
<mxPoint x="560" y="540" as="sourcePoint" />
<Array as="points">
<mxPoint x="590" y="540" />
<mxPoint x="590" y="560" />
</Array>
</mxGeometry>
</mxCell>
<!-- Message 9: Thermostat to Mobile App (status updates) -->
<mxCell id="37" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;" edge="1" parent="1" source="15" target="11">
<mxGeometry relative="1" as="geometry">
<mxPoint x="550" y="580" as="sourcePoint" />
<mxPoint x="345" y="580" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="38" value="9. Status Updates" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="37">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- Message 10: Mobile App to User (display status) -->
<mxCell id="39" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;" edge="1" parent="1" source="11" target="6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="40" value="10. Display Current Status" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="39">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+38
View File
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2023-06-12T14:31:29.070Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" etag="8nDfyyYeRWOEhZrY6fnp" version="21.3.8">
<diagram name="Page-1" id="e7e014a7-5840-1c2e-5031-d8a46d1fe8dd">
<mxGraphModel dx="453" dy="623" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="826" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="wfs432I5Vr80NUk8ZSk_-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="wfs432I5Vr80NUk8ZSk_-13" target="wfs432I5Vr80NUk8ZSk_-16">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="wfs432I5Vr80NUk8ZSk_-13" value="In-home Smart&lt;br&gt;Thermostat System" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="330" y="136" width="180" height="50" as="geometry" />
</mxCell>
<mxCell id="wfs432I5Vr80NUk8ZSk_-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="wfs432I5Vr80NUk8ZSk_-15" target="wfs432I5Vr80NUk8ZSk_-22">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="270" as="targetPoint" />
<mxPoint x="200" y="180" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="wfs432I5Vr80NUk8ZSk_-15" value="User" style="shape=umlActor;verticalLabelPosition=top;verticalAlign=bottom;html=1;labelPosition=center;align=center;" vertex="1" parent="1">
<mxGeometry x="220" y="150" width="40" height="80" as="geometry" />
</mxCell>
<mxCell id="wfs432I5Vr80NUk8ZSk_-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.668;entryY=0.982;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="wfs432I5Vr80NUk8ZSk_-16" target="wfs432I5Vr80NUk8ZSk_-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="wfs432I5Vr80NUk8ZSk_-16" value="HVAC&lt;br&gt;System" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="390" y="268" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="wfs432I5Vr80NUk8ZSk_-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.107;entryY=1.035;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="wfs432I5Vr80NUk8ZSk_-22" target="wfs432I5Vr80NUk8ZSk_-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="wfs432I5Vr80NUk8ZSk_-22" value="Mobile&lt;br&gt;Device" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="185" y="268" width="110" height="50" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+232
View File
@@ -0,0 +1,232 @@
<mxfile host="app.diagrams.net">
<diagram name="Smart Thermostat Activity Diagram">
<mxGraphModel dx="1422" dy="962" grid="1" gridSize="10" guides="1">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Start Node -->
<mxCell id="start" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;" vertex="1" parent="1">
<mxGeometry x="390" y="20" width="20" height="20" as="geometry"/>
</mxCell>
<!-- User Input Activity -->
<mxCell id="userInput" value="Home Owner&#xa;Provides Input" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="340" y="70" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Electronic Device Processes Input -->
<mxCell id="processInput" value="Electronic Device/App&#xa;Processes User Input" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="340" y="150" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Send Data to Network -->
<mxCell id="sendToNetwork" value="Send Data to&#xa;Internet Gateway" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="340" y="230" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Network Receives Data -->
<mxCell id="networkReceive" value="Internet Gateway&#xa;Receives Data" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="340" y="310" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Send to SmartThermostat -->
<mxCell id="sendToThermostat" value="Send Data to&#xa;SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="340" y="390" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Fork for Parallel Activities -->
<mxCell id="fork1" value="" style="line;strokeWidth=3;html=1;fillColor=#000000;" vertex="1" parent="1">
<mxGeometry x="350" y="470" width="100" height="10" as="geometry"/>
</mxCell>
<!-- Left Branch - Sensor Activities -->
<mxCell id="readSensors" value="Read Temperature&#xa;from Sensors" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="180" y="520" width="120" height="50" as="geometry"/>
</mxCell>
<mxCell id="sendSensorData" value="Send Sensor Data&#xa;to SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="180" y="600" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Right Branch - Database Activities -->
<mxCell id="retrieveData" value="Retrieve Data&#xa;from Database" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
<mxGeometry x="500" y="520" width="120" height="50" as="geometry"/>
</mxCell>
<mxCell id="storeData" value="Store Sensor Data&#xa;in Database" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
<mxGeometry x="500" y="600" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Join after Parallel Activities -->
<mxCell id="join1" value="" style="line;strokeWidth=3;html=1;fillColor=#000000;" vertex="1" parent="1">
<mxGeometry x="350" y="700" width="100" height="10" as="geometry"/>
</mxCell>
<!-- Decision Diamond -->
<mxCell id="decision1" value="Temperature&#xa;Control Needed?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="320" y="750" width="160" height="80" as="geometry"/>
</mxCell>
<!-- Heating Branch -->
<mxCell id="startHeating" value="Switch HVAC to&#xa;Heating Mode" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#ff6666;" vertex="1" parent="1">
<mxGeometry x="120" y="880" width="120" height="50" as="geometry"/>
</mxCell>
<mxCell id="sendHeatingState" value="Send Heating State&#xa;Data to SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#ff6666;" vertex="1" parent="1">
<mxGeometry x="120" y="960" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Cooling Branch -->
<mxCell id="startCooling" value="Switch HVAC to&#xa;Cooling Mode" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ccffff;strokeColor=#0066cc;" vertex="1" parent="1">
<mxGeometry x="560" y="880" width="120" height="50" as="geometry"/>
</mxCell>
<mxCell id="sendCoolingState" value="Send Cooling State&#xa;Data to SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ccffff;strokeColor=#0066cc;" vertex="1" parent="1">
<mxGeometry x="560" y="960" width="120" height="50" as="geometry"/>
</mxCell>
<!-- No Action Branch -->
<mxCell id="maintain" value="Maintain Current&#xa;Temperature" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
<mxGeometry x="340" y="880" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Join after Decision -->
<mxCell id="join2" value="" style="line;strokeWidth=3;html=1;fillColor=#000000;" vertex="1" parent="1">
<mxGeometry x="350" y="1050" width="100" height="10" as="geometry"/>
</mxCell>
<!-- Display Current Temperature -->
<mxCell id="displayTemp" value="Display Current&#xa;Temperature to User" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="340" y="1090" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Wait Activity -->
<mxCell id="wait" value="Wait for Next&#xa;Monitoring Cycle" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f0f0;strokeColor=#999999;" vertex="1" parent="1">
<mxGeometry x="340" y="1170" width="120" height="50" as="geometry"/>
</mxCell>
<!-- Loop Back Decision -->
<mxCell id="loopDecision" value="Continue&#xa;Monitoring?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="320" y="1250" width="160" height="80" as="geometry"/>
</mxCell>
<!-- End Node -->
<mxCell id="end" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1">
<mxGeometry x="390" y="1370" width="20" height="20" as="geometry"/>
</mxCell>
<!-- Transitions -->
<mxCell id="t1" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="start" target="userInput">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t2" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="userInput" target="processInput">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t3" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="processInput" target="sendToNetwork">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t4" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="sendToNetwork" target="networkReceive">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t5" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="networkReceive" target="sendToThermostat">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t6" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="sendToThermostat" target="fork1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t7" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="fork1" target="readSensors">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t8" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="fork1" target="retrieveData">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t9" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="readSensors" target="sendSensorData">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t10" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="retrieveData" target="storeData">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t11" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0;entryY=0.5;" edge="1" parent="1" source="sendSensorData" target="join1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t12" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=1;entryY=0.5;" edge="1" parent="1" source="storeData" target="join1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t13" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="join1" target="decision1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t14" value="Need Heating" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="decision1" target="startHeating">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t15" value="Need Cooling" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="decision1" target="startCooling">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t16" value="No Change" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="decision1" target="maintain">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t17" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="startHeating" target="sendHeatingState">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t18" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="startCooling" target="sendCoolingState">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t19" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0;entryY=0.5;" edge="1" parent="1" source="sendHeatingState" target="join2">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t20" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=1;entryY=0.5;" edge="1" parent="1" source="sendCoolingState" target="join2">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t21" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0.5;" edge="1" parent="1" source="maintain" target="join2">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t22" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="join2" target="displayTemp">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t23" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="displayTemp" target="wait">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t24" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="wait" target="loopDecision">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="t25" value="Yes" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1" source="loopDecision" target="readSensors">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="50" y="1290"/>
<mxPoint x="50" y="545"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="t26" value="No" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="loopDecision" target="end">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+157
View File
@@ -0,0 +1,157 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:142.0) Gecko/20100101 Firefox/142.0" version="28.2.3">
<diagram name="Page-1" id="75ae7d71-7dc9-cc9a-2de6-0ed70c28521b">
<mxGraphModel dx="1152" dy="648" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="ySzUzg68vfxPxYYMFw7--13" value="ACTOR/HOME OWNER" style="whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="320" y="180" width="140" height="34" as="geometry" />
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--14" value="Electronic Device/App" style="whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="334.25" y="270" width="115.75" height="34" as="geometry" />
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--15" value="Inputs" style="curved=1;startArrow=none;endArrow=block;exitX=0.25;exitY=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitDx=0;exitDy=0;" edge="1" parent="1" target="ySzUzg68vfxPxYYMFw7--14">
<mxGeometry x="-0.4037" y="20" relative="1" as="geometry">
<Array as="points">
<mxPoint x="250" y="246" />
</Array>
<mxPoint as="offset" />
<mxPoint x="320" y="190" as="sourcePoint" />
<mxPoint x="290" y="285" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--16" value="Displays current &#xa;temperature " style="curved=1;startArrow=none;endArrow=block;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1">
<mxGeometry x="0.1547" y="12" relative="1" as="geometry">
<Array as="points">
<mxPoint x="498" y="256" />
</Array>
<mxPoint as="offset" />
<mxPoint x="450" y="286" as="sourcePoint" />
<mxPoint x="461" y="200" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--17" value="Internet Gateway / Local home network" style="whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="316.38" y="370" width="151.5" height="60" as="geometry" />
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--18" value="Send Data" style="curved=1;startArrow=none;endArrow=block;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="ySzUzg68vfxPxYYMFw7--17">
<mxGeometry x="-0.4347" relative="1" as="geometry">
<Array as="points">
<mxPoint x="290" y="354" />
</Array>
<mxPoint x="352" y="304" as="sourcePoint" />
<mxPoint x="352" y="358" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--19" value="Receive Data" style="curved=1;startArrow=none;endArrow=block;exitX=0.849;exitY=1.017;entryX=1;entryY=0.75;exitDx=0;exitDy=0;entryDx=0;entryDy=0;exitPerimeter=0;" edge="1" parent="1" source="ySzUzg68vfxPxYYMFw7--14">
<mxGeometry x="-0.4567" y="3" relative="1" as="geometry">
<Array as="points">
<mxPoint x="480" y="360" />
</Array>
<mxPoint x="534" y="370" as="sourcePoint" />
<mxPoint x="420" y="370" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--20" value="SmartThermostat" style="whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="322.13" y="500" width="140" height="34" as="geometry" />
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--21" value="Send Data" style="curved=1;startArrow=none;endArrow=block;exitX=0.201;exitY=-0.067;exitDx=0;exitDy=0;entryX=0.277;entryY=1.052;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" edge="1" parent="1" source="ySzUzg68vfxPxYYMFw7--20" target="ySzUzg68vfxPxYYMFw7--17">
<mxGeometry x="-0.4415" y="-7" relative="1" as="geometry">
<Array as="points">
<mxPoint x="290" y="460" />
</Array>
<mxPoint as="offset" />
<mxPoint x="320" y="510" as="sourcePoint" />
<mxPoint x="314" y="400" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--22" value="Receive Data" style="curved=1;startArrow=none;endArrow=block;exitX=0.669;exitY=0.986;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="ySzUzg68vfxPxYYMFw7--17" target="ySzUzg68vfxPxYYMFw7--20">
<mxGeometry x="-0.459" y="-11" relative="1" as="geometry">
<Array as="points">
<mxPoint x="510" y="470" />
</Array>
<mxPoint as="offset" />
<mxPoint x="470" y="400" as="sourcePoint" />
<mxPoint x="462" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--23" value="HVAC" style="whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="110" y="600" width="170" height="90" as="geometry" />
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--24" value="Sensors" style="whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="420" y="630" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--25" value="Switch state  (On/Off)&#xa;Cooling/Heating" style="curved=1;startArrow=none;endArrow=block;exitX=-0.003;exitY=0.622;entryX=0.634;entryY=0.01;entryDx=0;entryDy=0;exitDx=0;exitDy=0;exitPerimeter=0;entryPerimeter=0;" edge="1" parent="1" source="ySzUzg68vfxPxYYMFw7--20" target="ySzUzg68vfxPxYYMFw7--23">
<mxGeometry x="-0.2523" y="26" relative="1" as="geometry">
<Array as="points">
<mxPoint x="180" y="510" />
</Array>
<mxPoint as="offset" />
<mxPoint x="110" y="508" as="sourcePoint" />
<mxPoint x="191" y="600" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--26" value="Heating" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="620" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--27" value="&lt;div&gt;Cooling&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="220" y="620" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--28" value="Send state data" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.25;entryX=0.7351110859860098;entryY=0.9754902895759133;exitDx=0;exitDy=0;" edge="1" parent="1" source="ySzUzg68vfxPxYYMFw7--23">
<mxGeometry x="0.3237" y="23" relative="1" as="geometry">
<Array as="points">
<mxPoint x="356.13" y="614" />
</Array>
<mxPoint as="offset" />
<mxPoint x="438.13" y="626" as="sourcePoint" />
<mxPoint x="346.13" y="534" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--29" value="Reads temperature" style="curved=1;startArrow=none;endArrow=block;entryX=0.25;entryY=0;entryDx=0;entryDy=0;exitX=0.895;exitY=0.975;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="ySzUzg68vfxPxYYMFw7--20">
<mxGeometry x="-0.532" y="21" relative="1" as="geometry">
<Array as="points">
<mxPoint x="400" y="580" />
</Array>
<mxPoint x="444" y="540" as="sourcePoint" />
<mxPoint x="444" y="630" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--30" value="Sends Sensor data" style="curved=1;startArrow=none;endArrow=block;exitX=0.75;exitY=0;entryX=1;entryY=0.75;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="ySzUzg68vfxPxYYMFw7--20">
<mxGeometry x="-0.3033" y="15" relative="1" as="geometry">
<Array as="points">
<mxPoint x="580" y="560" />
</Array>
<mxPoint as="offset" />
<mxPoint x="520" y="659" as="sourcePoint" />
<mxPoint x="546" y="560" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--32" value="&lt;div&gt;Database&lt;/div&gt;" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.database;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="640" y="460" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--33" value="Retrieve Data" style="curved=1;startArrow=none;endArrow=block;entryX=1.001;entryY=0.134;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.033;exitY=0.229;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="ySzUzg68vfxPxYYMFw7--32" target="ySzUzg68vfxPxYYMFw7--20">
<mxGeometry x="0.0056" y="1" relative="1" as="geometry">
<Array as="points">
<mxPoint x="600" y="480" />
</Array>
<mxPoint as="offset" />
<mxPoint x="598" y="480" as="sourcePoint" />
<mxPoint x="590" y="597" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ySzUzg68vfxPxYYMFw7--34" value="Store Sensor Data" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.014;entryY=0.705;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ySzUzg68vfxPxYYMFw7--20" target="ySzUzg68vfxPxYYMFw7--32">
<mxGeometry x="0.504" y="26" relative="1" as="geometry">
<Array as="points">
<mxPoint x="600" y="575" />
</Array>
<mxPoint as="offset" />
<mxPoint x="639" y="667" as="sourcePoint" />
<mxPoint x="633" y="550" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+139
View File
@@ -0,0 +1,139 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:142.0) Gecko/20100101 Firefox/142.0" version="28.2.3">
<diagram name="Page-1" id="75ae7d71-7dc9-cc9a-2de6-0ed70c28521b">
<mxGraphModel dx="1152" dy="648" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="AwyJn9_doaVMq5rt1h0n-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="AwyJn9_doaVMq5rt1h0n-42">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="455" y="160" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="2" value="IDLE" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="160" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="320" width="200" height="200" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4" value="COOLING" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="640" y="280" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-28" value="ACTIVE" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="135" y="470" width="90" height="40" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AwyJn9_doaVMq5rt1h0n-29" target="AwyJn9_doaVMq5rt1h0n-28">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-29" value="ACTIVATING" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="135" y="370" width="90" height="40" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-31" value="Heating" style="text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="135" y="330" width="95" height="40" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-38" value="" style="ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="90" y="330" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-39" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;rounded=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" source="AwyJn9_doaVMq5rt1h0n-38" parent="1" target="AwyJn9_doaVMq5rt1h0n-29">
<mxGeometry relative="1" as="geometry">
<mxPoint x="105" y="420" as="targetPoint" />
<Array as="points">
<mxPoint x="105" y="400" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-40" value="" style="ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="360" y="70" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-41" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;rounded=0;" edge="1" source="AwyJn9_doaVMq5rt1h0n-40" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="375" y="160" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-42" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;" vertex="1" parent="1">
<mxGeometry x="440" y="70" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-52" value="&lt;div&gt;End Of Cycle&lt;/div&gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;strokeColor=light-dark(#000000,#FFFF66);" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="560" y="84.71000000000001" as="sourcePoint" />
<mxPoint x="480" y="84.71000000000001" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-53" value="&lt;div&gt;Initial State&lt;/div&gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;strokeColor=light-dark(#000000,#FFFF66);" edge="1" parent="1">
<mxGeometry x="-0.0041" relative="1" as="geometry">
<mxPoint x="104.71" y="260" as="sourcePoint" />
<mxPoint x="104.71" y="330" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-54" value="&lt;div&gt;Start Of Cycle&lt;/div&gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;strokeColor=light-dark(#000000,#FFFF66);" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="230" y="85" as="sourcePoint" />
<mxPoint x="350" y="85" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-56" value="LowTemp" style="text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="1">
<mxGeometry x="229" y="134" width="80" height="26" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-57" value="&lt;div&gt;Trigger&lt;/div&gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;strokeColor=light-dark(#000000,#FFFF66);" edge="1" parent="1">
<mxGeometry x="-0.1429" y="17" relative="1" as="geometry">
<mxPoint x="299" y="162.71" as="sourcePoint" />
<mxPoint x="229" y="162.71" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-58" value="&lt;div&gt;Trigger&lt;/div&gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;strokeColor=light-dark(#000000,#FFFF00);" edge="1" parent="1">
<mxGeometry x="-0.151" y="-17" relative="1" as="geometry">
<mxPoint x="550" y="160" as="sourcePoint" />
<mxPoint x="620" y="160" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-59" value="HighTemp" style="text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="1">
<mxGeometry x="540" y="134" width="80" height="26" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-60" value="&lt;div&gt;Trigger&lt;/div&gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;strokeColor=light-dark(#000000,#FFFF00);" edge="1" parent="1">
<mxGeometry x="-0.151" y="-17" relative="1" as="geometry">
<mxPoint x="510" y="396" as="sourcePoint" />
<mxPoint x="580" y="396" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-61" value="HighTemp" style="text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="1">
<mxGeometry x="500" y="370" width="80" height="26" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-65" value="LowTemp" style="text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="1">
<mxGeometry x="500" y="480.72" width="80" height="26" as="geometry" />
</mxCell>
<mxCell id="AwyJn9_doaVMq5rt1h0n-66" value="&lt;div&gt;Trigger&lt;/div&gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;strokeColor=light-dark(#000000,#FFFF66);" edge="1" parent="1">
<mxGeometry x="-0.1429" y="17" relative="1" as="geometry">
<mxPoint x="570" y="509.43000000000006" as="sourcePoint" />
<mxPoint x="500" y="509.43000000000006" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>