ECMD - mit zweiter FHEM-Instanz

Begonnen von Pf@nne, 08 April 2015, 20:43:35

Vorheriges Thema - Nächstes Thema

Pf@nne

Moin,

ich möchte zwei FHEM-Instanzen miteinander verbinden um z.B. von der Instanz A eine LED in der Instanz B zu steuern. Auch soll die Instanz B den Status der LED an A zurückmelden.

Eigentlich wollte ich dies mit FHEM2FHEM unsetzen aber auf Anraten von Prof. Dr. Peter Henning bin ich zu ECMD gewächselt.

Zum Testen habe ich auf A schon eine ECMD-Verbindung mit einem Windows ECMD-Simmulator am laufen.

fhem.cfg

#--------------------------------------------------------------
# ECMD
#--------------------------------------------------------------
#define MyECMD ECMD telnet 192.168.1.203:7073
define MyECMD ECMD telnet 192.168.1.116:2701
attr MyECMD classdefs MyLED.class=/volume1/@appstore/FHEM/share/fhem/FHEM/ECMD_LED.cfg
attr MyECMD room ECMD

define MyLED_Device ECMDDevice MyLED.class
attr MyLED_Device IODev MyECMD
attr MyLED_Device room ECMD


ECMD_LED.cfg

get My_CMD_01 cmd {"Hello World\n"}
get My_CMD_01 expect ".*"

get My_CMD_02 cmd {"Get_02\n"}
get My_CMD_02 expect ".*"


Der TestServer antwortet bei Empfang des entsprechenden Strings mit einem belibigen andern String.
Das läuft schon mal... :)

Wie bringe ich jetzt aber B dazu auf eine Anfrage zu antworten?
Das Verbinden mit dem Telnetport von B führt zu keinem Event auf B.

Wie starte / configuriere ich den TCP-Server auf B?


Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Dr. Boris Neubert

Hallo,

Du baust das symmetrisch auf.

In der Classdef definierst Du ein set. Ein notify auf die LED nutzt Du, um das set zu triggern, das den Zustand an die andere Instanz sendet.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Pf@nne

#2
Moin,

verbinde ich beide Instanzen mit dem selben Port miteinander?
Oder muss ich zwei TCP-Verbindungen aufbauen?

Wie fange ich das gesendete auf der B-Instanz ab?
Ein Event wird auf B nicht ausgelöst?

EDIT:
Wie verstehe ich GET / SET?
Ein GET sendet ein cmd und erwartet eine Antwort, die dann weiter genutzt werden kann?
Ein SET sendet nur?

Habe ich das so richtig verstanden?
FHEM auf: DS415+ (Master), Raspberry Pi 2

Pf@nne

Ich habe noch ein wenig gelesen...

Mir ist aber immer noch nicht klar, wie ich eine FHEM-Instanz mit ECMD dazu bringe als TCP-Server zu lauschen und auf ankommende ECMD GETs/SETs zu reagieren.

Für einen kleinen Wink mit dem Zaunpfahl wäre ich dankbar....


Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Dr. Boris Neubert

Hallo,

Du brauchst auf jeden Fall einen Server, mit dem sich ECMD verbinden kann.

Du kannst Dich mit ECMD auf den Port 7072 verbinden und darüber mit FHEM kommunizieren.

Oder Du koppelst Dir mit netcat (nc) zwei Server zusammen.

Alles in allem könnte aber FHEM2FHEM für Dich die bessere Lösung sein.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Pf@nne

Hallo Boris,

Zitatund darüber mit FHEM kommunizieren.
das Koppeln mit dem Server auf dem zweiten Pi (B) klappt ja....das Senden von GETs/SETs auch.
Nur ist mir unklar wie ich auf dem zweiten Gerät auf die GETs/SETs reagiere.
Wie fange ich ein mit GET/SET vom PI (A) gesendetes Telegramm mit dem PI (B) ab?
Im Event-Fenster des Pi (B) taucht bisher nichts auf.
Auch ist mir unklar wie ein Empfang in einer class realisiert wird, wenn dies überhaupt hier gemacht wird.


ZitatAlles in allem könnte aber FHEM2FHEM für Dich die bessere Lösung sein.
Damit hatte ich angefangen dann aber von pah den Tipp erhalten habe mich lieber mit ECMD zu beschäftigen.
Was neues zu erlenen ist auch nicht unbedingt verkehrt.

In jedem Fall bräuchte ich aber ein wenig Starthilfe...


Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Dr. Boris Neubert

Hallo,

habe sowas auch noch nicht gemacht.

Was auch gehen könnte: die eine FHEM-Instanz (A) verbindet sich per ECMD mit der anderen FHEM-Instanz (B) auf Port 7072 und sondert ein

inform on <regexp>

ab. Daraufhin empfängt das ECMD alle Events von B und kann darauf reagieren. Ferner kann A an B Befehle senden (mit get oder set, nachdem, ob ein Wert für ein Reading empfangen werden soll oder B nur ein Befehl gegeben werden soll.


Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Pf@nne

OK, werde ich nachher mal probieren.....

Zitathabe sowas auch noch nicht gemacht.

Dem entnehme ich, das ECMD für diese Fälle garnicht konzipiert wurde??
Sonder für die Anbindung von TCP-Server basierter Fremdhardware?

Als klassisches Beispiel wäre hier der Pollin NET-IO zu nennen, der im Grunde ja nur auf Befehle von Außen reagiert,
als da wären....

  sag mit mal wie warm es ist, mach mal Ausgang 3 an, wie steht Eingang 5 gerade.....

Dann wäre ich ja mit ECMD auf der falschen Fährte.....und vielleich doch mit FHEM2FHEM besser beraten?
Kannst du hier noch mal reinschauen
http://forum.fhem.de/index.php/topic,35755.msg280828.html#msg280828
und mir einen Tipp geben wie ich auf einem "fernen" Raspi-FHEM einen GPIO mit entsprechender "echter" Rückmeldung schalte.

Mir geht es um die Sondierung der "richtigen" fachgerechen vorgehensweise....

Vielen Dank für deine Unterstützung!

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Dr. Boris Neubert

Zitat von: Pf@nne am 10 April 2015, 13:28:23
Dem entnehme ich, das ECMD für diese Fälle garnicht konzipiert wurde??
Sonder für die Anbindung von TCP-Server basierter Fremdhardware?

Als klassisches Beispiel wäre hier der Pollin NET-IO zu nennen, der im Grunde ja nur auf Befehle von Außen reagiert,
als da wären....

  sag mit mal wie warm es ist, mach mal Ausgang 3 an, wie steht Eingang 5 gerade.....

Korrekt.

Zitat
Dann wäre ich ja mit ECMD auf der falschen Fährte.....und vielleich doch mit FHEM2FHEM besser beraten?

Am Ende des Tages läuft die Lösung mit ECMD doch nur darauf hinaus, dasselbe zu bewirken wie FHEM2FHEM, nur mit mehr Gewürge.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Pf@nne

Dann nochmal Danke für diese Richtigstellung....

Dann werde ich meine "Forschung" mal wieder in Richtung FHEM2FHEM lenken.


Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Pf@nne

FHEM auf: DS415+ (Master), Raspberry Pi 2