FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: MarioS1969 am 27 Mai 2015, 23:07:18

Titel: [Gelöst] 1-wire auf 2. Raspberry läuft nicht
Beitrag von: MarioS1969 am 27 Mai 2015, 23:07:18
Hallo zusammen,
ich bekomme meine 1-wire Temperatursensoren einfach nicht zum laufen.

Ich habe einen Raspberry mit FHEM auf dem ich die Temperaturwerte darstellen möchte.
Dann habe ich einen 2. Raspberry (ohne FHEM) an dem ich über GPIO4 einen Temperatursensor DS18B20 angeschlossen habe.

Unter sys/bus/w1/devices/28-0000xxxxxx/w1_slave werde die Temperaturdaten abgelegt.
Das scheint schon mal zu funktionieren.

Jedoch scheint  owserver nicht zu laufen:
pi@OWPi ~ $ /etc/init.d/owserver status
[FAIL] owserver is not running ... failed!

Auch ein Restart von owserver bringt eine Fehlermeldung:
pi@OWPi ~ $ /etc/init.d/owserver restart
[FAIL] Restarting 1-Wire TCP Server: owserver failed!


Ich habe für 1-wire die folgenden Config Dateien geändert.

config.txt

dtoverlay=w1-gpio
# activating device tree debugging (use: sudo vcdbg log msg)
dtdebug=on


owfs.conf

!server: server = localhost:304
server: server = 192.xxx.xxx.xxx:3131
http: port = 2121
ftp: port = 2120
server: port = 192.xxx.xxx.xxx:4304


Ich denke es liegt an der owfs.conf.
Habe ich vergessen etwas zu definieren?
Kann mir jemand einen Tipp geben was ich tun muss, um 1-wire zum Laufen zu bringen?

Vielen Dank
Mario
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: ritchie am 28 Mai 2015, 09:04:42
Hi,

probiere es mal mit diesen Einstellungen

####################### OWHTTPD #########################
http: port = 2121
####################### OWFTPD ##########################
ftp: port = 2120
####################### OWSERVER ########################
server: port = localhost:4304


Gruss R.
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: klausw am 28 Mai 2015, 10:10:40
Zitat von: MarioS1969 am 27 Mai 2015, 23:07:18
Dann habe ich einen 2. Raspberry (ohne FHEM) an dem ich über GPIO4 einen Temperatursensor DS18B20 angeschlossen habe.

Unter sys/bus/w1/devices/28-0000xxxxxx/w1_slave werde die Temperaturdaten abgelegt.
Das scheint schon mal zu funktionieren.

Jedoch scheint  owserver nicht zu laufen:
pi@OWPi ~ $ /etc/init.d/owserver status
[FAIL] owserver is not running ... failed!
Wenn du am GPIO4 1wire Sensoren hängen hast läuft das nicht über OWFS.
Im contrib gibt es das Modul 58_GPIO4.pm. Einfach in FHEM Verzeichnis kopieren und mit
define RPi GPIO4 BUSMASTER definieren. Dann sollten die Temperatursensoren am GPIO4 automatisch gefunden werden.
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: suppenesser am 29 Mai 2015, 16:58:08
Das wird nicht gelingen da er kein fhem am 2. Raspberry hat!

....  per Handy gesendet!

Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: MarioS1969 am 29 Mai 2015, 22:06:16
Hallo Ritchie,
vielen Dank für deine Antwort.
Es hat leider nicht geholfen.

owserver scheint immer noch nicht zu laufen

pi@OWPi ~ $ /etc/init.d/owserver status
[FAIL] owserver is not running ... failed!


Hast du noch eine Idee?

Gruß
Mario
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: ritchie am 30 Mai 2015, 07:48:51
Hi,
es soll wohl einen w1 treiber fuer linux geben, welcher dem owfs als treiber zur Verfuegung steht.
Den muesst du suchen und ans rennen bekommen.
Vielleicht installierst Du einfach fhem auf dem2. Rpi und arbeitest dann mit fhem2fhem wie oben erklaert.
Manchmal ist die investition eines usb busmaster weniger nervenaufreiben und zielfuehrender.
Gruss R.

