Sí. Si tienes Node-RED funcionando en un Mac o en una Raspberry Pi, puedes guardar un simple AppleScript, como el que se muestra a continuación, como una aplicación:
set webhookurl to "http://raspberrypi.local:1880/smartplugon"
set shellTxt to "curl -X GET " & " \"" & webhookurl & "\" > /dev/null"
do shell script shellTxt
que puede hacer una simple llamada de webhook a su instancia de Node-RED, en cualquier momento que lo ejecute. Node-RED puede configurarse para que escuche en una URL como la de arriba, que vigila las llamadas a una ubicación que usted nombre, por ejemplo smartplugon
(que se define en un flujo de trabajo de Node-RED mediante un http in
nodo).
Entonces, al instalar node-red-contrib-homekit-bridged
en Node-RED, puedes enlazar Node-RED con Siri. Los nodos que crees usando ese nodo homekit-bridged aparecerán en tu teléfono, y podrán recibir comandos de encendido/apagado a través de la llamada de webhook (que es, como en este caso, llamada por la aplicación applescript que hicimos arriba). A continuación, se conecta el nodo homekit-bridged a un nodo específico del dispositivo, como un nodo WeMo, que realmente emite el comando de encendido/apagado al dispositivo.
Tenga en cuenta que esto no funciona con un podcast de Apple o un iPad. Sin embargo, puede transferir todos sus dispositivos inteligentes a Node-RED y utilizarlo como su centro. Así podrás hacer mucho más de lo que permite el ecosistema de Apple.
Este es un ejemplo del flujo de trabajo para recibir la llamada del webhook y encender un enchufe inteligente (el control real del enchufe inteligente no está incluido, así que todo lo que esto hace es cambiar el estado del botón en su teléfono - añadir los controles del dispositivo se deja a usted):
[
{
"id": "2eeb6d1c.b427aa",
"type": "tab",
"label": "home example",
"disabled": false,
"info": ""
},
{
"id": "dfce471f.cf9df8",
"type": "http in",
"z": "2eeb6d1c.b427aa",
"name": "Smart Plug On",
"url": "/smartplugon",
"method": "get",
"upload": false,
"swaggerDoc": "",
"x": 310,
"y": 180,
"wires": [
[
"6c1cc05b.d47088",
"18cbf86.372f988"
]
]
},
{
"id": "6c1cc05b.d47088",
"type": "http response",
"z": "2eeb6d1c.b427aa",
"name": "Response",
"statusCode": "200",
"headers": {},
"x": 470,
"y": 160,
"wires": []
},
{
"id": "18cbf86.372f988",
"type": "template",
"z": "2eeb6d1c.b427aa",
"name": "On",
"field": "payload",
"fieldType": "msg",
"format": "handlebars",
"syntax": "plain",
"template": "{\"On\":true}",
"output": "json",
"x": 450,
"y": 200,
"wires": [
[
"645fcc0c.a3cc84"
]
]
},
{
"id": "645fcc0c.a3cc84",
"type": "homekit-service",
"z": "2eeb6d1c.b427aa",
"isParent": true,
"bridge": "f2691ed1.345838",
"parentService": "",
"name": "Smart Plug",
"serviceName": "Outlet",
"topic": "",
"filter": false,
"manufacturer": "Default Manufacturer",
"model": "Default Model",
"serialNo": "0001",
"cameraConfigVideoProcessor": "",
"cameraConfigSource": "",
"cameraConfigStillImageSource": "",
"cameraConfigMaxStreams": "",
"cameraConfigMaxWidth": "",
"cameraConfigMaxHeight": "",
"cameraConfigMaxFPS": "",
"cameraConfigMaxBitrate": "",
"cameraConfigVideoCodec": "",
"cameraConfigAudioCodec": "",
"cameraConfigAudio": false,
"cameraConfigPacketSize": "",
"cameraConfigVerticalFlip": false,
"cameraConfigHorizontalFlip": false,
"cameraConfigMapVideo": "",
"cameraConfigMapAudio": "",
"cameraConfigVideoFilter": "",
"cameraConfigAdditionalCommandLine": "",
"cameraConfigDebug": false,
"cameraConfigInterfaceName": "",
"characteristicProperties": "{\"On\":true}",
"x": 590,
"y": 200,
"wires": [
[],
[]
]
},
{
"id": "f2691ed1.345838",
"type": "homekit-bridge",
"z": "",
"bridgeName": "NodeRED HomeKitD",
"pinCode": "111-11-111",
"port": "",
"allowInsecureRequest": false,
"manufacturer": "Default Manufacturer",
"model": "Default Model",
"serialNo": "Default Serial Number",
"customMdnsConfig": false,
"mdnsMulticast": true,
"mdnsInterface": "",
"mdnsPort": "",
"mdnsIp": "",
"mdnsTtl": "",
"mdnsLoopback": true,
"mdnsReuseAddr": true,
"allowMessagePassthrough": false
}
]
Nota, puede importar el flujo de trabajo en Node-RED copiando el flujo anterior, seleccionando Import
en el menú Node-RED de la parte superior derecha.
A continuación, crearía una aplicación para cada acción que desee realizar y cambiaría la última parte de la URL en el AppleScript y crearía un nuevo http in
nodo conectado a otro homekit-bridged
dispositivo.