HomeMatic USB Konfigurations-Adapter (HM-CFG-USB) in Fhem nutzen

Begonnen von mgernoth, 30 Mai 2013, 17:06:32

Vorheriges Thema - Nächstes Thema

docloy

Zitat von: der-Lolo am 02 April 2014, 00:54:20
hast du auch noch ein Stückchen weiter gelesen und ein update rc.d gemacht?

Das war wohl zu spät für mich. Danke für den Hint - läuft!
Nach dem ausführbar machen:
update-rc.d /etc/init.d/hmland defaults

Bezüglich möglicher Parameter für update-rc.d hat mir folgender Artikel weitergeholfen:
http://wiki.ubuntuusers.de/Dienste

Also nochmals vielen Dank der-Lolo!!!

Zitat von: betateilchen am 02 April 2014, 07:09:26
der hmland braucht kein eigenes Startskript, binde ihn einfach in das Startskript von fhem mit ein, das ist viel einfacher.

@betateilchen mal wirklich ganz blöde gefragt, wo müsste ich das einfügen, wenn nach folgender Anleitung vorgegangen bin:
http://www.meintechblog.de/2013/05/fhem-server-auf-dem-raspberry-pi-in-einer-stunde-einrichten/

sudo chmod -R a+w fhem && sudo usermod -a -G tty pi && sudo usermod -a -G tty fhem


Den durch diesen Codeschnipsel startet ja mein fhem automatisch. Zunächst mache ich mein fhem-Verzeichnis ausführbar und füge meine Benutzer pi und fhem der Gruppe tty zu. Danach startet fhem automatisch.
Nur wo müsste ich dann den Start von hmland einfügen?

mar

Hallo!

Ich habe HM-CFG-USB2 auf Omni-EMB- Bord mit OpenWrt am laufen.

Dwc_otg - hat im linux kernel einen Bug - Die Sicherheitsabfrage zur Bandbreite habe ich einfach entfernt und nun ging dann wenigstens hm-cfg-usb2 + usb-stick an dem Board. Im Moment stoppt hmland alle 12h seinen Dienst. Dann geht es nur mit reboot weiter. Das werde ich jetzt versuchen mit dem automatischen Neustart von hmland zu begegnen. Auch habe ich manchmal bis zu 900ms timings. Normalerweise liegt das unter 50 ms. Vielleicht werde ich noch einen anderen USB-Hub testen.


Edit: jetzt läuft es stabil - USB 1.0 durch kmod-usb-ohci gestartet und HM-CFG-USB2 allein am USB-Port angeschlossen.
Grüße,
mar

betateilchen

Zitat von: docloy am 02 April 2014, 07:20:48
@betateilchen mal wirklich ganz blöde gefragt, wo müsste ich das einfügen, wenn nach folgender Anleitung vorgegangen bin:

sorry, für diese abstruse Installationsanleitung kann (und will) ich Dir keinen Support leisten.

Aber ich zeige Dir gerne das Startskript, mit dem bei mir fhem gestartet wird:


#!/bin/sh
# description: Start or stop the fhem server
# Added by Alex Peuchert

### BEGIN INIT INFO
# Provides:             fhem.pl
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    FHEM server
### END INIT INFO

set -e
cd /opt/fhem
port=7072

case "$1" in
'start')
        echo "Starting fhem..."
        /opt/fhem_add/hmcfgusb/hmland -d -p 1234
        perl fhem.pl configDB
        RETVAL=$?
        ;;
'stop')
        echo "Stopping fhem..."
        perl fhem.pl $port "shutdown"
        RETVAL=$?
        pkill hmland
        ;;
'status')
        cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
        if [ "$cnt" -eq "0" ] ; then
                echo "fhem is not running"
        else
                echo "fhem is running"
        fi
        ;;
*)
        echo "Usage: $0 { start | stop | status }"
        RETVAL=1
        ;;
esac
exit $RETVAL
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

docloy

Danke für dein Startskript.
Allerdings wird bei mir FHEM aktuell automatisch gestartet. Auch nach längerem googeln weiß ich allerdings nicht wie.
So sieht der Prozess aus:

ps aux | grep fhem
root      2057 55.8  3.5  18744 16056 ?        S    14:47   0:07 perl fhem.pl fhem.cfg
pi        2080  0.0  0.1   3548   800 pts/1    S+   14:47   0:00 grep --color=auto fhem


Wenn ich den Prozess kille und hmland (wird aktuell mit /etc/init.d/hmland automatisch gestartet) zuvor stoppe und dein Skript (ist ausführbar) starte kommt folgende Fehlermeldung:

