Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save scholy/be7c99d8282e50ac9f0c6a6d95674a19 to your computer and use it in GitHub Desktop.
Save scholy/be7c99d8282e50ac9f0c6a6d95674a19 to your computer and use it in GitHub Desktop.
TiltPi to HA via Node-Red/Mqtt
// Rob Lichtenberger
// bassicrob@gmail.com
// updated 03.17.19 21:20 ET
//
// Works at the moment for only a single Tilt
//
// TO DO:
// Add Tilt Color in payload topic for MQTT
// Add trigger for temp notification
// Add trigger for stable SG notification
// Add lovelace card in UI
// Add logging into influxDB (or via Hassio)
// Parse Beer Name to exclude number
// Issue MQTT "on" and "off" cmd to initiate brewing status
// Use "on/off" cmd for conditional lovelace card
//
// configuration.yaml for Homeassistant Sensors:
// - platform: mqtt
// name: "Beer Fermentation Temperature"
// state_topic: "beer/Temp/"
// unit_of_measurement: "°F"
// - platform: mqtt
// name: "Beer Specific Gravity"
// state_topic: "beer/SG/"
// unit_of_measurement: "SG" # allows for a chart in lovelace card, maybe?
// - platform: mqtt
// name: "Beer Name"
// state_topic: "beer/name/"
// - platform: mqtt
// name: "Tilt Signal Strength"
// state_topic: "beer/rssi/"
// unit_of_measurement: "dBm"
// - platform: mqtt
// name: "Beer Last Reading"
// state_topic: "beer/timeread/"
//
//
[
{
"id": "aa8c849f.946628",
"type": "tab",
"label": "Flow 1",
"disabled": false,
"info": ""
},
{
"id": "ff5da4f1.75beb8",
"type": "link in",
"z": "aa8c849f.946628",
"name": "",
"links": [
"579d2c87.e45b54"
],
"x": 360,
"y": 360,
"wires": [
[
"3469e0af.782fc"
]
]
},
{
"id": "9921fc96.9697c",
"type": "debug",
"z": "aa8c849f.946628",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 1170,
"y": 240,
"wires": []
},
{
"id": "3469e0af.782fc",
"type": "delay",
"z": "aa8c849f.946628",
"name": "",
"pauseType": "rate",
"timeout": "5",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "minute",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": true,
"x": 490,
"y": 360,
"wires": [
[
"47c63e69.77bea"
]
]
},
{
"id": "83a0384b.8e8ab8",
"type": "mqtt out",
"z": "aa8c849f.946628",
"name": "",
"topic": "beer/name/",
"qos": "0",
"retain": "false",
"broker": "44631564.22e0ac",
"x": 1150,
"y": 280,
"wires": []
},
{
"id": "92a3f244.f0e98",
"type": "inject",
"z": "aa8c849f.946628",
"name": "",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 400,
"y": 460,
"wires": [
[]
]
},
{
"id": "47c63e69.77bea",
"type": "split",
"z": "aa8c849f.946628",
"name": "",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "topic",
"x": 690,
"y": 360,
"wires": [
[
"1887d049.5eabe"
]
]
},
{
"id": "1887d049.5eabe",
"type": "switch",
"z": "aa8c849f.946628",
"name": "",
"property": "topic",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "Beer",
"vt": "str"
},
{
"t": "eq",
"v": "formatteddate",
"vt": "str"
},
{
"t": "eq",
"v": "SG",
"vt": "str"
},
{
"t": "eq",
"v": "rssi",
"vt": "str"
},
{
"t": "eq",
"v": "Temp",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 5,
"x": 850,
"y": 360,
"wires": [
[
"9921fc96.9697c",
"83a0384b.8e8ab8"
],
[
"9921fc96.9697c",
"c5d02b30.8e4a78",
"f36a011f.d7b9b"
],
[
"9921fc96.9697c",
"751bc8db.f181c8"
],
[
"9921fc96.9697c",
"11156dbb.bdd442"
],
[
"9921fc96.9697c",
"b969b7ae.883f38"
]
]
},
{
"id": "751bc8db.f181c8",
"type": "mqtt out",
"z": "aa8c849f.946628",
"name": "",
"topic": "beer/SG/",
"qos": "0",
"retain": "false",
"broker": "44631564.22e0ac",
"x": 1140,
"y": 420,
"wires": []
},
{
"id": "b969b7ae.883f38",
"type": "mqtt out",
"z": "aa8c849f.946628",
"name": "",
"topic": "beer/Temp/",
"qos": "0",
"retain": "false",
"broker": "44631564.22e0ac",
"x": 1150,
"y": 500,
"wires": []
},
{
"id": "11156dbb.bdd442",
"type": "mqtt out",
"z": "aa8c849f.946628",
"name": "",
"topic": "beer/rssi/",
"qos": "0",
"retain": "false",
"broker": "44631564.22e0ac",
"x": 1140,
"y": 460,
"wires": []
},
{
"id": "c5d02b30.8e4a78",
"type": "mqtt out",
"z": "aa8c849f.946628",
"name": "",
"topic": "beer/timeread/",
"qos": "0",
"retain": "false",
"broker": "44631564.22e0ac",
"x": 1160,
"y": 380,
"wires": []
},
{
"id": "f36a011f.d7b9b",
"type": "trigger",
"z": "aa8c849f.946628",
"op1": "on",
"op2": "off",
"op1type": "str",
"op2type": "str",
"duration": "5",
"extend": true,
"units": "min",
"reset": "",
"bytopic": "all",
"name": "",
"x": 1150,
"y": 340,
"wires": [
[
"74b5bba0.c796d4"
]
]
},
{
"id": "74b5bba0.c796d4",
"type": "mqtt out",
"z": "aa8c849f.946628",
"name": "",
"topic": "beer/status/",
"qos": "0",
"retain": "true",
"broker": "44631564.22e0ac",
"x": 1350,
"y": 340,
"wires": []
},
{
"id": "e16157ce.31c808",
"type": "comment",
"z": "aa8c849f.946628",
"name": "To Do",
"info": "Add trigger for temp notification\nAdd trigger for stable SG notification\nAdd lovelace card in UI\nAdd logging into influxDB (or via Hassio)\n",
"x": 870,
"y": 160,
"wires": []
},
{
"id": "fd43597f.6ab718",
"type": "comment",
"z": "aa8c849f.946628",
"name": "NODE LINK FROM INTERPOLATE",
"info": "",
"x": 420,
"y": 300,
"wires": []
},
{
"id": "44631564.22e0ac",
"type": "mqtt-broker",
"z": "",
"name": "HA Mqtt",
"broker": "192.168.10.33",
"port": "1883",
"clientid": "tiltpi",
"usetls": false,
"compatmode": true,
"keepalive": "60",
"cleansession": true,
"willTopic": "",
"willQos": "0",
"willPayload": "",
"birthTopic": "",
"birthQos": "0",
"birthPayload": ""
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment