FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: Arno.Kahle am 18 Januar 2017, 22:51:20

Titel: Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 18 Januar 2017, 22:51:20
Hallo zusammen,

dieses Thema war leider schon 2015 diskutiert und mit vielen Ratschlägen versehen worden. Habe einige davon nachvollzogen und alle implementiert gefunden.

Trotzdem bekomme ich den Daemon HM485d nicht zum Starten. Nach log ist der Port, egal welchen ich einstelle, bereits "in use"

Wer kann mir da helfen, oder mit welcher Hardware bekomme ich diesen Bus zum Laufen?

Wer hat von HM den 12 Input 7 Output Block denn erfolgreich am FHEM am Laufen?


Bin gerade am Verzweifeln...

Viele Grüße
Arno

post@arno-kahle.de

Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 19 Januar 2017, 07:16:10
Hi,
könntest Du den Thread nach Homematic verschieben?
Außerdem:
Ich habe mehrere von diesen 12/7ern und andere HMW-Sachen am Laufen.
Gruß,
   Thorsten
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 19 Januar 2017, 12:41:07
Hallo Thorsten,
vielen Dank, bin hier offensichtlich newbee :) und gestern nach Monaten Blockade erheblich genervt gewesen...

Version:
Latest Revision: 13135

File                     Rev   Last Change

fhem.pl                  13120 2017-01-17 09:38:18Z rudolfkoenig
96_allowed.pm            13118 2017-01-17 09:28:44Z rudolfkoenig
98_autocreate.pm         11984 2016-08-19 12:47:50Z rudolfkoenig
57_Calendar.pm           12946 2017-01-03 17:22:41Z neubert
10_CUL_HM.pm             13085 2017-01-15 13:24:15Z martinp876
95_Dashboard.pm          12251 2016-10-03 09:45:43Z talkabout
98_dummy.pm              12700 2016-12-02 16:49:42Z rudolfkoenig
91_eventTypes.pm         11984 2016-08-19 12:47:50Z rudolfkoenig
01_FHEMWEB.pm            13128 2017-01-17 21:40:09Z rudolfkoenig
92_FileLog.pm            13069 2017-01-14 20:25:15Z rudolfkoenig
No Id found for 00_HM485_LAN.pm
98_HMinfo.pm             12917 2016-12-31 07:44:34Z martinp876
00_HMLAN.pm              12351 2016-10-16 18:18:00Z martinp876
No Id found for hmw_io12_sw14_dr.pm
No Id found for hmw_io12_sw7_dr.pm
No Id found for hmw_io12_sw7_dr_V3_02.pm
No Id found for hmw_io_12_fm.pm
No Id found for hmw_sen_sc_12_dr.pm
98_HTTPMOD.pm            12220 2016-09-29 18:25:09Z ststrobel
91_notify.pm             11984 2016-08-19 12:47:50Z rudolfkoenig
33_readingsGroup.pm      12774 2016-12-14 17:16:09Z justme1968
99_SUNRISE_EL.pm         12485 2016-11-01 15:18:51Z rudolfkoenig
98_SVG.pm                12482 2016-11-01 09:25:59Z rudolfkoenig
98_telnet.pm             11984 2016-08-19 12:47:50Z rudolfkoenig
00_THZ.pm                13091 2017-01-15 15:58:02Z immi
98_update.pm             12801 2016-12-17 16:52:31Z rudolfkoenig
99_Utils.pm              11984 2016-08-19 12:47:50Z rudolfkoenig
98_version.pm            11987 2016-08-19 17:13:41Z markusbloch
59_Weather.pm            12559 2016-11-13 08:54:54Z borisneubert
98_weblink.pm            11984 2016-08-19 12:47:50Z rudolfkoenig

Blocking.pm              12648 2016-11-24 12:15:25Z rudolfkoenig
Color.pm                 11159 2016-03-30 16:08:06Z justme1968
No Id found for Constants.pm
No Id found for Device.pm
DevIo.pm                 12716 2016-12-05 09:11:31Z rudolfkoenig
HMConfig.pm              12942 2017-01-03 07:42:02Z martinp876
No Id found for hmw_central.pm
No Id found for hmw_generic.pm
No Id found for hmw_io_4_fm.pm
No Id found for hmw_io_4_fm_V3_02.pm
No Id found for hmw_io_sr_fm.pm
No Id found for hmw_lc_bl1_dr.pm
No Id found for hmw_lc_bl1_dr_V3_02.pm
No Id found for hmw_lc_dim1l_dr.pm
No Id found for hmw_lc_sw2_dr.pm
No Id found for hmw_lc_sw2_dr_V3_02.pm
No Id found for hmw_virtual.pm
HttpUtils.pm             13084 2017-01-15 12:59:16Z rudolfkoenig
RTypes.pm                10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm         12935 2017-01-02 19:51:46Z rudolfkoenig
TcpServerUtils.pm        11908 2016-08-06 15:09:55Z rudolfkoenig
No Id found for Util.pm
YahooWeatherAPI.pm       12465 2016-10-29 09:01:31Z borisneubert

Hardware:
Raspi2 B+
RS485 Aufsteckkarte von Linksprite (conrad)
OS:
Linux FhemServer 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux

Alle Beiträge habe ich gelesen und durchgearbeitet, also gecheckt, ob es auch so eingestellt ist..

HM485_LAN:


DEF                                                          localhost:2000
DeviceName                                           localhost:2000
FD                                                            17
HM485d_CommandLine                    ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000
HM485d_PID                                         26149
HM485d_STATE                                  started
NAME                                                      RS485_Bus
NR                                                           117
PARTIAL 
STATE                                                    opened
TYPE                                                       HM485_LAN
hmwId                                                      00000001
msgCounter                                            0

Devicestatus:
RS485_Bus                                           disconnected

Zugriffsrechte hab ich richtig gesetzt

Leider hab ich gerade noch nicht herausgefunden, wie ich den Thread nach "Homematic" verschieben kann. Ich arbeite weiter dran.

Vielen Dank für Deinen Support :)
Gruß
Arno
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 19 Januar 2017, 12:58:32
Hi,
also ob das mit dieser Aufsteckkarte läuft weiß ich nicht. Das Ding habe ich noch nie gesehen. Hol Dir vielleicht mal so ein Digitus-Teil wie im Wiki beschrieben und probier's damit. Wenn es damit läuft, dann können wir es ggf. nochmal mit der Aufsteckkarte versuchen.
Ansonsten wäre es nett, wenn Du für die ganzen Ausgaben code-Tags verwenden könntest.
Dann hätte ich noch gerne den Inhalt der Datei /opt/fhem/FHEM/10_HM485.pm.
...und die Ausgabe des Befehls "list RS485_bus".
Könntest Du dann noch das Attribut HM485d_logVerbose von RS485_bus auf 5 setzen und das ganze nochmal starten. Dann hätte ich gerne, was das ins Log schreibt.
Gruß,
   Thorsten
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 19 Januar 2017, 17:43:20
Hi,
was mir noch einfällt: Kann es sein, dass Du HM485d_bind auf 1 stehen hast und trotzdem den HM485d manuell oder so startest?
Gruß,
   Thorsten
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 19 Januar 2017, 20:08:44
Hi Thorsten,

hab den digitus bestellt, ist gerade vergriffen.

Ich starte nichts manuell und ja den HM485d_bind hab ich auf 1 stehen.

Hier der log-Auszug nachdem ich verbose 5 gesetzt habe:


2017.01.19 20:03:17 3: RS485_Bus: Start HM485d with command line: ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000
2017.01.19 20:03:17 3: RS485_Bus: HM485d was started with PID:  4543
2017.01.19 20:03:17 3: RS485_Bus: Connect to HM485d delayed for 5 seconds
2017.01.19 20:03:17 3: Opening RS485_Bus device localhost:2000
2017.01.19 20:03:17 3: RS485_Bus: connected to device localhost:2000
2017.01.19 20:03:17 3: RS485_Bus device opened
2017.01.19 20:03:17 1: localhost:2000 disconnected, waiting to reappear (RS485_Bus)
2017.01.19 20:03:18.417 0: HM485d: Cannot create socket HM485d: Can't open server port at 2000: Address already in use
Cannot create socket HM485d: Can't open server port at 2000: Address already in use
2017.01.19 20:03:21 3: RS485_Bus: Start HM485d with command line: ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000
2017.01.19 20:03:21 3: RS485_Bus: HM485d was started with PID:  4561
2017.01.19 20:03:21 3: RS485_Bus: Connect to HM485d delayed for 5 seconds
2017.01.19 20:03:21 3: Opening RS485_Bus device localhost:2000
2017.01.19 20:03:21 3: RS485_Bus: connected to device localhost:2000
2017.01.19 20:03:21 3: RS485_Bus device opened
2017.01.19 20:03:21 1: localhost:2000 disconnected, waiting to reappear (RS485_Bus)
2017.01.19 20:03:22.693 0: HM485d: Cannot create socket HM485d: Can't open server port at 2000: Address already in use
Cannot create socket HM485d: Can't open server port at 2000: Address already in use
20



Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 19 Januar 2017, 20:09:51
wollte noch mit Danke und Tschüss abschliessen :)
Gruß
Arno
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 19 Januar 2017, 22:06:28
Hi,
also mir ist echt unklar, was da abgeht. Ich habe so ziemlich dieselbe Konfiguration und da klappt es wunderbar.
Es sieht so aus, als ob sich das IO-Device (also RS485_Bus) erst mit dem Daemon verbindet, ihn aber dann wieder "verliert". Das ist ein wenig seltsam.
Kannst Du mal auf Betriebssystemebene ein "ps -aux | grep HM485" machen?
Gruß,
   Thorsten
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 19 Januar 2017, 22:21:03
Hi,
etwas seltsam ist auch das hier:

2017.01.19 20:03:17 3: RS485_Bus: Connect to HM485d delayed for 5 seconds
2017.01.19 20:03:17 3: Opening RS485_Bus device localhost:2000
2017.01.19 20:03:17 3: RS485_Bus: connected to device localhost:2000

D.h. er sagt, dass der connect um 5 Sekunden delayed ist, aber dann geht es sofort weiter.
Hast Du irgendwelche Änderungen im 00_HM485_LAN.pm gemacht?
Gruß,
   Thorsten
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 19 Januar 2017, 23:37:59
Hi,
irgendwo hatte ich gelesen, dass manchmal eine Delaytime bei Störungen hilft. Das habe ich dann auch mit einer Variable eingestellt:

attr HM485d_startTimeout 3

Die ist allerdings nur 3 sec!

ps aux zeigt den laufenden Prozess, wenn ich nicht das Device komplett gestoppt habe, da es sonst immer nur anläuft abfällt und mir die logs unnütz voll schreibt. Wenn er nicht läuft, ist auch kein Prozess zu finden. so, wie es sein soll, denk ich.

Das sieht so aus, als würde irgendwas den Port belegen, aber beim Wechsel der Nummer ist der gleiche Effekt. Also müsste, blödsinnigerweise, der Prozess sich den Port früher belegen, als er checked, ob er frei ist. Oder den Port versuchen mehrfach aufzumachen.
Wie könnte ich checken, ob der Port frei für den Prozess ist? Ich frag da mal morgen unsere Netzwerker...

Gruß und gute Nacht
Arno
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 19 Januar 2017, 23:52:21
Ach, 00_HM485_LAN.pm hab ich nicht verändert. Trotzdem als Anhang...

Arno
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 20 Januar 2017, 07:39:28
Zitat von: Arno.Kahle am 19 Januar 2017, 23:37:59
attr HM485d_startTimeout 3
Das ist jetzt sehr seltsam, da im Log 5 Sekunden steht.
Gib mir doch endlich mal ein "list RS485_Bus".

Zitatps aux zeigt den laufenden Prozess, ...
Ok, wahrscheinlich falsche Fährte.

Ich kann das ganze leider momentan gar nicht richtig ausprobieren, da ich nicht mit meiner "Produktiv"-Umgebung spielen will und ich ansonsten gerade kein Linux-System ordentlich aufgesetzt habe.
Könntest Du mal versuchen, den Daemon auf Betriebssystemebene manuell zu starten? Am besten, wenn FHEM gar nicht läuft. Die Commandline steht ja im RS485_Bus-Device. Mal sehen, ob das irgendwelche Fehler erzeugt.
Dann vielleicht auch mal HM485d_bind auf 0 setzen und ausprobieren, ob das RS485_Bus sich mit dem Daemon verbindet.

Gruß,
  Thorsten

Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 20 Januar 2017, 08:52:05
list RS485_Bus:

Internals:
   DEF        localhost:2000
   DeviceName localhost:2000
   HM485d_CommandLine ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000
   HM485d_PID 10122
   HM485d_STATE started
   NAME       RS485_Bus
   NR         117
   PARTIAL
   STATE      disconnected
   TYPE       HM485_LAN
   hmwId      00000001
   msgCounter 0
   Readings:
     2017-01-20 08:31:28   state           disconnected
Attributes:
   HM485d_bind 1
   HM485d_device /dev/ttyAMA0
   hmwId      00000001
   room       HM485


Der Startversuch:

root@FhemServer:/opt/fhem# ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000
2017.01.20 08:37:14.759 0: HM485d: Cannot create socket HM485d: Can't open server port at 2000: Die Adresse wird bereits verwendet
Cannot create socket HM485d: Can't open server port at 2000: Die Adresse wird bereits verwendet
root@FhemServer:/opt/fhem# ps aux | grep HM485
root     14828  0.0  0.1   3864  1692 pts/0    S+   08:37   0:00 grep HM485
root@FhemServer:/opt/fhem# ps aux | grep fhem
root     14830  0.0  0.1   3864  1648 pts/0    S+   08:37   0:00 grep fhem
root@FhemServer:/opt/fhem# ps aux | grep FHEM
root     14833  0.0  0.1   3864  1740 pts/0    S+   08:38   0:00 grep FHEM
root@FhemServer:/opt/fhem#


Ich hab noch alles für einen zweiten Aufbau da, den ich zum Probieren.
Folgendes interessantes hab ich noch gefunden. Der port ist tatsächlich belegt:

root@FhemServer:/opt/fhem# 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:139             0.0.0.0:*               LISTEN      2265/smbd       
tcp        0      0 0.0.0.0:2000            0.0.0.0:*               LISTEN      2027/ser2net   
tcp        0      0 0.0.0.0:2001            0.0.0.0:*               LISTEN      2027/ser2net   
tcp        0      0 0.0.0.0:2003            0.0.0.0:*               LISTEN      2027/ser2net   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2261/sshd       
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      2027/ser2net   
tcp        0      0 0.0.0.0:3001            0.0.0.0:*               LISTEN      2027/ser2net   
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      2265/smbd       
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2482/dhcpcd     
udp        0      0 10.1.1.98:123           0.0.0.0:*                           2172/ntpd       
udp        0      0 127.0.0.1:123           0.0.0.0:*                           2172/ntpd       
udp        0      0 0.0.0.0:123             0.0.0.0:*                           2172/ntpd       
udp        0      0 10.1.1.255:137          0.0.0.0:*                           2194/nmbd       
udp        0      0 10.1.1.98:137           0.0.0.0:*                           2194/nmbd       
udp        0      0 0.0.0.0:137             0.0.0.0:*                           2194/nmbd       
udp        0      0 10.1.1.255:138          0.0.0.0:*                           2194/nmbd       
udp        0      0 10.1.1.98:138           0.0.0.0:*                           2194/nmbd       
udp        0      0 0.0.0.0:138             0.0.0.0:*                           2194/nmbd       
root@FhemServer:/opt/fhem#


Der Prozess dazu:

ps aux | grep ser2net
root      2027  0.0  0.1   1764  1032 ?        S    Jan18   1:22 /usr/sbin/ser2net -c /etc/ser2net.conf -P /var/run/ser2net.pid
root     14842  0.0  0.1   3868  1744 pts/0    S+   08:44   0:00 grep ser2net
root@FhemServer:/opt/fhem#


Ich bin dann mal weiter gegangen. Achtung erstmal noch alles unter root.

root@FhemServer:/opt/fhem# kill 2027
root@FhemServer:/opt/fhem# ps aux | grep ser2net
root     14846  0.0  0.1   3864  1692 pts/0    S+   08:45   0:00 grep ser2net
root@FhemServer:/opt/fhem# ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000
^Z
[1]+  Angehalten              ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000
root@FhemServer:/opt/fhem# bg
[1]+ ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000 &
root@FhemServer:/opt/fhem# ps aux | grep ser2net
root     14849  0.0  0.1   3864  1668 pts/0    S+   08:46   0:00 grep ser2net
root@FhemServer:/opt/fhem# 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:139             0.0.0.0:*               LISTEN      2265/smbd       
tcp        0      0 0.0.0.0:2000            0.0.0.0:*               LISTEN      14847/perl     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2261/sshd       
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      2265/smbd       
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2482/dhcpcd     
udp        0      0 10.1.1.98:123           0.0.0.0:*                           2172/ntpd       
udp        0      0 127.0.0.1:123           0.0.0.0:*                           2172/ntpd       
udp        0      0 0.0.0.0:123             0.0.0.0:*                           2172/ntpd       
udp        0      0 10.1.1.255:137          0.0.0.0:*                           2194/nmbd       
udp        0      0 10.1.1.98:137           0.0.0.0:*                           2194/nmbd       
udp        0      0 0.0.0.0:137             0.0.0.0:*                           2194/nmbd       
udp        0      0 10.1.1.255:138          0.0.0.0:*                           2194/nmbd       
udp        0      0 10.1.1.98:138           0.0.0.0:*                           2194/nmbd       
udp        0      0 0.0.0.0:138             0.0.0.0:*                           2194/nmbd       
root@FhemServer:/opt/fhem#


Also der Daemon läuft jetzt offensichtlich...
Ich werde jetzt mal die Kiste wieder durchbooten und sehen, ob und wann, wo der Prozess automatisch gestartet wird.

Ich meld mich wieder.
Arno
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 20 Januar 2017, 09:08:53
Hallo Thorsten,

der Daemon läuft jetzt nach meinem manuellen Eingriff mit:

kill PID(ser2net)

Internals:
   DEF        localhost:2000
   DeviceName localhost:2000
   FD         16
   HM485d_CommandLine ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000
   HM485d_PID  3993
   HM485d_STATE started
   InterfaceType HMW-SOFT-GW
   NAME       RS485_Bus
   NR         117
   PARTIAL
   ProtokolVersion 01
   STATE      opened
   SerialNumber SGW0123456
   TYPE       HM485_LAN
   Version    0.2.2
   hmwId      00000001
   msgCounter 19
   Readings:
     2017-01-20 08:55:27   state           opened
   Keepalive:
     ok         1
     retry      0
Attributes:
   HM485d_bind 1
   HM485d_device /dev/ttyAMA0
   hmwId      00000001
   room       HM485


Weißt Du, wo der Prozess gestartet wird...? Damit ich ihn dauerhaft abstellen kann.

Der HMW-IO-12-Sw7-DR hat jetzt schon mal anders geblinkt, ist noch nicht zu sehen. Aber dazu muss ich nochmal in Eure Hilfe reinschauen.

Gruß
Arno
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 20 Januar 2017, 14:05:09
Hi Thorsten,

nachdem ich in den Init-Scripten im rc2.d das Startscript für ser2net deaktiviert habe, started fhem jetzt mit dem RS485 Bus durch.

2017.01.20 13:18:24 3: RS485_Bus: Start HM485d with command line: ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2000
2017.01.20 13:18:25 3: RS485_Bus: HM485d was started with PID:  6334
2017.01.20 13:18:25 3: RS485_Bus: Connect to HM485d delayed for 5 seconds
2017.01.20 13:18:26 3: RS485_Bus: connected to device localhost:2000
2017.01.20 13:18:26 1: localhost:2000 reappeared (RS485_Bus)
2017.01.20 13:18:26 3: RS485_Bus: Lan Device Information
2017.01.20 13:18:26 3: RS485_Bus: Protocol-Version: 01
2017.01.20 13:18:26 3: RS485_Bus: Interface-Type: HMW-SOFT-GW
2017.01.20 13:18:26 3: RS485_Bus: Firmware-Version: 0.2.2
2017.01.20 13:18:26 3: RS485_Bus: Serial-Number: SGW0123456
2017.01.20 13:18:26 3: RS485_Bus: Initialize the interface
2017.01.20 13:18:51 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/lib/HM485/FhemWebHelper.pm line 17.
2017.01.20 13:19:21 3: IO12_7MEQ1769873: Initialisierungsfehler 0000BA81 ModelName noch nicht vorhanden
2017.01.20 13:19:36 1: PERL WARNING: Use of uninitialized value in sprintf at fhem.pl line 2166.


Eine Kommunikation zu dem HMW-IO-12-Sw7-DR scheint aber trotzdem noch nicht zu funktionieren. Ein autocreate liefert mir auch keinen Eintrag, wie im Wiki beschrieben, dass man wenigstens erstmal mit Betätigung eines Eingangsschalters einen Eintrag generiert. Die Lampe am Device blinkt nur beim Einschalten.
Daraufhin habe ich das Device einmal gemäß dem Eintrag im Wiki von Hand eingetragen, aber es funktioniert nicht, wie man oben im log sieht.

Internals:
   DEF        0000BA81
   FailedConfigReads 0
   IODev
   NAME       IO12_7MEQ1769873
   NR         35
   STATE      ???
   TYPE       HM485
   Readings:
     2017-01-20 13:45:34   configStatus    0
Attributes:
   room       RS485_Bus
   verbose    5


Und der log des Devices ist leer.
Hast Du da noch weitere Hilfe...
Ich denke, vielleicht ist das jetzt dann auch besser als neues Thema geeignet?

Gruß
Arno
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 20 Januar 2017, 17:46:20
Zitat von: Arno.Kahle am 20 Januar 2017, 14:05:09
nachdem ich in den Init-Scripten im rc2.d das Startscript für ser2net deaktiviert habe, started fhem jetzt mit dem RS485 Bus durch.
Ok, Du hättest auch einfach einen wirklich freien Port nehmen können.

ZitatEine Kommunikation zu dem HMW-IO-12-Sw7-DR scheint aber trotzdem noch nicht zu funktionieren. Ein autocreate liefert mir auch keinen Eintrag, wie im Wiki beschrieben, dass man wenigstens erstmal mit Betätigung eines Eingangsschalters einen Eintrag generiert.
Wie hast Du das ganze genau angeschlossen?

ZitatDie Lampe am Device blinkt nur beim Einschalten.
Daraufhin habe ich das Device einmal gemäß dem Eintrag im Wiki von Hand eingetragen,
Dass das funktioniert ist sehr unwahrscheinlich. Wo steht denn das im Wiki?

Lösche das Device mal wieder. Setze dann im RS485_Bus sowohl verbose als auch HM485d_verbose auf 5 und starte den Daemon neu. (Oder gleich FHEM.) Dann drücke mal auf eine Taste am 12/7 (also eine Taste, die an einem der Eingänge angeschlossen ist). Ich hätte dann gerne das Log.

Zitat
Ich denke, vielleicht ist das jetzt dann auch besser als neues Thema geeignet?
Nee, lass mal "mein 12/7 redet nicht mit mir" gibt es schon ein paar Mal. Es kam auch schon vor, dass die Dinger einfach kaputt sind.

Gruß,
   Thorsten
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 20 Januar 2017, 17:58:55
Noch was: Woher weißt Du, dass die Adresse des Geräts 0000BA81 ist?
Gruß,
   Thorsten
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 20 Januar 2017, 23:05:04
Hi Thorsten,

ok, ok ... natürlich
McMurphy hatte vorher schon auf Port 3000 probiert, der prompt auch von ser2net belegt war....
Hab beides jetzt laufen mit HM485d auf 2020.

Der Anschluss ist provisorisch mit 40 cm paarweise verdrilltem und geschirmten Kommunikationskabel. Der Schirm liegt am 12/7 auf Masse. Abschluss direkt an den Klemmen jeweils mit 150 Ohm.

list RS485_Bus:

[codeInternals:
   DEF        localhost:2020
   DeviceName localhost:2020
   FD         17
   HM485d_CommandLine ./FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyAMA0 --localPort 2020 --verbose 5
   HM485d_PID  2677
   HM485d_STATE started
   InterfaceType HMW-SOFT-GW
   NAME       RS485_Bus
   NR         117
   PARTIAL
   ProtokolVersion 01
   STATE      opened
   SerialNumber SGW0123456
   TYPE       HM485_LAN
   Version    0.2.2
   hmwId      00000001
   msgCounter 65
   Readings:
     2017-01-20 22:06:35   state           opened
   Keepalive:
     ok         1
     retry      0
Attributes:
   HM485d_bind 1
   HM485d_device /dev/ttyAMA0
   HM485d_logVerbose 5
   hmwId      00000001
   room       HM485 ]


Logfile fhem.log und mit grep 485 gefiltert rs485.log im Anhang.

Ich hatte dazu den HM485d erstmal restarted und dann musste ich erst durchs Haus laufen, habe mit der Drahtbrücke an Masse mehrere Kontakte kurz geerdet...
und zurück bis ich stoppen konnte..
Nach dem kurzen Überfliegen, glaub ich, kann man was raus lesen..
Bin auf Deine Antwort gespannt.

Hey, herzlichen Dank und viele Grüße
Arno
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 21 Januar 2017, 00:23:15
Hab noch weiter gemacht und da der autocreate nicht lief doch die Eintragungen von Hand aufgesetzt und angepasst:

list:

Internals:
   DEF        00014EA9
   FailedConfigReads 0
   IODev      RS485_Bus
   NAME       IO12_7MEQ1769873
   NR         120
   STATE      ACK
   TYPE       HM485
   Readings:
     2017-01-21 00:06:27   configStatus    READING
     2017-01-21 00:05:34   state           ACK
Attributes:
   IODev      RS485_Bus
   room       HM485
   verbose    5


In der Anlage ist dann noch einmal der "485" gefilterte Log.

Was fehlt FHEM noch?

Gruß
Arno
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 21 Januar 2017, 08:03:17
Zitat von: Arno.Kahle am 20 Januar 2017, 23:05:04
Abschluss direkt an den Klemmen jeweils mit 150 Ohm.
Kann sein, dass Du damit Deinen 12/7 gekillt hast. Mach den Widerstand raus. Bei HMW darfst Du keinen solchen Busabschluss einbauen. Der so genannte HMW-Busabschluss ist ein Pullup-Pulldown-Widerstandsnetzwerk. Das braucht man aber auch erstmal nicht.
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 21 Januar 2017, 08:34:39
Hi,
der Tastendruck wird definitiv von FHEM empfangen. Die logs sehen so aus, als ob das Device zwar sendet, und FHEM was empfängt, aber das Device nichts empfängt, wenn FHEM sendet. Außerdem geht da irgendwas schief mit Deinen eigenen define-Versuchen und dem autocreate.
Braucht Deine RS485-Schnittstelle irgendwas spezielles um in den Sendemodus zu gehen? Ich gehe fast davon aus, da das wohl meistens der Fall ist, wenn man was direkt an den RasPi ansteckt. Der Digitus-Stick macht das von selbst.
Ansonsten: Mach mal die Verkabelung wie "vorgeschrieben" und nicht mehr. Also +24V an +24V, GND an GND, die beiden Busleitungen und den Taster nach GND. Ansonsten nichts mit Widerständen, Schirmungen oder sonstigem Kram.
Dann am Besten FHEM mal komplett durchstarten (shutdown restart). Wenn alles wieder da ist und der RS485_Bus alles ok zeigt, die Taste drücken.
Gruß,
   Thorsten
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 21 Januar 2017, 10:58:04
Moin Thorsten,

ich werd nicht müde Dir zu danken ..... Du liegst verdammt gut in Deinen Ratschlägen.  8)

Hab umgebaut, nach Deinen Angaben..
fhem.cfg befreit von alten Angaben/Definitionen zum 12/7
Raspi aus- und eingeschaltet
Bus RS485 stop
12/7 eingeschaltet
Bus gestartet und nach einer Weile Taste gedrückt
Das Device HMW_IO ... wurde mit autocreate angelegt.

Die Kommunikation zeigt zwar timeouts, aber wenige im Verhältnis zum gesamten Datenaustausch.. Ist das ein Problem, unschön, bzw. irritierend ist es schon ein wenig.

Der Digitus ist für nachher per DHL angekündigt.

Die Verdrahtung von mir war nach einer allgemeinen Beschreibung (der Norm) für den RS485 Bus.... Bis auf die Schirmung, die bei diesem Kabel halt vorhanden ist.
Macht HM da was abweichendes?

Wie bekomme ich jetzt die einzelnen IO-Kanäle, damit ich schalten und auswerten kann?

Gruß
Arno

Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 21 Januar 2017, 15:40:00
Hi Thorsten,

digitus ist da und machts möglich :)

Internals:
   CFGFN
   DEF        00014EA9
   FW_VERSION 3.06
   FailedConfigReads 0
   IODev      RS485_Bus
   MODEL      HMW_IO_12_Sw7_DR
   NAME       HMW_IO_12_Sw7_DR_MEQ1769873
   NR         117
   STATE      ACK
   TYPE       HM485
   channel_01 HMW_IO_12_Sw7_DR_MEQ1769873_01
   channel_02 HMW_IO_12_Sw7_DR_MEQ1769873_02
   channel_03 HMW_IO_12_Sw7_DR_MEQ1769873_03
   channel_04 HMW_IO_12_Sw7_DR_MEQ1769873_04
   channel_05 HMW_IO_12_Sw7_DR_MEQ1769873_05
   channel_06 HMW_IO_12_Sw7_DR_MEQ1769873_06
   channel_07 HMW_IO_12_Sw7_DR_MEQ1769873_07
   channel_08 HMW_IO_12_Sw7_DR_MEQ1769873_08
   channel_09 HMW_IO_12_Sw7_DR_MEQ1769873_09
   channel_10 HMW_IO_12_Sw7_DR_MEQ1769873_10
   channel_11 HMW_IO_12_Sw7_DR_MEQ1769873_11
   channel_12 HMW_IO_12_Sw7_DR_MEQ1769873_12
   channel_13 HMW_IO_12_Sw7_DR_MEQ1769873_13
   channel_14 HMW_IO_12_Sw7_DR_MEQ1769873_14
   channel_15 HMW_IO_12_Sw7_DR_MEQ1769873_15
   channel_16 HMW_IO_12_Sw7_DR_MEQ1769873_16
   channel_17 HMW_IO_12_Sw7_DR_MEQ1769873_17
   channel_18 HMW_IO_12_Sw7_DR_MEQ1769873_18
   channel_19 HMW_IO_12_Sw7_DR_MEQ1769873_19
   Readings:
     2017-01-21 15:19:50   R-central_address 00000001
     2017-01-21 15:19:50   R-logging_time  2.00
     2017-01-21 15:19:49   configStatus    OK
     2017-01-21 15:19:46   press_long      43
     2017-01-21 15:28:53   state           ACK
   Cache:
     Linkparams:
       Actuator:
         address_start 857
         address_step 6
         channel_param channel
         channels   01 02 03 04 05 06 07 08 09 10 11 12
         count      27
         peer_param actuator
         type       link
         Parameter:
           Actuator:
             hidden     1
             operations none
             Logical:
               type       address
             physical:
               HASH(0x32a34c0)
               HASH(0x32a3598)
           Channel:
             hidden     1
             operations none
             Logical:
               default    255
               max        255
               min        0
               type       integer
             Physical:
               interface  eeprom
               size       1
               type       integer
               Address:
                 index      0
       Sensor:
         address_start 45
         address_step 28
         channel_param channel
         channels   13 14 15 16 17 18 19
         count      29
         peer_param sensor
         type       link
         Parameter:
           Channel:
             hidden     1
             operations none
             Logical:
               default    255
               max        255
               min        0
               type       integer
             Physical:
               interface  eeprom
               size       1
               type       integer
               Address:
                 index      5
           Long_action_type:
             Logical:
               type       option
               option:
                 HASH(0x32c9b58)
                 HASH(0x32c9ba0)
             Physical:
               interface  eeprom
               size       0.1
               type       integer
               Address:
                 index      17
           Long_jt_off:
             Logical:
               type       option
               option:
                 HASH(0x32c9df8)
                 HASH(0x32c9e58)
                 HASH(0x32c9ea0)
                 HASH(0x32c9ee8)
                 HASH(0x32c9f30)
             Physical:
               endian     little
               interface  eeprom
               read_size  2
               size       0.3
               type       integer
               Address:
                 index      26.9
           Long_jt_offdelay:
             Logical:
               type       option
               option:
                 HASH(0x32cba80)
                 HASH(0x32cbac8)
                 HASH(0x32cbb10)
                 HASH(0x32cbb58)
                 HASH(0x32cbbb8)
             Physical:
               endian     little
               interface  eeprom
               read_size  2
               size       0.3
               type       integer
               Address:
                 index      26.6
           Long_jt_on:
             Logical:
               type       option
               option:
                 HASH(0x32cbe70)
                 HASH(0x32cbeb8)
                 HASH(0x32cbf00)
                 HASH(0x32cbf60)
                 HASH(0x32cbfa8)
             Physical:
               endian     little
               interface  eeprom
               read_size  2
               size       0.3
               type       integer
               Address:
                 index      26.3
           Long_jt_ondelay:
             Logical:
               type       option
               option:
                 HASH(0x32cc260)
                 HASH(0x32cc2a8)
                 HASH(0x32cc308)
                 HASH(0x32cc350)
                 HASH(0x32cc398)
             Physical:
               endian     little
               interface  eeprom
               read_size  2
               size       0.3
               type       integer
               Address:
                 index      26
           Long_multiexecute:
             Logical:
               default    1
               type       boolean
             Physical:
               interface  eeprom
               size       0.1
               type       integer
               Address:
                 index      17.2
           Long_off_time:
             Conversion:
               1:
                 factors    0.1,1,60,1000
                 type       float_configtime
                 value_size 1.6
               2:
                 type       integer_integer_map
                 Value_map:
                   device_value 49152
                   mask       49152
                   parameter_value 65535
             Logical:
               default    16383000
               max        982980
               min        0
               type       float
               unit       s
               Special_value:
                 id         not_used
                 value      16383000
             Physical:
               endian     little
               interface  eeprom
               size       2
               type       integer
               Address:
                 index      24
           Long_off_time_mode:
             Logical:
               type       option
               option:
                 HASH(0x32cd870)
                 HASH(0x32cd8b8)
             Physical:
               interface  eeprom
               size       0.1
               type       integer
               Address:
                 index      17.6
           Long_offdelay_time:
             Conversion:
               1:
                 factors    0.1,1,60,1000
                 type       float_configtime
                 value_size 1.6
               2:
                 type       integer_integer_map
                 Value_map:
                   device_value 49152
                   mask       49152
                   parameter_value 65535
             Logical:
               default    0
               max        982980
               min        0
               type       float
               unit       s
             Physical:
               endian     little
               interface  eeprom
               size       2
               type       integer
               Address:
                 index      22
           Long_on_time:
             Conversion:
               1:
                 factors    0.1,1,60,1000
                 type       float_configtime
                 value_size 1.6
               2:
                 type       integer_integer_map
                 Value_map:
                   device_value 49152
                   mask       49152
                   parameter_value 65535
             Logical:
               default    16383000
               max        982980
               min        0
               type       float
               unit       s
               Special_value:
                 id         not_used
                 value      16383000
             Physical:
               endian     little
               interface  eeprom
               size       2
               type       integer
               Address:
                 index      20
           Long_on_time_mode:
             Logical:
               type       option
               option:
                 HASH(0x32cfb88)
                 HASH(0x32cfbd0)
             Physical:
               interface  eeprom
               size       0.1
               type       integer
               Address:
                 index      17.7
           Long_ondelay_time:
             Conversion:
               1:
                 factors    0.1,1,60,1000
                 type       float_configtime
                 value_size 1.6
               2:
                 type       integer_integer_map
                 Value_map:
                   device_value 49152
                   mask       49152
                   parameter_value 65535
             Logical:
               default    0
               max        982980
               min        0
               type       float
               unit       s
             Physical:
               endian     little
               interface  eeprom
               size       2
               type       integer
               Address:
                 index      18
           Long_toggle_use:
             Conversion:
               type       option_integer
               Value_map:
                 1:
                   device_value 3
                   from_device 1
                   parameter_value 0
                   to_device  1
                 2:
                   device_value 2
                   from_device 1
                   parameter_value 1
                   to_device  1
                 3:
                   device_value 0
                   from_device 1
                   parameter_value 2
                   to_device  1
             Logical:
               type       option
               option:
                 HASH(0x32d00b0)
                 HASH(0x32d0110)
                 HASH(0x32d0158)
             Physical:
               interface  eeprom
               size       0.2
               type       integer
               Address:
                 index      17.4
           Sensor:
             hidden     1
             operations none
             Logical:
               type       address
             physical:
               HASH(0x32d0458)
               HASH(0x32d0530)
           Short_action_type:
             Logical:
               type       option
               option:
                 HASH(0x32d06b0)
                 HASH(0x32d06f8)
             Physical:
               interface  eeprom
               size       0.1
               type       integer
               Address:
                 index      6
           Short_jt_off:
             Logical:
               type       option
               option:
                 HASH(0x32d0950)
                 HASH(0x32d09b0)
                 HASH(0x32d09f8)
                 HASH(0x32d0a40)
                 HASH(0x32d1278)
             Physical:
               endian     little
               interface  eeprom
               read_size  2
               size       0.3
               type       integer
               Address:
                 index      15.9
           Short_jt_offdelay:
             Logical:
               type       option
               option:
                 HASH(0x32d1530)
                 HASH(0x32d1578)
                 HASH(0x32d15c0)
                 HASH(0x32d1608)
                 HASH(0x32d1668)
             Physical:
               endian     little
               interface  eeprom
               read_size  2
               size       0.3
               type       integer
               Address:
                 index      15.6
           Short_jt_on:
             Logical:
               type       option
               option:
                 HASH(0x32d1920)
                 HASH(0x32d1968)
                 HASH(0x32d19b0)
                 HASH(0x32d1a10)
                 HASH(0x32d1a58)
             Physical:
               endian     little
               interface  eeprom
               read_size  2
               size       0.3
               type       integer
               Address:
                 index      15.3
           Short_jt_ondelay:
             Logical:
               type       option
               option:
                 HASH(0x32d1d10)
                 HASH(0x32d1d58)
                 HASH(0x32d1db8)
                 HASH(0x32d1e00)
                 HASH(0x32d1e48)
             Physical:
               endian     little
               interface  eeprom
               read_size  2
               size       0.3
               type       integer
               Address:
                 index      15
           Short_off_time:
             Conversion:
               1:
                 factors    0.1,1,60,1000
                 type       float_configtime
                 value_size 1.6
               2:
                 type       integer_integer_map
                 Value_map:
                   device_value 49152
                   mask       49152
                   parameter_value 65535
             Logical:
               default    16383000
               max        982980
               min        0
               type       float
               unit       s
               Special_value:
                 id         not_used
                 value      16383000
             Physical:
               endian     little
               interface  eeprom
               size       2
               type       integer
               Address:
                 index      13
           Short_off_time_mode:
             Logical:
               type       option
               option:
                 HASH(0x32d4170)
                 HASH(0x32d41b8)
             Physical:
               interface  eeprom
               size       0.1
               type       integer
               Address:
                 index      6.6
           Short_offdelay_time:
             Conversion:
               1:
                 factors    0.1,1,60,1000
                 type       float_configtime
                 value_size 1.6
               2:
                 type       integer_integer_map
                 Value_map:
                   device_value 49152
                   mask       49152
                   parameter_value 65535
             Logical:
               default    0
               max        982980
               min        0
               type       float
               unit       s
             Physical:
               endian     little
               interface  eeprom
               size       2
               type       integer
               Address:
                 index      11
           Short_on_time:
             Conversion:
               1:
                 factors    0.1,1,60,1000
                 type       float_configtime
                 value_size 1.6
               2:
                 type       integer_integer_map
                 Value_map:
                   device_value 49152
                   mask       49152
                   parameter_value 65535
             Logical:
               default    16383000
               max        982980
               min        0
               type       float
               unit       s
               Special_value:
                 id         not_used
                 value      16383000
             Physical:
               endian     little
               interface  eeprom
               size       2
               type       integer
               Address:
                 index      9
           Short_on_time_mode:
             Logical:
               type       option
               option:
                 HASH(0x32d5460)
                 HASH(0x32d54a8)
             Physical:
               interface  eeprom
               size       0.1
               type       integer
               Address:
                 index      6.7
           Short_ondelay_time:
             Conversion:
               1:
                 factors    0.1,1,60,1000
                 type       float_configtime
                 value_size 1.6
               2:
                 type       integer_integer_map
                 Value_map:
                   device_value 49152
                   mask       49152
                   parameter_value 65535
             Logical:
               default    0
               max        982980
               min        0
               type       float
               unit       s
             Physical:
               endian     little
               interface  eeprom
               size       2
               type       integer
               Address:
                 index      7
           Short_toggle_use:
             Conversion:
               type       option_integer
               Value_map:
                 1:
                   device_value 3
                   from_device 1
                   parameter_value 0
                   to_device  1
                 2:
                   device_value 2
                   from_device 1
                   parameter_value 1
                   to_device  1
                 3:
                   device_value 0
                   from_device 1
                   parameter_value 2
                   to_device  1
             Logical:
               type       option
               option:
                 HASH(0x32d5988)
                 HASH(0x32d59e8)
                 HASH(0x32d5a30)
             Physical:
               interface  eeprom
               size       0.2
               type       integer
               Address:
                 index      6.4
           Ui_hint:
             Logical:
               default
               type       string
               use_default_on_failure 1
             Physical:
               id         ui_hint
               interface  store
               save_on_change 1
               type       string
     Peers:
       Sensors:
         0:
           Sensor:
             channel    255
Attributes:
   IODev      RS485_Bus
   firmwareVersion 3.06
   model      HMW_IO_12_Sw7_DR
   room       HM485
   serialNr   MEQ1769873


Zunächst hab ich crc Fehler gehabt. Nachdem ich meine 150 Ohm als Abschlusswiderstand auf die Klemmen von 12/7 geklemmt hab, war alles gut und alles quasi sofort da. Ein Eingang reagiert leider nicht, vielleicht hat der was abbekommen. Ich resette mal, sonst komme ich auch ohne aus.

Also Zusammenfassung:

Leute, keine conrad Aufsteckkarter für RS485 verwenden, sondern wirklich nur die Empfehlung aus den Wiki Digitus.

Vielen Dank noch einmal und Grüße aus Hannover


Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Arno.Kahle am 21 Januar 2017, 19:36:13
Das Problem ist gelöst  8)  :D
Titel: Antw:Cannot create socket HM485d: Can't open server port at 2000: Address already in
Beitrag von: Thorsten Pferdekaemper am 24 Januar 2017, 17:23:31
Zitat von: Arno.Kahle am 21 Januar 2017, 15:40:00Nachdem ich meine 150 Ohm als Abschlusswiderstand auf die Klemmen von 12/7 geklemmt hab, war alles gut
Hi,
auch wenn das geklappt hat rate ich davon dringend ab! Vielleicht eher den so genannten Abschlusswiderstand von eq3 einbauen. Siehe auch meine kleine Abhandlung hier:
https://forum.fhem.de/index.php/topic,65493.0.html
Gruß,
   Thorsten