sudo /etc/init.d/fhem start
Starting fhem...
Daemon with PID 2430 started!
2014.04.05 14:59:44 1: Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at configDB.pm line 60.
BEGIN failed--compilation aborted at configDB.pm line 60.
Compilation failed in require at (eval 5) line 2.
BEGIN failed--compilation aborted at (eval 5) line 2.

Undefined subroutine &main::cfgDB_Init called at fhem.pl line 408.


Kann mir jemand erklären,
1. Wie bei mir FHEM automatisch gestartet wird?
2. Wieso das Skript von betateilchen bei mir nicht geht?

Möchte gerne umstellen, da ich den FHEM Daemon auch im laufenden Betrieb neu starten möchte.

PS Den Benutzer fhem gibt es bei mir nicht. Es wurde auch nicht das fhem5.5 deb-Paket verwendet, da ich hier im Forum gelesen habe, dass es besser ist direkt das gepackte Archiv zu nehmen. Ansonsten bin ich der oben geposteten Anleitung gefolgt:
http://www.meintechblog.de/2013/05/fhem-server-auf-dem-raspberry-pi-in-einer-stunde-einrichten/

PPS: Habe auch dort via Kommentar vor 3 Tagen nachgefragt. Wurde aber noch nicht freigegeben und auch nicht neu gestartet.



betateilchen

Du solltest Dein fhem im Startskript mit "perl fhem.pl fhem.cfg" starten anstatt mit "perl fhem.pl configDB" - zumindest solange, bis Du Dein fhem tatsächlich auf Datenbankbetrieb umgestellt hast.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

docloy

Au man, zeigt mal wieder wie sehr am Anfang ich stehe...  :o Vielen Dank für die sehr schnelle Antwort.
So habe das angepasst. Das (wie auch immer gestartet) FHEM getötet und HMLAND gestoppt. Dann war FHEM nicht erreichbar und konnte dann dein Skript erfolgreich ausführen.

Wenn ich das FHEM Skript automatisch starte geht das:

ps aux | grep fhem
root      1945 29.5  4.0  20868 17936 ?        S    15:14   0:08 perl fhem.pl fhem.cfg
root      1949  0.0  0.1   1696   560 ?        Ss   15:14   0:00 startpar -f -- fhem
pi        2097  0.0  0.1   3552   852 pts/0    S+   15:15   0:00 grep --color=auto fhem


Allerdings wenn ich es stoppe, läuft fhem ja nach wie vor weiter (wegen Prozess 1945). Wer weiß, wie dieser Prozess gestartet wird?

marc2

Moin !

Ich wollte meine beiden Sticks heute auch mal auf die aktuelle FW 0.967 bringen. Nachdem das gloreiche
HM-Kleinweich-Tool bei beiden Sticks versagt hat, habe ich flash-hmcfgusb bemüht. Der ältere der beiden
Sticks ließ sich problemlos flashen. Der neuere (derzeit noch auf 0.963) ziert sich.  Er wechselt kurz in
den Bootloader Modus (Led blinkt), um beim Starten des Flashvorganges sofort einen Rest hinzulegen.
Die FW wird nicht angerührt, sie bleibt auf 0.963 und der Stick funktioniert auch nach wie vor.

flash-hmcfgusb  steigt wie folgt aus:

Flashing 368 blocks: -Interrupt transfer not completed: Unknown error code 1 / 0x01!
closing device-connection due to error 5


Nein, auf dem Device läuft kein hmland oder hmsniff (bei älteren Stick hat es ja auch funktioniert). Hat jemand
mit dem gleichen FW-Stand (0.963) ein ähnliches Problem. Sonst müsste ich das Ding wohl einschicken  :(

Danke & Gruß, Marc

mgernoth

Zitat von: marc2 am 06 April 2014, 23:40:51
flash-hmcfgusb  steigt wie folgt aus:

Flashing 368 blocks: -Interrupt transfer not completed: Unknown error code 1 / 0x01!
closing device-connection due to error 5


Nein, auf dem Device läuft kein hmland oder hmsniff (bei älteren Stick hat es ja auch funktioniert). Hat jemand
mit dem gleichen FW-Stand (0.963) ein ähnliches Problem. Sonst müsste ich das Ding wohl einschicken  :(

Hmm, das ist komisch. Hast Du es auch mal auf einem anderen Rechner probiert, evtl. legt der Bootloader auf diesem Stick sehr großen Wert aufs Timing. Aber ansonsten habe ich auch keine Idee :-(

Gruß
  Michael

marc2

Hallo Michael,

ja, habe ich auf unterschiedlichen Rechner getestet. Immer das gleiche Ergebnis. Da sich mein
älterer Stick problemlos flashen ließ, gehe ich mal davon aus, das der zweite irgendeine Macke
hat und werde ihn einschicken.

Gruß, Marc

RicoT

Hallo zusammen...
Ich habe gestern meinen Homematic USB Adabter bekommen. Wollte den an einer Fritzbox 7170 mit Freetz benutzen. Finde aber weder hmland für die 7170 noch bekomme ich das mit dem Kompilieren hin.

Kann mir jemand weiter helfen?

RicoT

So, ich bin nun etwas weiter. Habe das mit dem Kompilieren doch hin bekommen. Glaube ich zumindest. Es sieht jedenfalls so aus als würde hmland auf der 7170 laufen.

Nun hänge ich an anderer Stelle Fest:

Ich setze den Pfad für die libs. Habe es mit

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/freetz (hab die libs beim Imagebau schon mit einbezogen)

und

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/var/media/ftp/uStor01/fhem/lib

probiert. Libs sind natürlich an enstsprechenden Stellen vorhanden.

Dann habe ich hmland mit ./hmland -D -p 1000 über Telnet gestartet. Port ist auch in der fhem.cfg angegeben.

Dann habe ich ein neues Telnet-Fenster geöffnet und FHEM gestartet. Nach einem Moment steht dann im ersten Fenster nur ".......: Client 127.0.0.1 connected!" Mehr passiert nicht in diesem Fenster.

Im FHEM-Log hab ich dann noch folgendes:

..............
2014.04.12 16:55:21 1: HMLAN_Parse: hmusb new condition timeout
2014.04.12 16:55:22 1: 127.0.0.1:1000 disconnected, waiting to reappear
2014.04.12 16:55:22 1: HMLAN_Parse: hmusb new condition disconnected
2014.04.12 16:55:22 1: 127.0.0.1:1000 reappeared (hmusb)
2014.04.12 16:55:22 1: HMLAN_Parse: hmusb new condition init
2014.04.12 16:55:51 1: HMLAN_Parse: hmusb new condition timeout
2014.04.12 16:55:51 1: 127.0.0.1:1000 disconnected, waiting to reappear
2014.04.12 16:55:51 1: HMLAN_Parse: hmusb new condition disconnected
2014.04.12 16:55:51 1: 127.0.0.1:1000 reappeared (hmusb)
2014.04.12 16:55:51 1: HMLAN_Parse: hmusb new condition init
2014.04.12 16:56:20 1: HMLAN_Parse: hmusb new condition timeout
2014.04.12 16:56:20 1: 127.0.0.1:1000 disconnected, waiting to reappear
2014.04.12 16:56:20 1: HMLAN_Parse: hmusb new condition disconnected
2014.04.12 16:56:20 1: 127.0.0.1:1000 reappeared (hmusb)
2014.04.12 16:56:20 1: HMLAN_Parse: hmusb new condition init
............

Der Status des hmland ist opened.

Hab ich vielleicht doch was beim Kompilieren falsch gemacht? Hier mal mein Makefile:



CFLAGS=-Os -pipe -march=4kc -Wa,--trap
LDLIBS=-lusb-1.0
CC=/home/rico/freetz-2.0/toolchain/build/mipsel_gcc-4.6.4_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc

HMLAN_OBJS=hmcfgusb.o hmland.o
HMSNIFF_OBJS=hmcfgusb.o hmsniff.o
FLASH_HMCFGUSB_OBJS=hmcfgusb.o firmware.o util.o flash-hmcfgusb.o
FLASH_OTA_OBJS=hmcfgusb.o culfw.o firmware.o util.o flash-ota.o

OBJS=$(HMLAN_OBJS) $(HMSNIFF_OBJS) $(FLASH_HMCFGUSB_OBJS) $(FLASH_OTA_OBJS)

all: hmland hmsniff flash-hmcfgusb flash-ota

DEPEND=$(OBJS:.o=.d)
-include $(DEPEND)

hmland: $(HMLAN_OBJS)

hmsniff: $(HMSNIFF_OBJS)

flash-hmcfgusb: $(FLASH_HMCFGUSB_OBJS)

flash-ota: $(FLASH_OTA_OBJS)

clean:
   rm -f $(HMLAN_OBJS) $(HMSNIFF_OBJS) $(FLASH_HMCFGUSB_OBJS) $(FLASH_OTA_OBJS) $(DEPEND) hmland hmsniff flash-hmcfgusb flash-ota

.PHONY: all clean

Oder liegt mein Fehler wo anders?

betateilchen

Probier mal den hmland auf port 1234 zu starten anstatt auf 1000.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

RicoT

Port auf 1234 hab ich jetzt probiert. Ergebnis ist leider genau das gleiche...

RicoT

#358
So... Ich weis nicht mehr weiter. Deshalb mal die Frage:

Wenn sich hmland ohne Fehlermeldung auf der Fritzbox starten lässt, war dann das kompilieren erfolgreich oder kann immer noch ein Fehler beim Kompilieren enthalten sein weshalb sich hmland nicht richtig funktioniert?

Ich möchte ja keine fertige Lösung (wobei ich aber zu einer fertigen hmland Datei für die 7170 auch nicht nein sagen würde  ;D ) aber ich würde es gerne eingrenzen. Im Moment weis ich nicht ob ich mich weiter mit dem Kompilieren oder eher mit der Fritzbox befassen sollte. Nur ein Schubbser in eine Richtung würde mir schon ausreichen...

Wer suchet der findet. Ich hab die EDIT gefunden  ;D
Ich hab meine hmland mal angehängt. Villeicht kann sie ja mal jemand auf seiner Fritzbox 7170 testen und mir bescheid geben. Würde mir auch schonmal weiter helfen.

ramonh2712

Hallo FHEM Community,

Ich habe nun schon seit Monaten Problemen mit meinem HM-CFG-USB2 Stick auf meiner Fritzbox 7390 und bekomm es einfach nicht in den Griff. Aus lauter Verzweifelung habe ich letztens sogar die Komplette Fritzbox frisch geflasht und alles von null wieder aufgebaut. Leider hat nichteinmal das mein Problem gelöst. Folgendes:

Nach dem Update der Fritzbox auf OS 06.03 bricht die Verbindung zwischen hmland und dem Stick nach ein paar Stunden fehlerfreier Arbeit ab. Um mein Problem aufzuzeigen hab ich mal die Fritzbox neu gestartet und abgewartet:

2014.03.15 14:02:16 1: Including fhem.cfg
2014.03.15 14:02:17 3: telnetPort: port 7072 opened
2014.03.15 14:02:19 3: WEB: port 8083 opened
2014.03.15 14:02:19 3: WEBphone: port 8084 opened
2014.03.15 14:02:19 3: WEBtablet: port 8085 opened
2014.03.15 14:02:19 2: eventTypes: loaded 48 events from ./log/eventTypes.txt
2014.03.15 14:02:20 1: HMLAN_Parse: hmusb new condition disconnected
2014.03.15 14:02:20 3: Opening hmusb device 127.0.0.1:4321
2014.03.15 14:02:20 3: hmusb device opened
2014.03.15 14:02:20 1: HMLAN_Parse: hmusb new condition init
2014.03.15 14:02:22 3: HTTPS: port 2712 opened
2014.03.15 14:02:22 1: Including ./log/fhem.save
2014.03.15 14:02:22 1: usb create starting
2014.03.15 14:02:23 1: usb create end
2014.03.15 14:02:23 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart fhem for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2014.03.15 14:02:23 0: Server started with 13 defined entities (version $Id: fhem.pl 5197 2014-03-10 21:07:30Z rudolfkoenig $, os linux, user fhem, pid 2255)
2014.03.15 14:02:23 1: HMLAN_Parse: hmusb new condition ok
2014.03.16 04:00:26 1: HMLAN_Parse: hmusb new condition timeout
2014.03.16 04:00:26 1: 127.0.0.1:4321 disconnected, waiting to reappear
2014.03.16 04:00:26 1: HMLAN_Parse: hmusb new condition disconnected
2014.03.16 04:00:31 1: 127.0.0.1:4321 reappeared (hmusb)
2014.03.16 04:00:31 1: HMLAN_Parse: hmusb new condition init
2014.03.16 04:01:00 1: HMLAN_Parse: hmusb new condition timeout
2014.03.16 04:01:00 1: 127.0.0.1:4321 disconnected, waiting to reappear
2014.03.16 04:01:00 1: HMLAN_Parse: hmusb new condition disconnected
2014.03.16 04:01:05 1: 127.0.0.1:4321 reappeared (hmusb)
2014.03.16 04:01:05 1: HMLAN_Parse: hmusb new condition init
2014.03.16 04:01:34 1: HMLAN_Parse: hmusb new condition timeout
2014.03.16 04:01:34 1: 127.0.0.1:4321 disconnected, waiting to reappear
2014.03.16 04:01:34 1: HMLAN_Parse: hmusb new condition disconnected
2014.03.16 04:01:39 1: 127.0.0.1:4321 reappeared (hmusb)
2014.03.16 04:01:39 1: HMLAN_Parse: hmusb new condition init


So gehts dann unendlich weiter... Erst nach einem Neustart der Fritzbox läuft FHEM wieder für einige Stunden.

Ich bin echt am Verzweifeln und weiß nicht mehr weiter! Hat jemand vielleicht eine Idee woran das liegen kann???