Homematic wired

Begonnen von Henne1977, 26 Januar 2013, 22:46:00

Vorheriges Thema - Nächstes Thema

Ralf9

Zitat von: BrainHunter am 27 Dezember 2015, 21:19:57
Ich habe hier auch das ?gleiche? Problem: Nach update keine Verbindung mehr zum HM485d: bei mir kommt da "connection refused". Kann auch manuell mit netcat nicht auf localhost:2000 - auch hier connection refused.

Es liegt mal wieder an der TcpServerUtils.pm. Mit einer alten TcpServerUtils.pm funktioniert es bei mir.

Als Workaround eine alte TcpServerUtils.pm in TcpServerUtils485.pm umbenennen und ins FHEM Verzeichnis kopieren,
dann in der ServerTools.pm in Zeile 67 'TcpServerUtils.pm' in 'TcpServerUtils485.pm' umbenennen.

Es hängt evtl damit zusammen:
http://sourceforge.net/p/fhem/code/10212/

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

BrainHunter

#1636
Danke Ralf!
Jetzt wollte ich eben mit testen anfangen aber du hast es ja schon gefunden ;-)

Edit:
Liegt das an dieser Zeile?
Code (ServerTools.pm Zeile 153) Auswählen
my $result = TcpServer_Open($hash, $port, 1);
und sollte das evtl heißen:
my $result = TcpServer_Open($hash, $port, "global");

UweH

Und ich hätte die richtige ServerTools.pm bearbeiten sollen, dann hätte auch Ralf nicht suchen müssen... :(

swhome

Hallo allseits, nach dem Update meiner "produktiven" Installation auf den master (Dateidatum 3. September) beobachte ich ein merkwürdiges Verhalten: Nach einem FHEM Neustart werden gelegentlich scheinbar beliebige Kanäle der Aktoren eingeschaltet (3 x 12sw7 und ein 12sw14). Ich kann leider noch nicht genau sagen welche Aktoren, und ob es "falsche Events" sind die dazu führen. Nachdem ich gerade "nur" Licht, Gartenwasser und Ventilatoren dran habe, passiert nix schlimmeres... bei den geplanten Rolladen wäre das dann schon bedenklicher.

Ist das schon mal bei Euch passiert?
Im Einsatz: FHEM auf Raspberry Pi mit 350 devices, hauptsächlich Homematic Wired und HM-Heizungsregler, dazu diverse Eigenbauten für Fussbodenheizung und LED Beleuchtung. Und jetzt mit Alexa!

Ralf9

Zitat von: BrainHunter am 28 Dezember 2015, 10:19:13
Liegt das an dieser Zeile?
Code (ServerTools.pm Zeile 153) Auswählen
my $result = TcpServer_Open($hash, $port, 1);
und sollte das evtl heißen:
my $result = TcpServer_Open($hash, $port, "global");

Ja, daß ist die Zeile.
Ich habe es mal auf meinem PC getestet, damit funktioniert es:
my $result = TcpServer_Open($hash, $port, "global");

Ich habe dazu den HM485d manuell getartet
/usr/bin/perl ./FHEM/lib/HM485/HM485d/HM485d.pl --serialNumber SGW0123456 --device /dev/ttyACM0 --verbose 4

und dann mit einem "telnet localhost 2000" getestet
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
H00,01,HMW-SOFT-GW,0.2.2,SGW0123456


ein netstat ergibt:
> netstat -tulpn
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.0:2000            0.0.0.0:*               LISTEN      2663/perl   



Wenn es nicht funktioniert und beim telnet ein "Connection refused" erscheint, ergibt netstat:
> netstat -tulpn
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.1:2000            0.0.0.0:*               LISTEN      2479/perl


Kann jemand den Unterschied in der Local Address deuten?

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

BrainHunter

Hi Ralf,

Zitat
Kann jemand den Unterschied in der Local Address deuten?

Das macht schon sinn wenn man die Änderung in der TCPServerUtils.pm betrachtet ( http://sourceforge.net/p/fhem/code/10212/ )

-    LocalHost => ($global ? undef : "localhost"),
+    LocalHost => ($global ? ($global eq "global"? undef:$global) : "127.0.0.1"),


Wenn die LocalAddress auf 0.0.0.0 steht heißt das es wird auf allen Interfaces gehört. Wenn die Local Address auf 0.0.0.1 steht hört er auf dem Interface das zu dieser IP passt. Diese ist sehr warscheinlich nicht vorhanden und auf jeden Fall verschieden von localhost (127.0.0.1) und kann dementsprechend nicht connecten.

--> es muss dringend die ServerTools.pm gepatcht werden. Weil die "1" in my $result = TcpServer_Open($hash, $port, 1); als IP addresse interpretiert wird. Falls die Funktion noch irgendwo anderes verwendet wird geht das mit Sicherheit auch schief!

grüße Nico

Ralf9

#1641
eine 0 in
my $result = TcpServer_Open($hash, $port, 0);
funktioniert auch und müsste auch reichen:
netstat -tulpn
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 127.0.0.1:2000          0.0.0.0:*               LISTEN      3425/perl 


Edit:
Eine Möglichkeit wäre auch es mit einem attribut konfigurierbar zu machen, falls jemand fhem und den HM485d auf verschiedenen Rechnern laufen lassen will.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

BrainHunter

Ja das sollte natürlich auch funktionieren  ;)

Thorsten Pferdekaemper

Hi,
ich wollte nur mal Bescheid sagen,  dass es mich auch noch gibt. Ich bin nur gerade im Skiurlaub und das WLan hier im Hotel ist nicht gerade toll. Anfang 2016 geht's weiter.
Gruß,
Thorsten
FUIP

Thorsten Pferdekaemper

Zitat von: BrainHunter am 28 Dezember 2015, 23:37:37
--> es muss dringend die ServerTools.pm gepatcht werden. Weil die "1" in my $result = TcpServer_Open($hash, $port, 1); als IP addresse interpretiert wird. Falls die Funktion noch irgendwo anderes verwendet wird geht das mit Sicherheit auch schief!
Hi,
mit Version 0.7.38 (die aktuelle Dev) sollte das jetzt behoben sein. Ich habe die Version mit "global" gewählt, da ich die Möglichkeit, den Daemon auch auf anderen Servern laufen zu lassen, erhalten will. Sieht da jemand gravierende Nachteile?
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Zitat von: swhome am 28 Dezember 2015, 13:23:26
nach dem Update meiner "produktiven" Installation auf den master (Dateidatum 3. September) beobachte ich ein merkwürdiges Verhalten: Nach einem FHEM Neustart werden gelegentlich scheinbar beliebige Kanäle der Aktoren eingeschaltet (3 x 12sw7 und ein 12sw14). Ich kann leider noch nicht genau sagen welche Aktoren, und ob es "falsche Events" sind die dazu führen.
Hi,
das hatte ich bisher noch nicht gehört. Kannst Du dazu noch ein paar mehr Informationen liefern bzw. kannst Du das Verhalten irgendwie reproduzieren?
Ich würde außerdem empfehlen, auf die Dev-Version zu gehen.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Zitat von: holzwurm83 am 28 Dezember 2015, 00:57:02
ich glaube ich da einen Bug gefunden. Wenn ich z.B. an einem Tastereingang aus Fhem herauf einen
set HMW_LC_Bl1_DR_KEQ0021546_01 press_short
oder
set HMW_LC_Bl1_DR_KEQ0021546_01 press_long
absetze wird im state immer ein "press_short 0" oder "press_long 0" erzeugt. Es müsste aber doch ein "press_short_0" sein und die Readings dafür müssten auch hochzählen, was auch nicht tut.

Hi,
das Thema ist etwas komplexer. Ich habe dafür mal einen neuen Thread aufgemacht: http://forum.fhem.de/index.php/topic,46678.0.html.
Könntest Du Dir das mal ansehen? (Jeder andere natürlich auch.)
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Zitat von: RobertD am 27 Dezember 2015, 03:25:11Zwecks Programm Version anzeigen lassen in Fhem, hab ich folgendes gefunden:
Hi,
ab 0.7.39 wird 10_HM485.pm beim FHEM-Befehl "version" angezeigt. D.h. einfach "version" in's Kommandofeld eingeben.
Soweit ich das verstehe klappt das, wenn man mindestens ein HM485-Device in FHEM hat.
Gruß,
   Thorsten
FUIP

BrainHunter

Ich habe auf meinem Testsystem jetzt mal die 0.7.39 mittels update add drauf gemacht.
"version" wird korrekt angezeigt!
Der HM485d.pl geht auch wieder - ich würde sorag sagen besser: Ich hatte oft probleme das der HM485d.pl nicht richtig funktioniert hat nach einem shutdown restart. Das scheint jetzt zu gehen!

Thorsten Pferdekaemper

Zitat von: BrainHunter am 04 Januar 2016, 12:06:34Der HM485d.pl geht auch wieder - ich würde sorag sagen besser: Ich hatte oft probleme das der HM485d.pl nicht richtig funktioniert hat nach einem shutdown restart. Das scheint jetzt zu gehen!
Freut mich.
Ich glaube, dass ich da in den letzten Wochen/Monaten auch ein paar kleine Korrekturen eingebaut hatte.
Gruß,
   Thorsten
FUIP