1Wire und GPIO4 (DS18S20 / DS2401)

Begonnen von code723, 17 August 2015, 12:31:12

Vorheriges Thema - Nächstes Thema

code723

Hallo an alle!
Beschäftige mich nun seit ein paar Tagen mit FHEM und habe als kleines Einstiegsprojekt mal versucht meine Ölheizung zu überwachen.
Da ich vom Heizraum bis zum Raspberry Pi nicht für jeden Sensor Kabel ziehen möchte, habe ich mich für 1Wire entschieden.
Zur Überwachung der Temperaturen verwende ich einige DS18S20 die ich folgendermaßen mit dem RPI verbunden habe:

(http://www.reuk.co.uk/OtherImages/connect-multiple-ds18b2-i2c-sensors-raspberry-pi.jpg)
Quelle: http://www.reuk.co.uk/OtherImages/connect-multiple-ds18b2-i2c-sensors-raspberry-pi.jpg

Softwaremäßig habe ich sie folgendermaßen in FHEM eingebunden:


define Vorlauf GPIO4 10-000802ddfad4
attr Vorlauf group Temperatur
attr Vorlauf model DS18S20
attr Vorlauf room GPIO-Devices, Heizraum


Das auslesen der Temperatursensoren funktioniert einwandfrei.

Nun wollte ich auch noch ein paar Schaltkontakte, denen ich mittels DS2401 1Wire Adressen zuweise in den Bus miteinbinden.
Wenn ich die DS2401 jedoch wie die DS18S20 einbinde, bekomme ich folgende Fehlermeldung:

GPIO4: device family 01 not supported

Hab dann mal die Datei 58_GPIO4.pm genauer unter die Lupe genommen und soweit ich das verstanden habe, kann man mit diesem Modul nur die FamilyCodes 10 und 28 einbinden.

Kann mir jemand von euch weiterhelfen, wie ich den DS2401 einbinden und auswerten kann? gibts dazu ein eigenes Modul oder gibts bereits ein modifiziertes 58_GPIO4.pm welches auch DS2401 kann?

Wäre euch für jede Hilfe sehr dankbar!

Wzut

Tipp : Forum Suche , Suchbegriff GPIO4 ...
Du bist nicht der erste der etwas anders an den GPIO4 Pin anschliesst als Temperatur Sensoren und wie alle anderen bereits vor dir wirst auch du einen richtigen Busmaster brauchen :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

code723

Danke für die Antwort.
Hilft mir aber leider nicht viel weiter.
Hätte ich über die Suchfunktion hier und in Google etwas gefunden, hätte ich mich nicht an das Forum gewendet.
Wie bereits geschrieben, bin ich noch neu im Umgang mit FHEM.
Daher fällt es mir auch ein bisschen schwer, nach den richtigen Begriffen zu suchen.
Busmaster ist ja schon mal ein gutes Stichwort.
Mag jetzt für die meisten hier etwas blöd klingen die Frage, aber was ist der Busmaster?
Handelt es sich dabei um Hardware oder ist es rein Software, die ich implementieren muss?

Ist es überhaupt möglich den DS2401 über GPIO4 in FHEM abzufragen?
Im Ordner /sys/bus/w1/devices/ scheint mir der DS2401 ja auf, sobald ich ihn verbinde.
Dann müsste es doch möglich sein, irgendwie per Software darauf zuzugreifen.
Wenn ja, hat vielleicht jemand ne Anleitung für mich?

reibuehl

Reiner.

code723

den Busmaster hab ich so wie im Wiki beschrieben angelegt. zugreifen kann ich trotzdem nur auf den DS18S20.
Beim DS2401 bekomme ich diese Fehlermeldung:

GPIO4: device family 01 not supported

Was meint Wzut mit: "richtigen Busmaster"?

Wzut

#5
Zitat von: code723 am 17 August 2015, 17:28:35
Was meint Wzut mit: "richtigen Busmaster"?

wie z.B hier http://fhemwiki.de/wiki/Interfaces_f%C3%BCr_1-Wire beschrieben bzw.
die Beeispile die  pah hier http://forum.fhem.de/index.php/topic,28447.msg320655.html#msg320655 aufgezählt hat.
Oder auch sehr gut, wenn wieder verfügbar : http://forum.fhem.de/index.php/topic,20923.0.html

Mit deinem GPIO Pin wirst du nicht weiter kommen, klar kannst du da jedes 1W Device anschliessen und der Kenrel Treiber w1-gpio wird auch brav alle Adresse erkennen und dir das passende Verzeichniss anlegen. Aber um diese Verzeichnisse mit Daten(Files)  zu füllen bedarf es weitere Kernel Module und da hast IMHO nur das  w1-therm und das ist auf DS18xxx beschränkt. Das FHEM GPIO4 Modul macht auch nichts anderes als die Daten von w1-therm aus den Files zu holen und anzuzeigen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Prof. Dr. Peter Henning

Stimmt, und der Verweis auf das Wiki ist das Entscheidende.

http://www.fhemwiki.de/wiki/FHEM_und_1-Wire
http://www.fhemwiki.de/wiki/Raspberry_Pi_und_1-Wire

Ein "richtiger Busmaster" ist ein dezidierter IC (=Hardware !), der das Bus-Timing und die Ansteuerung der 1-Wire Devices übernimmt. Und nicht dieses per Software nachbildet. Typisch DS2480B.

LG

pah

code723

Danke für eure Antworten. Jetzt ist mir einiges klarer geworden. Da werd ich wohl erst einkaufen müssen, bevor ich weiterbasteln kann  :)