p.s.: ich habe eingeschraenkten internetzugriff
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: MarioS1969 am 06 Juli 2015, 23:28:16
Hallo Ritchie,
vielen Dank für deine Antwort.
kannst du einne usb busmaster empfehlen?

Gruß
Mario

Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: ritchie am 07 Juli 2015, 09:18:05
Hi,

ich verwende vier von diesen Hutschienen USB Buskoppler.

http://www.eservice-online.de/produkte/1-wire-bus/schnittstelle-stromversorgung-repeater/82/1-wire-buskoppler-usb?c=10
Es gibt bei diesem Anbieter noch weitere Buskoppler, da musst Du dann selber schauen, was Dir gefällt (auch der Preis ;-)  )

Es gibt aber noch weitere Anbieter, welche ebenfalls gute Module habe, dieser hier ist nur einer von vielen.

Viele Grüße

R.
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: Grave am 17 August 2015, 21:08:57
Hi ritchie,

könntest du mal deine owfs.conf hier einstellen. Bekomme meinen Buskoppler von eservice nicht mehr ans laufen. Hab die owfs.conf in Verdacht. Könnte aber auch sein, dass ich den Buskoppler geschrottet habe. Hab aus versehen falsches USB-Kabel eingesteckt. Hab das vom Netzteil vom Raspberry eingesteckt. War natürlich Saft drauf.

Gruß Grave
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: ritchie am 18 August 2015, 09:08:28
Hi,

kann ich gerne heute abend machen.

Wie sieht den Deine Datei derzeit aus ?

Eigentlich habe ich hier nur die Devices von USB0...3 angegeben.

ZitatHab das vom Netzteil vom Raspberry eingesteckt. War natürlich Saft drauf.

Primär oder sekundäre Seite des Netzteils ?
Die Teile sind eigentlich hart im nehmen.

Gruss R.
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: Prof. Dr. Peter Henning am 18 August 2015, 19:52:11
Meine Güte, liest hier eigentlich jemand die Forums- und Wiki-Einträge zum Thema 1-Wire ?

Es scheint echt einzureißen, dass jemand etwas ausprobiert, feststellt, dass es nicht funktioniert - und dann sofort einen Post darüber schreibt.

Siehe hier: http://forum.fhem.de/index.php/topic,28447.msg320655.html#msg320655

LG

pah
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: ritchie am 18 August 2015, 22:05:29
Hallo,

also meine Datei sieht so aus: Irgendwo habe ich das bereits auch schon mal gepostet,
aber wie bereits gesagt, man nicht immer auf alles eine Antwort geben..
Hätte der Tag nur 48 Stunden und ich müsste nicht arbeiten gehen  ;)

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: device = /dev/ttyUSB0
server: device = /dev/ttyUSB1
server: device = /dev/ttyUSB2
server: device = /dev/ttyUSB3
#
#
#
######################## OWHTTPD #########################
http: port = 2121
####################### OWFTPD ##########################
ftp: port = 2120
####################### OWSERVER ########################
server: port = 4304


Ich glaube aber nicht, das es daran liegt, den an dieser Konfiguration bin ich schon ewig nicht mehr gewesen.
Wieso sollte man hier auch was ändern.

