NEWS
Text Nachrichten per Twiter versenden
-
Hallo Leute,
Ich bin Neu hier und möchte erstmal mich bedanken an die macher von noder-red und ioBroker.
Tolle arbeit.
Ich habe ein Problem, da meine Kenntnise in node-red sehr schlecht sind, daher bin ich auf eure Hilfe angewiesen.
Meine Hardware sieht so aus.
Hausautomation mit einer Siemens S7 CPU
Webvisu mit ioBroker und VIS
Bis hier her funktioniert alles super.
Jetzt möchte ich bei einem bestimmten ereigniss eine Meldung auf meine Handy bekommen. z.B. Jemand hat geklingelt
Dies wollte ich über node-red realieseren.
Das ich die Meldungen bekomme habe ich hinbekommen,siehe untere Teil im Bild.
Wo ich jetzt scheitere das ich über den iobroker einen festgelegten TEXT sende.
Ich weiß nicht wo und wie ich einen definierten Text hinterlege.
Kann mir jemand helfen, oder hat jemand einen besseren Volschlag.
Vielen dank
![](</s><URL url=)http://up.picr.de/24200316tl.jpg" /> -
Hallo Raspi,
das kommt darauf an, wo der Text herkommen soll. Die einfachste Lösung ist, den Text statisch zu setzen.
Der zu übertragene Text muss als Message payload gesetzt werden, bevor das Message-Object an den Twitter-Node oder Mail-Node übergeben wird. (Bei jedem Node wird normalerweise rechts im Info-Bereich angezeigt, welche Attribute des msg-Objects ausgewertet werden und welche Bedeutung sie haben)
Hierfür benötigt du einen Function-Node, der einfach in der Kommunikationskette zwischen den Iobroker-Input-Node und den Twitter-Node geschaltet wird. Durch Doppelclick auf den Function-Node kommst du in den Javascript-Editor. Dort kannst du die folgenden Zeilen rein kopieren:
msg.payload="Dies ist mein Text"; return msg;
Nach dem Deploy wird dann bei jedem Auslösen der Text gesendet.
Falls der Text ebenfalls aus einer Iobroker-Variable kommen soll, wird es komplizierter, da es noch keinen Abfrage-Node für Iobroker-Variablen gibt und die Input-Nodes nur bei Wert-Veränderung ausgelöst werden. Dann müssen die Werte im context.global-Object zwischengespeichert werden, was insbesondere bei Neustarts etwas aufwändig ist, da man den Trigger dann über Umwege zum initialen Auslesen der Werte extern erzeugen muss.
-
Hey Leute,
ich habs vertanden das funktioniert auch,
allerdings ist das echt blöd mit dem iobroker input der reagiert bei jeder veränderung,
das heißt wenn ich licht einschalte bekomme ich die meldung per twitter licht ist an, wenn ich wieder ausschalte das Licht, dann bekomm ich wieder die Meldung licht ist an,
hab das jetzt aber so realiesert das ich in meiner SPS S7 das signal switche , so das ich nur dann die meldung bekomme, wenn das licht eingeschaltet wurde
Vielen Dank für die hilfe
-
Die Logik darüber, welche Informationen zum Senden führen sollen, muss ja irgendwo her kommen…
Diese Filterung kannst du auch in Node-Red machen. Entweder in einem Function-Node (per if und einfach kein msg per return senden, wenn nicht gesendet werden soll) oder die Prüfung in einen switch-Node einbauen.
Der Text im function Node müsse in etwa so aussehen:
if (msg.payload===true || msg.payload=="true") { msg.payload="xxx"; return msg; } else return null;
Die Abfrage sowohl für Typ boolean als auch für string ist deshalb drin, weil es manchmal Probleme mit der automatischen Typkonvertierung gab.