eldrik

#8
Hi,

alternativ kann man auch die owfs GPIO Unterstützung nutzen, so entfällt z.B. die Nutzung des Fhem Moduls GPIO4 und man kann z.B. direkt auf die Fhem Module OWServer & OWDevice zurückgreifen, die 1Wire Geräteunterstützung ist hier größer.

Wen es interessiert:
Kompakte Beschreibung der GPIO Nutzung via owfs --w1 Kernelanbindung:
https://www.raspberrypi.org/forums/viewtopic.php?f=44&t=98772
http://owfs.org/uploads/owserver.1.html#toc12

Notwendiger Patch bei Nutzung von owfs (da sonst bei der Nutzung freezes auftreten), ich habe als Basis den Sourcecode der Version owfs2.8p21 genommen (mit der 2.9 Version gibt es "set" Probleme)
https://github.com/marcin1j/openwrt-packages/blob/develop/utils/owfs/patches/100-fix-netlink-w1-status-message-detection.patch

Beschreibung zum kompilieren und installieren (funktioniert auch unter Raspbian) (vorher den Patch einarbeiten) den CVS Part kann man sich beim manuellen herunterladen des owfs Sourcecodes sparen:
http://owfs.org/index.php?page=building-under-ubuntu

Fhem OWServer & OWDevice Module wie im Wiki beschrieben einrichten.

Ich habe, am Wochenende, aus der Not (derzeit keinen weiteren Busmaster bzw. direkte Verbindung zur Geschoss 1Wire Hauptbuslinie zur Hand) heraus, diese Kombination via Raspberry GPIO und Wlan, zum Laufen gebracht und mit den 10 angeschlossenen DS18B20 soweit keine Probleme, andere 1Wire Devices benötige ich dort nicht, könnte aber Testweise mal einen DS2408 anschließen dieser sollte ja auch per GPIO nutzbar sein.
Der Raspberry werkelt nun mit dem GPIO Kernelmodul und einer gestarteten owfs owserver Instanz, im Fussbodenheizungsverteiler, vor sich hin.
Die Daten frage ich Remote von der Fhem 1Wire Hauptinstanz via OWServer & OWDevice ab und übertrage diese per fhem2fhem, in Clonedummy Gerätetypen meiner Fhem Hauptinstanz.

Dies hat den weiteren Vorteil, dass sich so beim späteren Anschluss, an die Hauptbuslinie, die Gerätenamen nicht mehr geändert werden müssen (ich arbeite mit den OWDevice Autocreate Namen!), da auf den temporären Einsatz eines anderen Modules verzichtet werden konnte.


Greetz
Eldrik

Edi77

Hallo

Nutze auch die GPIO4 Unterstützung für 3x DS18B20, allerdings liefern 2 Sensoren nur 9Bit Temperaturwerte, also in 0,5C schritten.
Kann man das irgendwie auf 11 oder 12Bit umstellen?


Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D