Skip to content

Instantly share code, notes, and snippets.

@mikepallister
Last active July 5, 2023 06:59
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikepallister/0c8b73a6231cd58ead42b0b51b5d06f7 to your computer and use it in GitHub Desktop.
Save mikepallister/0c8b73a6231cd58ead42b0b51b5d06f7 to your computer and use it in GitHub Desktop.
Heatmiser Neo Hub

Sends commands to a Heatmiser Neo Hub, either an instruction or an information request. Uses TCP but the secret is to add a null (/0) character to the end of the request.

Known commands (not all tested)

{"AWAY_OFF":<device(s)>}

{"AWAY_ON":<device(s)>}

{"BOOST_OFF":[{"hours":0,"minutes":10},]]}

{"BOOST_OFF":[{"hours":0,"minutes":10},]}

{"CANCEL_HGROUP":}

{"CANCEL_HOLD_ALL":0}

{"CLEAR_PROFILE":}

{"COOL":<device(s)>}

{"COOL_DEFAULT":[, <device(s)>]}

{"CREATE_GROUP":[[], ]}

{"DELETE_GROUP":}

{"DST_OFF":0}

{"DST_ON":0}

{"ENGINEERS_DATA":0}

{"FIRMWARE":0}

{"FROST_OFF":<device(s)>}

{"FROST_ON":<device(s)>}

{"GET_GROUPS":0}

{"GET_HOLD":0} {"GET_HOLIDAY":0}

{"GET_HOURSRUN":<device(s)>}

{"GET_PROFILE":}

{"GET_PROFILES":0}

{"GET_TEMPLOG":<device(s)>}

{"GET_ZONES":0}

{"HOLD":[{"temp":, "id":,"hours":, "minutes":}, <device(s)>]} {"HOLIDAY":["HHMMSSDDMMYYYY","HHMMSSDDMMYYYY"]};

{"INFO":0}

{"LOCK":[[,,,], <device(s)>]}

{"MANUAL_DST":} Valid values are 0 and 1

{"MANUAL_OFF":}

{"MANUAL_ON":}

{"NTP_OFF":0} Turn off network time protocol client

{"NTP_ON":0} Turn on network time protocol client

{"PERMIT_JOIN":[, ]}

{"READ_COMFORT_LEVELS":<device(s)>}

{"READ_DCB":100} for reading DCB100 used to recover status information from the NeoHub

{"READ_TIMECLOCK":<device(s)>}

{"REMOVE_REPEATER":}

{"REMOVE_ZONE":}

{"RUN_PROFILE":}

{"SET_COMFORT_LEVELS":[, <device(s)>]} For see READ_COMFORT_LEVELS result {"SET_COOL_TEMP":[, <device(s)>]};

{"SET_DATE":[, , ]} Integers

{"SET_DELAY":[, <device(s)>]}

{"SET_DIFF":[, <device(s)>]}

{"SET_FLOOR":[, <device(s)>]}

{"SET_FORMAT":} format is a string, "NONPROGRAMMABLE", "7DAY", "5DAY/2DAY", or "24HOURSFIXED"

{"SET_FROST":[, <device(s)>]}

{"SET_PREHEAT":[, <device(s)>]}

{"SET_TEMP":[, <device(s)>]}

{"SET_TEMP_FORMAT":}

{"SET_TIME":[,]}

{"SET_TIMECLOCK":[, <device(s)>]} For see READ_TIMECLOCK result

{"STATISTICS":0}

{"STORE_PROFILE":}

{"SUMMER_OFF":<device(s)>}

{"SUMMER_ON":<device(s)>}

{"TIME_ZONE":}

{"TIMER_HOLD_OFF":[, <device(s)>]}

{"TIMER_HOLD_ON":[, <device(s)>]}

{"TIMER_OFF":<device(s)>}

{"TIMER_ON":<device(s)>}

{"UNLOCK":<device(s)>}

{"USER_LIMIT":[, <device(s)>]}

{"VIEW_ROC":<device(s)>}

{"ZONE_TITLE":[, ]}

{"SET_CHANNEL":25} Used to change the zigbee channel to avoid conflicts with other devices.

[{"id":"43fe5a90.aaddf4","type":"tcp request","z":"51009713.dae99","server":"192.168.1.183 ","port":"4242","out":"char","splitc":"\\n","name":"192.168.1.183 ","x":560,"y":220,"wires":[["9962a9fe.da837"]]},{"id":"5bc23048.c962d8","type":"inject","z":"51009713.dae99","name":"Info","topic":"","payload":" {\"INFO\":0}","payloadType":"str","repeat":"","crontab":"","once":false,"x":170,"y":200,"wires":[["3dd02b1a.d812fc"]]},{"id":"3dd02b1a.d812fc","type":"function","z":"51009713.dae99","name":"Add Null","func":"msg.payload = msg.payload + '\\0';\nreturn msg;","outputs":1,"noerr":0,"x":380,"y":220,"wires":[["43fe5a90.aaddf4"]]},{"id":"9bab119c.33f28","type":"inject","z":"51009713.dae99","name":"Read Comfort Level ","topic":"","payload":" {\"READ_COMFORT_LEVELS\":[\"Drawing Room\"]}","payloadType":"str","repeat":"","crontab":"","once":false,"x":130,"y":260,"wires":[["3dd02b1a.d812fc"]]},{"id":"142f1ad3.f8733d","type":"inject","z":"51009713.dae99","name":"Set Temp","topic":"","payload":" {\"SET_TEMP\":[25, \"Study\"]}","payloadType":"str","repeat":"","crontab":"","once":false,"x":160,"y":140,"wires":[["3dd02b1a.d812fc"]]},{"id":"85dd2649.94809","type":"inject","z":"51009713.dae99","name":"Statistics","topic":"","payload":"{\"STATISTICS\":0}","payloadType":"str","repeat":"","crontab":"","once":false,"x":160,"y":320,"wires":[["3dd02b1a.d812fc"]]},{"id":"8b6a1f87.0ea3b","type":"inject","z":"51009713.dae99","name":"Get Templog","topic":"","payload":" {\"GET_TEMPLOG\":[\"Study\",\"Kitchen\"]}","payloadType":"str","repeat":"","crontab":"","once":false,"x":130,"y":400,"wires":[["16edd349.e940d5"]]},{"id":"9962a9fe.da837","type":"function","z":"51009713.dae99","name":"ToString","func":"msg.payload = msg.payload.toString();\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":220,"wires":[["4e26e734.f6fed8"]]},{"id":"2f96a813.2f50e","type":"json","z":"51009713.dae99","name":"","pretty":false,"x":810,"y":400,"wires":[["f79b1cf6.45c538"]]},{"id":"f79b1cf6.45c538","type":"function","z":"51009713.dae99","name":"Today","func":"msg.payload = msg.payload.today;\nreturn msg;","outputs":1,"noerr":0,"x":950,"y":400,"wires":[["ab85a63.1dd4fd8"]]},{"id":"ab85a63.1dd4fd8","type":"debug","z":"51009713.dae99","name":"TCP Out","active":true,"console":"false","complete":"payload","x":1100,"y":400,"wires":[]},{"id":"4e26e734.f6fed8","type":"debug","z":"51009713.dae99","name":"TCP Out","active":true,"console":"false","complete":"payload","x":900,"y":220,"wires":[]},{"id":"16edd349.e940d5","type":"function","z":"51009713.dae99","name":"Add null","func":"msg.payload = msg.payload + '\\0';\nreturn msg;","outputs":1,"noerr":0,"x":300,"y":400,"wires":[["2fd77e46.319fda"]]},{"id":"2fd77e46.319fda","type":"tcp request","z":"51009713.dae99","server":"192.168.1.183 ","port":"4242","out":"char","splitc":"\\n","name":"192.168.1.183 ","x":480,"y":400,"wires":[["757b78d9.d70458"]]},{"id":"757b78d9.d70458","type":"function","z":"51009713.dae99","name":"ToString","func":"msg.payload = msg.payload.toString();\nreturn msg;","outputs":1,"noerr":0,"x":660,"y":400,"wires":[["2f96a813.2f50e"]]}]
@a4refillpad
Copy link

SET_CHANNEL appears to work with double quotes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment