HomeMatic Wired - HMW-LAN-Gateway

Begonnen von Dirk, 02 September 2013, 21:38:44

Vorheriges Thema - Nächstes Thema

stephan-221

Klasse!
Danke fürs Aufschlauen!

Ich habe mir gerade die Anleitung durchgelesen. Ich habe leider keinen HM-LAN bzw. HM-LAN RS485 Adapter.
Die CCU wird sich wohl nicht von einem remote laufenden HM485d und RS485 Wandler steuern lassen.

Da muss ich wohl warten oder HW kaufen. Oder ich probiere das einfach erstmal mit der CCU auf meinem Ersatz RPI.
Am WE werd ich mal die Anleitung durchgehen...

Viele Grüße
Stephan

Dirk

#181
Zitat von: stephan-221 am 15 Mai 2014, 21:15:24
Die CCU wird sich wohl nicht von einem remote laufenden HM485d und RS485 Wandler steuern lassen.
Doch wird sie. Der HM485d verhält sich wie ein HMW-LAN. Du kannst den auch auf dem gleichen Raspberry Pi laufen lassen.
Du musst den HM485d allerdings als root laufen lassen und Localport 1000 benutzen
Als Schlüssel in der CCU gibst du 0 ein. Dann sollte es funktionieren.

Gruß
Dirk

stephan-221

#182
Hallo Dirk,

danke für den Hinweis. Ich habe meine CCU quasi am laufen.
Die SD-Card ist etwas zu klein, daher keine extra Partition etc.
Es werden ein paar Fehlermeldungen ausgespuckt, aber an sich läuft die RCU.

Leider klappt absolut kein "Geräte anlernen".
Ich habe dann zurückgeschwenkt auf den FHEM mit hm485d und auch über Kreuz beide Raspberries (RCU und FHEM) mit hm485d konfiguriert.

Problem liegt wohl an meinem HMW Element. Es lässt nicht nicht discovern. Beim Booten werden die Stati als Broadcast übermittelt.
Schalten über FHEM geht auch an den 6 dig. Ausgängen. Vielleicht habe ich doch wohl ein Montagsgerät erwischt.

a) Kann man in der rcu irgenwo manuell das Gerät hinzufügen?
     Ich will ja nur die Ports einmalig konfigurieren.
     Normale Kommunikation geht ja mit FHEM.

b) Die HMW Geräte kann man nicht irgendwie resetten?
     Alternativ die FW neu Flashen via ISP?

c)  Sind die Konfig Kommandos schon als  RAW Values bekannt?
     Dann könnte ich diese ja auch per FHEM übertragen.

edit:
Irgendwann nach etlichen Versuchen hat Discovery ja mal am FHEM geklappt, sonst wäre das Device dort nicht drin :-S


Viele Grüße
Stephan

stephan-221

Nach intensiver google und Forensuche bin ich auch die HMW485 Protokolldoku gestoßen und
konnte Punkt c) also lösen.  Daher sind die anderen Fragen quasi überflüssig.

Raw Kommandos für die Konfiguration der Ausgänge:

http://forum.fhem.de/index.php/topic,23884.0.html

Viele Grüße
Stephan

mago0211

Hallo zusammen,

ich habe eine Frage zu den Log Einträgen.
Es kommt alle 10 Sec zu den beiden Einträgen

2014.06.01 01:16:54 3: HM485_LAN: keepalive msgNo: 8
2014.06.01 01:16:54 3: HM485_LAN: Alive: (8) 3030


Das Problem ist desto älter das Monat wird desto größer wird das Logfile und dauert dann auch ewig bis es geöffnet ist.

Kann man die beiden Meldungen abstellen oder in eine anderes Logfile umleiten?

Gruß
Markus

gevoo

Hallo mango211,

probiers doch einfach mal mit
attr HM485_LAN verbose 2

Gruß gevoo

mago0211

Hallo gevoo,

nein leider hat das umstellen der verbose mode nichts gebracht.

Gruß
Markus

gevoo

Hallo mango0211,

dann hilft nur noch die brutale Methode:
- Öffne in einem Texteditor das Modul /FHEM/00_HM485_LAN.pm
- Scrolle bis zur Procedure sub HM485_LAN_Write($$;$)
- ändere dort den Quelltext durch einfügen eines Kommentarzeichens (#) in ca. Zeile 355 von

} elsif ($cmd == HM485::CMD_KEEPALIVE) {
  $sendData = pack('H*',sprintf('%02X%02X', $msgId, $cmd));
                 HM485::Util::logger($name, 3, 'keepalive msgNo: ' . $msgId);

in

} elsif ($cmd == HM485::CMD_KEEPALIVE) {
$sendData = pack('H*',sprintf('%02X%02X', $msgId, $cmd));
# HM485::Util::logger($name, 3, 'keepalive msgNo: ' . $msgId);

-damit ist Zeile eins verschwunden.

- gehe zur Procedure sub HM485_LAN_parseIncommingCommand($$)
- ändere dort den Quelltext durch Einfügen eines Kommentarzeichens in ca. Zeile 787 von
} elsif ($msgCmd == HM485::CMD_ALIVE) {
my $aliveStatus = substr($msgData, 0, 2);
HM485::Util::logger($name, 3, 'Alive: (' . $msgId . ') ' . uc(unpack ('H*', $msgData)));
if ($aliveStatus == '00') {

in
} elsif ($msgCmd == HM485::CMD_ALIVE) {
my $aliveStatus = substr($msgData, 0, 2);
# HM485::Util::logger($name, 3, 'Alive: (' . $msgId . ') ' . uc(unpack ('H*', $msgData)));
if ($aliveStatus == '00') {

-damit ist auch Zeile zwei verschwunden.

speichere die Datei ab und starte FHEM neu.

Grüße gevoo

mago0211

Hallo,

Danke für deine Antwort

scheint wohl echt die einzige Möglichkeit zu sein.
Ich werde es bei Gelegenheit testen und dann berichten.

Gruß
Markus

mago0211

Hallo gevoo,

mir ist gerade eingefallen  ::)...

Könnte man die beiden Messages auch in eine andere Logdatei umleiten? Also das ich mit eine Extra Logdatei anlege für diese 2 Meldungen?

Gruß
Markus

gevoo

Hallo mango0211,

dann müßtest Du die log- Procedure im Modul Util.pm durch Deine eigene ersetzen/ bzw. Deine eigene log- Procedure an der Stelle
HM485::Util::logger($name, 3, 'keepalive msgNo: ' . $msgId);
aufrufen. Die könnte dann in eine von Dir definierte Log- Datei schreiben.
Könntest Du in 99_MyUtils.pm hinterlegen. Dann ist sie immer verfügbar.

Gruß gevoo

mago0211

Hallo gevoo,

sorry für die etwas verspätete Antwort.

Deine Idee mit dem Logfile hat super geklappt hab zwar etwas gebraucht aber jetzt läuft das  ;D

Danke und Gruß
Markus

holzwurm83

Zitat von: gevoo am 23 März 2014, 08:37:17
Hallo,

habe das Modul von Dirk wieder etwas erweitert. Alles getestet für Rolloaktoren HMW_LC_Bl1_DR.
Es funktionieren jetzt beim Neustart von FHEM das automatische Initialisieren der Channels und auch die Ermittlung des aktuellen State.
Der Vorgang ist etwa nach 10s abgeschlossen.
Damit kann ich dann auch die StateIcons für das entsprechende Rollo in der *.cfg setzen:
# StateIcon der Channels setzen
define SetLevel at +00:01:00 {\
fhem( "attr WZRolloWest_03 devStateIcon level_[0-9]:shutter_closed level_1[0-9]:shutter_closed level_2[0-9]:shutter_7 level_3[0-9]:shutter_7 level_4[0-9]:shutter_6 level_5[0-9]:shutter_5 level_6[0-9]:shutter_4 level_7[0-9]:shutter_3 level_8[0-9]:shutter_2 level_9[0-9]:shutter_1 level_100:shutter_open");;\
}

Die Initialisierungssequenzen aus meinem vorigen Beitrag können mit dem neuen Modul in der fhem.cfg entfallen.
Die Datei 10_HM485.pm habe ich wieder angehängt.
Viel Spaß beim Testen.

Hallo gevoo,

ist das noch aktuell und kann so verwendet und definiert werden?
Muss ich dann die Definition für jede Device erstellen?
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

gevoo

Hallo Holzwurm63,

das ist noch aktuell. Die definition mußt du für jedes Device machen, für das du ein Icon verwenden willst.
Im Anhang nochmal die derzeit aktuellste Version für die alte Configversion.

Gruß gevoo

holzwurm83

Hallo gevoo,

Danke für dein Feedback. Da ich Jalousien habe und keine Rollos wäre es für mich interessant zu wissen ob eine Implementierung einer Lamellenschrägstellung geplant oder möglich ist.
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN