rwblinn Posted July 16, 2016 at 12:17 PM Share Posted July 16, 2016 at 12:17 PM Hi, is there guidance available on how to use the TinkerForge Javascript Bindings in Node-RED. Have tried to define a simple call to an ambilight bricklet in a Node-RED function, but received error 31=timeout. //var Tinkerforge = require('/usr/lib/node_modules/tinkerforge'); var Tinkerforge = context.global.tinkerforge; var HOST = '192.168.0.88'; var PORT = 4223; var UID = 'mdh'; var ipcon = new Tinkerforge.IPConnection(); var al = new Tinkerforge.BrickletAmbientLight(UID, ipcon); ipcon.connect(HOST, PORT, function (error) { node.warn('Connect Error: ' + error); } ); ipcon.on(Tinkerforge.IPConnection.CALLBACK_CONNECTED, function (connectReason) { al.getIlluminance( function (illuminance) { msg.payload = "{\"Illuminance\":" + illuminance/10.0 + "}"; node.warn('Illuminance: ' + illuminance/10.0 + ' Lux'); }, function (error) { msg.payload = "{\"lluminance\":" + error + "}"; node.warn('Get Error: ' + error); } ); } ); ipcon.disconnect(); return msg; Note: defined in node-red settings, after installing tinkerforge via npm: functionGlobalContext: { tinkerforge:require('/usr/lib/node_modules/tinkerforge') Quote Link to comment Share on other sites More sharing options...
rwblinn Posted July 18, 2016 at 02:18 PM Author Share Posted July 18, 2016 at 02:18 PM Solved by using the MQTT proxy as broker on localhost:1883. Defined a simple test flow with: Input Node "MQTT In" subscribing to topic "tinkerforge/bricklet/ambient_light/mdh/illuminance"Function Node JSON to convert MQTT string to javascript objectFunction Node Function to log the payload properties illuminance and _timestampDebug Node to log the MQTT payload (which is a JSON string) Looks promising to explore further integration of TinkerForge in Node-RED. Quote Link to comment Share on other sites More sharing options...
hardillb Posted July 25, 2016 at 10:16 AM Share Posted July 25, 2016 at 10:16 AM I've been working on some Node-RED Tinkerforge nodes Feel free to kick the tires https://github.com/hardillb/node-red-contrib-tinkerforge All feedback welcome. P.S. A guess about the error you had will be that you probably need a use the v2 Ambient Light Object if you have a v2 bricklet Quote Link to comment Share on other sites More sharing options...
rwblinn Posted July 25, 2016 at 01:57 PM Author Share Posted July 25, 2016 at 01:57 PM Great and Thanks a lot. Could you pls advice how to install in Node-RED? Tried npm install node-red-contrib-tinkerforge, but npm can not find the package. Quote Link to comment Share on other sites More sharing options...
rwblinn Posted July 25, 2016 at 03:02 PM Author Share Posted July 25, 2016 at 03:02 PM UPDATE Installed: $sudo npm install -g tinkerforge Added to NODE_PATH: $export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules Installed: $npm install body-parser in the .node-red folder under node_modules Created folder: /home/pi/.node-red/node_modules/node-red-contrib-tinkerforge Copied the lib folder and other files to node-red-contrib-tinkerforge Started node-red TinkerForge nodes available COOL Added the ambientlight (v1) sensor by amending lib/bricklets.js, tinkerforge.js & tinkerforge.html. Again Thanks a Lot = Job Well Done Quote Link to comment Share on other sites More sharing options...
hardillb Posted July 25, 2016 at 03:08 PM Share Posted July 25, 2016 at 03:08 PM It's not been packaged for npm just yet but you can npm install direct from github with the following: npm install hardillb/node-red-contrib-tinkerforge If you run this in /home/pi/.node-red it will end up in the right place I have only done a Ambient light v2.0 node as that's the only hardware I have available to test. But it should be pretty simple do v1.0 node if somebody can let me know the deviceIdentifier. Quote Link to comment Share on other sites More sharing options...
rwblinn Posted July 25, 2016 at 05:15 PM Author Share Posted July 25, 2016 at 05:15 PM Thanks Have added AmbientLight and UVLight (see attachement). Working fine. The TF device identifies can be found www.tinkerforge.com/en/doc/Software/Device_Identifier.html. Next: New LED Bricklet with ability to set the color = will use the LED strip as example. 20160725: Correction to AmbientLight (see attachment) v11.zip Quote Link to comment Share on other sites More sharing options...
hardillb Posted July 27, 2016 at 08:47 AM Share Posted July 27, 2016 at 08:47 AM Thanks for the link to the device identifiers. Rather than posting zips of code changes here, a pull request on github would be great so we can track the changes. Thanks Quote Link to comment Share on other sites More sharing options...
mtoko Posted November 19, 2016 at 02:05 PM Share Posted November 19, 2016 at 02:05 PM I have brickd running on a Pi with a Master Brick and Analogue Out v2 connect on port D connected by USB. I am trying to control from Node Red and have installed node-red-contrib-tinkerforge. Brickviewer on the Pi can detect the master and analogue bricklet and can adjust the output correctly, so brickd seems to be working. Node red Analogue out node detects the Analogue node id correctly but does not change the output. The config is localhost:4223 which is the same as Brickviewer on the Pi. Any suggestions would be appreciated Quote Link to comment Share on other sites More sharing options...
RicaIii Posted January 18, 2017 at 04:25 PM Share Posted January 18, 2017 at 04:25 PM Hi...i am a new user here. I think you can npm install direct from github with the following:npm install hardillb/node-red-contrib-tinkerforge If you run this in /home/pi/.node-red it will end up in the right place.I have only done a Ambient light v2.0 node as that's the only hardware I have available to test. But it should be pretty simple do v1.0 node if somebody can let me know the device Identifier. printed circuit board assembly Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.