Diese Node-RED Nodes nutze ich

Die Auswahl an Node-RED Nodes ist riesig und dadurch ziemlich unübersichtlich. Daher finde ich es immer spannend, welche Nodes tatsächlich von anderen Nutzern genutzt werden. Um anderen genau diesen Einblick zu ermöglichen – und den ein oder anderen vielleicht auf Ideen zu bringen, hier meine Liste, die ich sicher in unregelmäßigen Abständen aktualisieren werde.

Stand: 22.01.2022

  • node-red
  • node-red-contrib-astrodata – Nodes for calculation of sun and moon position, sunset, sunrise etc.
  • node-red-contrib-combine – Node-RED Nodes that output combinations of consecutive incoming messages
  • node-red-contrib-cryptography – Simple cryptography, hash with SHA-256 and RIPEMD-160
  • node-red-contrib-ical-events – NodeRed calender event adapter
  • node-red-contrib-influxdb – Node-RED nodes to save and query data from an influxdb time series database
  • node-red-contrib-os – Node-Red nodes for obtaining cpu system information.
  • node-red-contrib-presenchecker – Checks fritzbox, whether a given device (by mac address) is online or offline
  • node-red-contrib-schedex – Scheduler for node-red which allows you to enter suncalc events (e.g. goldenHour).
  • node-red-dashboard – A set of dashboard nodes for Node-RED
  • node-red-node-email – Node-RED nodes to send and receive simple emails.
  • node-red-node-pi-gpio – The basic Node-RED node for Pi GPIO
  • node-red-node-ping – A Node-RED node to ping a remote server, for use as a keep-alive check.
  • node-red-node-rbe – A Node-RED node that provides report-by-exception (RBE) and deadband capabilities.
  • node-red-node-twitter – A Node-RED node to talk to Twitter
  • node-red-node-xmpp – A Node-RED node to talk to an XMPP server

json auf Gültigkeit prüfen

Es ist mal wieder soweit – die Schnittstelle von opensensemap.org streikt. Da dies immer mal wieder (nicht nur dort) vorkommt, habe ich vor einiger Zeit eine Prüfung des JSON-Response eingebaut, sodass ich diese Fehler abfangen kann.

Damit ich dieses Code-Snippet nicht immer suchen muss, sei es hier archiviert. Vielleicht hilft es jemandem anders ja auch weiter.

var json_valid = true;

try
{
   var json = JSON.parse(msg.payload);
}
catch(e)
{
  json_valid=false;
}
finally {
    if(json_valid === true) {
        node.status({fill:"green",shape:"dot",text:"Okay"});
        return [msg,null];
       
    }
    else {
        node.status({fill:"red",shape:"dot",text:"Error"});
        return [null,msg];

    }
}

POST-HTTP Request mit Daten

Da ich mich sehr dumm angestellt habe und ewig brauchte, um mit Node-RED einen HTTP Request inkl. Daten zu versenden, dokumentiere ich hier – nur für mich (weil sich bestimmt niemand so umständlich anstellt) – die funktionierende Lösung.

Der simple Aufbau, ein Function-Node und ein HTTP-Request-Node:

Im Function-Node werden die zu übermittelnden Daten in msg.payload als JSON geschrieben. Außerdem wird
msg.headers["Content-Type"] = "application/x-www-form-urlencoded";
gesetzt.

Der HTTP-Request ist dann kaum zu konfigurieren. Methode = POST eintragen, dann noch die URL und fertig.