Ngrok desde teclado Telegram

Abrimos Ngrok desde un teclado Telegram, conectado a nuestra Raspberry Pi desde Node Red. Utilizamos un tunel Ngrok (http) para ejecutar Node Red desde Internet (Laptop, Tablet, Celular), o un tunel Ngrok (tcp) para ejecutar VNC desde internet (Laptop, Tablet, Celular) desde el cliente VNC. El teclado lo habilitamos enviando "Ngrok" desde nuestro bot Telegram.

Nota: En el flujo deberán setearse los nodos Telegram con los datos de nuestro bot Telegram, y los nodos Ngrok con su token.

[{"id":"ed5b85e1.edf908","type":"tab","label":"ngrok_botonera","disabled":false,"info":""},{"id":"3ea49c79.2f49c4","type":"ngrok","z":"ed5b85e1.edf908","port":"1880","creds":"5f7c1f70.2666","region":"eu","proto":"http","subdomain":"","name":"","auth":"","x":530,"y":160,"wires":[["72d3944f.ad0e6c","2c27b16d.0266de"]]},{"id":"402743e.fe45abc","type":"inject","z":"ed5b85e1.edf908","name":"","topic":"","payload":"on","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":240,"wires":[["3ea49c79.2f49c4"]]},{"id":"e074adb5.c43c9","type":"inject","z":"ed5b85e1.edf908","name":"","topic":"","payload":"off","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":280,"wires":[["3ea49c79.2f49c4"]]},{"id":"bdbf60b3.d5d71","type":"function","z":"ed5b85e1.edf908","name":"","func":"context.global.ngrok = {chat_id : msg.payload.chatId, mens_id : msg.payload.messageId};\nif(msg.payload.content == \"Ngrok\"){\n   var opts = {\n        resize_keyboard: true,\n        one_time_keyboard: true,\n        reply_markup: JSON.stringify({\n           \"inline_keyboard\": [[\n               {\"text\":\"Inicio tunel Ngrok\",\"switch_inline_query_current_chat\":\"ngrok_on\"},\n               {\"text\":\"Cerrar tunel Ngrok\",\"switch_inline_query_current_chat\":\"ngrok_off\"}],\n              [ {\"text\":\"Inicio tunel VNC\",\"switch_inline_query_current_chat\":\"vnc_on\"},\n               {\"text\":\"Cerrar tunel VNC\",\"switch_inline_query_current_chat\":\"vnc_off\"}\n            ]]\n       })\n    }\n//    msg.payload.chatId = chat_id;\n    msg.payload.options = opts;\n}\nelse if(msg.payload.content.includes(\"ngrok_on\")){\n    msg.payload = \"on\";\n    return [null,msg,null];\n}\nelse if(msg.payload.content.includes(\"ngrok_off\")){\n    flow.set(\"str\",\"Ngrok\");\n    msg.payload = \"off\";\n    return [null,msg,null];\n}\nelse if(msg.payload.content.includes(\"vnc_on\")){\n    msg.payload = \"on\";\n    return [null,null,msg];\n}\nelse if(msg.payload.content.includes(\"vnc_off\")){\n    flow.set(\"str\",\"VNC\");\n    msg.payload = \"off\";\n    return [null,null,msg];\n}\nreturn [msg,null,null];","outputs":3,"noerr":0,"x":350,"y":120,"wires":[["6fa8a972.6002e8","9071ddd8.a5ec4"],["3ea49c79.2f49c4"],["66e24095.6d286"]]},{"id":"e8e32f6a.68b61","type":"debug","z":"ed5b85e1.edf908","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":330,"y":60,"wires":[]},{"id":"72d3944f.ad0e6c","type":"function","z":"ed5b85e1.edf908","name":"","func":"if(msg.payload === null){\n    msg.payload = {chatId :context.global.ngrok.chat_id ,type : 'deleteMessage', content: context.global.ngrok.mens_id-2};\n    node.send(msg);\n    msg.payload = {chatId :context.global.ngrok.chat_id ,type : 'deleteMessage', content: context.global.ngrok.mens_id-1};\n    node.send(msg);\n    msg.payload = {chatId :context.global.ngrok.chat_id ,type : 'message', content: \"Tunel \"+ flow.get(\"str\")+\" cerrado\"};\n    node.send(msg);\n}\nelse if(msg.payload.includes(\"https://\")){\n    msg.payload = {chatId :context.global.ngrok.chat_id  ,type : 'message', content: \"Tunel Ngrok http abierto\", options : {reply_markup: JSON.stringify({\"inline_keyboard\": [[{\"text\":msg.payload,\"url\":msg.payload}]]})}};\n    node.send(msg);\n}\nelse if(msg.payload.includes(\"tcp://\")){\n    msg.payload = {chatId :context.global.ngrok.chat_id  ,type : 'message', content: \"Tunel Ngrok tcp abierto  \" + msg.payload};\n    node.send(msg);\n}\nreturn null ;","outputs":1,"noerr":0,"x":670,"y":160,"wires":[["9071ddd8.a5ec4"]]},{"id":"2c27b16d.0266de","type":"debug","z":"ed5b85e1.edf908","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":690,"y":220,"wires":[]},{"id":"1215ec0.a988714","type":"function","z":"ed5b85e1.edf908","name":"","func":"var chatId = msg.payload.chatId;\nvar username = msg.originalMessage.from.username;\nmsg.originalMessage.timestamp = new Date();\nvar message = JSON.stringify(originalMessage);\n\nmsg.topic = username + ' ' + chatId;\nmsg.payload = [msg.topic, message];\n\nreturn msg;","outputs":1,"noerr":0,"x":450,"y":360,"wires":[["a8a3150b.a33598","f520d2b9.507af"]]},{"id":"a8a3150b.a33598","type":"file","z":"ed5b85e1.edf908","name":"Registro","filename":"/media/pi/PEN_RASPI/TelegMens.txt","appendNewline":true,"createDir":false,"overwriteFile":"false","encoding":"none","x":620,"y":360,"wires":[[]]},{"id":"f520d2b9.507af","type":"debug","z":"ed5b85e1.edf908","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":630,"y":420,"wires":[]},{"id":"d9a88108.7d28","type":"comment","z":"ed5b85e1.edf908","name":"ngrok http","info":"","x":160,"y":200,"wires":[]},{"id":"66e24095.6d286","type":"ngrok","z":"ed5b85e1.edf908","port":"5901","creds":"2ff98951.79aa76","region":"eu","proto":"tcp","subdomain":"","name":"","auth":"","x":530,"y":240,"wires":[["72d3944f.ad0e6c","2023f33f.b2b63c"]]},{"id":"2023f33f.b2b63c","type":"debug","z":"ed5b85e1.edf908","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":690,"y":280,"wires":[]},{"id":"6812365e.3f3af8","type":"inject","z":"ed5b85e1.edf908","name":"","topic":"","payload":"on","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":380,"wires":[["66e24095.6d286"]]},{"id":"6dfd744c.2b2cdc","type":"inject","z":"ed5b85e1.edf908","name":"","topic":"","payload":"off","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":420,"wires":[["66e24095.6d286"]]},{"id":"bab2637e.ff94a","type":"comment","z":"ed5b85e1.edf908","name":"ngrok tcp","info":"","x":160,"y":340,"wires":[]},{"id":"6fa8a972.6002e8","type":"debug","z":"ed5b85e1.edf908","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":570,"y":60,"wires":[]},{"id":"13c2658e.9dc7ba","type":"telegram receiver","z":"ed5b85e1.edf908","name":"","bot":"2a8d891d.331d06","saveDataDir":"","x":150,"y":120,"wires":[["bdbf60b3.d5d71","e8e32f6a.68b61"],["1215ec0.a988714"]]},{"id":"9071ddd8.a5ec4","type":"telegram sender","z":"ed5b85e1.edf908","name":"","bot":"2a8d891d.331d06","x":890,"y":100,"wires":[[]]},{"id":"5f7c1f70.2666","type":"ngrokauth","z":""},{"id":"2ff98951.79aa76","type":"ngrokauth","z":""},{"id":"2a8d891d.331d06","type":"telegram bot","z":"","botname":"tu_boot","usernames":"","chatids":"","baseapiurl":"","updatemode":"polling","pollinterval":"300","usesocks":false,"sockshost":"","socksport":"6667","socksusername":"anonymous","sockspassword":"","bothost":"","localbotport":"8443","publicbotport":"8443","privatekey":"","certificate":"","useselfsignedcertificate":false,"sslterminated":false,"verboselogging":false}]

Flow Info

Created 4 years, 9 months ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • comment (x2)
  • debug (x5)
  • file (x1)
  • function (x3)
  • inject (x4)
Other

Tags

  • Ngrok
  • Telegram
  • Exec
  • Funcion
  • File
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option