Hallo zusammen,
ich betreibe schon seit längerem das Modul FHEM2FHEM. Und zwar von meinem Cubi (Master) zu meinem RPI (Slave). Das funktioniert auch wunderbar.
Jetzt brauche ich aber noch ein Rückkanal. Also habe ich das im Slave auch eingerichtet. Wenn die Verbindung nun aufgebaut wird Stürzt der Master ab. Fhem nicht mehr erreichbar!
Log am Slave:
Zitat2015.09.21 12:47:20 3: FHEM2FHEM opening Master_ct at 192.168.178.34:7072
2015.09.21 12:47:20 3: FHEM2FHEM device opened (Master_ct)
2015.09.21 12:47:21 1: Including ./log/fhem.save
2015.09.21 12:47:25 1: 192.168.178.34:7072 disconnected, waiting to reappear
Log am Master:
Zitat2015.09.21 12:47:12 1: 192.168.178.45:7072 disconnected, waiting to reappear
2015.09.21 12:47:17 1: FHEM2FHEM 192.168.178.45:7072 reappeared (telnet_Heizung)
SSL_cert_file ./certs/server-cert.pem does not exist at /usr/share/perl5/IO/Socket/SSL.pm line 2009.
Was mach ich den hier falsch? Das das Problem hinter dem Bildschirm sitzt ist mir schon klar, aber irgendwie stehe ich gerade auf dem Schlauch.
Am Master ist der Telnet Verbindung etwas anders als am Slave.
Slave:
Zitatdefine telnetPort telnet 7072 global
Master:
Zitatdefine telnetPortSSL telnet 7072 global
attr telnetPortSSL SSL 1
attr telnetPortSSL globalpassword secret
attr telnetPortSSL room Optionen
define telnetForBlockingFn telnet 7073
attr telnetForBlockingFn room Optionen
Wenn ich den Port 7073 nehme funktioniert es. Aber das ist doch nicht richtig, oder?!
Den "Rückkanal" filtern über regex sonst baust du dir wahrscheinlich eine schöne Schleife.
VG
Frank
@RettungsTim: das sind zu wenige Infos, um wirklich helfen zu koennen, mind. die Definition der beiden FHEM2FHEM Instanzen waere hier noch noetig. Frank kann Recht haben, falls beide FHEM2FHEM Instanzen der Sorte LOG sind, und die beiden Regexps nicht exklusiv sind, d.h. es gibt Events, die von beiden Regexps akzeptiert werden.
Das kann sein, auch wenn ich mit Regexps nur die hälfte verstanden habe ???
Internals:
DEF 192.168.178.34:7073 LOG:cmd_hz.*
Host 192.168.178.34:7073
NAME Master_ct
NEXT_OPEN 1442908486
NR 25
PARTIAL
STATE disconnected
TYPE FHEM2FHEM
informType LOG
regexp cmd_hz.*
Attributes:
group telnet
room Heizung
Warum disconnected weiß ich leider noch nicht. Erreichbar ist er. So sieht es aus abgesehen vom Port der bei absturz 7072 ist.
Internals:
DEF 192.168.178.45:7072 LOG:2_.*
FD 49
Host 192.168.178.45:7072
NAME telnet_heizung
NR 696
PARTIAL
STATE connected
TYPE FHEM2FHEM
informType LOG
regexp 2_.*
Attributes:
group telnet_hz
room Hz_syt
Die von Frank befuerchtete Schleife kann mAn nicht auftreten: das eine Uebermittelt etwas, was mit cmd_hz anfaengt, das andere etwas, was mit 2_ anfaengt.
Was auffaellt: du definierst auf dem Master mit 7072 ein SSL Port, bei der FHEM2FHEM Definition sehe ich aber keine SSL Angabe.
Da hast du recht, das habe ich nicht beachtet. Aber warum bringe ich dann den Master zum Absturz wenn ich versuche eine Verbindung ohne SSL aufzubauen?
Sollte es dann nicht nur zum verhindern der Verbindung kommen und ein Log Eintrag geben?
So sollte es doch gehen, oder?:
define Master_ct FHEM2FHEM 192.168.178.34:7072:SSL LOG:cmd_hz.* secret
attr Master_ct group telnet
attr Master_ct room Heizung
geht aber nicht?!
Ich habe das jetzt nachgestellt: bei mir stuerzt ohne Slave-SSL keiner der beiden ab, es gibt halt nur alle 5 Sekunden jeweils Eintraege in beiden logs: der "Sender" sagt was von "SSL/HTTPS error" und die FHEM2FHEM Seite was von "disconnected/reappeared"
Mit Slave-SSL klappt das bei mir genauso wie du das definiert hast. Zum nachstellen ohne Hardware auf dem gleichen Rechner:
===Master-FHEM=====
define telnetPort telnet 7073 global
attr telnetPort SSL 1
attr telnetPort password secret
===Slave-FHEM======
define telnetPort telnet 7173
define F2F FHEM2FHEM localhost:7073:SSL LOG:.* secret
Danach zwei "telnet" Sessions:
===Slave-telnet======
telnet localhost 7173
fhem> info timer
===Master-telnet======
socat openssl:localhost:7073,verify=0 readline
secret
fhem> trigger global hello
In der Slave-Telnet sollte die Zeile mit global erscheinen.