fhem<->node-red Datenaustausch

Begonnen von flurin, 02 Mai 2016, 11:12:54

Vorheriges Thema - Nächstes Thema

flurin

note-red scheint mir eine interessante Erweiterung für fhem zu sein:

http://nodered.org/

Hier habe ich kurz beschrieben, wie man Daten zwischen fhem und note-red austauchen kann:

https://github.com/cflurin/collection/tree/master/fhem%3C-%3Enode-red

Gruss
flurin

mj2680

Speziell für Homematic steht unter www.nodered.org ein Node zum download bereit.
Habe versucht mithilfe des Nodes eine Verbindung zu FHEM zu bekommen. Will eigentlich nur Daten aus FHEM lesen.
Hat jemand Erfahrung mit dieser Thematik oder einen Link wo dies beschrieben ist
Danke


Gesendet von iPhone mit Tapatalk

a-p-s

Hallo,

habe in der letzten Zeit etwas mit unterschiedlichen Methoden zur Anbindung experimentiert.

Als Ergebnis habe ich zwei Flows veröffentlicht, mit denen das ressourcenschonend und ohne jegliche Änderung an FHEM funktioniert:

Holen aller Readings eines Devices (für den Zugriff bei Bedarf): https://flows.nodered.org/flow/cb4378210d082832eb8618c2ce2a77d1

Verarbeitung von Events aus FHEM über Telnet (für ereignisgesteuerte Verarbeitung): https://flows.nodered.org/flow/22a99002b04c29e97bb2ad09764d2dce

Jeweils muss man das natürlich auf die eigene Installation (IP-Adresse etc.) anpassen.

Hoffe, das hilft.

Grüße,
a-p-s

ToKa

Hallo a-p-s,

das klingt ja kinderleicht. Wird es auch eine Möglichkeit geben, um aus node-red Geräte in fhem zu schalten?

Gruß
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

a-p-s

Hallo,

Zitat von: ToKa am 04 März 2018, 09:00:33
das klingt ja kinderleicht. Wird es auch eine Möglichkeit geben, um aus node-red Geräte in fhem zu schalten?

das geht noch einfacher mit einem http-request node mit der URL http://fhemserver:8083/fhem?cmd={{cmd}}&XHR=1. Ggf. noch das CSRF-Token einbauen (gilt auch für die anderen Flows - hatte ich bei mir nicht wegen der speziellen Firewall-Konfiguration). In msg.cmd steht das Kommando, also z.B. "set geraet on".

Grüße,
a-p-s

ToKa

Na prima, dann muss ich das auf jeden Fall mal ausprobieren.

Auf welcher Umgebung hast Du node-red laufen (RPi, Linux-Server, Windows)?

Gruß
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

a-p-s

Also ich habe sowohl FHEM (Hauptinstallation) als auch nodered auf einem Cubietruck (mit Mainline-Kernel 4.14) am Laufen. Dabei nutze ich jeweils Docker.

Zusätzlich habe ich auch noch mosquitto als MQTT-Broker, was auch das Übermitteln von Werten an FHEM gegenüber dem oben skizzierten Weg performanter macht.

Insgesamt ist meine Erfahrung, dass nodered sich sehr gut eignet, wenn es um zustandslose Verarbeitungsschritte geht, d.h. man holt sich regelmäßig Daten aus einer Quelle und verarbeitet diese (z.B. Alternative zu HTTPMOD, aber auch JSON-basierte APIs) oder man reagiert auf ein Ereignis (also notify). Dann erzeugt es durch vermutlich durch das asynchrone IO viel weniger CPU-Load für die gleiche Aufgabe. Was umständlich ist, sind komplexe Aktionen, die auf den Zustand von mehreren Readings angewiesen sind - oder auch alles, was mit Persistenz zu tun hat; da ist FHEM ganz klar viel besser aufgestellt (DbLog, DOIF etc.).

Grüße,
a-p-s

ToKa

RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

ThomasDr

Zitat von: a-p-s am 04 März 2018, 00:24:55

Verarbeitung von Events aus FHEM über Telnet (für ereignisgesteuerte Verarbeitung): https://flows.nodered.org/flow/22a99002b04c29e97bb2ad09764d2dce


Hallo,

ich probiere gerade diese Variante aus, die Daten erscheinen auch im debug Fenster, leider blicke ich noch nicht ganz durch wie ich mir eine Variable oder deren Wert heraus filtere.

Schöne Grüße
ThomasD