Autor Thema: RFHEM - Modul für Befehle an andere FHEM-Instanzen  (Gelesen 61025 mal)

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3832
RFHEM - Modul für Befehle an andere FHEM-Instanzen
« am: 15 Mai 2014, 20:07:57 »
Hallo,

ich habe vor langer zeit versucht meine it-1500 Steckdosen auf dem pi mit coc-modul über fhem2fhem vom cubietruck aus zu schalten.
dies geht nicht wie ich feststellen musste:
Das IT Modul ist nicht FHEM2FHEM:RAW faehig, da es einen direkten Zugriff auf das drunterliegende IODev benoetigt, um per get raw Kommandos abzusetzen. FHEM2FHEM:RAW faehige Module kommunizieren nur per IOWrite bzw. Dispatch mit dem IODev.

bei meiner Lösungssuche ist dies Modul (in Anlehnung an fhem2fhem) entstanden das von einer Instanz in die andere befehle über telnet sendet.
diese möchte ich hier bereitstellen falls auch andere eine einfache Möglichkeit suchen fhem mit fhem anzusteuern, die devices/module aber nicht von fhem2fhem unterstützt werden

define syntax:

define <name> RFHEM host[:port] [pw]wir kein port angegeben wird 7072 genommen

ihr erhaltet ein device über das ihr per

set <name> cmd <befehl> fhem-befehle senden könnt.


Attribut RFHEMdevs : eine Komma getrennte Liste von Devices. Alle events dieser Devices werden autom. an die entfernte Instanz weitergeleitet (sprich wenn deviceX ein event wie temperature: 29.3 generiert, wird ein "set rfhem_device cmd setreading deviceX  temperature 29.3" angesetzt).



beispiel: IT-Steckdosen vom cubie der über kein Funkmodul verfügt schalten. das Modul sitzt auf dem pi

# pi remote
define RemotePI RFHEM christian-pi testpw1
den schalter habe ich als dummy realisiert
# remote steckdosen
define wz.LichtschlauchDummy dummy
attr wz.LichtschlauchDummy devStateIcon on:message_socket_on2 off:message_socket_off2
attr wz.LichtschlauchDummy setList on off

wird er betätigt greift ein notify welches den befehl, den man auf dem pi eingeben würde , vom cubi an den pi sendet:
define LichtschlauchNotify notify wz.LichtschlauchDummy { fhem "set RemotePI cmd set Wohnzimmer.Lichtschlauch $EVENT" }
einfache befehle funktionieren, richtige Syntax vorausgesetzt:
schalter schalten
set RemotePI cmd set wz.* onreadings eines dummys setzen
set RemotePI cmd setreading KS300Dummy 'T: 12.1 H: 72 W: 8.6 R: 1.8'dummy definieren
set RemotePI cmd define dummy dummyeinfache notifys erstellen
set RemotePI cmd define b3lampV1 notify btn3 set lamp on
set RemotePI cmd define b3lampV1 notify btn3 {}
einfache ats definieren
set RemotePI cmd define a1 at 17:00:00 set lamp on 
set RemotePI cmd define a1 at 17:00:00 {}

komplexe Sachen mit Perl-code wie set RemotePI cmd define a1 at 17:00:00 {fhem("set xyz on");} gehen nicht da fhem("set xyz on"); von fhem gleich versucht wird auszuführen ...
ich habe heute bei mir ein telnet Passwort vergeben und das Modul darauf angepasst, funktioniert also auch. nur ssl-auth ist nicht gegeben wie fhem2fhem

da ich nicht alle befehle testen kann (und auch nicht kenne) wäre eine Rückmeldung gut was geht und was nicht.
Nutzung auf eigene Gefahr,  programmiere nur aus spass an der sache und als "fortgeschrittener leihe"  :-)

es läuft bei mir seit februar täglich und stabil auf 3 kisten die sich so unterhalten
Mittlerweile hat es das Modul ins FHEM update geschafft und steht somit per update zur Verfügung
gruß

christian


« Letzte Änderung: 14 September 2017, 15:03:16 von chris1284 »
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline eldrik

  • Sr. Member
  • ****
  • Beiträge: 925
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #1 am: 15 Mai 2014, 20:55:12 »
Hi,

gleich mal getestet, funktioniert prima, ich habe meine IT Devices, am Pi mit COC im Keller, bisher per absetzen der Befehle über die Web URL abgesetzt, deine Lösung finde ich aber vom Aufbau her angenehmer :)

Greetz
Eldrik

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3832
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #2 am: 15 Mai 2014, 21:09:05 »
danke für die Rückmeldung.
noch ein hinweis:
in Verbindung mit fhem2fhem im log-modus kann man am Hauptsystem auch gleich die Meldungen des remote-systems sehen ;-) und ggf drauf reagieren ...
auch in vebindung mit clone dummy sind sicher noch so einige sachen möglich
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM
Zustimmung Zustimmung x 1 Hilfreich Hilfreich x 1 Liste anzeigen

Offline Joachim

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1460
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #3 am: 15 Mai 2014, 21:16:51 »
Moin chris1284,
danke, dass Du es ansprichst, das wäre auch mein Gedankengang gewesen, dass man mit einem angepassten RFHEM aus der "nur Lesen" Funktion des cloneDummys eine "lesen und schreiben" Funktion bauen kann, also quasi einen "richtigen clone" eines entfernten Devices.
Ich werde mir das auch mal ansehen, wie man das eventuell kombiniert bekommt.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20866
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #4 am: 15 Mai 2014, 21:55:57 »
ich hätte noch einen vorschlag...

wie wäre es wenn wir versuchen den cloneDummy, RFHEM und den readingsProxy zu einem modul zusammen zu fassen?

ist zustand:
cloneDummy: kopiert mehrere readings aus einem device in ein neues, remote oder lokal
RFHEM: sendet kommandos von lokal an remote, im prinzip die gegenrichtung zu cloneDummy
readingsProxy: splittet ein reading oder ein teil eines readings in ein neues device, kann senden und empfangen

es gibt zwischen allen drei modulen überschneidungen und bereiche die sehr ähnlich sind und ich kann mir einige szenarien vorstellen bei denen jeweils zwei der module zusammen sinnvoll sind bzw in denen die kombinierte funktionalität aus  zwei modulen gebraucht wird.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3832
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #5 am: 16 Mai 2014, 06:40:55 »
moin andre,

readingsProxy kenne und nutze ich nicht. muss ich mir mal ansehen.
aber ansonsten gute idee. bin gerne bereit an einer höheren kompatibilität  mit anderen modulen mitzuwirken / mein modul auch ganz in ein anderes zu packen wenn es weiter hilft

noch ein paar gedanken meiner seits:

für mich ist RFHEM eigentlich eine Komponente die in fhem2fhem gehört, leider hat  rudolfkoenig mir hier damals nicht mehr geantwortet http://forum.fhem.de/index.php/topic,20621.msg141658.html#msg141658 , also wurde ich selbst aktiv.

das thema fhem-instanzen zu verbinden kann noch viel weiter gehen, auch was redundanz, ausfallsicherheit usw angeht:
- fhem2fhem im log modus um logs event mitzubekommen / in andere instanzen zu übertragen
- fhem2fhem für raw, rfhem für normale befehle (wenn rfhem in fhem eingeht wäre es nur ein modul )
- clonedummy um devices zu spiegeln
- evtl. alle instanzen eine configdb in der man configs pro instanz unterscheiden kann + eine logdb für alle + redundanz dieser auf allen system (alle schlafen bis die main ausfällt) -> hier weis sich nicht ob dann noch fhem2fhem im log-modus benötigt wird
- warum in einem clonedummy nicht per devIO das rfhem-device setzen so das befehle je nach defIO direkt an die andere instanz gehen ohne den befehl in notifys rammen zu müssen

aber das ist alles wunschdenken / evtl nicht machbar und so umfangreich das sich erst mal einige entwickler zusammensetzen und auf einen weg einigen müssten
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline strauch

  • Hero Member
  • *****
  • Beiträge: 1133
  • Anfänger :-)
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #6 am: 16 Mai 2014, 09:21:30 »
Ich muss mal ganz doof dazwischen Fragen. Ich hab zur Zeit nur CULs und möchte davon gerne einen irgendwie zum quasi CUN machen, an dem Bestimmungsort ist auch eine Fritzbox. Schön wäre, wenn man die Geräte von einer entfernten FHEM Installation in die eigenen einbinden kann. Ich weiß nicht ob sowas über IODev möglich ist?!
So ein bisschen wie das hier: http://www.fhemwiki.de/wiki/CUL_ueber_Netz nur das ich das mit allem möglichen machen kann. Ich kann den Aufwand dafür aber auch gar nicht einschätzen.
Wobei ich auch noch mal schauen wollte ob es socat auf der FB gibt.
Aber ich denke das würde die ganze Bastelei mit FHEM2FHEM, CloneDummy und jetzt RFHEM doch beseitigen oder? Also quasi eine Ebene tiefer anzusetzten?!
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20866
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #7 am: 16 Mai 2014, 09:24:47 »
das ist normalerweise eine ebene tiefer.

schau dir mal ser2net an.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20866
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #8 am: 16 Mai 2014, 09:54:28 »
das ganze in richtung replikation und ausfall sicherheit weiter zu entwickeln wäre dann ein nächster schritt. und das mit dem IODev gefällt mir. um das aber richtig und für alle devices so transparent wie möglich zu machen ein ziemlicher aufwand. da wäre es interessant zu wissen wie groß der bedarf dafür ist. nicht das etwas sehr komplexes daraus wird das dann keiner benutzt.

unabhängig davon wäre es aber glaube ich ein erster schritt die drei module so nahe wie möglich zu bringen. ob das dann am ende ein oder zwei module werden oder drei bleiben wird sich zeigen. aber nachdenken und ansehen sollte man. die überschneidungen sind schon da und wenn nichts anderes dabei raus kommt das die dokumentation aufeinander verweist und sich gleiches auch gleich verhält und heißt.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline strauch

  • Hero Member
  • *****
  • Beiträge: 1133
  • Anfänger :-)
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #9 am: 16 Mai 2014, 10:16:42 »
Also wenn ich mir http://fhem.de/stats/statistics.html anschaue gibt es schon viele FHEM2FHEM Installationen. Ich selbst habe 3, zur Zeit auf dem raspbi noch die Hauptinstallation, dann in einer VM am Stromzähler und auf der Fritzbox für die ganzen Fritzboxfunktionen. Das wäre schon schön, wenn ich das alles direkt in der Hauptinstallation machen könnte. Wobei die FB vermutlich eher nicht geht.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Offline eldrik

  • Sr. Member
  • ****
  • Beiträge: 925
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #10 am: 16 Mai 2014, 11:02:38 »
Hi,

also ich setzte derzeit drei fhem2fhem Installationen ein, eine um meinen Pi mit COC und IT Geräten im Keller an meinen Mac Mini Server anzubinden und neben der Hauptinstanz auf dem Mac Mini Server zwei weitere FHEM Instanzen als fhem2fhem zur Anbindung der jeweils im OG und EG aufgestecken Pi 1Wire Adapter über OWServer, für alle 1Wire fhem2fhem Instanzen wird cloneDummy, readingsProxy und neuerding RFHEM eingesetzt.

Daher fände ich die Bestrebungen sehr interessant sämtliche Aktoren, über die Hauptinstanz steuern zu können, ohne hier eine weitere OWServer Verbindung zu einem der Pis herstellen zu müssen (die selten abgefragt aber für das jetzige Steuern der z.B. Rollladenaktoren über die Hauptinstanz zwingend benötigt wird).

Die Verbindung plane ich jetzt auch, neben der bereits mit RFHEM ersetzten alten Lösung zur Steuerung meiner IT Devices, auf RFHEM umzustellen.

Edit: Via RFHEM habe ich nun auch meine 1Wire Rollladenaktoren umgestellt und die Steuerung funktioniert nach den ersten Tests wie bei einem direkten define einer OWServer Instanz auf meiner Hauptinstanz

Greetz
Eldrik
« Letzte Änderung: 16 Mai 2014, 12:22:37 von eldrik »

Offline Joachim

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1460
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #11 am: 16 Mai 2014, 14:48:30 »
Moin @ all,
Moin chris1284, Moin andre,

habe mal eben nur die commandref zu readingsProxy überflogen, und habe auch noch nicht mit RFHEM gespielt,
aber
ich glaube die Idee von Andre ist nicht schlecht. Komme mir vor, wie der Zauberlehrling (die Geister, die ich rief).

die Module cloneDummy und readingsProxy sind aus verschiedenen Beweggründen entstanden, machen aber fast das gleiche, und müssten sich eigentlich komplett zusammenführen lassen, einzig ihnen fehlt das richtige Backend um entfernte FHEM-Installationen zu bedienen.
die Module FHEM2FHEM und RFHEM wären die richtigen Backends dazu, die man eigentlich auch zusammenfassen kann.
Da wäre dann "nur" noch die Schnittstelle zu cloneDummy/readingsProxy nötig, um Daten an der Hauptschleife von FHEM vorbei an die Frontends zu übertragen. Sowie eine Schnittstelle, die die richtigen Daten (was kann das Modul auf dem lokalen/entfernten FHEM) an die Fronends überträgt.
So war damals eigentlich auch meine Grundidee, als cloneDummy entstanden ist.
Wenn daran Interese besteht, sollten wir dafür aber einen eigenen Thread aufmachen.

OT:
@ andre,
hattest Du Dir die gänderte cloneDummy version mal angesehen, kann die so eingecheckt werden?

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20866
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #12 am: 16 Mai 2014, 14:57:11 »
ich habe inzwischen im wiki mit ein paar beispielen zum readingsProxy angefangen.

der haupt interschied zwischen cloneDummy und readingsProxy ist glaube ich zur zeit das ersterer mit mehr als einem reading funktioniert, es immer 1:1 durch reicht und nur in eine richtung funktioniert, letzterer zur zeit nur mit einem reading oder einem teil aus einem reading und es die möglichkeit gibt es beim durchreichen in jede richtung zu manipulieren. intern ist da schon sehr viel ähnlich. ein rfhem (oder ein bidirektionales fhem2fhem) als iodev könnte ich mir gut vorstellen. sicher hat rudi auch eine meinung :).

die letzte version vom cloneDummy muss ich mir noch anschauen.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline Joachim

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1460
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #13 am: 16 Mai 2014, 15:02:10 »
@ Andre,
die Meinung von Rudi glaube ich zu kennen.
"Wenn sich ein neuer Maintainer für FHEM2FHEM findet, könnt ihr das machen" ;D

warten wir mal auf die Rückmeldung von chris1284.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20866
Antw:RFHEM - Modul für Befehle an andere FHEM-Instanzen
« Antwort #14 am: 16 Mai 2014, 15:03:16 »
:)

es gibt ja auch die option ein bidirektionales rfhem zu bauen und fhem2fhem ganz in ruhe zu lassen.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH