[{"id":"ad3641be.86ad6","type":"tab","label":"mysmarthome","disabled":false,"info":""},{"id":"2e5a43dd.01031c","type":"mqtt in","z":"ad3641be.86ad6","name":"receive request","topic":"mysmarthome/request/+","qos":"0","datatype":"json","broker":"236615bb.50841a","x":200,"y":500,"wires":[["480291fe.470a5"]]},{"id":"c98313ac.c04f9","type":"inject","z":"ad3641be.86ad6","name":"discovery event","topic":"mysmarthome/request/00000000-0000-0000-0000-000000000000","payload":"{\"payload\":{\"directive\":{\"header\":{\"namespace\":\"Alexa.Discovery\",\"name\":\"Discover\",\"payloadVersion\":\"3\",\"messageId\":\"1bd5d003-31b9-476f-ad03-71d471922820\"},\"payload\":{\"scope\":{\"type\":\"BearerToken\",\"token\":\"access-token-from-skill\"}}}}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":200,"y":260,"wires":[["480291fe.470a5"]]},{"id":"253ff109.e6516e","type":"mqtt out","z":"ad3641be.86ad6","name":"publish response","topic":"","qos":"0","retain":"","broker":"236615bb.50841a","x":1050,"y":340,"wires":[]},{"id":"bb76f050.4b11","type":"lirc-out","z":"ad3641be.86ad6","name":"Gutmann","controller":"60374a53.01a0c4","device":"TZ_602","output":"1","x":1060,"y":700,"wires":[]},{"id":"3f3f891e.1f0506","type":"inject","z":"ad3641be.86ad6","name":"BRIGHTNESS_CYCLE","topic":"","payload":"KEY_BRIGHTNESS_CYCLE","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":800,"y":700,"wires":[["bb76f050.4b11"]]},{"id":"4460bf19.5de5f","type":"inject","z":"ad3641be.86ad6","name":"POWER","topic":"","payload":"KEY_POWER","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":760,"y":660,"wires":[["bb76f050.4b11"]]},{"id":"38645fb2.c8c38","type":"inject","z":"ad3641be.86ad6","name":"UP","topic":"","payload":"KEY_UP","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":750,"y":740,"wires":[["bb76f050.4b11"]]},{"id":"72379426.ddca3c","type":"inject","z":"ad3641be.86ad6","name":"DOWN","topic":"","payload":"KEY_DOWN","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":750,"y":780,"wires":[["bb76f050.4b11"]]},{"id":"2e5ca689.b8dbaa","type":"inject","z":"ad3641be.86ad6","name":"MAX","topic":"","payload":"KEY_MAX","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":750,"y":820,"wires":[["bb76f050.4b11"]]},{"id":"d785cf6a.36e3","type":"inject","z":"ad3641be.86ad6","name":"TIME","topic":"","payload":"KEY_TIME","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":750,"y":860,"wires":[["bb76f050.4b11"]]},{"id":"f3d76027.cdd4e","type":"switch","z":"ad3641be.86ad6","name":"","property":"payload","propertyType":"msg","rules":[{"t":"jsonata_exp","v":"payload.payload.directive.header.(namespace=\"Alexa.Discovery\" and name=\"Discover\")","vt":"jsonata"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":570,"y":500,"wires":[["8266bb3c.e4a2c8"],["7d4810e7.97eeb"]]},{"id":"f82edff0.adea","type":"debug","z":"ad3641be.86ad6","name":"response","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1020,"y":260,"wires":[]},{"id":"8266bb3c.e4a2c8","type":"function","z":"ad3641be.86ad6","name":"Discovery","func":"const responseTopic = msg.topic.replace('/request','/response');\nmsg.topic = responseTopic;\n\nconst iotEndpointId = global.get('iotEndpointId')\nconst cookerHoodId = global.get('cookerHoodId')\nconst hoodLightId = global.get('hoodLightId')\n\nmsg.payload = {\n iotEndpointId: iotEndpointId,\n payload: {\n endpoints: [{\n endpointId: cookerHoodId,\n manufacturerName: 'Raspberry Pi',\n description: 'Dunstabzugshaube',\n friendlyName: 'Dunstabzug',\n displayCategories: ['FAN'],\n capabilities: [{\n type: 'AlexaInterface',\n interface: 'Alexa.PowerController',\n version: '3',\n properties: {\n supported: undefined,\n proactivelyReported: false,\n retrievable: false\n }\n }]\n }, {\n endpointId: hoodLightId,\n manufacturerName: 'Raspberry Pi',\n description: 'Licht der Dunstabzugshaube',\n friendlyName: 'Abzugslicht',\n displayCategories: ['LIGHT'],\n capabilities: [{\n type: 'AlexaInterface',\n interface: 'Alexa.PowerController',\n version: '3',\n properties: {\n supported: undefined,\n proactivelyReported: false,\n retrievable: false\n }\n }]\n }]\n }\n};\n\nreturn msg;\n","outputs":1,"noerr":0,"x":760,"y":400,"wires":[["f82edff0.adea","253ff109.e6516e"]]},{"id":"480291fe.470a5","type":"json","z":"ad3641be.86ad6","name":"to object","property":"payload","action":"obj","pretty":false,"x":400,"y":500,"wires":[["34941eed.3f4fb2","f3d76027.cdd4e"]]},{"id":"34941eed.3f4fb2","type":"debug","z":"ad3641be.86ad6","name":"received event","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":620,"y":220,"wires":[]},{"id":"3396548b.2347ac","type":"config","z":"ad3641be.86ad6","name":"","properties":[{"p":"cookerHoodId","pt":"global","to":"cookerHood001","tot":"str"},{"p":"hoodLightId","pt":"global","to":"hoodLight001","tot":"str"},{"p":"iotEndpointId","pt":"global","to":"raspberryPi001","tot":"str"}],"active":true,"x":170,"y":200,"wires":[]},{"id":"318680f8.0b515","type":"inject","z":"ad3641be.86ad6","name":"hood light","topic":"","payload":"{\"endpointId\":\"hoodLight001\",\"payload\":{\"directive\":{\"header\":{\"namespace\":\"Alexa.PowerController\",\"name\":\"TurnOn\",\"payloadVersion\":\"3\",\"messageId\":\"03e83f68-135d-4e9b-aa58-fe84dc2fad89\",\"correlationToken\":\"correlation-token-from-skill\"},\"endpoint\":{\"scope\":{\"type\":\"BearerToken\",\"token\":\"access-token-from-skill\"},\"endpointId\":\"hoodLight001\",\"cookie\":{}},\"payload\":{}}}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":180,"y":380,"wires":[["480291fe.470a5"]]},{"id":"e7a4c4a5.28c068","type":"inject","z":"ad3641be.86ad6","name":"cooker hood","topic":"","payload":"{\"endpointId\":\"cookerHood001\",\"payload\":{\"directive\":{\"header\":{\"namespace\":\"Alexa.PowerController\",\"name\":\"TurnOn\",\"payloadVersion\":\"3\",\"messageId\":\"03e83f68-135d-4e9b-aa58-fe84dc2fad89\",\"correlationToken\":\"correlation-token-from-skill\"},\"endpoint\":{\"scope\":{\"type\":\"BearerToken\",\"token\":\"access-token-from-skill\"},\"endpointId\":\"cookerHood001\",\"cookie\":{}},\"payload\":{}}}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":190,"y":320,"wires":[["480291fe.470a5"]]},{"id":"7d4810e7.97eeb","type":"function","z":"ad3641be.86ad6","name":"dispatch key","func":"const cookerHoodId = global.get(\"cookerHoodId\");\nconst hoodLightId = global.get(\"hoodLightId\");\nconst endpointId = msg.payload.endpointId;\n\nmsg.payload = \"\";\nif(endpointId === cookerHoodId) {\n msg.payload = \"KEY_POWER\";\n} else if(endpointId === hoodLightId) {\n msg.payload = \"KEY_BRIGHTNESS_CYCLE\";\n}\nreturn msg;","outputs":1,"noerr":0,"x":770,"y":560,"wires":[["bb76f050.4b11","7e0241c6.8dff9"]]},{"id":"7e0241c6.8dff9","type":"debug","z":"ad3641be.86ad6","name":"key","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1050,"y":560,"wires":[]},{"id":"236615bb.50841a","type":"mqtt-broker","z":"","name":"MySmartHome MQTT","broker":"a1r5gapbm9ij1g-ats.iot.eu-west-1.amazonaws.com","port":"8883","tls":"759acd05.68cd74","clientid":"","usetls":true,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"60374a53.01a0c4","type":"lirc-controller","z":"","name":"Gutmann"},{"id":"759acd05.68cd74","type":"tls-config","z":"","name":"AWS-RaspberryPi","cert":"/home/owahlen/Development/raspberrypi-iot/1471cfc859-certificate.pem.crt","key":"/home/owahlen/Development/raspberrypi-iot/1471cfc859-private.pem.key","ca":"/home/owahlen/Development/raspberrypi-iot/AmazonRootCA1.pem","certname":"","keyname":"","caname":"","servername":"","verifyservercert":true}]