Ich vemute mal wieder Hardware. Meistens eine Klemme nicht richtig verdrahtet oder einfach einen Schaltungsfehler.
Jedoch glaube ich nicht, das der Busmaster defekt ist (wenn er nicht 240V abbekommen  hat.

Einfach Tip: Spannungsmesser nehmen und die 5Volt nachmessen. Wenn die 5 Volt in Ordnung sind, kann man fast einen
Fehler der Hardware (defekt) ausschliessen. (In manchen Fällen gehen die Teile aber auch so hops, das die 5 Volt danach wieder o.k. sind,
ist aber eher selten.)

Dann den Bus wieder stückweise wieder in Betrieb nehmen.

Gruss R.
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: Grave am 19 August 2015, 07:25:02
Danke, so sieht meine config auch aus. Werden denn Buskoppler die Tage mal unter Windows anklemmen. Dort funktioniert er out of the box. Dann weiß ich mehr.
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: ritchie am 19 August 2015, 09:19:44
Hi,

hast Du den wenigstens einen Busteilnehmer an dem 1-wire Bus angeschlossen.
Sonst wird das nichts. Kannst ja auch mal nur das Fake Device einschalten, dann hättest Du
Deine Konfiguration getestet.

ZitatDort funktioniert er out of the box.
Das ist beim Raspberry PI eigentlich auch so.

Gruss R.
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: Grave am 19 August 2015, 19:51:06
Er funktioniert noch!!!
Scheinbar ist dann wohl doch in meiner neuen Verkablung der Wurm drin.
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: ritchie am 19 August 2015, 20:03:56
Hi,

meist will man das ja nicht glauben,
aber wenn Du das ganze in Ruhe angehst und nochmals einen "Schritt" nach hinten machst
und die Hardware zuerst nochmals prüfst, findet man im Fall des 1-wire fast immer einen Hardwarefehler.

Schau einfach hier (http://www.fhemwiki.de/wiki/1-Wire_St%C3%B6rungsbeseitigung) nochmals nach und prüfe auch die Error Counter.
Wenn diese zu schnell steigen ist ein Hardwarefehler vorhanden, obwohl es scheinbar läuft.

Eine gute Verdrahtung sorgt für einen stabilen Bus.

Gruss R.
Titel: Antw:1-wire auf 2. Raspberry läuft nicht
Beitrag von: MarioS1969 am 21 Oktober 2015, 21:26:35
Hallo,
mit FHEM2FHEM und Anschluss der 1-wire Sensoren über GPIO funktioniert es:

Code auf dem Haupt FHEM-Pi

define RemotePI FHEM2FHEM 192.168.220.136:7072 LOG:.* GEHEIM
define Warmwasser cloneDummy GPIO4_Warmwasser
define Gefriertruhe cloneDummy GPIO4_Gefriertruhe
define HWR cloneDummy GPIO4_HWR
define Heizung_VL cloneDummy GPIO4_Heizung_VL


Code auf dem Temperatur-Erfassungs FHEM-Pi

define telnetPort telnet 7072 global
attr telnetPort globalpassword GEHEIM

define RPi GPIO4 BUSMASTER

define GPIO4_Warmwasser GPIO4 28-000006780d0c
attr GPIO4_Warmwasser model DS18B20
attr GPIO4_Warmwasser room GPIO4
define FileLog_GPIO4_Warmwasser FileLog ./log/GPIO4_Warmwasser-%Y.log GPIO4_Warmwasser:T:.*
attr FileLog_GPIO4_Warmwasser logtype temp4:Temp,text
attr FileLog_GPIO4_Warmwasser room GPIO4

define GPIO4_Gefriertruhe GPIO4 28-000006785433
attr GPIO4_Gefriertruhe model DS18B20
attr GPIO4_Gefriertruhe room GPIO4
define FileLog_GPIO4_Gefriertruhe FileLog ./log/GPIO4_Gefriertruhe-%Y.log GPIO4_Gefriertruhe:T:.*
attr FileLog_GPIO4_Gefriertruhe logtype temp4:Temp,text
attr FileLog_GPIO4_Gefriertruhe room GPIO4

define GPIO4_HWR GPIO4 28-00000677444c
attr GPIO4_HWR model DS18B20
attr GPIO4_HWR room GPIO4
define FileLog_GPIO4_HWR FileLog ./log/GPIO4_HWR-%Y.log GPIO4_HWR:T:.*
attr FileLog_GPIO4_HWR logtype temp4:Temp,text
attr FileLog_GPIO4_HWR room GPIO4

define GPIO4_Heizung_VL GPIO4 28-0000067755fb
attr GPIO4_Heizung_VL model DS18B20
attr GPIO4_Heizung_VL room GPIO4
define FileLog_GPIO4_Heizung_VL FileLog ./log/GPIO4_Heizung_VL-%Y.log GPIO4_Heizung_VL:T:.*
attr FileLog_GPIO4_Heizung_VL logtype temp4:Temp,text
attr FileLog_GPIO4_Heizung_VL room GPIO4
Titel: Antw:[Gelöst] 1-wire auf 2. Raspberry läuft nicht
Beitrag von: MoBaFan am 27 März 2016, 16:31:00
Hallo zusammen,

ich habe mich auch mit dem Thema rumschlagen müssen, da ich fhem auf einem Raspi installiert habe, ich jedoch einen weiteren als "Repeater" benötigte. Und wenn man schon einen weiteren Raspi installiert, kann der sich auch gleich nützlich machen, indem er die Temperatur misst.
Der "Repeater" wird über die fhem Zentrale nur mittels ssh Kommando angesprochen, führt also nur ab und dann ein Script aus, um Befehle (FS 20, oder Rademacher Fernotron) zu wiederholen - also somit in einem anderen Teil des Gebäudes zu senden. Da hierfür keine große Rechenleistung erforderlich ist, habe ich mir den preiswertesten Raspi dafür ausgesucht.
Um den kleinen also nicht zu sehr zu strapazieren, habe ich nach einer einfacheren Möglichkeit gesucht, die Temperatur die dieser Repeater misst, in meiner Zentrale zur Verfügung zu stellen. Leider waren meine Ideen im Verzeichnis "/sys/devices/w1_bus_master1/" einen symbolischen Link anzulegen, oder etwa den "entfernten" Raspi mittels mount dort einzubinden, nicht erfolgreich, selbst als sudo hat man dazu keine Rechte.
Es kann aber ein cronjob eingerichtet werden, der die Datei 'w1_slave' etwa jede Minute auf ein Netzwerklaufwerk kopiert, in meinem Falle eine Fritzbox, die als mini-NAS herhält, um es von dort zum Beispiel mit fhem einzulesen.

Das wird mit folgenden Kommandos erreicht:

sudo nano /etc/crontab

Man fügt die folgende Zeile am Ende der Datei ein:

cp /sys/devices/w1_bus_master1/10-000802135931/w1_slave /mnt/Fritz/Temperaturen/10-000802135931/w1_slave

Natürlich sind die Verzeichnisnamen mit den entsprechenden Sensor-IDs zu ersetzen.
Hinweis:
Wenn man das gesamte Verzeichnis (im Beispiel: "10-000802135931") vorher kopiert hatte, kann es sein, dass der cp Befehl nicht ausgeführt wird, da die Berechtigungen nicht stimmen. Es empfiehlt sich dann einfach die Datei w1_slave auf der Fritzbox zu löschen.

In fhem wird "58_GPIO4.pm" gehackt um die Temperaturen von der Fritzbox im Verzeichnis "/mnt/Fritz/Temperaturen/" einzulesen. Dieses Verzeichnis muss alle Temperaturen enthalten, also die Verzeichnisse mit der Kennung der Sensoren welche sich auf den Raspberries im Verzeichnis "/sys/devices/w1_bus_master1/" befinden.

Der Hack besteht nur darin die Lage der Verzeichnisse mit den Messwerten zu verändern.
Folgende Modifikationen sind durchgeführt worden:

In GPIO4_GetSlaves:
Zeile
   open SLAVES, "/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves";
ist mit der Zeile
   open SLAVES, "/mnt/Fritz/Temperaturen/w1_master_slaves";
ersetzt worden.
In GPIO4_Get:
Zeile
   open DATA, "/sys/bus/w1/devices/$hash->{DEF}/w1_slave";
ist mit der Zeile
   open DATA, "/mnt/Fritz/Temperaturen/$hash->{DEF}/w1_slave";
ersetzt worden.

Zusätzlich zu den Messwerten muß sich auch die Datei ""w1_master_slave" auf der Fritzbox im Verzeichnis "/mnt/Fritz/Temperaturen/" befinden. Diese Datei muß dann natürlich
alle Sensor-IDs aufweisen, so dass das Script "58_GPIO4.pm" diese als Sensoren erkennen kann (pro Zeile die ID jedes einzelnen Sensors).

Beispiel:
10-000802135931
10-000800620b42

Alle Temperatursensoren werden dann "normal" in fhem angelegt, also etwa mit:

define EG_Balkon GPIO4 28-001451df14ff
attr EG_Balkon model DS18S20
attr EG_Balkon room Balkon
attr EG_Balkon group Temperaturen

Das funktioniert alles stabil und gut, aber eigentlich mag ich nicht fhem Standardscripte hacken, denn wenn die bei einem Update überschrieben werden, muß ich den Hack erneut durchführen. Da ich mich aber in fhem nicht gut genug auskenne, und in Perl auch nicht, ist mir nichts besseres eingefallen. Vielleicht hat da ja jemand eine besser Idee.