rice: Add time setting in API, sort.

This commit is contained in:
William Floyd 2018-07-03 10:22:58 -05:00
parent 7652d7a091
commit 688c121062
Signed by untrusted user who does not match committer: william
GPG key ID: B3EEEDD81893CAF9
3 changed files with 139 additions and 129 deletions

View file

@ -51,24 +51,25 @@ I tentatively (with no real experience designing them) plan on my API being some
*Italicized* = Description *Italicized* = Description
- `/sensor/temperature` - *Returns temperature*
- `/action/light/kill` - *Stops all light activity* - `/action/light/kill` - *Stops all light activity*
- `/action/light/set` - *Change lighting mode, with optional duration* - `/action/light/set` - *Change lighting mode, with optional duration*
- `/action/temperature/kill` - *Stops all heating/cooling, lets the cooker cool to room temperature alone* - `/action/temperature/kill` - *Stops all heating/cooling, lets the cooker cool to room temperature alone*
- `/action/temperature/set` - *Heat/cool to given temperature, then hold. Should allow setting a target heat/cool rate. Should allow setting a hold duration* - `/action/temperature/set` - *Heat/cool to given temperature, then hold. Should allow setting a target heat/cool rate. Should allow setting a hold duration*
- `/routine/cook/list` - *List known cooking routines*
*(proxy to `/settings/cook/recipe/list`)* *(proxy to `/settings/cook/recipe/list`)*
- `/routine/cook/start` - *Start a routine*
- `/routine/cook/kill` - *Kill any current running routine* - `/routine/cook/kill` - *Kill any current running routine*
- `/routine/cook/list` - *List known cooking routines*
- `/routine/cook/schedule/list` - *List any scheduled routines* - `/routine/cook/schedule/list` - *List any scheduled routines*
- `/routine/cook/schedule/set` - *Submit/modify/delete a scheduled routine* - `/routine/cook/schedule/set` - *Submit/modify/delete a scheduled routine*
- `/settings/lighting/list` - *List lighting modes* - `/routine/cook/start` - *Start a routine*
- `/settings/lighting/set` - *Submit/modify/delete a lighting mode* - `/sensor/temperature` - *Returns temperature*
- `/settings/cook/warm/temperature` - *Set post-cook warming temperature*
- `/settings/cook/warm/set` - *Turn post-cook warming on/off*
- `/settings/cook/warm/duration` - *Determine post-cook warming duration*
- `/settings/cook/recipe/list` - *List known cooking routines* - `/settings/cook/recipe/list` - *List known cooking routines*
- `/settings/cook/recipe/set` - *Submit/modify/delete a cooking routine* - `/settings/cook/recipe/set` - *Submit/modify/delete a cooking routine*
- `/settings/cook/warm/duration` - *Determine post-cook warming duration*
- `/settings/cook/warm/set` - *Turn post-cook warming on/off*
- `/settings/cook/warm/temperature` - *Set post-cook warming temperature*
- `/settings/lighting/list` - *List lighting modes*
- `/settings/lighting/set` - *Submit/modify/delete a lighting mode*
- `/settings/time` - *Set/read date and time*
# Cooking schedule definition specifications # Cooking schedule definition specifications

View file

@ -98,6 +98,8 @@ digraph {
subgraph cluster_settings { subgraph cluster_settings {
"/api/settings/time"[label="time"]
subgraph cluster_lighting { subgraph cluster_lighting {
"/api/settings/lighting/list"[label="list"] "/api/settings/lighting/list"[label="list"]
@ -144,23 +146,24 @@ digraph {
// Description checklist /////////////////////////////////////////////////////// // Description checklist ///////////////////////////////////////////////////////
"/api/sensor/temperature"[documented]
"/api/action/light/kill"[documented] "/api/action/light/kill"[documented]
"/api/action/light/set"[documented] "/api/action/light/set"[documented]
"/api/action/temperature/kill"[documented] "/api/action/temperature/kill"[documented]
"/api/action/temperature/set"[documented] "/api/action/temperature/set"[documented]
"/api/routine/cook/list"[documented]
"/api/routine/cook/start"[documented]
"/api/routine/cook/kill"[documented] "/api/routine/cook/kill"[documented]
"/api/routine/cook/list"[documented]
"/api/routine/cook/schedule/list"[documented] "/api/routine/cook/schedule/list"[documented]
"/api/routine/cook/schedule/set"[documented] "/api/routine/cook/schedule/set"[documented]
"/api/settings/lighting/list"[documented] "/api/routine/cook/start"[documented]
"/api/settings/lighting/set"[documented] "/api/sensor/temperature"[documented]
"/api/settings/cook/warm/temperature"[documented]
"/api/settings/cook/warm/set"[documented]
"/api/settings/cook/warm/duration"[documented]
"/api/settings/cook/recipe/list"[documented] "/api/settings/cook/recipe/list"[documented]
"/api/settings/cook/recipe/set"[documented] "/api/settings/cook/recipe/set"[documented]
"/api/settings/cook/warm/duration"[documented]
"/api/settings/cook/warm/set"[documented]
"/api/settings/cook/warm/temperature"[documented]
"/api/settings/lighting/list"[documented]
"/api/settings/lighting/set"[documented]
"/api/settings/time"[documented]
"Temperature"[documented] "Temperature"[documented]
"Heat"[documented] "Heat"[documented]

View file

@ -4,303 +4,309 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304) <!-- Generated by graphviz version 2.40.1 (20161225.0304)
--> -->
<!-- Title: %3 Pages: 1 --> <!-- Title: %3 Pages: 1 -->
<svg width="1361pt" height="1103pt" <svg width="1329pt" height="1073pt"
viewBox="0.00 0.00 1361.00 1103.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> viewBox="0.00 0.00 1329.00 1073.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1099)"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1069)">
<title>%3</title> <title>%3</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1099 1357,-1099 1357,4 -4,4"/> <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1069 1325,-1069 1325,4 -4,4"/>
<g id="clust1" class="cluster"> <g id="clust1" class="cluster">
<title>cluster_key</title> <title>cluster_key</title>
<polygon fill="none" stroke="#000000" points="895.7381,-840.1409 895.7381,-1095.1409 1352.7381,-1095.1409 1352.7381,-840.1409 895.7381,-840.1409"/> <polygon fill="none" stroke="#000000" points="863.7381,-810.1409 863.7381,-1065.1409 1320.7381,-1065.1409 1320.7381,-810.1409 863.7381,-810.1409"/>
<text text-anchor="middle" x="1124.2381" y="-1079.9409" font-family="Times,serif" font-size="14.00" fill="#000000">Key</text> <text text-anchor="middle" x="1092.2381" y="-1049.9409" font-family="Times,serif" font-size="14.00" fill="#000000">Key</text>
</g> </g>
<g id="clust2" class="cluster"> <g id="clust2" class="cluster">
<title>cluster_doc</title> <title>cluster_doc</title>
<polygon fill="none" stroke="#000000" points="1123.4762,-947.7818 1123.4762,-1063.7818 1344.4762,-1063.7818 1344.4762,-947.7818 1123.4762,-947.7818"/> <polygon fill="none" stroke="#000000" points="1091.4762,-917.7818 1091.4762,-1033.7818 1312.4762,-1033.7818 1312.4762,-917.7818 1091.4762,-917.7818"/>
</g> </g>
<g id="clust3" class="cluster"> <g id="clust3" class="cluster">
<title>cluster_sub</title> <title>cluster_sub</title>
<polygon fill="none" stroke="#000000" points="903.7866,-847.6918 903.7866,-993.6918 1080.7866,-993.6918 1080.7866,-847.6918 903.7866,-847.6918"/> <polygon fill="none" stroke="#000000" points="871.7866,-817.6918 871.7866,-963.6918 1048.7866,-963.6918 1048.7866,-817.6918 871.7866,-817.6918"/>
</g> </g>
<g id="clust4" class="cluster"> <g id="clust4" class="cluster">
<title>cluster_directives</title> <title>cluster_directives</title>
<polygon fill="none" stroke="#000000" points="616.2381,-839.6409 616.2381,-1023.6409 812.2381,-1023.6409 812.2381,-839.6409 616.2381,-839.6409"/> <polygon fill="none" stroke="#000000" points="594.2381,-809.6409 594.2381,-993.6409 790.2381,-993.6409 790.2381,-809.6409 594.2381,-809.6409"/>
<text text-anchor="middle" x="714.2381" y="-1008.4409" font-family="Times,serif" font-size="14.00" fill="#000000">Directives</text> <text text-anchor="middle" x="692.2381" y="-978.4409" font-family="Times,serif" font-size="14.00" fill="#000000">Directives</text>
</g> </g>
<g id="clust5" class="cluster"> <g id="clust5" class="cluster">
<title>cluster_api</title> <title>cluster_api</title>
<polygon fill="none" stroke="#000000" points=".2381,-.1409 .2381,-761.1409 840.2381,-761.1409 840.2381,-.1409 .2381,-.1409"/> <polygon fill="none" stroke="#000000" points=".2381,.3591 .2381,-699.6409 808.2381,-699.6409 808.2381,.3591 .2381,.3591"/>
<text text-anchor="middle" x="420.2381" y="-745.9409" font-family="Times,serif" font-size="14.00" fill="#000000">api</text> <text text-anchor="middle" x="404.2381" y="-684.4409" font-family="Times,serif" font-size="14.00" fill="#000000">api</text>
</g> </g>
<g id="clust6" class="cluster"> <g id="clust6" class="cluster">
<title>cluster_action</title> <title>cluster_action</title>
<polygon fill="none" stroke="#000000" points="536.4762,-502.7818 536.4762,-682.7818 832.4762,-682.7818 832.4762,-502.7818 536.4762,-502.7818"/> <polygon fill="none" stroke="#000000" points="504.4762,-441.2818 504.4762,-621.2818 800.4762,-621.2818 800.4762,-441.2818 504.4762,-441.2818"/>
<text text-anchor="middle" x="684.4762" y="-667.5818" font-family="Times,serif" font-size="14.00" fill="#000000">action</text> <text text-anchor="middle" x="652.4762" y="-606.0818" font-family="Times,serif" font-size="14.00" fill="#000000">action</text>
</g> </g>
<g id="clust7" class="cluster"> <g id="clust7" class="cluster">
<title>cluster_light</title> <title>cluster_light</title>
<polygon fill="none" stroke="#000000" points="694.7144,-510.4227 694.7144,-636.4227 824.7144,-636.4227 824.7144,-510.4227 694.7144,-510.4227"/> <polygon fill="none" stroke="#000000" points="662.7144,-448.9227 662.7144,-574.9227 792.7144,-574.9227 792.7144,-448.9227 662.7144,-448.9227"/>
<text text-anchor="middle" x="759.7144" y="-621.2227" font-family="Times,serif" font-size="14.00" fill="#000000">light</text> <text text-anchor="middle" x="727.7144" y="-559.7227" font-family="Times,serif" font-size="14.00" fill="#000000">light</text>
</g> </g>
<g id="clust8" class="cluster"> <g id="clust8" class="cluster">
<title>cluster_temperature</title> <title>cluster_temperature</title>
<polygon fill="none" stroke="#000000" points="544.7144,-525.4227 544.7144,-651.4227 674.7144,-651.4227 674.7144,-525.4227 544.7144,-525.4227"/> <polygon fill="none" stroke="#000000" points="512.7144,-463.9227 512.7144,-589.9227 642.7144,-589.9227 642.7144,-463.9227 512.7144,-463.9227"/>
<text text-anchor="middle" x="609.7144" y="-636.2227" font-family="Times,serif" font-size="14.00" fill="#000000">temperature</text> <text text-anchor="middle" x="577.7144" y="-574.7227" font-family="Times,serif" font-size="14.00" fill="#000000">temperature</text>
</g> </g>
<g id="clust9" class="cluster"> <g id="clust9" class="cluster">
<title>cluster_sensor</title> <title>cluster_sensor</title>
<polygon fill="none" stroke="#000000" points="73.9762,-502.7818 73.9762,-578.7818 196.9762,-578.7818 196.9762,-502.7818 73.9762,-502.7818"/> <polygon fill="none" stroke="#000000" points="38.9762,-441.2818 38.9762,-517.2818 161.9762,-517.2818 161.9762,-441.2818 38.9762,-441.2818"/>
<text text-anchor="middle" x="135.4762" y="-563.5818" font-family="Times,serif" font-size="14.00" fill="#000000">sensor</text> <text text-anchor="middle" x="100.4762" y="-502.0818" font-family="Times,serif" font-size="14.00" fill="#000000">sensor</text>
</g> </g>
<g id="clust10" class="cluster"> <g id="clust10" class="cluster">
<title>cluster_routine</title> <title>cluster_routine</title>
<polygon fill="none" stroke="#000000" points="239.4762,-503.2818 239.4762,-730.2818 469.4762,-730.2818 469.4762,-503.2818 239.4762,-503.2818"/> <polygon fill="none" stroke="#000000" points="225.4762,-441.7818 225.4762,-668.7818 455.4762,-668.7818 455.4762,-441.7818 225.4762,-441.7818"/>
<text text-anchor="middle" x="354.4762" y="-715.0818" font-family="Times,serif" font-size="14.00" fill="#000000">routine</text> <text text-anchor="middle" x="340.4762" y="-653.5818" font-family="Times,serif" font-size="14.00" fill="#000000">routine</text>
</g> </g>
<g id="clust11" class="cluster"> <g id="clust11" class="cluster">
<title>cluster_routine_cook</title> <title>cluster_routine_cook</title>
<polygon fill="none" stroke="#000000" points="247.7144,-510.9227 247.7144,-698.9227 461.7144,-698.9227 461.7144,-510.9227 247.7144,-510.9227"/> <polygon fill="none" stroke="#000000" points="233.7144,-449.4227 233.7144,-637.4227 447.7144,-637.4227 447.7144,-449.4227 233.7144,-449.4227"/>
<text text-anchor="middle" x="354.7144" y="-683.7227" font-family="Times,serif" font-size="14.00" fill="#000000">cook</text> <text text-anchor="middle" x="340.7144" y="-622.2227" font-family="Times,serif" font-size="14.00" fill="#000000">cook</text>
</g> </g>
<g id="clust12" class="cluster"> <g id="clust12" class="cluster">
<title>cluster_schedule</title> <title>cluster_schedule</title>
<polygon fill="none" stroke="#000000" points="255.9525,-526.5636 255.9525,-652.5636 385.9525,-652.5636 385.9525,-526.5636 255.9525,-526.5636"/> <polygon fill="none" stroke="#000000" points="241.9525,-465.0636 241.9525,-591.0636 371.9525,-591.0636 371.9525,-465.0636 241.9525,-465.0636"/>
<text text-anchor="middle" x="320.9525" y="-637.3636" font-family="Times,serif" font-size="14.00" fill="#000000">schedule</text> <text text-anchor="middle" x="306.9525" y="-575.8636" font-family="Times,serif" font-size="14.00" fill="#000000">schedule</text>
</g> </g>
<g id="clust13" class="cluster"> <g id="clust13" class="cluster">
<title>cluster_settings</title> <title>cluster_settings</title>
<polygon fill="none" stroke="#000000" points="8.4762,-7.7818 8.4762,-443.7818 546.4762,-443.7818 546.4762,-7.7818 8.4762,-7.7818"/> <polygon fill="none" stroke="#000000" points="8.4762,-7.2818 8.4762,-387.2818 522.4762,-387.2818 522.4762,-7.2818 8.4762,-7.2818"/>
<text text-anchor="middle" x="277.4762" y="-428.5818" font-family="Times,serif" font-size="14.00" fill="#000000">settings</text> <text text-anchor="middle" x="265.4762" y="-372.0818" font-family="Times,serif" font-size="14.00" fill="#000000">settings</text>
</g> </g>
<g id="clust14" class="cluster"> <g id="clust14" class="cluster">
<title>cluster_lighting</title> <title>cluster_lighting</title>
<polygon fill="none" stroke="#000000" points="408.7144,-15.4227 408.7144,-141.4227 538.7144,-141.4227 538.7144,-15.4227 408.7144,-15.4227"/> <polygon fill="none" stroke="#000000" points="384.7144,-14.9227 384.7144,-140.9227 514.7144,-140.9227 514.7144,-14.9227 384.7144,-14.9227"/>
<text text-anchor="middle" x="473.7144" y="-126.2227" font-family="Times,serif" font-size="14.00" fill="#000000">lighting</text> <text text-anchor="middle" x="449.7144" y="-125.7227" font-family="Times,serif" font-size="14.00" fill="#000000">lighting</text>
</g> </g>
<g id="clust15" class="cluster"> <g id="clust15" class="cluster">
<title>cluster_settings_cook</title> <title>cluster_settings_cook</title>
<polygon fill="none" stroke="#000000" points="16.7144,-71.9227 16.7144,-412.9227 354.7144,-412.9227 354.7144,-71.9227 16.7144,-71.9227"/> <polygon fill="none" stroke="#000000" points="16.7144,-15.4227 16.7144,-356.4227 354.7144,-356.4227 354.7144,-15.4227 16.7144,-15.4227"/>
<text text-anchor="middle" x="185.7144" y="-397.7227" font-family="Times,serif" font-size="14.00" fill="#000000">cook</text> <text text-anchor="middle" x="185.7144" y="-341.2227" font-family="Times,serif" font-size="14.00" fill="#000000">cook</text>
</g> </g>
<g id="clust16" class="cluster"> <g id="clust16" class="cluster">
<title>cluster_warm</title> <title>cluster_warm</title>
<polygon fill="none" stroke="#000000" points="24.4525,-79.5636 24.4525,-221.5636 201.4525,-221.5636 201.4525,-79.5636 24.4525,-79.5636"/> <polygon fill="none" stroke="#000000" points="24.4525,-23.0636 24.4525,-165.0636 201.4525,-165.0636 201.4525,-23.0636 24.4525,-23.0636"/>
<text text-anchor="middle" x="112.9525" y="-206.3636" font-family="Times,serif" font-size="14.00" fill="#000000">warm</text> <text text-anchor="middle" x="112.9525" y="-149.8636" font-family="Times,serif" font-size="14.00" fill="#000000">warm</text>
</g> </g>
<g id="clust17" class="cluster"> <g id="clust17" class="cluster">
<title>cluster_recipe</title> <title>cluster_recipe</title>
<polygon fill="none" stroke="#000000" points="216.9525,-255.5636 216.9525,-381.5636 346.9525,-381.5636 346.9525,-255.5636 216.9525,-255.5636"/> <polygon fill="none" stroke="#000000" points="216.9525,-199.0636 216.9525,-325.0636 346.9525,-325.0636 346.9525,-199.0636 216.9525,-199.0636"/>
<text text-anchor="middle" x="281.9525" y="-366.3636" font-family="Times,serif" font-size="14.00" fill="#000000">recipe</text> <text text-anchor="middle" x="281.9525" y="-309.8636" font-family="Times,serif" font-size="14.00" fill="#000000">recipe</text>
</g> </g>
<!-- Done --> <!-- Done -->
<g id="node1" class="node"> <g id="node1" class="node">
<title>Done</title> <title>Done</title>
<polygon fill="#7fff00" stroke="#000000" points="1159.7144,-1019.4227 1159.7144,-1055.4227 1213.7144,-1055.4227 1213.7144,-1019.4227 1159.7144,-1019.4227"/> <polygon fill="#7fff00" stroke="#000000" points="1127.7144,-989.4227 1127.7144,-1025.4227 1181.7144,-1025.4227 1181.7144,-989.4227 1127.7144,-989.4227"/>
<text text-anchor="middle" x="1186.7144" y="-1033.7227" font-family="Times,serif" font-size="14.00" fill="#000000">Done</text> <text text-anchor="middle" x="1154.7144" y="-1003.7227" font-family="Times,serif" font-size="14.00" fill="#000000">Done</text>
</g> </g>
<!-- Documented --> <!-- Documented -->
<g id="node2" class="node"> <g id="node2" class="node">
<title>Documented</title> <title>Documented</title>
<polygon fill="#caff70" stroke="#000000" points="1229.2144,-1005.4227 1229.2144,-1041.4227 1336.2144,-1041.4227 1336.2144,-1005.4227 1229.2144,-1005.4227"/> <polygon fill="#caff70" stroke="#000000" points="1197.2144,-975.4227 1197.2144,-1011.4227 1304.2144,-1011.4227 1304.2144,-975.4227 1197.2144,-975.4227"/>
<text text-anchor="middle" x="1282.7144" y="-1019.7227" font-family="Times,serif" font-size="14.00" fill="#000000">Documented</text> <text text-anchor="middle" x="1250.7144" y="-989.7227" font-family="Times,serif" font-size="14.00" fill="#000000">Documented</text>
</g> </g>
<!-- Undocumented --> <!-- Undocumented -->
<g id="node3" class="node"> <g id="node3" class="node">
<title>Undocumented</title> <title>Undocumented</title>
<polygon fill="#ff6347" stroke="#000000" points="1131.7144,-956.4227 1131.7144,-992.4227 1257.7144,-992.4227 1257.7144,-956.4227 1131.7144,-956.4227"/> <polygon fill="#ff6347" stroke="#000000" points="1099.7144,-926.4227 1099.7144,-962.4227 1225.7144,-962.4227 1225.7144,-926.4227 1099.7144,-926.4227"/>
<text text-anchor="middle" x="1194.7144" y="-970.7227" font-family="Times,serif" font-size="14.00" fill="#000000">Undocumented</text> <text text-anchor="middle" x="1162.7144" y="-940.7227" font-family="Times,serif" font-size="14.00" fill="#000000">Undocumented</text>
</g> </g>
<!-- Depend on value --> <!-- Depend on value -->
<g id="node4" class="node"> <g id="node4" class="node">
<title>Depend on value</title> <title>Depend on value</title>
<polygon fill="transparent" stroke="#000000" points="911.4052,-855.7921 911.4052,-891.7921 1047.4052,-891.7921 1047.4052,-855.7921 911.4052,-855.7921"/> <polygon fill="transparent" stroke="#000000" points="905.0548,-919.3938 905.0548,-955.3938 1041.0548,-955.3938 1041.0548,-919.3938 905.0548,-919.3938"/>
<text text-anchor="middle" x="979.4052" y="-870.0921" font-family="Times,serif" font-size="14.00" fill="#000000">Depend on value</text> <text text-anchor="middle" x="973.0548" y="-933.6938" font-family="Times,serif" font-size="14.00" fill="#000000">Depend on value</text>
</g> </g>
<!-- Node --> <!-- Node -->
<g id="node7" class="node"> <g id="node7" class="node">
<title>Node</title> <title>Node</title>
<polygon fill="transparent" stroke="#000000" points="1088.799,-884.1636 1088.799,-920.1636 1143.799,-920.1636 1143.799,-884.1636 1088.799,-884.1636"/> <polygon fill="transparent" stroke="#000000" points="1056.799,-854.1636 1056.799,-890.1636 1111.799,-890.1636 1111.799,-854.1636 1056.799,-854.1636"/>
<text text-anchor="middle" x="1116.299" y="-898.4636" font-family="Times,serif" font-size="14.00" fill="#000000">Node</text> <text text-anchor="middle" x="1084.299" y="-868.4636" font-family="Times,serif" font-size="14.00" fill="#000000">Node</text>
</g> </g>
<!-- Depend on value&#45;&gt;Node --> <!-- Depend on value&#45;&gt;Node -->
<g id="edge1" class="edge"> <g id="edge1" class="edge">
<title>Depend on value&#45;&gt;Node</title> <title>Depend on value&#45;&gt;Node</title>
<path fill="none" stroke="#0000ff" d="M1047.451,-887.8947C1058.1938,-890.1212 1068.9497,-892.3504 1078.6602,-894.3629"/> <path fill="none" stroke="#0000ff" d="M1004.0425,-919.2236C1017.5434,-911.3071 1033.4707,-901.9678 1047.5628,-893.7046"/>
<polygon fill="#0000ff" stroke="#0000ff" points="1078.2345,-897.849 1088.7368,-896.4513 1079.6552,-890.9946 1078.2345,-897.849"/> <polygon fill="#0000ff" stroke="#0000ff" points="1049.6584,-896.5332 1056.5144,-888.4557 1046.1176,-890.4947 1049.6584,-896.5332"/>
</g> </g>
<!-- Proxy to value --> <!-- Proxy to value -->
<g id="node5" class="node"> <g id="node5" class="node">
<title>Proxy to value</title> <title>Proxy to value</title>
<polygon fill="transparent" stroke="#000000" points="911.7255,-904.3893 911.7255,-940.3893 1030.7255,-940.3893 1030.7255,-904.3893 911.7255,-904.3893"/> <polygon fill="transparent" stroke="#000000" points="890.7255,-874.3893 890.7255,-910.3893 1009.7255,-910.3893 1009.7255,-874.3893 890.7255,-874.3893"/>
<text text-anchor="middle" x="971.2255" y="-918.6893" font-family="Times,serif" font-size="14.00" fill="#000000">Proxy to value</text> <text text-anchor="middle" x="950.2255" y="-888.6893" font-family="Times,serif" font-size="14.00" fill="#000000">Proxy to value</text>
</g> </g>
<!-- Proxy to value&#45;&gt;Node --> <!-- Proxy to value&#45;&gt;Node -->
<g id="edge2" class="edge"> <g id="edge2" class="edge">
<title>Proxy to value&#45;&gt;Node</title> <title>Proxy to value&#45;&gt;Node</title>
<path fill="none" stroke="#00bfff" d="M1031.0701,-914.046C1047.1486,-911.8044 1064.0858,-909.443 1078.588,-907.4212"/> <path fill="none" stroke="#00bfff" d="M1009.8129,-883.4002C1022.3426,-881.5101 1035.2237,-879.5669 1046.6762,-877.8392"/>
<polygon fill="#00bfff" stroke="#00bfff" points="1079.2495,-910.8629 1088.6704,-906.0155 1078.2828,-903.93 1079.2495,-910.8629"/> <polygon fill="#00bfff" stroke="#00bfff" points="1047.3751,-881.2735 1056.7411,-876.3209 1046.3309,-874.3518 1047.3751,-881.2735"/>
</g> </g>
<!-- Depend on function --> <!-- Depend on function -->
<g id="node6" class="node"> <g id="node6" class="node">
<title>Depend on function</title> <title>Depend on function</title>
<polygon fill="transparent" stroke="#000000" points="915.5548,-949.3938 915.5548,-985.3938 1072.5548,-985.3938 1072.5548,-949.3938 915.5548,-949.3938"/> <polygon fill="transparent" stroke="#000000" points="879.9052,-825.7921 879.9052,-861.7921 1036.9052,-861.7921 1036.9052,-825.7921 879.9052,-825.7921"/>
<text text-anchor="middle" x="994.0548" y="-963.6938" font-family="Times,serif" font-size="14.00" fill="#000000">Depend on function</text> <text text-anchor="middle" x="958.4052" y="-840.0921" font-family="Times,serif" font-size="14.00" fill="#000000">Depend on function</text>
</g> </g>
<!-- Depend on function&#45;&gt;Node --> <!-- Depend on function&#45;&gt;Node -->
<g id="edge3" class="edge"> <g id="edge3" class="edge">
<title>Depend on function&#45;&gt;Node</title> <title>Depend on function&#45;&gt;Node</title>
<path fill="none" stroke="#6495ed" d="M1028.1067,-949.2236C1044.0518,-940.7151 1063.0771,-930.5631 1079.3684,-921.87"/> <path fill="none" stroke="#6495ed" d="M1037.0626,-861.5184C1040.4331,-862.278 1043.7394,-863.0231 1046.9394,-863.7442"/>
<polygon fill="#6495ed" stroke="#6495ed" points="1081.4257,-924.7394 1088.6005,-916.9437 1078.1303,-918.5636 1081.4257,-924.7394"/> <polygon fill="#6495ed" stroke="#6495ed" points="1046.2216,-867.1702 1056.7465,-865.9544 1047.7606,-860.3414 1046.2216,-867.1702"/>
</g> </g>
<!-- Sleep --> <!-- Sleep -->
<g id="node8" class="node"> <g id="node8" class="node">
<title>Sleep</title> <title>Sleep</title>
<polygon fill="#caff70" stroke="#000000" points="708.4762,-938.2818 708.4762,-974.2818 764.4762,-974.2818 764.4762,-938.2818 708.4762,-938.2818"/> <polygon fill="#caff70" stroke="#000000" points="686.4762,-908.2818 686.4762,-944.2818 742.4762,-944.2818 742.4762,-908.2818 686.4762,-908.2818"/>
<text text-anchor="middle" x="736.4762" y="-952.5818" font-family="Times,serif" font-size="14.00" fill="#000000">Sleep</text> <text text-anchor="middle" x="714.4762" y="-922.5818" font-family="Times,serif" font-size="14.00" fill="#000000">Sleep</text>
</g> </g>
<!-- Heat --> <!-- Heat -->
<g id="node9" class="node"> <g id="node9" class="node">
<title>Heat</title> <title>Heat</title>
<polygon fill="#caff70" stroke="#000000" points="750.4762,-848.2818 750.4762,-884.2818 804.4762,-884.2818 804.4762,-848.2818 750.4762,-848.2818"/> <polygon fill="#caff70" stroke="#000000" points="728.4762,-818.2818 728.4762,-854.2818 782.4762,-854.2818 782.4762,-818.2818 728.4762,-818.2818"/>
<text text-anchor="middle" x="777.4762" y="-862.5818" font-family="Times,serif" font-size="14.00" fill="#000000">Heat</text> <text text-anchor="middle" x="755.4762" y="-832.5818" font-family="Times,serif" font-size="14.00" fill="#000000">Heat</text>
</g> </g>
<!-- Cool --> <!-- Cool -->
<g id="node10" class="node"> <g id="node10" class="node">
<title>Cool</title> <title>Cool</title>
<polygon fill="#caff70" stroke="#000000" points="642.4762,-956.2818 642.4762,-992.2818 696.4762,-992.2818 696.4762,-956.2818 642.4762,-956.2818"/> <polygon fill="#caff70" stroke="#000000" points="620.4762,-926.2818 620.4762,-962.2818 674.4762,-962.2818 674.4762,-926.2818 620.4762,-926.2818"/>
<text text-anchor="middle" x="669.4762" y="-970.5818" font-family="Times,serif" font-size="14.00" fill="#000000">Cool</text> <text text-anchor="middle" x="647.4762" y="-940.5818" font-family="Times,serif" font-size="14.00" fill="#000000">Cool</text>
</g> </g>
<!-- Temperature --> <!-- Temperature -->
<g id="node11" class="node"> <g id="node11" class="node">
<title>Temperature</title> <title>Temperature</title>
<polygon fill="#caff70" stroke="#000000" points="624.4762,-890.2818 624.4762,-926.2818 734.4762,-926.2818 734.4762,-890.2818 624.4762,-890.2818"/> <polygon fill="#caff70" stroke="#000000" points="602.4762,-860.2818 602.4762,-896.2818 712.4762,-896.2818 712.4762,-860.2818 602.4762,-860.2818"/>
<text text-anchor="middle" x="679.4762" y="-904.5818" font-family="Times,serif" font-size="14.00" fill="#000000">Temperature</text> <text text-anchor="middle" x="657.4762" y="-874.5818" font-family="Times,serif" font-size="14.00" fill="#000000">Temperature</text>
</g> </g>
<!-- Temperature&#45;&gt;Sleep --> <!-- Temperature&#45;&gt;Sleep -->
<g id="edge4" class="edge"> <g id="edge4" class="edge">
<title>Temperature&#45;&gt;Sleep</title> <title>Temperature&#45;&gt;Sleep</title>
<path fill="none" stroke="#6495ed" d="M701.0255,-926.4285C703.0116,-928.1011 705.0458,-929.814 707.086,-931.5321"/> <path fill="none" stroke="#6495ed" d="M679.0255,-896.4285C681.0116,-898.1011 683.0458,-899.814 685.086,-901.5321"/>
<polygon fill="#6495ed" stroke="#6495ed" points="704.9929,-934.3452 714.8965,-938.1094 709.5019,-928.9908 704.9929,-934.3452"/> <polygon fill="#6495ed" stroke="#6495ed" points="682.9929,-904.3452 692.8965,-908.1094 687.5019,-898.9908 682.9929,-904.3452"/>
</g> </g>
<!-- Temperature&#45;&gt;Heat --> <!-- Temperature&#45;&gt;Heat -->
<g id="edge5" class="edge"> <g id="edge5" class="edge">
<title>Temperature&#45;&gt;Heat</title> <title>Temperature&#45;&gt;Heat</title>
<path fill="none" stroke="#6495ed" d="M721.6058,-890.2262C728.0062,-887.4832 734.5662,-884.6718 740.8371,-881.9843"/> <path fill="none" stroke="#6495ed" d="M699.6058,-860.2262C706.0062,-857.4832 712.5662,-854.6718 718.8371,-851.9843"/>
<polygon fill="#6495ed" stroke="#6495ed" points="742.5764,-885.0468 750.3892,-877.8905 739.819,-878.6128 742.5764,-885.0468"/> <polygon fill="#6495ed" stroke="#6495ed" points="720.5764,-855.0468 728.3892,-847.8905 717.819,-848.6128 720.5764,-855.0468"/>
</g> </g>
<!-- Temperature&#45;&gt;Cool --> <!-- Temperature&#45;&gt;Cool -->
<g id="edge6" class="edge"> <g id="edge6" class="edge">
<title>Temperature&#45;&gt;Cool</title> <title>Temperature&#45;&gt;Cool</title>
<path fill="none" stroke="#6495ed" d="M676.7437,-926.3166C675.8177,-932.428 674.7601,-939.4083 673.7438,-946.1161"/> <path fill="none" stroke="#6495ed" d="M654.7437,-896.3166C653.8177,-902.428 652.7601,-909.4083 651.7438,-916.1161"/>
<polygon fill="#6495ed" stroke="#6495ed" points="670.2431,-945.8573 672.2055,-956.2688 677.1641,-946.906 670.2431,-945.8573"/> <polygon fill="#6495ed" stroke="#6495ed" points="648.2431,-915.8573 650.2055,-926.2688 655.1641,-916.906 648.2431,-915.8573"/>
</g> </g>
<!-- /api/action/light/kill --> <!-- /api/action/light/kill -->
<g id="node12" class="node"> <g id="node12" class="node">
<title>/api/action/light/kill</title> <title>/api/action/light/kill</title>
<polygon fill="#caff70" stroke="#000000" points="702.9525,-519.0636 702.9525,-555.0636 756.9525,-555.0636 756.9525,-519.0636 702.9525,-519.0636"/> <polygon fill="#caff70" stroke="#000000" points="670.9525,-457.5636 670.9525,-493.5636 724.9525,-493.5636 724.9525,-457.5636 670.9525,-457.5636"/>
<text text-anchor="middle" x="729.9525" y="-533.3636" font-family="Times,serif" font-size="14.00" fill="#000000">kill</text> <text text-anchor="middle" x="697.9525" y="-471.8636" font-family="Times,serif" font-size="14.00" fill="#000000">kill</text>
</g> </g>
<!-- /api/action/light/set --> <!-- /api/action/light/set -->
<g id="node13" class="node"> <g id="node13" class="node">
<title>/api/action/light/set</title> <title>/api/action/light/set</title>
<polygon fill="#caff70" stroke="#000000" points="762.9525,-569.0636 762.9525,-605.0636 816.9525,-605.0636 816.9525,-569.0636 762.9525,-569.0636"/> <polygon fill="#caff70" stroke="#000000" points="730.9525,-507.5636 730.9525,-543.5636 784.9525,-543.5636 784.9525,-507.5636 730.9525,-507.5636"/>
<text text-anchor="middle" x="789.9525" y="-583.3636" font-family="Times,serif" font-size="14.00" fill="#000000">set</text> <text text-anchor="middle" x="757.9525" y="-521.8636" font-family="Times,serif" font-size="14.00" fill="#000000">set</text>
</g> </g>
<!-- /api/action/temperature/kill --> <!-- /api/action/temperature/kill -->
<g id="node14" class="node"> <g id="node14" class="node">
<title>/api/action/temperature/kill</title> <title>/api/action/temperature/kill</title>
<polygon fill="#caff70" stroke="#000000" points="612.9525,-584.0636 612.9525,-620.0636 666.9525,-620.0636 666.9525,-584.0636 612.9525,-584.0636"/> <polygon fill="#caff70" stroke="#000000" points="580.9525,-522.5636 580.9525,-558.5636 634.9525,-558.5636 634.9525,-522.5636 580.9525,-522.5636"/>
<text text-anchor="middle" x="639.9525" y="-598.3636" font-family="Times,serif" font-size="14.00" fill="#000000">kill</text> <text text-anchor="middle" x="607.9525" y="-536.8636" font-family="Times,serif" font-size="14.00" fill="#000000">kill</text>
</g> </g>
<!-- /api/action/temperature/set --> <!-- /api/action/temperature/set -->
<g id="node15" class="node"> <g id="node15" class="node">
<title>/api/action/temperature/set</title> <title>/api/action/temperature/set</title>
<polygon fill="#caff70" stroke="#000000" points="552.9525,-534.0636 552.9525,-570.0636 606.9525,-570.0636 606.9525,-534.0636 552.9525,-534.0636"/> <polygon fill="#caff70" stroke="#000000" points="520.9525,-472.5636 520.9525,-508.5636 574.9525,-508.5636 574.9525,-472.5636 520.9525,-472.5636"/>
<text text-anchor="middle" x="579.9525" y="-548.3636" font-family="Times,serif" font-size="14.00" fill="#000000">set</text> <text text-anchor="middle" x="547.9525" y="-486.8636" font-family="Times,serif" font-size="14.00" fill="#000000">set</text>
</g> </g>
<!-- /api/sensor/temperature --> <!-- /api/sensor/temperature -->
<g id="node16" class="node"> <g id="node16" class="node">
<title>/api/sensor/temperature</title> <title>/api/sensor/temperature</title>
<polygon fill="#caff70" stroke="#000000" points="81.7144,-511.4227 81.7144,-547.4227 188.7144,-547.4227 188.7144,-511.4227 81.7144,-511.4227"/> <polygon fill="#caff70" stroke="#000000" points="46.7144,-449.9227 46.7144,-485.9227 153.7144,-485.9227 153.7144,-449.9227 46.7144,-449.9227"/>
<text text-anchor="middle" x="135.2144" y="-525.7227" font-family="Times,serif" font-size="14.00" fill="#000000">temperature</text> <text text-anchor="middle" x="100.2144" y="-464.2227" font-family="Times,serif" font-size="14.00" fill="#000000">temperature</text>
</g> </g>
<!-- /api/routine/cook/list --> <!-- /api/routine/cook/list -->
<g id="node17" class="node"> <g id="node17" class="node">
<title>/api/routine/cook/list</title> <title>/api/routine/cook/list</title>
<polygon fill="#caff70" stroke="#000000" points="399.9525,-631.5636 399.9525,-667.5636 453.9525,-667.5636 453.9525,-631.5636 399.9525,-631.5636"/> <polygon fill="#caff70" stroke="#000000" points="385.9525,-514.0636 385.9525,-550.0636 439.9525,-550.0636 439.9525,-514.0636 385.9525,-514.0636"/>
<text text-anchor="middle" x="426.9525" y="-645.8636" font-family="Times,serif" font-size="14.00" fill="#000000">list</text> <text text-anchor="middle" x="412.9525" y="-528.3636" font-family="Times,serif" font-size="14.00" fill="#000000">list</text>
</g> </g>
<!-- /api/settings/cook/recipe/list --> <!-- /api/settings/cook/recipe/list -->
<g id="node27" class="node"> <g id="node28" class="node">
<title>/api/settings/cook/recipe/list</title> <title>/api/settings/cook/recipe/list</title>
<polygon fill="#caff70" stroke="#000000" points="225.1906,-264.2044 225.1906,-300.2044 279.1906,-300.2044 279.1906,-264.2044 225.1906,-264.2044"/> <polygon fill="#caff70" stroke="#000000" points="225.1906,-207.7044 225.1906,-243.7044 279.1906,-243.7044 279.1906,-207.7044 225.1906,-207.7044"/>
<text text-anchor="middle" x="252.1906" y="-278.5044" font-family="Times,serif" font-size="14.00" fill="#000000">list</text> <text text-anchor="middle" x="252.1906" y="-222.0044" font-family="Times,serif" font-size="14.00" fill="#000000">list</text>
</g> </g>
<!-- /api/routine/cook/list&#45;&gt;/api/settings/cook/recipe/list --> <!-- /api/routine/cook/list&#45;&gt;/api/settings/cook/recipe/list -->
<g id="edge7" class="edge"> <g id="edge7" class="edge">
<title>/api/routine/cook/list&#45;&gt;/api/settings/cook/recipe/list</title> <title>/api/routine/cook/list&#45;&gt;/api/settings/cook/recipe/list</title>
<path fill="none" stroke="#00bfff" d="M412.0905,-631.5576C407.5471,-625.6181 402.7352,-618.848 398.8725,-612.2836 336.3203,-505.9794 283.2995,-368.175 262.0894,-310.0284"/> <path fill="none" stroke="#00bfff" d="M398.2776,-513.9445C393.7443,-507.9989 388.8909,-501.2539 384.8725,-494.7836 332.2846,-410.1097 327.5023,-384.1591 284.1106,-294.4244 277.5392,-280.8348 270.4456,-265.6207 264.6182,-252.969"/>
<polygon fill="#00bfff" stroke="#00bfff" points="265.3133,-308.6514 258.6179,-300.4403 258.7314,-311.0345 265.3133,-308.6514"/> <polygon fill="#00bfff" stroke="#00bfff" points="267.791,-251.4912 260.4384,-243.8629 261.4292,-254.4113 267.791,-251.4912"/>
</g> </g>
<!-- /api/routine/cook/start --> <!-- /api/routine/cook/start -->
<g id="node18" class="node"> <g id="node18" class="node">
<title>/api/routine/cook/start</title> <title>/api/routine/cook/start</title>
<polygon fill="#caff70" stroke="#000000" points="399.9525,-519.5636 399.9525,-555.5636 453.9525,-555.5636 453.9525,-519.5636 399.9525,-519.5636"/> <polygon fill="#caff70" stroke="#000000" points="385.9525,-458.0636 385.9525,-494.0636 439.9525,-494.0636 439.9525,-458.0636 385.9525,-458.0636"/>
<text text-anchor="middle" x="426.9525" y="-533.8636" font-family="Times,serif" font-size="14.00" fill="#000000">start</text> <text text-anchor="middle" x="412.9525" y="-472.3636" font-family="Times,serif" font-size="14.00" fill="#000000">start</text>
</g> </g>
<!-- /api/routine/cook/kill --> <!-- /api/routine/cook/kill -->
<g id="node19" class="node"> <g id="node19" class="node">
<title>/api/routine/cook/kill</title> <title>/api/routine/cook/kill</title>
<polygon fill="#caff70" stroke="#000000" points="399.9525,-575.5636 399.9525,-611.5636 453.9525,-611.5636 453.9525,-575.5636 399.9525,-575.5636"/> <polygon fill="#caff70" stroke="#000000" points="385.9525,-570.0636 385.9525,-606.0636 439.9525,-606.0636 439.9525,-570.0636 385.9525,-570.0636"/>
<text text-anchor="middle" x="426.9525" y="-589.8636" font-family="Times,serif" font-size="14.00" fill="#000000">kill</text> <text text-anchor="middle" x="412.9525" y="-584.3636" font-family="Times,serif" font-size="14.00" fill="#000000">kill</text>
</g> </g>
<!-- /api/routine/cook/schedule/list --> <!-- /api/routine/cook/schedule/list -->
<g id="node20" class="node"> <g id="node20" class="node">
<title>/api/routine/cook/schedule/list</title> <title>/api/routine/cook/schedule/list</title>
<polygon fill="#caff70" stroke="#000000" points="324.1906,-585.2044 324.1906,-621.2044 378.1906,-621.2044 378.1906,-585.2044 324.1906,-585.2044"/> <polygon fill="#caff70" stroke="#000000" points="250.1906,-473.7044 250.1906,-509.7044 304.1906,-509.7044 304.1906,-473.7044 250.1906,-473.7044"/>
<text text-anchor="middle" x="351.1906" y="-599.5044" font-family="Times,serif" font-size="14.00" fill="#000000">list</text> <text text-anchor="middle" x="277.1906" y="-488.0044" font-family="Times,serif" font-size="14.00" fill="#000000">list</text>
</g> </g>
<!-- /api/routine/cook/schedule/set --> <!-- /api/routine/cook/schedule/set -->
<g id="node21" class="node"> <g id="node21" class="node">
<title>/api/routine/cook/schedule/set</title> <title>/api/routine/cook/schedule/set</title>
<polygon fill="#caff70" stroke="#000000" points="264.1906,-535.2044 264.1906,-571.2044 318.1906,-571.2044 318.1906,-535.2044 264.1906,-535.2044"/> <polygon fill="#caff70" stroke="#000000" points="310.1906,-523.7044 310.1906,-559.7044 364.1906,-559.7044 364.1906,-523.7044 310.1906,-523.7044"/>
<text text-anchor="middle" x="291.1906" y="-549.5044" font-family="Times,serif" font-size="14.00" fill="#000000">set</text> <text text-anchor="middle" x="337.1906" y="-538.0044" font-family="Times,serif" font-size="14.00" fill="#000000">set</text>
</g>
<!-- /api/settings/time -->
<g id="node22" class="node">
<title>/api/settings/time</title>
<polygon fill="#ff6347" stroke="#000000" points="384.7144,-176.9227 384.7144,-212.9227 438.7144,-212.9227 438.7144,-176.9227 384.7144,-176.9227"/>
<text text-anchor="middle" x="411.7144" y="-191.2227" font-family="Times,serif" font-size="14.00" fill="#000000">time</text>
</g> </g>
<!-- /api/settings/lighting/list --> <!-- /api/settings/lighting/list -->
<g id="node22" class="node"> <g id="node23" class="node">
<title>/api/settings/lighting/list</title> <title>/api/settings/lighting/list</title>
<polygon fill="#caff70" stroke="#000000" points="416.9525,-24.0636 416.9525,-60.0636 470.9525,-60.0636 470.9525,-24.0636 416.9525,-24.0636"/> <polygon fill="#caff70" stroke="#000000" points="392.9525,-23.5636 392.9525,-59.5636 446.9525,-59.5636 446.9525,-23.5636 392.9525,-23.5636"/>
<text text-anchor="middle" x="443.9525" y="-38.3636" font-family="Times,serif" font-size="14.00" fill="#000000">list</text> <text text-anchor="middle" x="419.9525" y="-37.8636" font-family="Times,serif" font-size="14.00" fill="#000000">list</text>
</g> </g>
<!-- /api/settings/lighting/set --> <!-- /api/settings/lighting/set -->
<g id="node23" class="node"> <g id="node24" class="node">
<title>/api/settings/lighting/set</title> <title>/api/settings/lighting/set</title>
<polygon fill="#caff70" stroke="#000000" points="476.9525,-74.0636 476.9525,-110.0636 530.9525,-110.0636 530.9525,-74.0636 476.9525,-74.0636"/> <polygon fill="#caff70" stroke="#000000" points="452.9525,-73.5636 452.9525,-109.5636 506.9525,-109.5636 506.9525,-73.5636 452.9525,-73.5636"/>
<text text-anchor="middle" x="503.9525" y="-88.3636" font-family="Times,serif" font-size="14.00" fill="#000000">set</text> <text text-anchor="middle" x="479.9525" y="-87.8636" font-family="Times,serif" font-size="14.00" fill="#000000">set</text>
</g> </g>
<!-- /api/settings/cook/warm/temperature --> <!-- /api/settings/cook/warm/temperature -->
<g id="node24" class="node"> <g id="node25" class="node">
<title>/api/settings/cook/warm/temperature</title> <title>/api/settings/cook/warm/temperature</title>
<polygon fill="#caff70" stroke="#000000" points="32.1906,-88.2044 32.1906,-124.2044 139.1906,-124.2044 139.1906,-88.2044 32.1906,-88.2044"/> <polygon fill="#caff70" stroke="#000000" points="32.1906,-31.7044 32.1906,-67.7044 139.1906,-67.7044 139.1906,-31.7044 32.1906,-31.7044"/>
<text text-anchor="middle" x="85.6906" y="-102.5044" font-family="Times,serif" font-size="14.00" fill="#000000">temperature</text> <text text-anchor="middle" x="85.6906" y="-46.0044" font-family="Times,serif" font-size="14.00" fill="#000000">temperature</text>
</g> </g>
<!-- /api/settings/cook/warm/set --> <!-- /api/settings/cook/warm/set -->
<g id="node25" class="node"> <g id="node26" class="node">
<title>/api/settings/cook/warm/set</title> <title>/api/settings/cook/warm/set</title>
<polygon fill="#caff70" stroke="#000000" points="50.6906,-154.2044 50.6906,-190.2044 104.6906,-190.2044 104.6906,-154.2044 50.6906,-154.2044"/> <polygon fill="#caff70" stroke="#000000" points="50.6906,-97.7044 50.6906,-133.7044 104.6906,-133.7044 104.6906,-97.7044 50.6906,-97.7044"/>
<text text-anchor="middle" x="77.6906" y="-168.5044" font-family="Times,serif" font-size="14.00" fill="#000000">set</text> <text text-anchor="middle" x="77.6906" y="-112.0044" font-family="Times,serif" font-size="14.00" fill="#000000">set</text>
</g> </g>
<!-- /api/settings/cook/warm/duration --> <!-- /api/settings/cook/warm/duration -->
<g id="node26" class="node"> <g id="node27" class="node">
<title>/api/settings/cook/warm/duration</title> <title>/api/settings/cook/warm/duration</title>
<polygon fill="#caff70" stroke="#000000" points="116.1906,-136.2044 116.1906,-172.2044 193.1906,-172.2044 193.1906,-136.2044 116.1906,-136.2044"/> <polygon fill="#caff70" stroke="#000000" points="116.1906,-79.7044 116.1906,-115.7044 193.1906,-115.7044 193.1906,-79.7044 116.1906,-79.7044"/>
<text text-anchor="middle" x="154.6906" y="-150.5044" font-family="Times,serif" font-size="14.00" fill="#000000">duration</text> <text text-anchor="middle" x="154.6906" y="-94.0044" font-family="Times,serif" font-size="14.00" fill="#000000">duration</text>
</g> </g>
<!-- /api/settings/cook/recipe/set --> <!-- /api/settings/cook/recipe/set -->
<g id="node28" class="node"> <g id="node29" class="node">
<title>/api/settings/cook/recipe/set</title> <title>/api/settings/cook/recipe/set</title>
<polygon fill="#caff70" stroke="#000000" points="285.1906,-314.2044 285.1906,-350.2044 339.1906,-350.2044 339.1906,-314.2044 285.1906,-314.2044"/> <polygon fill="#caff70" stroke="#000000" points="285.1906,-257.7044 285.1906,-293.7044 339.1906,-293.7044 339.1906,-257.7044 285.1906,-257.7044"/>
<text text-anchor="middle" x="312.1906" y="-328.5044" font-family="Times,serif" font-size="14.00" fill="#000000">set</text> <text text-anchor="middle" x="312.1906" y="-272.0044" font-family="Times,serif" font-size="14.00" fill="#000000">set</text>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB