Jump to content

Node-RED Guidance TinkerForge Bricklets


rwblinn

Recommended Posts

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')

Link zu diesem Kommentar
Share on other sites

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 object
  • Function Node Function to log the payload properties illuminance and _timestamp
  • Debug Node to log the MQTT payload (which is a JSON string)

 

Looks promising to explore further integration of TinkerForge in Node-RED.

Link zu diesem Kommentar
Share on other sites

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

 

Link zu diesem Kommentar
Share on other sites

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.

Link zu diesem Kommentar
Share on other sites

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

Link zu diesem Kommentar
Share on other sites

  • 3 months later...

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

Link zu diesem Kommentar
Share on other sites

  • 1 month later...

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

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...