Probleme bei Startup des 1-wire Bus mit Raspberry PI

Begonnen von ritchie, 09 Juni 2013, 19:40:07

Vorheriges Thema - Nächstes Thema

ritchie

Hallo Zusammen,

irgendwie finde ich meinen Fehler nicht. Ich verwende die ROT von Busware und verwende hierbei die mittleren PINS des RJ11 Stecker für den 1-Wire Bus. GND und die 5V kommen direkt vom Netzteil, welches auch den RaspBerry PI versorgt.

Ich habe folgendes gemacht:

in der rc.local habe ich die folgenden Zeilen eingefügt:

# set up the i2c bus
modprobe i2c-dev
chmod o+rw /dev/i2c*
#
#  setting up the 1-wire bus
#
modprobe ds2482
echo ds2482 0x18 > /sys/bus/i2c/device/i2c-1/new_device
#
# setting up the hw clock (rtc)
#
modprobe rtc-ds1307
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
hwclock -s


Das Kommando "i2cdetect -y 1" zeigt Teilnehmer auf dem I2C Bus.

pi@fhem2 ~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Im Logfile sehen ich auch folgende Einträge

un  9 19:00:56 fhem2 kernel: [   12.144985] bcm2835 ALSA chip created!
Jun  9 19:00:56 fhem2 kernel: [   20.385555] smsc95xx 1-1.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
Jun  9 19:00:58 fhem2 kernel: [   26.764842] Adding 102396k swap on /var/swap.  Priority:-1 extents:1 across:102396k SS
Jun  9 19:01:03 fhem2 kernel: [   31.568167] i2c /dev entries driver
Jun  9 19:01:03 fhem2 kernel: [   31.646930] Driver for 1-wire Dallas network protocol.

Wenn ich in der "ows.conf"

# random simulated device
server: FAKE = DS18S20,DS2405

aktiviere, sehe ich unter FHEM nach der Eingabe "get myOWServer devices" beiden Slaves als Ausgabe.
Auch bei Aufruf der Webseite <IPAdresse>:2121  kann ich mir die simulierten Slaves ansehen.

Ändere ich aber die Zeile in der "ows.conf"

server: device = /dev/i2c-1

Bekomme ich vom Kommando "get ... devices" keine Rückmeldung und die Webseite <ID Adresse>:2121 ist auch nicht mehr
verfügbar.

Selbst wenn ich alle Teilnehmer vom Bus entferne, müsste ich ja eigentlich den Busmaster sehen.
Dies passiert aber auch nicht.

Kennst jemand diesen Effekt ?


Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

die zeile muss server: i2c=/dev/i2c-1 heissen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

Hallo Andre,

der Effekt ist der gleiche.
Hier die komplette Datei mit der neuen Änderung:


# Sample configuration file for the OWFS suite for Debian GNU/Linux.
#
#
# This is the main OWFS configuration file. You should read the
# owfs.conf(5) manual page in order to understand the options listed
# here.

######################## SOURCES ########################
#
# With this setup, any client (but owserver) uses owserver on the
# local machine...
! server: server = localhost:4304
#
# ...and owserver uses the real hardware, by default fake devices
# This part must be changed on real installation
#server: FAKE = DS18S20,DS2405
#
# USB device: DS9490
#server: usb = all
#
# Serial port: DS9097
server: i2c=/dev/i2c-1
#
# owserver tcp address
#server: server = 192.168.10.1:3131
#
# random simulated device
#server: FAKE = DS18S20,DS2405
#
######################### OWFS ##########################
#
#mountpoint = /mnt/1wire
#allow_other
#
####################### OWHTTPD #########################

http: port = 2121

####################### OWFTPD ##########################

ftp: port = 2120

####################### OWSERVER ########################

server: port = localhost:4304


Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

ich hab den "I2C auf 1Wire Interface mit DS2482-100" bus master hier aus dem forum im einsatz.

mein config file schaut im prinzip genau so aus wie deins. ich verwende aber kein ds2482 kernel modul und konfiguriere auch nichts weiter auf dem i2c bus.

bei mir wird neben dem i2c_dev noch das i2c_bcm2708 modul geladen. letzteren musst du aus /etc/modprobe.d/raspi-blacklist.conf auskommentieren.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

Hallo Andre,

diesen Eintrag hatte ich bereits remarkt, nur vergessen zu posten:

# blacklist spi and i2c by default (many users don't need them)

blacklist spi-bcm2708
#blacklist i2c-bcm2708

Das zeigt jedenfalls die Kontrolle der Einstellung.

In der rc.local habe ich diese Zeilen remarkt:

#modprobe ds2482
#echo ds2482 0x18 > /sys/bus/i2c/device/i2c-1/new_device

Sollten laut Busware für den 1-Wire Bus so verwendet werden für mein Board:

echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-0/new_device


Ich habe die Zeile aber testweise mal remarkt, ohne Erfolg.


/var/lg/syslog zeigt jetzt folgende Zeilen

un  9 21:34:17 fhem2 kernel: [   29.152055] i2c /dev entries driver
Jun  9 21:34:17 fhem2 kernel: [   29.242579] rtc-ds1307 1-0068: rtc core: registered ds1307 as rtc0
Jun  9 21:34:17 fhem2 kernel: [   29.242625] rtc-ds1307 1-0068: 56 bytes nvram
Jun  9 21:34:17 fhem2 kernel: [   29.242721] i2c i2c-1: new_device: Instantiated device ds1307 at 0x68
Jun  9 21:34:42 fhem2 dbus[1787]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper)
Jun  9 21:34:42 fhem2 dbus[1787]: [system] Activating service name='org.freedesktop.PolicyKit1' (using servicehelper)
Jun  9 21:34:42 fhem2 polkitd[2091]: started daemon version 0.105 using authority implementation `local' version `0.105'
Jun  9 21:34:42 fhem2 dbus[1787]: [system] Successfully activated service 'org.freedesktop.PolicyKit1'
Jun  9 21:34:42 fhem2 dbus[1787]: [system] Successfully activated service 'org.freedesktop.ConsoleKit'


Ansonsten ist das Verhalten zum 1-Wire Bus gleich. Keine devices.

Woher weiss den der OWS Server auf welcher Adresse der Busmaster auf den I2C Bus liegt ?

Edit:
Ich habe diese Zeilen in der rc.local geändert:


modprobe ds2482
echo ds2482 0x18 > /sys/class/i2c-adapter/i2c-1/new_device


Jetzt wird jedenfalls alle Bausteine korrekt erkannt und laut http://owfs.org/index.php?page=i2c-ds2482-100
muss der Eintrag in "/sys/class/i2c-adapter/i2c-1/new_device" erfolgen und nicht in "/sys/bus/i2c/devices/i2c-0/new_device".


Jun  9 21:44:50 fhem2 kernel: [   29.900835] i2c /dev entries driver
Jun  9 21:44:50 fhem2 kernel: [   29.976062] Driver for 1-wire Dallas network protocol.
Jun  9 21:44:50 fhem2 kernel: [   30.012548] i2c i2c-1: new_device: Instantiated device ds2482 at 0x18
Jun  9 21:44:50 fhem2 kernel: [   30.063921] rtc-ds1307 1-0068: rtc core: registered ds1307 as rtc0
Jun  9 21:44:50 fhem2 kernel: [   30.063964] rtc-ds1307 1-0068: 56 bytes nvram
Jun  9 21:44:50 fhem2 kernel: [   30.064056] i2c i2c-1: new_device: Instantiated device ds1307 at 0x68
Jun  9 21:45:32 fhem2 dbus[1799]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper)
Jun  9 21:45:32 fhem2 dbus[1799]: [system] Activating service name='org.freedesktop.PolicyKit1' (using servicehelper)
Jun  9 21:45:32 fhem2 polkitd[2096]: started daemon version 0.105 using authority implementation `local' version `0.105'
Jun  9 21:45:32 fhem2 dbus[1799]: [system] Successfully activated service 'org.freedesktop.PolicyKit1'
Jun  9 21:45:32 fhem2 dbus[1799]: [system] Successfully activated service 'org.freedesktop.ConsoleKit'


Wie sieht den bei Euch der Logfile an dieser Stelle aus ?
Seht Ihr den den Busmaster, wenn kein Teilnehmer angeschlossen ist.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

laut owfs web seite (http://owfs.org/index.php?page=i2c-ds2482-100) findet ofws die adresse automatisch. ich sehe gerade das da auch steht das das eventuell probleme mit anderen devices auf dem bus machen kann und man dann die adresse direkt angeben kann:server: i2c=/dev/i2c-1:0versuch doch das mal.

edit: den busmaster selber sieht man nicht.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

Hallo Andre,

ich habe es mit und ohne  "#modprobe ds2482" ausprobiert. Keinen Erfolg.

Was wäre den, wenn meine Hardware noch Fehler hat. Ich hatte diese 1-Wire Slaves noch nicht am rennen.

Würde ich dann eine Webseite unter der Portnr. :2121 sehen ?

Wie kann ich das ganze mit "unsicherer Hardware" prüfen.


server: i2c=/dev/i2c-1:0


Was bewirkt die :0 ?

Edit:
Das hier

--i2c=/dev/i2c-0:0  # Bus 0, Address 0 (0x18)


So sieht derzeit mein I2C Bus aus:

pi@fhem2 ~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                        
pi@fhem2 ~ $
pi@fhem2 ~ $
pi@fhem2 ~ $
pi@fhem2 ~ $ sudo hwclock -r
Sun 09 Jun 2013 22:12:10 CEST  -0.871782 seconds
pi


An der Adresse 0x68 steht jetzt "UU". Dort ist die RTC Uhr.

Gibt es einen Logfile von dem OWfS Server, wo ich evtl. den Fehler sehen würde ?

Ich habe derzeit testweise 2x "8 Ausgangsrelais" , 1 x "S0 Zähler" und eine Reed Kontakte von eService im Bus.


Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

ich kann dir leider nur beschränkt helfen da ich nicht exakt gleiche hardware habe.

wenn owserver startet siehst du die webseite. wenn owserver nicht startet oder beim starten abschmiert siehst du keine webseite. dann sollte auch kein owserver prozess mehr laufen.

auf meinem bus ist nur der ds2482:     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                        


was sagt denn lsmod ?

du kannst den owserver auch von hand auf der kommandozeile und mit --debug starten dann solltest du etwas mehr sehen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

Hallo Andre,

Deine Hilfe ist schon sehr gut. Immerhin habe ich jetzt schon ein paar Sachen herausgefunden.

Hier die Ausgabe:


pi@fhem2 /opt $ lsmod
Module                  Size  Used by
rtc_ds1307              7010  0
i2c_dev                 5620  0
snd_bcm2835            15846  0
snd_pcm                77560  1 snd_bcm2835
snd_seq                53329  0
snd_timer              19998  2 snd_pcm,snd_seq
snd_seq_device          6438  1 snd_seq
snd                    58447  5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
snd_page_alloc          5145  1 snd_pcm
leds_gpio               2235  0
led_class               3562  1 leds_gpio
i2c_bcm2708             3759  0
pi@fhem2 /opt $
pi@fhem2 /opt $
pi@fhem2 /opt $
pi@fhem2 /opt $ cd
pi@fhem2 ~ $
pi@fhem2 ~ $
pi@fhem2 ~ $ owserver --debug -p 4304 /dev/i2c-1
DEBUG MODE
libow version:
        2.8p15
^Cpi@fhem2 ~ $
pi@fhem2 ~ $
pi@fhem2 ~ $
pi@fhem2 ~ $
pi@fhem2 ~ $ owserver --debug -p 4304 /dev/i2c-1
DEBUG MODE
libow version:
        2.8p15


Bei der Eingabe von

pi@fhem2 ~ $ owserver --debug -p 4304 /dev/i2c-1:0

Wird das Programm sofort ohne Angaben beendet.

Hier nochmals


pi@fhem2 ~ $ sudo /etc/init.d/owserver stop
[ ok ] Stopping 1-Wire TCP Server: owserver.
pi@fhem2 ~ $
pi@fhem2 ~ $
pi@fhem2 ~ $ owserver --debug -p 4304 /dev/i2c-1:0
DEBUG MODE
libow version:
        2.8p15
pi@fhem2 ~ $ owserver --debug -p 4304 /dev/i2c-1
DEBUG MODE
libow version:
        2.8p15
^Cpi@fhem2 ~ $



pi@fhem2 ~ $ sudo /etc/init.d/owserver start
[ ok ] Starting 1-Wire TCP Server: owserver.


Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

ich kann es gerade nicht probieren aber ich glaube der aufruf muss so aussehen:owserver --debug -p 4304 --i2c=/dev/i2c-0:0 oder auch wieder ohne die ':0' und nur '--i2c' kannst du auch mal probieren. 'owserver --help=device' spuckt mehr über die optionen aus.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

Vielen Dank für Deine Hilfe, aber für heute ist Schluss. Ich habe mir die Option angesehen
udn hier habe ich noch einiges zu Prüfen.

Nochmals vielen Dank für die Hilfe.

Viele Grüße

R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

ritchie

So,

nach einigen Updates und neu konfiguieren bekomme ich jetzt meine Teilnehmer zu sehen.

OS auf den letzten Stand bringen

sudo apt-get update
sudo apt-get upgrade


Ich habe hierbei folgende Einstellungen verwendet:

owfs.conf

# configuration file for the OWFS suite for Debian GNU/Linux.
#
#
# This is the main OWFS configuration file. You should read the
# owfs.conf(5) manual page in order to understand the options listed
# here.
######################## SOURCES ########################
# With this setup, any client (but owserver) uses owserver on the
# local machine...
! server: server = localhost:4304
#
# ...and owserver uses the real hardware, by default fake devices
# This part must be changed on real installation
#server: FAKE = DS18S20,DS2405
#
# i2b bus 1 of rev. b of the raspberry
server: device = /dev/i2c-1
####################### OWHTTPD #########################
http: port = 2121
####################### OWFTPD ##########################
ftp: port = 2120
####################### OWSERVER ########################
server: port = localhost:4304

~


rc.local

#
# setting up the hw clock (rtc)
#
modprobe rtc-ds1307
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
hwclock -s


/etc/moduls die Zeile "i2c-dev" einfuegen  (via rc.local ist zu spät)

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
i2c-dev


Startbedingungen anpassen, owserver einfuegen. ntp habe ich bewusst nicht eingefügt.

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



Startreihenfolge neu sortieren lassen (danke an Helmut)

sudo update-rc.d fhem defaults


Wichtig Hinweis. Der Busmaster taucht nicht in der Liste von "get myowsserver devices" auf.
Hat man also keine Verbindung zu den Boards sieht man nichts!

Jetzt laeuft das System erstmal direkt nach dem Einschalten.

Gruss R.

IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv