@johan-0 This is the best thing I have ever encountered in my life of a developer. I just googled the issue I got in console and arrived at my own thread where the answer was already solved. hahah
Posts made by oskaremilsson
-
RE: IRTCP v1.0.0 (Hub server for using IR module via HTTP)posted in Flic Hub SDK
-
RE: Cant connect to hub with Fold 3posted in Flic Hub
@oskaremilsson yup. Erm. So.. this is awkward.
The phones BLE scanner must have gotten stuck in some bad state.
A restart of the phone worked
️Didn't cross my mind that the issue could be that deep into the system.
As a dev I should've tested that as #1 though
Thanks, and sorry!

-
RE: Cant connect to hub with Fold 3posted in Flic Hub
@Emil it was added first (I guess inherited from my account?). But I only got time out when trying to connect, so I deleted it in order to try to readd.
-
RE: Cant connect to hub with Fold 3posted in Flic Hub
@Emil
The app don't show the hub at all in scanning. Other devices finds the hub in seconds. -
Cant connect to hub with Fold 3posted in Flic Hub
Hi!
I can't connect to my hub with a Samsung Galaxy Fold 3.
The hub works with buttons, I can reach SDK, I can connect with an Samsung Galaxy Note 20 Ultra.
But it fails with the Fold.I have bluetooth on, I have given all the permissions. I've reinstalled the app. I've restated the hub. I've tried anything I can think of.
Any ideas?
-
RE: IRTCP v1.0.0 (Hub server for using IR module via HTTP)posted in Flic Hub SDK
@jitmo simply amazing!
If I were to put the original code on GitHub, would you be up to make these changes there so we get a nice history and stuff? -
Promises instead of Callbacks?posted in Flic Hub SDK
Is there any way of using Promises for stuff like
Datastore.get()instead ofcallback? -
RE: IRTCP v1.0.0 (Hub server for using IR module via HTTP)posted in Flic Hub SDK
@Emil Thanks, and thank you for quick responses on questions
-
RE: IRTCP v1.0.0 (Hub server for using IR module via HTTP)posted in Flic Hub SDK
I forgot to add how I'm calling this from my homecreen of my phone.
I'm usingHTTP Shortcuts-app widget. -
IRTCP v1.0.0 (Hub server for using IR module via HTTP)posted in Flic Hub SDK
What is it?
Hub TCP server for using the IR module via HTTP.
Both to record of new signals with a given name and to play them back.
Usingnetsince SDK doesn't have the nodejs HTTP-module available.Why?
I really wanted to be able to call my IR module from my phone homescreen or Google Home (via IFTTT). I got it working so I wanted to share it if anyone else find it helpful
The code is what could be called a POC, so code feedback and/or changes are totally welcome.
How does it work?
- Record a signal
GET {ip}:1338?record={name_of_signal} - Plays a signal
GET {ip}:1338?cmd={name_of_signal} - Cancel recording
GET {ip}:1338?cancelRecord=true
Example;
- call
GET 192.168.0.100:1338?record=volume_up - Press Volume Up on remote towards IR module
- returns
200 OK Signal volume_up stored! - call
GET 192.168.0.100:1338?cmd=volume_up - returns
200 OK Signal sent! - Volume goes up

