Last active
January 7, 2018 08:42
-
-
Save unixweb/769ef00788748c3135b0fbe4ad9c2310 to your computer and use it in GitHub Desktop.
Google Home Speech with Node-Red
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[{"id":"bb4433fd.83e2e8","type":"mqtt in","z":"7178696f.8022","name":"Air Pressure","topic":"pressure/p1","qos":"2","broker":"f0d962da.ee7f7","x":113,"y":75.99996948242188,"wires":[["5f72bbfe.d37b3c"]]},{"id":"5f72bbfe.d37b3c","type":"function","z":"7178696f.8022","name":"Time and Date","func":"// (1) wandelt timestamo ins ISO Datumformat um\n//msg.timestamp= new Date().toISOString()\n\n// (2) beliebiges Datum festlegbar: hier: YYYY-MM-DD HH:MM.SS\n// (Ausgabeformat wird am Ende zusammengestellt)\nvar now = new Date(); \nvar year = now.getFullYear();\nvar month = now.getMonth()+1; \nvar day = now.getDate();\nvar hour = now.getHours();\nvar minute = now.getMinutes();\nvar second = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n} \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n} \n\n\n// Variante1: wenn z.B. nicht ein vorhandener Payload\n// überschrieben werden soll, sondern um ein\n// Datum ergänzt werden soll. \n\n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\n\n// Variante 2: Function gibt die aktuelle Zeit als payload aus\nnow = day+'-'+month+'-'+year+' '+hour+':'+minute+':'+second;\n// JSON Antwort parsen\nvar weather=JSON.parse(msg.payload);\n \n// Neue Nachricht mit Payload erstellen\nvar newMsg = { payload: \"Der aktuelle Luftdruck beträgt\" +weather + \" hPa\"};\n//var newMsg = { payload: \"Der aktuelle Luftdruck in München ist \"+weather + \" hPa.\\r\" +Date}; \n// Zurückgeben der Nachricht\nreturn [newMsg];","outputs":1,"noerr":0,"x":313,"y":75,"wires":[["fc516b34.b67c3"]]},{"id":"fc516b34.b67c3","type":"delay","z":"7178696f.8022","name":"","pauseType":"delay","timeout":"20","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":551,"y":75,"wires":[["efd24529.6eb748"]]},{"id":"efd24529.6eb748","type":"function","z":"7178696f.8022","name":"","func":"\nreturn msg;","outputs":1,"noerr":0,"x":695,"y":122,"wires":[["8955ef3.95b489"]]},{"id":"3ce31c98.432e9c","type":"delay","z":"7178696f.8022","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":318,"y":123,"wires":[["efd24529.6eb748"]]},{"id":"854aa86d.4a7d9","type":"delay","z":"7178696f.8022","name":"","pauseType":"delay","timeout":"20","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":323,"y":180,"wires":[["efd24529.6eb748"]]},{"id":"cc70e2f3.480a2","type":"delay","z":"7178696f.8022","name":"","pauseType":"delay","timeout":"30","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":545,"y":294,"wires":[["efd24529.6eb748"]]},{"id":"a40aa761.570508","type":"inject","z":"7178696f.8022","name":"","topic":"","payload":"Die Türe ist geöffnet","payloadType":"str","repeat":"","crontab":"","once":false,"x":416,"y":239,"wires":[["efd24529.6eb748"]]},{"id":"8955ef3.95b489","type":"and-gate","z":"7178696f.8022","name":"","rules":[{"t":"eq","v":"VOICE","vt":"str","propertyType":"flow","property":"payload"}],"outputTopic":"","gateType":"and","emitOnlyIfTrue":true,"x":886,"y":122,"wires":[["3fdc7fcd.3fba9"]]},{"id":"1c31ddae.379702","type":"mqtt in","z":"7178696f.8022","name":"","topic":"home/msg","qos":"2","broker":"f0d962da.ee7f7","x":105,"y":134,"wires":[["3ce31c98.432e9c"]]},{"id":"1fe1753d.2f065b","type":"mqtt in","z":"7178696f.8022","name":"","topic":"home/msg2","qos":"2","broker":"f0d962da.ee7f7","x":112,"y":192,"wires":[["854aa86d.4a7d9"]]},{"id":"cdf65973.5f7f58","type":"function","z":"7178696f.8022","name":"Parse Temperature","func":"// (1) wandelt timestamo ins ISO Datumformat um\n//msg.timestamp= new Date().toISOString()\n\n// (2) beliebiges Datum festlegbar: hier: YYYY-MM-DD HH:MM.SS\n// (Ausgabeformat wird danz am Ende zusammengestellt)\nvar now = new Date(); \nvar year = now.getFullYear();\nvar month = now.getMonth()+1; \nvar day = now.getDate();\nvar hour = now.getHours();\nvar minute = now.getMinutes();\nvar second = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n} \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n} \n\n\n// Variante1: wenn z.B. nicht ein vorhandener Payload\n// überschrieben werden soll, sondern um ein\n// Datum ergänzt werden soll. \n\n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\n\n// Variante 2: Function gibt die aktuelle Zeit als payload aus\nnow = day+'-'+month+'-'+year+' '+hour+':'+minute+':'+second;\n\n// JSON Antwort parsen\nvar weather=JSON.parse(msg.payload);\n \n// Neue Nachricht mit Payload erstellen\nvar newMsg = { payload: \"Die aktuelle Außentemperatur beträgt \"+weather + \" Grad\"};\n \n// Zurückgeben der Nachricht\nreturn [newMsg];","outputs":1,"noerr":0,"x":359,"y":295,"wires":[["cc70e2f3.480a2"]]},{"id":"3fdc7fcd.3fba9","type":"googlehome-notify","z":"7178696f.8022","server":"a427a4e3.e2b058","name":"","x":1116,"y":123,"wires":[]},{"id":"4de1dfda.5021d","type":"mqtt in","z":"7178696f.8022","name":"Temperature Terrasse","topic":"temp/jhummel","qos":"2","broker":"f0d962da.ee7f7","x":136,"y":295.7999572753906,"wires":[["cdf65973.5f7f58"]]},{"id":"fa1adc5b.6874f","type":"inject","z":"7178696f.8022","name":"Set flow.payload ...","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"0 23 * * *","once":false,"x":158,"y":423,"wires":[["b3f1219b.8623c"]]},{"id":"fa7b3a2f.e871a","type":"inject","z":"7178696f.8022","name":"Set flow.payload ...","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"0 0-8 * * *","once":false,"x":164,"y":482,"wires":[["8f770cd0.6e9df"]]},{"id":"b3f1219b.8623c","type":"change","z":"7178696f.8022","name":"... to \"Voice On\"","rules":[{"t":"set","p":"payload","pt":"flow","to":"VOICE","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":430,"y":424,"wires":[[]]},{"id":"8f770cd0.6e9df","type":"change","z":"7178696f.8022","name":"... to \"Voice Off\"","rules":[{"t":"set","p":"payload","pt":"flow","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":432,"y":483,"wires":[[]]},{"id":"f0d962da.ee7f7","type":"mqtt-broker","z":"","broker":"mqtt.unixweb.de","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"15","cleansession":true,"willTopic":"","willQos":"0","willPayload":"","birthTopic":"","birthQos":"0","birthPayload":""},{"id":"a427a4e3.e2b058","type":"googlehome-config-node","z":"","ipaddress":"192.168.1.1","language":"de"}] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Requirements
1.) npm install node-red-contrib-bool-gate
2.) npm install node-red-contrib-google-home-notify