Hallo Liste,
ich habe den oben genannten Controller bei eservice-online gekauft, im Netz integriert und nach der Anleitung http://www.fhemwiki.de/wiki/1W-IF-ETH konfiguriert.
Der Controller behält aber immer den state "failed".
Folgendes habe ich konfiguriert:
/opt/fhem/fhem.cfg:
define testcontroller OWX /dev/vmodem0
/etc/init.d/fhem:
'start')
/usr/bin/socat PTY,link=/dev/vmodem0,raw,echo=0,waitslave,setgid=1 TCP:x.y.z.8:23 &
sleep 2
chmod 666 `ls -la /dev/vmodem0 | sed 's/.*-> //'`
echo "Starting fhem..."
perl fhem.pl fhem.cfg
RETVAL=$?
;;
'stop')
echo "Stopping fhem..."
perl fhem.pl $port "shutdown"
RETVAL=$?
killall -15 socat
;;
Das Device hat auch die passenden Rechte:
ls -la /dev/vmodem0
lrwxrwxrwx 1 root root 10 Jul 19 09:33 /dev/vmodem0 -> /dev/pts/1
ls -la /dev/pts/1
crw-rw-rw- 1 root tty 136, 1 Jul 19 09:37 /dev/pts/1
Ich hänge noch die Screeshot des Konfigurators an.
Hat mir jemand einen Tip was ich falsch mache?
Tino
Versuch's mal mit der ursprünglichen Definition von pah:
socat -s PTY,link=/dev/vmodem0,raw,echo=0,waitslave TCP4:blabla:23 &
sleep 2
pty=`ls -l /dev/vmodem0 | grep -oE '[^ ]+$'`
chmod 666 $pty
sleep 1
echo "Starting fhem..."
$fhz $conf
pidof perl > /var/run/fhem.pid
pidof socat > var/run/socat.pid
RETVAL=$?
;;
'stop')
echo "Stopping fhem..."
$fhz $port "shutdown"
pid=`ps -eo fname,pid | grep socat | grep -oE '[^ ]+$'`
kill -9 $pid
RETVAL=$?
;;
Gruß
Uwe
Zitat von: UweH am 19 Juli 2015, 13:54:16
socat -s PTY,link=/dev/vmodem0,raw,echo=0,waitslave TCP4:blabla:23 &
...
pidof socat > var/run/socat.pid
...
pid=`ps -eo fname,pid | grep socat | grep -oE '[^ ]+$'`
kill -9 $pid
Bitte programmiert solche Skripte sauberer. Das geht so:
socat -s PTY,link=/dev/vmodem0,raw,echo=0,waitslave TCP4:blabla:23 &
echo $! > /var/run/socat.pid
...
if test -s /var/run/socat.pid ; then
read pid < /var/run/socat.pid
kill -9 $pid
rm -f /var/run/socat.pid
fi
Dito bei fhem.
"pidof" ist
immer eine schlechte Idee, "pidof perl" sowieso.
Wenn ich schon die PID speichere, sollte ich sie im Nachgang auch verwenden ...
EDIT: Statt des "ls ... grep"-Konstrukts gibt es
readlink.
Oha, das ist direkt von pah, ich hab's nur geklaut. Da bin ich mal auf seine Antwort gespannt...
Übrigens benutze ich socat seit OWX_ASYNC nicht mehr, da OWX_ASYNC die Verbindung selbst aufbaut (was pah in seinem OWX auch machen will...).
define 1wire OWX_ASYNC <IP>:23
Versuch's doch vielleicht mal damit.
Och, das sehe ich ganz locker, bei Shellskripten ist es wie beim Sex: Erlaubt ist, was gefällt ;D ;D
Allerdings empfehle ich smurfix etwas mehr Zurückhaltung, denn etwa 12.000 Fhem-User verwenden das mit Fhem ausgelieferte Startskript mit "pidof perl" und finden daran Gefallen. Und wenn mich nicht alles täuscht, habe ich die zitierten Zeilen darin für meinen Tipp einfach verdoppelt.
Verwendet habe ich das selbst nicht, weil bei mir die socat-Steuerung über watchdog lief.
Aber seit einem halben Jahr auch nicht mehr, socat habe ich ausgemustert. Die hier in diesem Thread http://forum.fhem.de/index.php/topic,37122.0.html gepostete Version ist zwar "beta", macht aber ihre TCP/IP-Verbindung ebenfalls selbst auf.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 20 Juli 2015, 04:01:05
etwa 12.000 Fhem-User verwenden das mit Fhem ausgelieferte Startskript mit "pidof perl" und finden daran Gefallen.
Was hat die Nutzerzahl damit zu tun, dass das ein Bug ist?
Sorry, wenn du dich da auf den Schlips getreten fühlst – aber ich bin der Meinung, dass wir den Forum-Usern langfristig keinen Gefallen tun, wenn solche Programmierfehler unwidersprochen stehen bleiben.
Diese Verwendung von "pidof perl" bringt nunmal sämtliche anderen Perl-Prozesse mit um, wenn FHEM gestoppt wird. Das ist in den seltensten Fällen Absicht.
NB: Dumme Frage am Rande: Wo finde ich dieses Skript eigentlich? im fhem.git-Repository jedenfalls nicht. (aktuelles SVN kann ich nicht nachsehen, sourceforge ist offline)
Erstens trage ich keine Krawatten, zweitens kannst Du das Geschwätz von wegen "Bug" sein lassen. Bugs sehen anders aus.
Dieses Fhem-Startskript wird seit Jahren mit dem Fhem Package ausgeliefert, frag Rudi König, von wem es stammt.
pah
Hallo,
ich habe jetzt mal die Sache mit socat rausgeworfen, und die drei Files 00_OWX.pm, 11_OWX_SER.pm, und 11_OWX_TCP.pm nach /opt/fhem/FHEM kopiert und das Device entsprechend angelegt: define testcontroller OWX x.y.z.8:23
Das Resultat war nicht wie gewünscht. Nach einem Start von fhem "/etc/init.d/fhem start" bekam ich fas nur Fehlermeldungen und meine sonstige Konfiguration war fast komplett weg. Ich hänge mal die Fehlermeldungen an. Ich glaube, ich werde erst mal einen Testraspi zusammennageln bevor ich weiter teste.
Tino
Zitat von: Prof. Dr. Peter Henning am 20 Juli 2015, 07:57:26
das Geschwätz von wegen "Bug"
Ach. "Ich stoppe FHEM und mein Backupsystem wird auch abgeschossen" ist also
kein Bug?
Wie nennst du sowas sonst?
Kein hypothetisches Problem übrigens.
backuppc ist in Perl geschrieben.
Wie ich das nenne, habe ich oben schon geschrieben.
Mach doch einfach einen neuen Tread irgendwo anders auf und schreibe dort hinein, dass alle Fhem-Installationen, die das unveränderte Startskript verwenden, einen "Bug haben":
pah
@Tino.Glatzel: Erstens stammen die Fehlermeldungen überwiegend nicht von OWX. Und zweitens bezweifele ich, dass das richtig installiert wurde - sonst wäre nicht in der letzten Zeile zu lesen, dass eine sehr wohl in OWX enthaltene subroutine nicht gefunden wird.
LG
pah
Hallo pah,
dass ich das falsch installiert habe, kann gut möglich sein. Wie ist denn der richtige Weg? Ich habe den fhem gestopt, die Dateien nach /opt/fhem/FHEM kopiert, die Rechte angepasst und den fhem wieder gestartet. Danach sah ich die Fehler. Als ich die originale Datei wieder eingbaut hatte, waren zumindest die Fehlermeldungen weg.
Tino
Hi,
Zitat
NB: Dumme Frage am Rande: Wo finde ich dieses Skript eigentlich? im fhem.git-Repository jedenfalls nicht. (aktuelles SVN kann ich nicht nachsehen, sourceforge ist offline)
Ich habe den Script damals hier her und diesen aber abgewandelt.
http://www.fhemwiki.de/wiki/Linux_Initscript
Hier wurde auch mal darüber geschrieben: http://forum.fhem.de/index.php?topic=9777.0
Viele Grüße
R.
Hallo,
ich habe jetzt mal ein Testsystem aufgebaut und einen neuen FHEM mit der aktuellsen Software installiert. Ich habe jetzt noch einmal die drei Dateien, 00_OWX.pm 11_OWX_SER.pm 11_OWX_TCP.pm, nach /opt/fhem/FHEM/ kopiert, die Rechte und die fhem.cfg angepasst. "define interface OWX x.y.z.254:23"
Wenn ich den FHEM starte, sehe ich folgendes im Log:
2015.07.23 20:27:16 0: Featurelevel: 5.6
2015.07.23 20:27:16 0: Server started with 10 defined entities (version $Id: fhem.pl 8952 2015-07-13 12:30:26Z rudolfkoenig $, os linux, user fhem, pid 7801)
Undefined subroutine &main::OWX_Read called at fhem.pl line 3041.
Um auf den Controller zugreifen zu können und die Ausgaben zu erkennen, musste ich die Übertragungsgeschwindigkeit von 9600 Bd auf 19200 Bd umstellen. Das hat sich zumindest von der bisherigen Anleitung unterschieden.
Bei einem Zugriff per Telnet auf den Controller sehe ich eine fortlaufende Ausgabe die alle 10 Sekunden neue Werte ausgibt:
1_EVT|20:35:02
1_OWD1_1|3004
1_OWD1_2|495
1_OWD1_3|495
1_OWD1_4|0
1_EVT|20:35:12
1_OWD1_1|3014
1_OWD1_2|495
1_OWD1_3|495
1_OWD1_4|0
1_EVT|20:35:22
1_KAL|1
1_EVT|20:35:22
1_OWD1_1|3015
1_OWD1_2|495
1_OWD1_3|495
1_OWD1_4|0
1_EVT|20:35:32
1_OWD1_1|3004
1_OWD1_2|495
1_OWD1_3|495
1_OWD1_4|0
Somit scheint der Controller zu funktionieren.
Hat mir jemand einen Tipp wie weiter komme?. Wie ich ja schon gelesen habe, gibt es einige die diesen Controller von eservice-online im Einsatz haben.
Tino
Hallo Tino,
bin gerade am selben Problem und komme nicht so recht weiter.
Konntest Du eine Lösung finden?
Gruß Martin
Hallo zusammen,
habe folgenden Hinweis ausprobiert:
Zitat von: UweH am 19 Juli 2015, 18:20:33
Übrigens benutze ich socat seit OWX_ASYNC nicht mehr, da OWX_ASYNC die Verbindung selbst aufbaut (was pah in seinem OWX auch machen will...).
define 1wire OWX_ASYNC <IP>:23
Versuch's doch vielleicht mal damit.
Damit erhalte ich:
2015.10.06 17:34:27 0: Server shutdown
2015.10.06 17:34:29 1: Including fhem.cfg
2015.10.06 17:34:29 3: telnetPort: port 7072 opened
2015.10.06 17:34:30 3: WEB: port 8083 opened
2015.10.06 17:34:30 3: WEBphone: port 8084 opened
2015.10.06 17:34:30 3: WEBtablet: port 8085 opened
2015.10.06 17:34:30 2: eventTypes: loaded 2 events from ./log/eventTypes.txt
2015.10.06 17:34:41 1: Including ./log/fhem.save
2015.10.06 17:34:41 3: Opening 1wire device 192.168.178.222:5000
2015.10.06 17:34:41 3: Can't connect to 192.168.178.222:5000: Connection refused
Via Hercules bzw. Putty erhalte ich regelmäßige Ausgaben des OneWire Controllers:
1_EVT|19:50:02
1_OWD1_1|0
1_OWD1_2|524
1_OWD1_3|53
1_OWD1_4|1220
1_OWD2|2031
1_OWD3_1|1905
1_OWD3_2|484
1_OWD3_3|6363
1_OWD3_4|62
1_OWD3_5|80319
Hat jemand einen Tipp?
Gruß Aquarius
Natürlich habe ich einen Tipp: IP-Adresse und Portnummer überprüfen, da die Verbindung zurückgewiesen wird.
Im Übrigen können wir weder den Inhalt der Konfigurationsdatei erraten, noch die Systemumgebung. :(
LG
pah
Hallo Herr Henning,
hat etwas gedauert - komme erst jetzt wieder dazu weiterzuforschen.
Meine Konfiguration:
- Raspi 2 B mit Raspian und FHEM - aktuellste FHEM Version (vor ca. 4 Wochen installiert)
- OneWire-Netzwerk mit Ethernetcontroller von E-Service (Typ: 11319)
- Onewire Hub (Typ: 11316)
- Luftgütesensor (Temp, Luftfeuchte, CO2) (Typ: 11127)
Inhalt fhem.cfg:
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global statefile ./log/fhem.save
attr global verbose 3
attr global updateInBackground
define telnetPort telnet 7072 global
define WEB FHEMWEB 8083 global
define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log
define eventTypes eventTypes ./log/eventTypes.txt
# Disable this to avoid looking for new USB devices on startup
#define initialUsbCheck notify global:INITIALIZED usb create
define 1wire_2 OWX_async 192.168.178.203:6
IP Adresse und Port habe ich überprüft und im E-Service Ethernet Controller mit den Optionen gespielt. TCP Server/TCP Client/TCP mixed. Mit und ohne DHCP. Verschiedene Ports im Controller und in fhem.cfg eingetragen
Immer das gleiche Ergebnis - FHEM versucht zuzugreifen, aber schafft es nicht:
2015.10.18 20:24:08 3: Opening 1wire_2 device 192.168.178.203:23
2015.10.18 20:24:08 3: Opening 1wire_2 device 192.168.178.203:23
2015.10.18 20:24:13 3: Opening 1wire_2 device 192.168.178.203:23
2015.10.18 20:24:14 3: Opening 1wire_2 device 192.168.178.203:23
2015.10.18 20:24:14 3: OWX_ASYNC_Disconnect
2015.10.18 20:24:14 1: Including fhem.cfg
2015.10.18 20:24:14 3: telnetPort: port 7072 opened
2015.10.18 20:24:14 3: WEB: port 8083 opened
2015.10.18 20:24:15 3: WEBphone: port 8084 opened
2015.10.18 20:24:15 3: WEBtablet: port 8085 opened
2015.10.18 20:24:15 2: eventTypes: loaded 2 events from ./log/eventTypes.txt
2015.10.18 20:24:15 1: Including ./log/fhem.save
2015.10.18 20:24:15 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:24:15 3: Can't connect to 192.168.178.203:6: Connection refused
2015.10.18 20:24:15 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:24:15 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:24:15 3: Opening 1wire_2 device 192.168.178.203:6
Erneuter Versuch bringt am Ende ein "Opened"!?
2015.10.18 20:31:18 3: Can't connect to 192.168.178.203:6: Connection refused
2015.10.18 20:31:23 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:31:28 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:31:33 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:31:38 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:31:41 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:31:46 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:31:51 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:31:56 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:32:01 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:32:06 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:32:11 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:32:16 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:32:21 3: Opening 1wire_2 device 192.168.178.203:6
2015.10.18 20:32:21 3: 1wire_2 device opened
Wenn ich den Controller vom Ethernet trenne kommen folgende Meldungen - daraus schließe ich, dass dieser doch (teilweise) erkannt wird:
2015.10.18 20:34:58 3: OWX_SER::Detect 1-Wire bus 1wire_2: interface not detected, answer was
2015.10.18 20:34:58 1: PERL WARNING: Use of uninitialized value $interface in string eq at ./FHEM/OWX_SER.pm line 288.
2015.10.18 20:34:58 1: PERL WARNING: Use of uninitialized value $interface in string eq at ./FHEM/OWX_SER.pm line 290.
2015.10.18 20:34:58 2: OWX: Error initializing 1wire_2: OWX_ASYNC_Init failed: OWX_SER::Detect 1-Wire bus 1wire_2: interface not detected, answer was
Bin völlig ratlos.
Gruß Aquarius
Hallo Herr Henning,
ist die Baudrate für OWX_ASYNC zwingend auf 9600 zu stellen in meinem OneWire 2 Ethernet Adapter?
Wenn ich dies mache kann ich via Terminalprogramm Hercules keine Ausgaben des Controllers mehr entziffern. Der Controller liefert nur für 19200 Baud klare Werte in Hercules:
Connecting to 192.168.178.203 ...
Connected to 192.168.178.203
1_EVT|18:02:46
1_KAL|1
1_EVT|18:02:47
1_OWD1_1|1
1_OWD1_2|4728
1_OWD1_3|1180
1_OWD1_4|4642
1_OWD2|1787
1_OWD3_1|1708
1_OWD3_2|487
1_OWD3_3|261
1_OWD3_4|93
Mit Baudrate 9600 erscheint:
Connecting to 192.168.178.203 ...
Connected to 192.168.178.203
d Àćå¤bdÂDód Àćå¤bd#€ƒ†bd#€£†¥DƒcdÅ,,...bd#€ƒ†...EƒcŤ¦bd# ƒ†...EƒceÅÄEƒcýõµ'd# ƒÆEó
Lässt sich die Baudrate in OWX_async einstellen?
Gruß Martin Knödler
Es könnte natürlich sein, dass der EService-Busmaster eine andere Baudrate erwartet.
In diesem Falle ist bei seriellen Schnittstellen in der Definition des Busmasters zu setzen <schnittstellenname>@19200.
Das sollte bei socat aber eigentlich egal sein ?
LG
pah
Herr Henning,
ich benutze ja jetzt OWX_async und habe das Socat beiseite geschoben(vielleicht sollte ich einen neuen Thread aufmachen!?)
Sie schreiben: "In diesem Falle ist bei seriellen Schnittstellen in der Definition des Busmasters zu setzen <schnittstellenname>@19200."
verstehe ich das richtig mit der Baudrate und dem Busmaster:
define 1wire_2 OWX_async 192.168.178.203:6@19200
Damit erhalte ich im Log:
2015.10.20 08:27:12 1: define 1wire_2 1wire_2 OWX_async 192.168.178.203:6@19200: OWX: Define failed, unable to identify interface type 192.168.178.203:6@19200
Gruß Aquarius
Hallo zusammen,
Irgendwie geht es bestimmt, aber ich habe aufgegeben :P
Habe mir Ip Symcon rausgelassen und auf meinem Windows pc installiert - vordefinierten Skript von eservice laufen lassen und voila die Onewiredaten werden erfasst.
Auf dem Raspi ist es noch nicht drauf , aber das kommt demnächst.
Gruß aquarius