{
  "name": "solar-water-pump-controller",
  "patches": {
    "@/20x4-display-driver": {
      "links": {
        "BkGz96UXP": {
          "id": "BkGz96UXP",
          "input": {
            "nodeId": "Sk_y9pIQw",
            "pinKey": "BJlHojaWZ"
          },
          "output": {
            "nodeId": "HJT-96ImD",
            "pinKey": "__out__"
          }
        },
        "BkclxsxgqZw": {
          "id": "BkclxsxgqZw",
          "input": {
            "nodeId": "S12eoxxc-D",
            "pinKey": "r1StrSrl7S"
          },
          "output": {
            "nodeId": "r1Fejge5Ww",
            "pinKey": "BygFrrHgXr"
          }
        },
        "ByRqyTIQw": {
          "id": "ByRqyTIQw",
          "input": {
            "nodeId": "rJk_kt3WP",
            "pinKey": "BkeKcj6ZZ-$1"
          },
          "output": {
            "nodeId": "rkOYy68Qw",
            "pinKey": "r1H_oipZb"
          }
        },
        "Bybggixe5Zw": {
          "id": "Bybggixe5Zw",
          "input": {
            "nodeId": "B1mxolxcbv",
            "pinKey": "r1StrSrl7S"
          },
          "output": {
            "nodeId": "SkMxjxl9WD",
            "pinKey": "BygFrrHgXr"
          }
        },
        "Byc3cniXw": {
          "id": "Byc3cniXw",
          "input": {
            "nodeId": "Hyoec3s7P",
            "pinKey": "SJHSSZ8f3f"
          },
          "output": {
            "nodeId": "r1j3i3U7v",
            "pinKey": "__out__"
          }
        },
        "Bymeljlgq-P": {
          "id": "Bymeljlgq-P",
          "input": {
            "nodeId": "HyVxsll5Zv",
            "pinKey": "Hkqu9oaWb"
          },
          "output": {
            "nodeId": "BkZgjgxcZD",
            "pinKey": "H1wh06BEV"
          }
        },
        "H1DxeoelqbP": {
          "id": "H1DxeoelqbP",
          "input": {
            "nodeId": "r1Fejge5Ww",
            "pinKey": "r1StrSrl7S"
          },
          "output": {
            "nodeId": "B1mxolxcbv",
            "pinKey": "BygFrrHgXr"
          }
        },
        "HJGglolxc-D": {
          "id": "HJGglolxc-D",
          "input": {
            "nodeId": "SkMxjxl9WD",
            "pinKey": "r1StrSrl7S"
          },
          "output": {
            "nodeId": "Bkxoxg5bv",
            "pinKey": "Skzk0Fm1mH"
          }
        },
        "HJHWswgzD": {
          "id": "HJHWswgzD",
          "input": {
            "nodeId": "rJk_kt3WP",
            "pinKey": "Hkqu9oaWb"
          },
          "output": {
            "nodeId": "BJ1gxoex5WP",
            "pinKey": "r1g3WLf2G"
          }
        },
        "Hk_lxjexqbD": {
          "id": "Hk_lxjexqbD",
          "input": {
            "nodeId": "r1Fejge5Ww",
            "pinKey": "rJ-trBSlmB"
          },
          "output": {
            "nodeId": "Sy5gsexc-P",
            "pinKey": "rksccsp-W"
          }
        },
        "Hy2xeoxxq-w": {
          "id": "Hy2xeoxxq-w",
          "input": {
            "nodeId": "BJ1gxoex5WP",
            "pinKey": "rkhYW8f3f"
          },
          "output": {
            "nodeId": "Hyxegsxe5Ww",
            "pinKey": "H1wh06BEV"
          }
        },
        "HyB7daUXD": {
          "id": "HyB7daUXD",
          "input": {
            "nodeId": "SyOejeg5ZD",
            "pinKey": "BkeKcj6ZZ"
          },
          "output": {
            "nodeId": "B1bQdaLmw",
            "pinKey": "r1H_oipZb"
          }
        },
        "HyRglsll5WP": {
          "id": "HyRglsll5WP",
          "input": {
            "nodeId": "BJ1gxoex5WP",
            "pinKey": "SJHSSZ8f3f"
          },
          "output": {
            "nodeId": "BkTloxx9-D",
            "pinKey": "__out__"
          }
        },
        "Hyseloeg5Wv": {
          "id": "Hyseloeg5Wv",
          "input": {
            "nodeId": "BJ1gxoex5WP",
            "pinKey": "ry4tZ8Gnf"
          },
          "output": {
            "nodeId": "rkRgiglc-P",
            "pinKey": "H1wh06BEV"
          }
        },
        "S1a6cnjQP": {
          "id": "S1a6cnjQP",
          "input": {
            "nodeId": "rJk_kt3WP",
            "pinKey": "BkeKcj6ZZ-$2"
          },
          "output": {
            "nodeId": "Hyoec3s7P",
            "pinKey": "r1g3WLf2G"
          }
        },
        "S1guda8Xw": {
          "id": "S1guda8Xw",
          "input": {
            "nodeId": "B1bQdaLmw",
            "pinKey": "BJlHojaWZ"
          },
          "output": {
            "nodeId": "HJELdaLmD",
            "pinKey": "__out__"
          }
        },
        "S1wrRhUQw": {
          "id": "S1wrRhUQw",
          "input": {
            "nodeId": "Sy5gsexc-P",
            "pinKey": "BkeKcj6ZZ"
          },
          "output": {
            "nodeId": "rkDNAhU7D",
            "pinKey": "__out__"
          }
        },
        "SJYvtuRGw": {
          "id": "SJYvtuRGw",
          "input": {
            "nodeId": "rJk_kt3WP",
            "pinKey": "BkeKcj6ZZ"
          },
          "output": {
            "nodeId": "rJ-PYOAMw",
            "pinKey": "B1x2RV3eZ"
          }
        },
        "SkIxljge9bP": {
          "id": "SkIxljge9bP",
          "input": {
            "nodeId": "B1mxolxcbv",
            "pinKey": "rJ-trBSlmB"
          },
          "output": {
            "nodeId": "SyOejeg5ZD",
            "pinKey": "rksccsp-W"
          }
        },
        "SkSlxseg9bw": {
          "id": "SkSlxseg9bw",
          "input": {
            "nodeId": "SyOejeg5ZD",
            "pinKey": "Hkqu9oaWb"
          },
          "output": {
            "nodeId": "SJegsge9Wv",
            "pinKey": "H1wh06BEV"
          }
        },
        "SkVlloee5Zw": {
          "id": "SkVlloee5Zw",
          "input": {
            "nodeId": "SkMxjxl9WD",
            "pinKey": "rJ-trBSlmB"
          },
          "output": {
            "nodeId": "HyVxsll5Zv",
            "pinKey": "rksccsp-W"
          }
        },
        "r1Yexjlxc-v": {
          "id": "r1Yexjlxc-v",
          "input": {
            "nodeId": "Sy5gsexc-P",
            "pinKey": "Hkqu9oaWb"
          },
          "output": {
            "nodeId": "HJsgixlcWw",
            "pinKey": "H1wh06BEV"
          }
        },
        "rk9cy6U7w": {
          "id": "rk9cy6U7w",
          "input": {
            "nodeId": "rkOYy68Qw",
            "pinKey": "BJlHojaWZ"
          },
          "output": {
            "nodeId": "S1TP1p8Qv",
            "pinKey": "__out__"
          }
        },
        "rkdzq6LQw": {
          "id": "rkdzq6LQw",
          "input": {
            "nodeId": "HyVxsll5Zv",
            "pinKey": "BkeKcj6ZZ"
          },
          "output": {
            "nodeId": "Sk_y9pIQw",
            "pinKey": "r1H_oipZb"
          }
        },
        "ryyhCPgzP": {
          "id": "ryyhCPgzP",
          "input": {
            "nodeId": "S12eoxxc-D",
            "pinKey": "rJ-trBSlmB"
          },
          "output": {
            "nodeId": "rJk_kt3WP",
            "pinKey": "rksccsp-W"
          }
        }
      },
      "nodes": {
        "B1bQdaLmw": {
          "boundLiterals": {
            "HJTIija-W": "1"
          },
          "id": "B1bQdaLmw",
          "position": {
            "x": 4,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/core/format-number"
        },
        "B1mxolxcbv": {
          "boundLiterals": {
            "Bk4KSSrxXr": "1",
            "SJKHrSeQH": "Continuously"
          },
          "id": "B1mxolxcbv",
          "position": {
            "x": -1,
            "y": 5,
            "units": "slots"
          },
          "type": "xod-dev/text-lcd/print-at"
        },
        "BJ1gxoex5WP": {
          "id": "BJ1gxoex5WP",
          "position": {
            "x": 8,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/core/nth-input(string)"
        },
        "BkTloxx9-D": {
          "id": "BkTloxx9-D",
          "label": "pump",
          "position": {
            "x": 8,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-boolean"
        },
        "BkZgjgxcZD": {
          "boundLiterals": {
            "H1wh06BEV": "\"main panel temp:\""
          },
          "id": "BkZgjgxcZD",
          "position": {
            "x": -2,
            "y": 2,
            "units": "slots"
          },
          "size": {
            "height": 1,
            "width": 2,
            "units": "slots"
          },
          "type": "xod/debug/tweak-string-16"
        },
        "Bkxoxg5bv": {
          "boundLiterals": {
            "B1Ak971XS": "D10",
            "BJ-JCKXJmr": "20",
            "BJMRJqQ1Xr": "D9",
            "H1e01q7kXr": "D12",
            "Syb0J5XymB": "D11",
            "r1X0y5XkQS": "D8",
            "rJ4Ayq7ymH": "D13",
            "rJxy0YmkXS": "4"
          },
          "id": "Bkxoxg5bv",
          "position": {
            "x": -9,
            "y": 1,
            "units": "slots"
          },
          "type": "xod-dev/text-lcd/text-lcd-parallel-device"
        },
        "HJELdaLmD": {
          "id": "HJELdaLmD",
          "label": "tub",
          "position": {
            "x": 4,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-number"
        },
        "HJT-96ImD": {
          "id": "HJT-96ImD",
          "label": "panel",
          "position": {
            "x": 0,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-number"
        },
        "HJsgixlcWw": {
          "boundLiterals": {
            "H1wh06BEV": "\" rtn water temp:\""
          },
          "id": "HJsgixlcWw",
          "position": {
            "x": 6,
            "y": 2,
            "units": "slots"
          },
          "size": {
            "height": 1,
            "width": 3,
            "units": "slots"
          },
          "type": "xod/debug/tweak-string-16"
        },
        "HyVxsll5Zv": {
          "id": "HyVxsll5Zv",
          "position": {
            "x": -1,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/core/concat"
        },
        "Hyoec3s7P": {
          "boundLiterals": {
            "rkhYW8f3f": "\" wtr\"",
            "ry4tZ8Gnf": "\" pnl\""
          },
          "id": "Hyoec3s7P",
          "position": {
            "x": 14,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/core/nth-input(string)"
        },
        "Hyxegsxe5Ww": {
          "boundLiterals": {
            "H1wh06BEV": "\"pump on  \""
          },
          "id": "Hyxegsxe5Ww",
          "position": {
            "x": 12,
            "y": 3,
            "units": "slots"
          },
          "size": {
            "height": 1,
            "width": 2,
            "units": "slots"
          },
          "type": "xod/debug/tweak-string-16"
        },
        "S12eoxxc-D": {
          "boundLiterals": {
            "Bk4KSSrxXr": "3",
            "SJKHrSeQH": "Continuously",
            "SylLSSgmr": "0"
          },
          "id": "S12eoxxc-D",
          "position": {
            "x": 5,
            "y": 7,
            "units": "slots"
          },
          "type": "xod-dev/text-lcd/print-at"
        },
        "S1TP1p8Qv": {
          "id": "S1TP1p8Qv",
          "label": "hyst",
          "position": {
            "x": 11,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-number"
        },
        "SJegsge9Wv": {
          "boundLiterals": {
            "H1wh06BEV": "\"   hot tub temp:\""
          },
          "id": "SJegsge9Wv",
          "position": {
            "x": 3,
            "y": 1,
            "units": "slots"
          },
          "size": {
            "height": 1,
            "width": 3,
            "units": "slots"
          },
          "type": "xod/debug/tweak-string-16"
        },
        "SkMxjxl9WD": {
          "boundLiterals": {
            "SJKHrSeQH": "Continuously"
          },
          "id": "SkMxjxl9WD",
          "position": {
            "x": -5,
            "y": 4,
            "units": "slots"
          },
          "type": "xod-dev/text-lcd/print-at"
        },
        "Sk_y9pIQw": {
          "boundLiterals": {
            "HJTIija-W": "1"
          },
          "id": "Sk_y9pIQw",
          "position": {
            "x": 0,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/core/format-number"
        },
        "Sy5gsexc-P": {
          "id": "Sy5gsexc-P",
          "position": {
            "x": 6,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/core/concat"
        },
        "SyOejeg5ZD": {
          "id": "SyOejeg5ZD",
          "position": {
            "x": 3,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/core/concat"
        },
        "r1Fejge5Ww": {
          "boundLiterals": {
            "Bk4KSSrxXr": "2",
            "SJKHrSeQH": "Continuously"
          },
          "id": "r1Fejge5Ww",
          "position": {
            "x": 2,
            "y": 6,
            "units": "slots"
          },
          "type": "xod-dev/text-lcd/print-at"
        },
        "r1j3i3U7v": {
          "id": "r1j3i3U7v",
          "label": "set",
          "position": {
            "x": 14,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-boolean"
        },
        "rJ-PYOAMw": {
          "boundLiterals": {
            "B1x2RV3eZ": "\"hyst:\""
          },
          "id": "rJ-PYOAMw",
          "position": {
            "x": 10,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/core/constant-string"
        },
        "rJk_kt3WP": {
          "arityLevel": 3,
          "id": "rJk_kt3WP",
          "position": {
            "x": 9,
            "y": 6,
            "units": "slots"
          },
          "type": "xod/core/concat"
        },
        "rkDNAhU7D": {
          "id": "rkDNAhU7D",
          "label": "wt",
          "position": {
            "x": 7,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-number"
        },
        "rkOYy68Qw": {
          "boundLiterals": {
            "HJTIija-W": "0"
          },
          "id": "rkOYy68Qw",
          "position": {
            "x": 11,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/core/format-number"
        },
        "rkRgiglc-P": {
          "boundLiterals": {
            "H1wh06BEV": "\"pump off \""
          },
          "id": "rkRgiglc-P",
          "position": {
            "x": 9,
            "y": 3,
            "units": "slots"
          },
          "size": {
            "height": 1,
            "width": 2,
            "units": "slots"
          },
          "type": "xod/debug/tweak-string-16"
        }
      },
      "path": "@/20x4-display-driver"
    },
    "@/freeze-input": {
      "links": {
        "ByYEnqGXv": {
          "id": "ByYEnqGXv",
          "input": {
            "nodeId": "Sy90s5zXw",
            "pinKey": "BypX80uSD1Z"
          },
          "output": {
            "nodeId": "Skcen5MXD",
            "pinKey": "__out__"
          }
        },
        "Byr43qGmD": {
          "id": "Byr43qGmD",
          "input": {
            "nodeId": "SJQmh5z7D",
            "pinKey": "BkrwKrGhG"
          },
          "output": {
            "nodeId": "Skcen5MXD",
            "pinKey": "__out__"
          }
        },
        "SJxt29zQv": {
          "id": "SJxt29zQv",
          "input": {
            "nodeId": "BkjjiqfXD",
            "pinKey": "S1yZIA_rDJZ"
          },
          "output": {
            "nodeId": "Hkn_h9fQv",
            "pinKey": "__out__"
          }
        },
        "Sk9NlxN7w": {
          "id": "Sk9NlxN7w",
          "input": {
            "nodeId": "SyENgl47P",
            "pinKey": "BJlHojaWZ"
          },
          "output": {
            "nodeId": "Sy90s5zXw",
            "pinKey": "HyRmUCdBDkZ"
          }
        },
        "SyHgpqGQv": {
          "id": "SyHgpqGQv",
          "input": {
            "nodeId": "r1llT5M7v",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "SJQmh5z7D",
            "pinKey": "r1ctYrM3G"
          }
        },
        "SyNB3qMQP": {
          "id": "SyNB3qMQP",
          "input": {
            "nodeId": "SJQmh5z7D",
            "pinKey": "SJ-BNy8s2G"
          },
          "output": {
            "nodeId": "BkjjiqfXD",
            "pinKey": "S13xLCuHvkW"
          }
        },
        "r1UBbgN7P": {
          "id": "r1UBbgN7P",
          "input": {
            "nodeId": "H11Oeg4XP",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "SyENgl47P",
            "pinKey": "r1H_oipZb"
          }
        },
        "rygV39Mmv": {
          "id": "rygV39Mmv",
          "input": {
            "nodeId": "SJQmh5z7D",
            "pinKey": "HypuFHG3z"
          },
          "output": {
            "nodeId": "Sy90s5zXw",
            "pinKey": "HyRmUCdBDkZ"
          }
        }
      },
      "nodes": {
        "BkjjiqfXD": {
          "boundLiterals": {
            "r1AgIROHDJW": "0",
            "ryTeUROHD1b": "1"
          },
          "id": "BkjjiqfXD",
          "position": {
            "x": 5,
            "y": 2,
            "units": "slots"
          },
          "type": "xod/core/if-else"
        },
        "H11Oeg4XP": {
          "id": "H11Oeg4XP",
          "label": "FZN",
          "position": {
            "x": 10,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-string"
        },
        "Hkn_h9fQv": {
          "id": "Hkn_h9fQv",
          "label": "SETI",
          "position": {
            "x": 5,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-boolean"
        },
        "SJQmh5z7D": {
          "id": "SJQmh5z7D",
          "position": {
            "x": 7,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/core/nth-input"
        },
        "Skcen5MXD": {
          "id": "Skcen5MXD",
          "label": "PANI",
          "position": {
            "x": 8,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-number"
        },
        "Sy90s5zXw": {
          "boundLiterals": {
            "rkJ4URuHDJ-": "5"
          },
          "id": "Sy90s5zXw",
          "position": {
            "x": 9,
            "y": 2,
            "units": "slots"
          },
          "type": "xod/core/subtract"
        },
        "SyENgl47P": {
          "boundLiterals": {
            "HJTIija-W": "1"
          },
          "id": "SyENgl47P",
          "position": {
            "x": 10,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/core/format-number"
        },
        "r1llT5M7v": {
          "id": "r1llT5M7v",
          "label": "PNLO",
          "position": {
            "x": 8,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-number"
        }
      },
      "path": "@/freeze-input"
    },
    "@/main": {
      "comments": {
        "BJK6bmZVw": {
          "content": "False = normal mode\n\nTrue = Debug mode",
          "id": "BJK6bmZVw",
          "position": {
            "x": -10,
            "y": -3,
            "units": "slots"
          },
          "size": {
            "height": 1,
            "width": 4,
            "units": "slots"
          }
        },
        "H1Y9f7WED": {
          "content": "Panel temp in debug mode",
          "id": "H1Y9f7WED",
          "position": {
            "x": 0,
            "y": -4,
            "units": "slots"
          },
          "size": {
            "height": 1,
            "width": 2,
            "units": "slots"
          }
        },
        "SyTTGXb4D": {
          "content": "Water temp in debug mode",
          "id": "SyTTGXb4D",
          "position": {
            "x": 3,
            "y": -4,
            "units": "slots"
          },
          "size": {
            "height": 1,
            "width": 2,
            "units": "slots"
          }
        },
        "ryimfXZ4w": {
          "content": "Tub temp in debug mode",
          "id": "ryimfXZ4w",
          "position": {
            "x": -3,
            "y": -4,
            "units": "slots"
          },
          "size": {
            "height": 1,
            "width": 2,
            "units": "slots"
          }
        }
      },
      "links": {
        "B1ongG3Xw": {
          "id": "B1ongG3Xw",
          "input": {
            "nodeId": "S1S2lzh7v",
            "pinKey": "HkXK-dGob"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "HyU3fJqZD"
          }
        },
        "BJut_a8Qw": {
          "id": "BJut_a8Qw",
          "input": {
            "nodeId": "ryem-l9-D",
            "pinKey": "HJELdaLmD"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "rJ0nw6UmD"
          }
        },
        "ByCyT3LQv": {
          "id": "ByCyT3LQv",
          "input": {
            "nodeId": "ryem-l9-D",
            "pinKey": "r1j3i3U7v"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "ryAq3n8Qv"
          }
        },
        "ByVC1zh7D": {
          "id": "ByVC1zh7D",
          "input": {
            "nodeId": "HJgAyzhQP",
            "pinKey": "HkXK-dGob"
          },
          "output": {
            "nodeId": "SyxSWALmD",
            "pinKey": "H1QqTlEXw"
          }
        },
        "H1pslG3mw": {
          "id": "H1pslG3mw",
          "input": {
            "nodeId": "SkLsgMnmv",
            "pinKey": "HkXK-dGob"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "ryAq3n8Qv"
          }
        },
        "HJ4xsmbVD": {
          "id": "HJ4xsmbVD",
          "input": {
            "nodeId": "S1ikj7bVP",
            "pinKey": "HkXK-dGob"
          },
          "output": {
            "nodeId": "SyxSWALmD",
            "pinKey": "Hy5c57WEw"
          }
        },
        "Hk9mbQWVw": {
          "id": "Hk9mbQWVw",
          "input": {
            "nodeId": "rJofFCYbD",
            "pinKey": "HJ5kgmZVw"
          },
          "output": {
            "nodeId": "HJQ7-QWNP",
            "pinKey": "ByfGSDjQE"
          }
        },
        "HkPW-X-Vv": {
          "id": "HkPW-X-Vv",
          "input": {
            "nodeId": "rJofFCYbD",
            "pinKey": "SykMkXbNw"
          },
          "output": {
            "nodeId": "S1zZZQWNP",
            "pinKey": "Sk1e_NIVE"
          }
        },
        "HkcSWQWEv": {
          "id": "HkcSWQWEv",
          "input": {
            "nodeId": "rJofFCYbD",
            "pinKey": "HyprlX-VD"
          },
          "output": {
            "nodeId": "r1wSb7WEv",
            "pinKey": "ByfGSDjQE"
          }
        },
        "S1K1ep87w": {
          "id": "S1K1ep87w",
          "input": {
            "nodeId": "ryem-l9-D",
            "pinKey": "S1TP1p8Qv"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "rkxVJ6LQP"
          }
        },
        "S1wNZe9-v": {
          "id": "S1wNZe9-v",
          "input": {
            "nodeId": "ryem-l9-D",
            "pinKey": "BkTloxx9-D"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "HyU3fJqZD"
          }
        },
        "S1zLCh87w": {
          "id": "S1zLCh87w",
          "input": {
            "nodeId": "ryem-l9-D",
            "pinKey": "rkDNAhU7D"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "SkQIp28Qw"
          }
        },
        "rkIBWR8Qv": {
          "id": "rkIBWR8Qv",
          "input": {
            "nodeId": "SyxSWALmD",
            "pinKey": "HJtBTgNQv"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "HyU3fJqZD"
          }
        },
        "rknHWA8XP": {
          "id": "rknHWA8XP",
          "input": {
            "nodeId": "SyxSWALmD",
            "pinKey": "rJAxpeVmD"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "ryAq3n8Qv"
          }
        },
        "rkrh-0LXD": {
          "id": "rkrh-0LXD",
          "input": {
            "nodeId": "B17qZRUQw",
            "pinKey": "HJ6HsEngZ"
          },
          "output": {
            "nodeId": "SyxSWALmD",
            "pinKey": "H1QqTlEXw"
          }
        },
        "ryM1hpIXD": {
          "id": "ryM1hpIXD",
          "input": {
            "nodeId": "ryem-l9-D",
            "pinKey": "HJT-96ImD"
          },
          "output": {
            "nodeId": "rJofFCYbD",
            "pinKey": "S1p1ja8Xv"
          }
        },
        "ryaV-mZVP": {
          "id": "ryaV-mZVP",
          "input": {
            "nodeId": "rJofFCYbD",
            "pinKey": "Bkyzgm-4v"
          },
          "output": {
            "nodeId": "ByKNZmZVD",
            "pinKey": "ByfGSDjQE"
          }
        }
      },
      "nodes": {
        "B17qZRUQw": {
          "boundLiterals": {
            "rJjXFA9JQ": "D2"
          },
          "id": "B17qZRUQw",
          "label": "reset relay",
          "position": {
            "x": 3,
            "y": 2,
            "units": "slots"
          },
          "type": "xod/gpio/digital-write"
        },
        "ByKNZmZVD": {
          "boundLiterals": {
            "ByfGSDjQE": "39"
          },
          "id": "ByKNZmZVD",
          "position": {
            "x": 0,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/debug/tweak-number"
        },
        "HJQ7-QWNP": {
          "boundLiterals": {
            "ByfGSDjQE": "30"
          },
          "id": "HJQ7-QWNP",
          "position": {
            "x": -3,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/debug/tweak-number"
        },
        "HJgAyzhQP": {
          "id": "HJgAyzhQP",
          "position": {
            "x": 6,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/debug/watch"
        },
        "S1S2lzh7v": {
          "id": "S1S2lzh7v",
          "position": {
            "x": 6,
            "y": -2,
            "units": "slots"
          },
          "type": "xod/debug/watch"
        },
        "S1ikj7bVP": {
          "id": "S1ikj7bVP",
          "position": {
            "x": 8,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/debug/watch"
        },
        "S1zZZQWNP": {
          "boundLiterals": {
            "Sk1e_NIVE": "False"
          },
          "id": "S1zZZQWNP",
          "position": {
            "x": -6,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/debug/tweak-boolean"
        },
        "SkLsgMnmv": {
          "id": "SkLsgMnmv",
          "position": {
            "x": 6,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/debug/watch"
        },
        "SyxSWALmD": {
          "id": "SyxSWALmD",
          "position": {
            "x": 4,
            "y": 0,
            "units": "slots"
          },
          "type": "@/reset-delay"
        },
        "r1wSb7WEv": {
          "boundLiterals": {
            "ByfGSDjQE": "30"
          },
          "id": "r1wSb7WEv",
          "position": {
            "x": 3,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/debug/tweak-number"
        },
        "rJofFCYbD": {
          "id": "rJofFCYbD",
          "position": {
            "x": -3,
            "y": -1,
            "units": "slots"
          },
          "type": "@/solar-pump-controller"
        },
        "ryem-l9-D": {
          "id": "ryem-l9-D",
          "position": {
            "x": -3,
            "y": 2,
            "units": "slots"
          },
          "type": "@/20x4-display-driver"
        }
      },
      "path": "@/main"
    },
    "@/reset-delay": {
      "links": {
        "BJOccf4XP": {
          "id": "BJOccf4XP",
          "input": {
            "nodeId": "BJ3ISe4Xv",
            "pinKey": "SkSuD6LMb"
          },
          "output": {
            "nodeId": "BkxF9fNXv",
            "pinKey": "BJxRgAO8-"
          }
        },
        "H1cAstv7P": {
          "id": "H1cAstv7P",
          "input": {
            "nodeId": "Hyj2oYv7w",
            "pinKey": "SkSuD6LMb"
          },
          "output": {
            "nodeId": "BJ3ISe4Xv",
            "pinKey": "Bk4gU0drwJ-"
          }
        },
        "H1m9RZ37w": {
          "id": "H1m9RZ37w",
          "input": {
            "nodeId": "BkxF9fNXv",
            "pinKey": "H1v3lCu8-"
          },
          "output": {
            "nodeId": "rJAxpeVmD",
            "pinKey": "__out__"
          }
        },
        "SJGo5QZNw": {
          "id": "SJGo5QZNw",
          "input": {
            "nodeId": "Hy5c57WEw",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "BJ3ISe4Xv",
            "pinKey": "HkU3vNoTW"
          }
        },
        "SkFgDQVXv": {
          "id": "SkFgDQVXv",
          "input": {
            "nodeId": "BJ3ISe4Xv",
            "pinKey": "H1mlUC_HDJZ"
          },
          "output": {
            "nodeId": "SJ-0olN7P",
            "pinKey": "ryVmUAOrvkb"
          }
        },
        "rJFMnYD7w": {
          "id": "rJFMnYD7w",
          "input": {
            "nodeId": "Hyj2oYv7w",
            "pinKey": "H1mlUC_HDJZ"
          },
          "output": {
            "nodeId": "SJ-0olN7P",
            "pinKey": "ryVmUAOrvkb"
          }
        },
        "rJM12FwQP": {
          "id": "rJM12FwQP",
          "input": {
            "nodeId": "H1iCNlVQw",
            "pinKey": "r1bVLR_BPJW"
          },
          "output": {
            "nodeId": "Hyj2oYv7w",
            "pinKey": "HkU3vNoTW"
          }
        },
        "ryHTj74Qw": {
          "id": "ryHTj74Qw",
          "input": {
            "nodeId": "H1QqTlEXw",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "H1iCNlVQw",
            "pinKey": "B1gN80uHvk-"
          }
        },
        "rywY0-2QP": {
          "id": "rywY0-2QP",
          "input": {
            "nodeId": "H1iCNlVQw",
            "pinKey": "SJMVU0urvkZ"
          },
          "output": {
            "nodeId": "HJtBTgNQv",
            "pinKey": "__out__"
          }
        }
      },
      "nodes": {
        "BJ3ISe4Xv": {
          "boundLiterals": {
            "Skre8ROSv1-": "3"
          },
          "id": "BJ3ISe4Xv",
          "position": {
            "x": 4,
            "y": 2,
            "units": "slots"
          },
          "type": "xod/core/delay"
        },
        "BkxF9fNXv": {
          "id": "BkxF9fNXv",
          "position": {
            "x": 5,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/core/pulse-on-false"
        },
        "H1QqTlEXw": {
          "id": "H1QqTlEXw",
          "label": "RLY",
          "position": {
            "x": 2,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-boolean"
        },
        "H1iCNlVQw": {
          "id": "H1iCNlVQw",
          "position": {
            "x": 2,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/core/and"
        },
        "HJtBTgNQv": {
          "id": "HJtBTgNQv",
          "label": "PUMPI",
          "position": {
            "x": 2,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-boolean"
        },
        "Hy5c57WEw": {
          "id": "Hy5c57WEw",
          "label": "DLY1",
          "position": {
            "x": 8,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-boolean"
        },
        "Hyj2oYv7w": {
          "boundLiterals": {
            "Skre8ROSv1-": "5"
          },
          "id": "Hyj2oYv7w",
          "position": {
            "x": 3,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/core/delay"
        },
        "SJ-0olN7P": {
          "id": "SJ-0olN7P",
          "position": {
            "x": 8,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/core/boot"
        },
        "rJAxpeVmD": {
          "id": "rJAxpeVmD",
          "label": "SETI",
          "position": {
            "x": 5,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-boolean"
        }
      },
      "path": "@/reset-delay"
    },
    "@/solar-pump-controller": {
      "comments": {
        "B1L4dxoMD": {
          "content": "If Panel temp exceeds spa temp by X0 (hysteresis), pump switches on to circulate water and flip-flop2 sets IDX TRUE to change hysteresis to X1.When exit water temp reaches spa + X1 hyst +1 degrees, flip-flop1 puts SET true, Sensor Select selects the exit water sensor. Once the exit water temp falls below spa + hyst, pump switches off and IDX & SET return to FALSE. Panel temp must now exceed spa+X0 for cycle to repeat.  If Spa temp exceeds temp set at Max (normally 38.9 deg) normal temp control is overridden and pump is switched off regardless to prevent spa water over temp.\n\nFreeze-input follows PT at 5 deg less than panel trigger temp to avoid pump staying on when it should switch off. This happens when sensor select changes from water to panel and the panel temp is still greater than spa+hyst.\nDisplay continues to show true panel temp.\n",
          "id": "B1L4dxoMD",
          "position": {
            "x": 24,
            "y": -1,
            "units": "slots"
          },
          "size": {
            "height": 7,
            "width": 5,
            "units": "slots"
          }
        }
      },
      "links": {
        "BJ94noyXv": {
          "id": "BJ94noyXv",
          "input": {
            "nodeId": "S1N4hsJXv",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "SJyxSdlfD",
            "pinKey": "H1H-LLHUr"
          }
        },
        "BJAN-5RmP": {
          "id": "BJAN-5RmP",
          "input": {
            "nodeId": "HyZN4ugzv",
            "pinKey": "rkzZUUHLB"
          },
          "output": {
            "nodeId": "B1Unl9CmD",
            "pinKey": "r1ctYrM3G"
          }
        },
        "BJtmyofQP": {
          "id": "BJtmyofQP",
          "input": {
            "nodeId": "Sk5tT9MQP",
            "pinKey": "Skcen5MXD"
          },
          "output": {
            "nodeId": "Hy26HueGv",
            "pinKey": "H1H-LLHUr"
          }
        },
        "BJwxvsNRF-D": {
          "id": "BJwxvsNRF-D",
          "input": {
            "nodeId": "BkGDsNRFZw",
            "pinKey": "HJbACN3gb"
          },
          "output": {
            "nodeId": "S15DoVCFWw",
            "pinKey": "H1rzg-Uf3M"
          }
        },
        "Bk7cJleQD": {
          "id": "Bk7cJleQD",
          "input": {
            "nodeId": "rJjSCkeQw",
            "pinKey": "r1bVLR_BPJW-$1"
          },
          "output": {
            "nodeId": "HkfePiERFbP",
            "pinKey": "r1if8ROSDJ-"
          }
        },
        "BkKjkszXD": {
          "id": "BkKjkszXD",
          "input": {
            "nodeId": "B1juYDcGD",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "Sk5tT9MQP",
            "pinKey": "r1llT5M7v"
          }
        },
        "BkZeLI6Gw": {
          "id": "BkZeLI6Gw",
          "input": {
            "nodeId": "S1ri-KIGw",
            "pinKey": "HJCfI0dBDkb"
          },
          "output": {
            "nodeId": "Bkm5Lgozw",
            "pinKey": "__out__"
          }
        },
        "Bkf4gq0XD": {
          "id": "Bkf4gq0XD",
          "input": {
            "nodeId": "B13wJ9AQv",
            "pinKey": "SJ-BNy8s2G"
          },
          "output": {
            "nodeId": "rk27e507D",
            "pinKey": "__out__"
          }
        },
        "BkkQiT8QD": {
          "id": "BkkQiT8QD",
          "input": {
            "nodeId": "S1ozoTIXw",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "Hy26HueGv",
            "pinKey": "H1H-LLHUr"
          }
        },
        "BkvzBw5GP": {
          "id": "BkvzBw5GP",
          "input": {
            "nodeId": "HkJCG_xzw",
            "pinKey": "HJ6HsEngZ"
          },
          "output": {
            "nodeId": "S1ri-KIGw",
            "pinKey": "SJyXI0OrD1-"
          }
        },
        "ByTIB8TGP": {
          "id": "ByTIB8TGP",
          "input": {
            "nodeId": "BJalnDcfD",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "SywwiV0Ybv",
            "pinKey": "HkyxURuSPyW"
          }
        },
        "BycEHulMw": {
          "id": "BycEHulMw",
          "input": {
            "nodeId": "rkUDs4At-v",
            "pinKey": "rJg00Nhe-"
          },
          "output": {
            "nodeId": "SJyxSdlfD",
            "pinKey": "H1H-LLHUr"
          }
        },
        "ByegRok7w": {
          "id": "ByegRok7w",
          "input": {
            "nodeId": "Syap6skQD",
            "pinKey": "HJbACN3gb"
          },
          "output": {
            "nodeId": "HknHpjJXv",
            "pinKey": "SyomIRurDJ-"
          }
        },
        "H1B2LVV7v": {
          "id": "H1B2LVV7v",
          "input": {
            "nodeId": "H1138EEXP",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "S1ri-KIGw",
            "pinKey": "SJyXI0OrD1-"
          }
        },
        "H1NTD68mv": {
          "id": "H1NTD68mv",
          "input": {
            "nodeId": "rJ0nw6UmD",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "SyTeH4EmD",
            "pinKey": "__out__"
          }
        },
        "H1_cy9AXw": {
          "id": "H1_cy9AXw",
          "input": {
            "nodeId": "B13wJ9AQv",
            "pinKey": "BkrwKrGhG"
          },
          "output": {
            "nodeId": "rkdviE0tbD",
            "pinKey": "rkFgMITM-"
          }
        },
        "HJ0nzK8zD": {
          "id": "HJ0nzK8zD",
          "input": {
            "nodeId": "HyRPoERY-P",
            "pinKey": "HJ6HsEngZ"
          },
          "output": {
            "nodeId": "S1ri-KIGw",
            "pinKey": "SJyXI0OrD1-"
          }
        },
        "HJS6BvqMw": {
          "id": "HJS6BvqMw",
          "input": {
            "nodeId": "HyhDs4RFZD",
            "pinKey": "BypX80uSD1Z"
          },
          "output": {
            "nodeId": "BkUtBPqfD",
            "pinKey": "H1rzg-Uf3M"
          }
        },
        "HJvhjvqzD": {
          "id": "HJvhjvqzD",
          "input": {
            "nodeId": "BkUtBPqfD",
            "pinKey": "r1Gzl-8Ghz"
          },
          "output": {
            "nodeId": "Hkw0KPcGP",
            "pinKey": "__out__"
          }
        },
        "Hk9q3goMP": {
          "id": "Hk9q3goMP",
          "input": {
            "nodeId": "rkUDs4At-v",
            "pinKey": "HJbACN3gb"
          },
          "output": {
            "nodeId": "H1VK3ejfP",
            "pinKey": "B1x2RV3eZ"
          }
        },
        "HkGDe9RXD": {
          "id": "HkGDe9RXD",
          "input": {
            "nodeId": "Hy26HueGv",
            "pinKey": "rkzZUUHLB"
          },
          "output": {
            "nodeId": "H158eqRXw",
            "pinKey": "r1ctYrM3G"
          }
        },
        "HkUY8eiGv": {
          "id": "HkUY8eiGv",
          "input": {
            "nodeId": "HJjuUloGw",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "rydW7KIzw",
            "pinKey": "SkkV4GNLB"
          }
        },
        "HklcuU6zw": {
          "id": "HklcuU6zw",
          "input": {
            "nodeId": "SywwiV0Ybv",
            "pinKey": "B1RU0OrDkb"
          },
          "output": {
            "nodeId": "BksYOIpfD",
            "pinKey": "__out__"
          }
        },
        "HkmGk7bVw": {
          "id": "HkmGk7bVw",
          "input": {
            "nodeId": "HkDkeqCQP",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "SykMkXbNw",
            "pinKey": "__out__"
          }
        },
        "Hy12rOgGP": {
          "id": "Hy12rOgGP",
          "input": {
            "nodeId": "HyhDs4RFZD",
            "pinKey": "rkJ4URuHDJ-"
          },
          "output": {
            "nodeId": "SJyxSdlfD",
            "pinKey": "H1H-LLHUr"
          }
        },
        "HyMgjpLQD": {
          "id": "HyMgjpLQD",
          "input": {
            "nodeId": "S1p1ja8Xv",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "r1K5QeEmP",
            "pinKey": "__out__"
          }
        },
        "S1I3CJemP": {
          "id": "S1I3CJemP",
          "input": {
            "nodeId": "rJgnRyxmD",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "rJXCvFLzD",
            "pinKey": "SkkV4GNLB"
          }
        },
        "S1NVyTU7P": {
          "id": "S1NVyTU7P",
          "input": {
            "nodeId": "rkxVJ6LQP",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "HyQzy6I7w",
            "pinKey": "__out__"
          }
        },
        "S1O-DoEAt-w": {
          "id": "S1O-DoEAt-w",
          "input": {
            "nodeId": "HkfePiERFbP",
            "pinKey": "ry3zLA_Bv1Z"
          },
          "output": {
            "nodeId": "rkUDs4At-v",
            "pinKey": "B19RYS3lW"
          }
        },
        "S1Si1cAQw": {
          "id": "S1Si1cAQw",
          "input": {
            "nodeId": "SJyxSdlfD",
            "pinKey": "rkzZUUHLB"
          },
          "output": {
            "nodeId": "B13wJ9AQv",
            "pinKey": "r1ctYrM3G"
          }
        },
        "S1dLYLazD": {
          "id": "S1dLYLazD",
          "input": {
            "nodeId": "SkN8Y8azP",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "Bk9JKUafw",
            "pinKey": "HkyxURuSPyW"
          }
        },
        "S1jJ0ikQP": {
          "id": "S1jJ0ikQP",
          "input": {
            "nodeId": "Syap6skQD",
            "pinKey": "rJg00Nhe-"
          },
          "output": {
            "nodeId": "HyZN4ugzv",
            "pinKey": "H1H-LLHUr"
          }
        },
        "S1vopoJ7v": {
          "id": "S1vopoJ7v",
          "input": {
            "nodeId": "HknHpjJXv",
            "pinKey": "HkqmLAOrD1W"
          },
          "output": {
            "nodeId": "BkzsToJmP",
            "pinKey": "__out__"
          }
        },
        "SJ1oG21mw": {
          "id": "SJ1oG21mw",
          "input": {
            "nodeId": "Bk9JKUafw",
            "pinKey": "ryTIROHwkW"
          },
          "output": {
            "nodeId": "ryneb3JmP",
            "pinKey": "__out__"
          }
        },
        "SJ7Cx50QP": {
          "id": "SJ7Cx50QP",
          "input": {
            "nodeId": "B1Unl9CmD",
            "pinKey": "SJ-BNy8s2G"
          },
          "output": {
            "nodeId": "r1Aaxc07D",
            "pinKey": "__out__"
          }
        },
        "SJ7vhPqfv": {
          "id": "SJ7vhPqfv",
          "input": {
            "nodeId": "S15DoVCFWw",
            "pinKey": "Hk8GeZIfnM"
          },
          "output": {
            "nodeId": "Bkqzhwqzw",
            "pinKey": "__out__"
          }
        },
        "SJGAhjJ7w": {
          "id": "SJGAhjJ7w",
          "input": {
            "nodeId": "S15DoVCFWw",
            "pinKey": "HkzeZ8G3f"
          },
          "output": {
            "nodeId": "rk3T2okXw",
            "pinKey": "B1x2RV3eZ"
          }
        },
        "SJYflQbVP": {
          "id": "SJYflQbVP",
          "input": {
            "nodeId": "H158eqRXw",
            "pinKey": "HypuFHG3z"
          },
          "output": {
            "nodeId": "Bkyzgm-4v",
            "pinKey": "__out__"
          }
        },
        "SJabMhJXD": {
          "id": "SJabMhJXD",
          "input": {
            "nodeId": "Syo0Z3kXw",
            "pinKey": "SJMVU0urvkZ"
          },
          "output": {
            "nodeId": "BJcBJu0Mv",
            "pinKey": "__out__"
          }
        },
        "SkFulqRmw": {
          "id": "SkFulqRmw",
          "input": {
            "nodeId": "H158eqRXw",
            "pinKey": "SJ-BNy8s2G"
          },
          "output": {
            "nodeId": "SJSdl9CQv",
            "pinKey": "__out__"
          }
        },
        "SkNbwsN0K-w": {
          "id": "SkNbwsN0K-w",
          "input": {
            "nodeId": "SyHDsVAY-w",
            "pinKey": "SJHwjt4fr"
          },
          "output": {
            "nodeId": "SkVeDs4CK-D",
            "pinKey": "HJhXDIY9-"
          }
        },
        "SkhtGnkQw": {
          "id": "SkhtGnkQw",
          "input": {
            "nodeId": "Syo0Z3kXw",
            "pinKey": "r1bVLR_BPJW"
          },
          "output": {
            "nodeId": "BJqfzny7P",
            "pinKey": "__out__"
          }
        },
        "Skhz1jfmv": {
          "id": "Skhz1jfmv",
          "input": {
            "nodeId": "Sk5tT9MQP",
            "pinKey": "Hkn_h9fQv"
          },
          "output": {
            "nodeId": "SyJCacGXv",
            "pinKey": "__out__"
          }
        },
        "Skj1TokmD": {
          "id": "Skj1TokmD",
          "input": {
            "nodeId": "r1S1aikXP",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "rk3T2okXw",
            "pinKey": "B1x2RV3eZ"
          }
        },
        "SkoJ3-b7P": {
          "id": "SkoJ3-b7P",
          "input": {
            "nodeId": "rJ1ZqgyQw",
            "pinKey": "H1v3lCu8-"
          },
          "output": {
            "nodeId": "H1VWKUpGP",
            "pinKey": "HJhXDIY9-"
          }
        },
        "SkodT3L7w": {
          "id": "SkodT3L7w",
          "input": {
            "nodeId": "SkQIp28Qw",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "HyZN4ugzv",
            "pinKey": "H1H-LLHUr"
          }
        },
        "Sy1eeQZ4w": {
          "id": "Sy1eeQZ4w",
          "input": {
            "nodeId": "B13wJ9AQv",
            "pinKey": "HypuFHG3z"
          },
          "output": {
            "nodeId": "HJ5kgmZVw",
            "pinKey": "__out__"
          }
        },
        "SyLpgqCQw": {
          "id": "SyLpgqCQw",
          "input": {
            "nodeId": "B1Unl9CmD",
            "pinKey": "BkrwKrGhG"
          },
          "output": {
            "nodeId": "BkDiERtbD",
            "pinKey": "rkFgMITM-"
          }
        },
        "SyPn1ggXv": {
          "id": "SyPn1ggXv",
          "input": {
            "nodeId": "rJjSCkeQw",
            "pinKey": "SJMVU0urvkZ"
          },
          "output": {
            "nodeId": "BkGDsNRFZw",
            "pinKey": "B19RYS3lW"
          }
        },
        "Syz8CJeXv": {
          "id": "Syz8CJeXv",
          "input": {
            "nodeId": "S1ri-KIGw",
            "pinKey": "BJaG80urD1-"
          },
          "output": {
            "nodeId": "rJjSCkeQw",
            "pinKey": "B1gN80uHvk-"
          }
        },
        "r18A01xXP": {
          "id": "r18A01xXP",
          "input": {
            "nodeId": "rJjSCkeQw",
            "pinKey": "r1bVLR_BPJW"
          },
          "output": {
            "nodeId": "B1gA01e7P",
            "pinKey": "__out__"
          }
        },
        "r19hfn17D": {
          "id": "r19hfn17D",
          "input": {
            "nodeId": "B124bhkQD",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "Syap6skQD",
            "pinKey": "B19RYS3lW"
          }
        },
        "r1ZL6o1XD": {
          "id": "r1ZL6o1XD",
          "input": {
            "nodeId": "HknHpjJXv",
            "pinKey": "BJnQUR_BwyZ"
          },
          "output": {
            "nodeId": "H1QJniy7D",
            "pinKey": "__out__"
          }
        },
        "r1cvx5AXP": {
          "id": "r1cvx5AXP",
          "input": {
            "nodeId": "H158eqRXw",
            "pinKey": "BkrwKrGhG"
          },
          "output": {
            "nodeId": "S1xxDoEAFZv",
            "pinKey": "rkFgMITM-"
          }
        },
        "r1ms33Umv": {
          "id": "r1ms33Umv",
          "input": {
            "nodeId": "ryAq3n8Qv",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "BJHOEORGP",
            "pinKey": "__out__"
          }
        },
        "r1n0Q1c-D": {
          "id": "r1n0Q1c-D",
          "input": {
            "nodeId": "SywwiV0Ybv",
            "pinKey": "ryTIROHwkW"
          },
          "output": {
            "nodeId": "SyHDsVAY-w",
            "pinKey": "SygDsK4MS"
          }
        },
        "rJ3xJa8XD": {
          "id": "rJ3xJa8XD",
          "input": {
            "nodeId": "r1BxypLXv",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "S15DoVCFWw",
            "pinKey": "H1rzg-Uf3M"
          }
        },
        "rJCasZWQD": {
          "id": "rJCasZWQD",
          "input": {
            "nodeId": "Bk9JKUafw",
            "pinKey": "B1RU0OrDkb"
          },
          "output": {
            "nodeId": "rJ1ZqgyQw",
            "pinKey": "BJxRgAO8-"
          }
        },
        "rJDJhZZXP": {
          "id": "rJDJhZZXP",
          "input": {
            "nodeId": "H1VWKUpGP",
            "pinKey": "BJI7P8t9Z"
          },
          "output": {
            "nodeId": "BkGDsNRFZw",
            "pinKey": "B19RYS3lW"
          }
        },
        "rJHgPoN0FZw": {
          "id": "rJHgPoN0FZw",
          "input": {
            "nodeId": "BkGDsNRFZw",
            "pinKey": "rJg00Nhe-"
          },
          "output": {
            "nodeId": "HyhDs4RFZD",
            "pinKey": "HyRmUCdBDkZ"
          }
        },
        "rJeW9v5Mv": {
          "id": "rJeW9v5Mv",
          "input": {
            "nodeId": "BkUtBPqfD",
            "pinKey": "HkzeZ8G3f"
          },
          "output": {
            "nodeId": "Syvx9D5Mv",
            "pinKey": "__out__"
          }
        },
        "rJi9M3kmw": {
          "id": "rJi9M3kmw",
          "input": {
            "nodeId": "ryneb3JmP",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "Syo0Z3kXw",
            "pinKey": "B1gN80uHvk-"
          }
        },
        "rJmLxQZNP": {
          "id": "rJmLxQZNP",
          "input": {
            "nodeId": "B1Unl9CmD",
            "pinKey": "HypuFHG3z"
          },
          "output": {
            "nodeId": "HyprlX-VD",
            "pinKey": "__out__"
          }
        },
        "rkXXP8TGv": {
          "id": "rkXXP8TGv",
          "input": {
            "nodeId": "HkhMDU6fD",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "BkVvoN0tbw",
            "pinKey": "ryVmUAOrvkb"
          }
        },
        "ry3hkxgQv": {
          "id": "ry3hkxgQv",
          "input": {
            "nodeId": "SkVeDs4CK-D",
            "pinKey": "BJI7P8t9Z"
          },
          "output": {
            "nodeId": "BkGDsNRFZw",
            "pinKey": "B19RYS3lW"
          }
        },
        "ryGtChIXP": {
          "id": "ryGtChIXP",
          "input": {
            "nodeId": "SJ5uA28Qv",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "HyZN4ugzv",
            "pinKey": "H1H-LLHUr"
          }
        },
        "ryV08NEQD": {
          "id": "ryV08NEQD",
          "input": {
            "nodeId": "HyU3fJqZD",
            "pinKey": "__in__"
          },
          "output": {
            "nodeId": "HJk0UVEmP",
            "pinKey": "__out__"
          }
        },
        "ryZu2w5MP": {
          "id": "ryZu2w5MP",
          "input": {
            "nodeId": "BkUtBPqfD",
            "pinKey": "Hk8GeZIfnM"
          },
          "output": {
            "nodeId": "HJFZhPcMP",
            "pinKey": "__out__"
          }
        }
      },
      "nodes": {
        "B124bhkQD": {
          "description": "SS bus is TRUE when exit Water temp is greater thaan Spa temp by X1 hysteresis value +1 degree",
          "id": "B124bhkQD",
          "label": "SS",
          "position": {
            "x": 19,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "B13wJ9AQv": {
          "id": "B13wJ9AQv",
          "position": {
            "x": 12,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/core/nth-input"
        },
        "B1Unl9CmD": {
          "id": "B1Unl9CmD",
          "position": {
            "x": 18,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/core/nth-input"
        },
        "B1gA01e7P": {
          "id": "B1gA01e7P",
          "label": "S1A",
          "position": {
            "x": 5,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "B1juYDcGD": {
          "description": "PT bus is Panel temperature",
          "id": "B1juYDcGD",
          "label": "PT",
          "position": {
            "x": 14,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "BJHOEORGP": {
          "id": "BJHOEORGP",
          "label": "SET",
          "position": {
            "x": 21,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "BJalnDcfD": {
          "description": "IDX bus selects hysteresis value",
          "id": "BJalnDcfD",
          "label": "IDX",
          "position": {
            "x": 1,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "BJcBJu0Mv": {
          "id": "BJcBJu0Mv",
          "label": "IDX",
          "position": {
            "x": -2,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "BJqfzny7P": {
          "id": "BJqfzny7P",
          "label": "SS",
          "position": {
            "x": -1,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "Bk9JKUafw": {
          "id": "Bk9JKUafw",
          "label": "flip-flop 1",
          "position": {
            "x": -3,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/core/flip-flop"
        },
        "BkDiERtbD": {
          "boundLiterals": {
            "H1s0WI6MZ": "A2"
          },
          "id": "BkDiERtbD",
          "label": "exit water tmp36",
          "position": {
            "x": 19,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/common-hardware/thermometer-tmp36"
        },
        "BkGDsNRFZw": {
          "description": "Output a True when IN1 is greater than IN2 to switch pump on",
          "id": "BkGDsNRFZw",
          "position": {
            "x": 4,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/core/greater"
        },
        "BkUtBPqfD": {
          "description": "selects either  cabinet sensor or water sensor .  Cabinet is  selected when pump is off water is selected when pump is on",
          "id": "BkUtBPqfD",
          "label": "sensor select",
          "position": {
            "x": 8,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/core/nth-input(number)"
        },
        "BkVvoN0tbw": {
          "id": "BkVvoN0tbw",
          "position": {
            "x": -3,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/core/boot"
        },
        "Bkm5Lgozw": {
          "id": "Bkm5Lgozw",
          "label": "S1O",
          "position": {
            "x": 9,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "Bkqzhwqzw": {
          "id": "Bkqzhwqzw",
          "label": "IDX",
          "position": {
            "x": 4,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "BksYOIpfD": {
          "id": "BksYOIpfD",
          "label": "BOOT",
          "position": {
            "x": 3,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "Bkyzgm-4v": {
          "id": "Bkyzgm-4v",
          "label": "PX1",
          "position": {
            "x": 18,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-number"
        },
        "BkzsToJmP": {
          "id": "BkzsToJmP",
          "label": "HVAL",
          "position": {
            "x": 21,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "H1138EEXP": {
          "id": "H1138EEXP",
          "label": "PUMP",
          "position": {
            "x": 11,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "H158eqRXw": {
          "id": "H158eqRXw",
          "position": {
            "x": 15,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/core/nth-input"
        },
        "H1QJniy7D": {
          "id": "H1QJniy7D",
          "label": "TUB",
          "position": {
            "x": 20,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "H1VK3ejfP": {
          "boundLiterals": {
            "B1x2RV3eZ": "38.9"
          },
          "id": "H1VK3ejfP",
          "label": "Max",
          "position": {
            "x": 11,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/core/constant-number"
        },
        "H1VWKUpGP": {
          "id": "H1VWKUpGP",
          "position": {
            "x": 1,
            "y": 2,
            "units": "slots"
          },
          "type": "xod/core/defer"
        },
        "HJ5kgmZVw": {
          "id": "HJ5kgmZVw",
          "label": "TX1",
          "position": {
            "x": 15,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-number"
        },
        "HJFZhPcMP": {
          "id": "HJFZhPcMP",
          "label": "SET",
          "position": {
            "x": 8,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "HJjuUloGw": {
          "description": "S1O bus TRUE puts pump in permanently on mode",
          "id": "HJjuUloGw",
          "label": "S1O",
          "position": {
            "x": -2,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "HJk0UVEmP": {
          "id": "HJk0UVEmP",
          "label": "PUMP",
          "position": {
            "x": 19,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "HkDkeqCQP": {
          "id": "HkDkeqCQP",
          "label": "IDX1",
          "position": {
            "x": 10,
            "y": -2,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "HkJCG_xzw": {
          "boundLiterals": {
            "rJjXFA9JQ": "D7"
          },
          "description": "in return  flow line to spa pool. Stops gravity from draining return. May not be needed if  air purges automatically. ",
          "id": "HkJCG_xzw",
          "label": "valve",
          "position": {
            "x": 4,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/gpio/digital-write"
        },
        "HkfePiERFbP": {
          "id": "HkfePiERFbP",
          "position": {
            "x": 6,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/core/not"
        },
        "HkhMDU6fD": {
          "id": "HkhMDU6fD",
          "label": "BOOT",
          "position": {
            "x": -3,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "HknHpjJXv": {
          "arityLevel": 2,
          "boundLiterals": {
            "HkqmLAOrD1W-$1": "1"
          },
          "id": "HknHpjJXv",
          "position": {
            "x": 20,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/core/add"
        },
        "Hkw0KPcGP": {
          "id": "Hkw0KPcGP",
          "label": "PT",
          "position": {
            "x": 9,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "Hy26HueGv": {
          "boundLiterals": {
            "ByYWULHUr": "5"
          },
          "description": "limits  sensor updae to  once per value set at  T",
          "id": "Hy26HueGv",
          "position": {
            "x": 15,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/core/throttle"
        },
        "HyQzy6I7w": {
          "id": "HyQzy6I7w",
          "label": "HYST",
          "position": {
            "x": 20,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "HyRPoERY-P": {
          "boundLiterals": {
            "rJjXFA9JQ": "D6"
          },
          "id": "HyRPoERY-P",
          "label": "Pump",
          "position": {
            "x": 7,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/gpio/digital-write"
        },
        "HyU3fJqZD": {
          "id": "HyU3fJqZD",
          "label": "pump",
          "position": {
            "x": 19,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-boolean"
        },
        "HyZN4ugzv": {
          "boundLiterals": {
            "ByYWULHUr": "5"
          },
          "description": "limits sensor updates to once per interval set at T",
          "id": "HyZN4ugzv",
          "position": {
            "x": 18,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/core/throttle"
        },
        "HyhDs4RFZD": {
          "description": "Outputs difference temp",
          "id": "HyhDs4RFZD",
          "position": {
            "x": 9,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/core/subtract"
        },
        "HyprlX-VD": {
          "id": "HyprlX-VD",
          "label": "WX1",
          "position": {
            "x": 21,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-number"
        },
        "S15DoVCFWw": {
          "boundLiterals": {
            "HkzeZ8G3f": "1",
            "r1Gzl-8Ghz": "14"
          },
          "description": "Selects hysteresis from  2 programmed values, X0 or X1. X0 is temp difference before pump starts, X1 is temp diff when pump is running",
          "id": "S15DoVCFWw",
          "label": "hysteresis",
          "position": {
            "x": 4,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/core/nth-input(number)"
        },
        "S1N4hsJXv": {
          "description": "ST bus = Spaa temperature",
          "id": "S1N4hsJXv",
          "label": "TUB",
          "position": {
            "x": 12,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "S1ozoTIXw": {
          "id": "S1ozoTIXw",
          "label": "PAN",
          "position": {
            "x": 16,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "S1p1ja8Xv": {
          "id": "S1p1ja8Xv",
          "label": "panel",
          "position": {
            "x": 14,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-number"
        },
        "S1ri-KIGw": {
          "id": "S1ri-KIGw",
          "position": {
            "x": 8,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/core/or"
        },
        "S1xxDoEAFZv": {
          "id": "S1xxDoEAFZv",
          "label": "panel  tmp36",
          "position": {
            "x": 16,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/common-hardware/thermometer-tmp36"
        },
        "SJ5uA28Qv": {
          "id": "SJ5uA28Qv",
          "label": "WT",
          "position": {
            "x": 17,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "SJSdl9CQv": {
          "id": "SJSdl9CQv",
          "label": "IDX1",
          "position": {
            "x": 15,
            "y": -2,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "SJyxSdlfD": {
          "boundLiterals": {
            "ByYWULHUr": "5"
          },
          "description": "limits sensor updates to once per interval set at T",
          "id": "SJyxSdlfD",
          "position": {
            "x": 12,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/core/throttle"
        },
        "Sk5tT9MQP": {
          "id": "Sk5tT9MQP",
          "position": {
            "x": 14,
            "y": 2,
            "units": "slots"
          },
          "type": "@/freeze-input"
        },
        "SkN8Y8azP": {
          "description": "SET bus selects Panel or Roof sensor",
          "id": "SkN8Y8azP",
          "label": "SET",
          "position": {
            "x": -3,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "SkQIp28Qw": {
          "id": "SkQIp28Qw",
          "label": "wt",
          "position": {
            "x": 18,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-number"
        },
        "SkVeDs4CK-D": {
          "id": "SkVeDs4CK-D",
          "position": {
            "x": 3,
            "y": 2,
            "units": "slots"
          },
          "type": "xod/core/defer"
        },
        "SyHDsVAY-w": {
          "id": "SyHDsVAY-w",
          "position": {
            "x": 2,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/core/pulse-on-change(boolean)"
        },
        "SyJCacGXv": {
          "id": "SyJCacGXv",
          "label": "SET",
          "position": {
            "x": 14,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "SyTeH4EmD": {
          "id": "SyTeH4EmD",
          "label": "TUB",
          "position": {
            "x": 17,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "Syap6skQD": {
          "id": "Syap6skQD",
          "position": {
            "x": 19,
            "y": 2,
            "units": "slots"
          },
          "type": "xod/core/greater"
        },
        "SykMkXbNw": {
          "id": "SykMkXbNw",
          "label": "idx1",
          "position": {
            "x": 10,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/patch-nodes/input-boolean"
        },
        "Syo0Z3kXw": {
          "id": "Syo0Z3kXw",
          "position": {
            "x": -2,
            "y": 2,
            "units": "slots"
          },
          "type": "xod/core/and"
        },
        "Syvx9D5Mv": {
          "id": "Syvx9D5Mv",
          "label": "WT",
          "position": {
            "x": 10,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "SywwiV0Ybv": {
          "id": "SywwiV0Ybv",
          "label": "flip-flop 2",
          "position": {
            "x": 1,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/core/flip-flop"
        },
        "r1Aaxc07D": {
          "id": "r1Aaxc07D",
          "label": "IDX1",
          "position": {
            "x": 18,
            "y": -2,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "r1BxypLXv": {
          "id": "r1BxypLXv",
          "label": "HYST",
          "position": {
            "x": 3,
            "y": 1,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "r1K5QeEmP": {
          "id": "r1K5QeEmP",
          "label": "PAN",
          "position": {
            "x": 14,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "r1S1aikXP": {
          "id": "r1S1aikXP",
          "label": "HVAL",
          "position": {
            "x": 7,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "rJ0nw6UmD": {
          "id": "rJ0nw6UmD",
          "label": "tub",
          "position": {
            "x": 17,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-number"
        },
        "rJ1ZqgyQw": {
          "id": "rJ1ZqgyQw",
          "position": {
            "x": 0,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/core/pulse-on-false"
        },
        "rJXCvFLzD": {
          "boundLiterals": {
            "Syp1NfVIS": "D5"
          },
          "description": "switches pump to auto  run i.e. controlled by temperatures.",
          "id": "rJXCvFLzD",
          "label": "S1 pump AUTO",
          "position": {
            "x": 1,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/common-hardware/mechanical-switch"
        },
        "rJgnRyxmD": {
          "description": "S1A bus TRUE puts pump in auto mode ",
          "id": "rJgnRyxmD",
          "label": "S1A",
          "position": {
            "x": 1,
            "y": 0,
            "units": "slots"
          },
          "type": "xod/patch-nodes/to-bus"
        },
        "rJjSCkeQw": {
          "arityLevel": 2,
          "id": "rJjSCkeQw",
          "position": {
            "x": 4,
            "y": 4,
            "units": "slots"
          },
          "type": "xod/core/and"
        },
        "rk27e507D": {
          "id": "rk27e507D",
          "label": "IDX1",
          "position": {
            "x": 12,
            "y": -2,
            "units": "slots"
          },
          "type": "xod/patch-nodes/from-bus"
        },
        "rk3T2okXw": {
          "boundLiterals": {
            "B1x2RV3eZ": "3"
          },
          "description": "lower hysteresis value",
          "id": "rk3T2okXw",
          "position": {
            "x": 6,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/core/constant-number"
        },
        "rkUDs4At-v": {
          "boundLiterals": {
            "HJbACN3gb": "38.90"
          },
          "id": "rkUDs4At-v",
          "position": {
            "x": 10,
            "y": 2,
            "units": "slots"
          },
          "type": "xod/core/greater"
        },
        "rkdviE0tbD": {
          "boundLiterals": {
            "H1s0WI6MZ": "A1"
          },
          "id": "rkdviE0tbD",
          "label": "tub tmp36",
          "position": {
            "x": 13,
            "y": -3,
            "units": "slots"
          },
          "type": "xod/common-hardware/thermometer-tmp36"
        },
        "rkxVJ6LQP": {
          "id": "rkxVJ6LQP",
          "label": "hyst",
          "position": {
            "x": 20,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-number"
        },
        "ryAq3n8Qv": {
          "id": "ryAq3n8Qv",
          "label": "set",
          "position": {
            "x": 21,
            "y": 5,
            "units": "slots"
          },
          "type": "xod/patch-nodes/output-boolean"
        },
        "rydW7KIzw": {
          "boundLiterals": {
            "Syp1NfVIS": "D4"
          },
          "description": "switches pump to continuous run",
          "id": "rydW7KIzw",
          "label": "S1 pump ON",
          "position": {
            "x": -2,
            "y": -1,
            "units": "slots"
          },
          "type": "xod/common-hardware/mechanical-switch"
        },
        "ryneb3JmP": {
          "id": "ryneb3JmP",
          "position": {
            "x": -2,
            "y": 3,
            "units": "slots"
          },
          "type": "xod/core/pulse-on-true"
        }
      },
      "path": "@/solar-pump-controller"
    }
  }
}