The code
module.json{ "name": "IRTCP", "version": "1.0.0" }main.js// main.js const net = require("net"); const ir = require("ir"); const datastore = require("datastore"); const utils = require("./utils"); const respondToClient = function(c, statusCode, message) { c.write( "HTTP/1.1 " + statusCode + "\r\n" + "\r\n" ); c.write(message); c.end(); } const handleCmd = function(c, cmd) { datastore.get(cmd, function(err, strBuffer) { if (!err && strBuffer) { var signal = new Uint32Array(utils.str2ab(strBuffer)); if (!ArrayBuffer.isView(signal)) { return respondToClient(c, "422 Unprocessable Entity", "Unknown signal"); } ir.play(signal, function(err) { if (!err) { return respondToClient(c, "200 OK", "Signal sent"); } return respondToClient(c, "500 Internal Server Error", "Couldn't send signal"); }); } else { return respondToClient(c, "422 Unprocessable Entity", "Unknown cmd"); } }); } const handleRecord = function(c, name) { /* TODO: add a timeout for listening for complete */ ir.record(); console.log("recording signal..."); ir.on("recordComplete", function(signal) { datastore.put(name, utils.ab2str(signal.buffer), function(err) { if (!err) { console.log("Signal " + name + " stored!"); return respondToClient(c, "200 OK", "Signal " + name + " stored!"); } else { return respondToClient(c, "500 Internal Server Error", "Couldn't store signal"); } }); }); } var server = net.createServer(function(c) { console.log('server connected'); c.on('end', function() { console.log('server disconnected'); }); c.on('data', function(data) { console.log(data); var match = data.toString().match(/GET \/\?.[^ ]*/); if (!match) { return respondToClient(c, "403 Forbidden", "Forbidden method"); } var params = utils.parseParams(match[0].split("GET /?")[1]); if (params.cmd) { return handleCmd(c, params.cmd); } else if (params.record && params.record.length > 0) { return handleRecord(c, params.record); } else if (params.cancelRecord) { ir.cancelRecord(); console.log("recording canceled!"); return respondToClient(c, "200 OK", "Recording canceled!"); } else { return respondToClient(c, "403 Forbidden", "Forbidden params"); } }); }); server.listen(1338, "0.0.0.0", function() { console.log('server bound', server.address().port); });utils.jsconst ab2str = function(buf) { return String.fromCharCode.apply(null, new Uint16Array(buf)); } const str2ab = function(str) { var buf = new ArrayBuffer(str.length*2); var bufView = new Uint16Array(buf); for (var i=0, strLen=str.length; i < strLen; i++) { bufView[i] = str.charCodeAt(i); } return buf; } const parseParams = function (s) { var obj = {}; var arr = s.split("&"); var temp; for (i = 0; i < arr.length; i++) { temp = arr[i].split("="); obj[temp[0]] = temp[1]; } return obj; }; exports.ab2str = ab2str; exports.str2ab = str2ab; exports.parseParams = parseParams; - Record a signal
-
Add yarn/npm modulesposted in Flic Hub SDK
Hi!
Is it possible to install and run from npm/yarn in a module? -
RE: Hub SDK IR Module not playingposted in Flic Hub SDK
@Emil
Did the record part work all the time, while the playing part failed all the time? Yes.Are you using the 1st hub generation or the 2nd (Hub LR)? 2nd.
But my bet is that I might have sent in some bad Array while testing that made the IR-queue never emptying/play never ending? Maybe.
-
RE: Hub SDK IR Module not playingposted in Flic Hub SDK
@oskaremilsson It really seems like I've in my very many attempts to get this to work queued up the IR-queue too much, when it didn't work from the app either I restarted the hub. And now this snippet works.
So now the question would be, is there any way of clearing the queue except restarting the hub?
-
Hub SDK IR Module not playingposted in Flic Hub SDK
I'm trying to get a custom module to play IR. Starting off with a few general headaches from trying;
- It's pretty weird that you can't access the already stored IR-signals.
- Even if recording specifically for my module theres really no good way of storing it for when the module restarts. Storing Uint32Array as a string is a nightmare.
- I can't get it to play even a Uint32Array thats JUST got recorded. Even though I can see that it got recorded OK.
ir.record(); ir.on("recordComplete", function(signal) { console.log(signal[0]); setTimeout(function() { console.log(signal[0]) ir.play(signal, function(err) { console.log(err); //never called console.log("played!"); //never called }); }, 1000); });Console never writes out any
errorplayed!. No IR is sent from the sender. However, i can tell thatsignal[0]is the same so it's actually trying to run play for the correct array.There is no new record ongoing, I've even tried to run the
stopRecordingbefore.play()without any difference.Any idea of why my
.play()won't work?I've also noticed that the console prints
Connected: 0when recoding starts and when.play()is called. Related?