Hallo Leute,
unabhängig von allen Fragen, die ich mit dem Pi4 hier schon mal angebracht habe gibt es ein ganz aktuelles Problem mit nur ähnlicher Hardware: Raspberry 2B, DS18B20 Sensoren. Heute (November 2024) geistern leider gefühlt 500 Anleitungen durch das Netz, wovon 490 alt/veraltet oder sonstwie unbrauchbar sind.
Also, geschafft habe ich es, Raspian und FHEM auf dem Pi2 zu installieren.
An einem Steckbrett (Breadboard) habe ich einen DS18B20 angekabelt.
Im Dateisystem des Pi wird mir der Sensor incl. realistischem Wert (Temperatur) angezeigt.
28-0000063713e2 power uevent w1_master_max_slave_count w1_master_pullup w1_master_slave_count w1_master_timeout_us
Also die Hardware läuft...
In FHEM (Webfenster) bekomme ich jedoch keine Werte angezeigt (Autocreate ist on).
Nach einige Suche bin ich auf https://wiki.fhem.de/wiki/RPI_1Wire gestoßen, mit Änderungsdatum vom Januar 2024 - das sollte also aktuell sein.
Unter "Voraussetzungen" steht "Mehr dazu .." und dort dann das ein Modul RPI_1Wire zur Verfügung steht.
Wo bekomme ich das Modul? (Eigentlich sollte das doch im FHEM Installationspaket enthalten sein, oder?)
Wo wird das installiert? In FHEM (vermutlich ja) und wie?
Warum verweist der Text wieder auf die vorherige Seite?
Für mich ist das extrem unübersichtlich! Und das, obwohl ich schon seit über 10 Jahren mit FHEM und 1Wire arbeite.
Also weiter auf https://wiki.fhem.de/wiki/RPI_1Wire: Da steht dann unter "Definition" eine define-Zeile. Offensichtlich eine FHEM-Befehlszeile. Aber wozu soll ich im define eine absolute Sensoradresse angeben, wenn ein Absatz später steht das der Bus dann per Autocreate gescant wird? Das widerspricht sich nach meinem Wissen. Und warum steht dann erst in der letzten Zeile das es nicht zwingend erforderlich ist einen Busmaster zu defenieren??? Also nochmal: Wie wird RPI_1Wire "aktiviert"? Ich bin extrem verwirrt.
Also, was muß ich jetzt in FHEM eintippen, damit die Sensorwerte (mit Umweg über ein Gerät per autocreate zu defenieren) angezeigt werden?
zum Beispiel so für die Definition des Busmasters in Fhem eingeben
define MeinOneWire RPI_1Wire BUSMASTER
und dann kannst du dort einen scan deines 1wbus machen
Die commandref ist immer dem Wiki vorzuziehen. sollte nach 10 Jahren fhem eigentlich selbstverständlich sein. Btw. Wenn dich das Wiki stört, kannst du es ja auf den neusten Stand bringen. (Bei mir hat es aber so, sehr gut funktioniert)
Definier den busmaster und nutze autocreate.
Zitat von: DasQ am 17 November 2024, 17:48:47Die commandref ist immer dem Wiki vorzuziehen. sollte nach 10 Jahren fhem eigentlich selbstverständlich sein. Btw. Wenn dich das Wiki stört, kannst du es ja auf den neusten Stand bringen. (Bei mir hat es aber so, sehr gut funktioniert)
Definier den busmaster und nutze autocreate.
RPI_1Wire
For German documentation see Wiki
Und er scheitert wohl an dieser Zeile
define <name> RPI_1Wire BUSMASTER|ff-xxxxxxxxxxxx|DHT11-<gpio>|DHT22-<gpio>
und das "| " lauter "oder" sein sollen
Ganz ehrlich?
Ich les die englische Anleitung in der commandref und es ist sofort klar ... im Wiki kann jeder rumeditieren und das ergebniss ist Verwirrung.
Kennt man allerdings fhem, (seit z.b. 10 Jahren) sollte man wissen das viele versucht haben es eindeutig zu dokumentieren, aber bis jetzt keiner geschafft hat.
Weil man es eben nicht jedem recht machen kann. Oder man den Denkfehler des anderen nicht sofort erkennt und die löffelfertige Antwort nicht geben kann.
Scheinbar haben wir zwei den Thread gleichzeitig erkannt und nahezu die selbe Antwort gegeben ... also der Teil der Community scheint zu funktionieren.
Jetzt müssen wir nur noch rausfinden, wie wir unsere Spitzfindigkeiten abgewöhnt bekommen.
Zitat von: LuckyDay am 17 November 2024, 17:59:35Und er scheitert wohl an dieser Zeile
Code Auswählen Erweitern
define <name> RPI_1Wire BUSMASTER|ff-xxxxxxxxxxxx|DHT11-<gpio>|DHT22-<gpio>
und das "| " lauter "oder" sein sollen
Auch. Aber eben das im Wiki einmal steht das "Busmaster" gebraucht wird und ein paar Zeilen tiefer das "Busmaster" optional ist.
Und: ... BUSMASTER|ff-xxxxxxxxxxxx|DHT11-<gpio>|DHT22-<gpio>. Wenn | für oder steht dann heißt es das BUSMASTER
oder eine absolute Adresse des Sensors benötigt wird. LuckyDay hat aber die Zeile in der Form benutzt
BUSMASTER muss sein, weitere Parameter sind optional.
Da stimmt was nicht... Ich werde den Vorschlag von LuckyDay mal ausprobieren. Wenn das klappt bedeutet es, das die Beschreibung im Wiki leicht fehlerhaft oder zumindest mißverständlich ist.
Zitat von: DasQ am 17 November 2024, 18:36:23Ich les die englische Anleitung in der commandref und es ist sofort klar
Das ist wirklich schön für dich - aber nicht jeder kommt mit Englisch so gut zurecht.
Naja aber bei dir scheitert es ja schon am deutschen verstehen.
Willste scannen (weil einfacher), brauchst den busmaster ... that easy it is😉
Wunderbar, der Vorschlag von LuckyDay funktioniert.
Darf ich noch eine Zusatzfrage stellen?
Wenn ich jetzt zusätzlich einen DHT11 auslesen möchte, muß ich dann einen zweiten Busmaster anlegen?
Einer am selben bus?
Nö dann reicht ein Master.
Zitat von: DasQ am 17 November 2024, 18:47:49Einer am selben bus?
Ja, das ist auch noch eine Frage. Früher hieß es das DS18B20 und DHT nicht an EINEM Bus funktionieren. Da ich genug GPIOs frei habe könnte ich den DHT11 auch auf einen anderen GPIO anschließen. Dann würde ich einen wohl einen 2. Busmaster benötigen.
Du gibst dir die Antwort selber.
Da ich selber nicht auf dem laufenden bin was den dht11 anbelangt, würd ich vorschlagen einfach versuchen und dann dich bitten, deine erkenntnis im wiki zu dokumentieren.
Nur wenn man selber mitmacht und Fehler beseitigt oder fallstricke aufdeckt wirds irgendwann mal so das es jeder auf Anhieb versteht.
Zitat von: Thomas24568 am 17 November 2024, 18:50:31Zitat von: DasQ am 17 November 2024, 18:47:49Einer am selben bus?
Ja, das ist auch noch eine Frage. Früher hieß es das DS18B20 und DHT nicht an EINEM Bus funktionieren. Da ich genug GPIOs frei habe könnte ich den DHT11 auch auf einen anderen GPIO anschließen. Dann würde ich einen wohl einen 2. Busmaster benötigen.
Einbindung von DHT11/DHT12 Sensoren
ZitatEine Anbindung über 1Wire (GPIO4) wie der Modulname suggerieren könnte ist nicht möglich.
lies den deutschen Teil im Wiki
ist doch vom gleichen Autor.
Zitat von: Thomas24568 am 17 November 2024, 18:39:26aber nicht jeder kommt mit Englisch so gut zurecht
ChatGPT ist in der Hinsicht wirklich Gold wert! Alternativ auch DeepL.
Zitat von: passibe am 17 November 2024, 19:42:31ChatGPT ist in der Hinsicht wirklich Gold wert! Alternativ auch DeepL.
Was für eine Hilfe soll ein Quasselprogramm ("Chat"), das auch noch Fakten erfindet, sein?
Zur Übersetzung beispielsweise...
Da braucht chatgpt nichts erfinden...
Gruß, Joachim
Probier es doch einfach mal aus.
Zum Beispiel kann es dir die englische Doku übersetzen und ggfs. auch Rückfragen beantworten:
ZitatRPI_1Wire
bietet eine Schnittstelle zu Geräten, die über die standardmäßige Raspberry-1-Wire-Schnittstelle (GPIO4) verbunden sind, und unterstützt folgende Geräte:
- Familie 0x10 (DS18S20): Temperatur
- Familie 0x12 (DS2406): Adressierbarer 2-Port-Schalter (ungetestet)
- Familie 0x19 (DS28E17): I2C-Bridge (nicht unterstützt)
- Familie 0x1c (DS28E04): EEPROM-Speicher (nicht unterstützt)
- Familie 0x1d (DS2423): Doppelzähler
- Familie 0x26 (DS2438): A/D-Wandler mit Temperaturunterstützung
- Familie 0x28 (DS18B20): Temperatur
- Familie 0x29 (DS2408): 8-Port-Schalter
- Familie 0x3a (DS2413): Adressierbarer 2-Port-Schalter
- Familie 0x3b (DS1825): Temperatur
- Familie 0x42 (DS28EA00): Temperatur
- DHT11/DHT22-Sensoren (adressierbar über GPIO): Temperatur, Luftfeuchtigkeit
Datenabfrage
Die Daten können blockierend (die Umwandlungszeit von Temperatursensoren kann FHEM für ca. 1 Sekunde blockieren), nicht blockierend oder mit einem gestaffelten Timer abgefragt werden (conv_time-Hack).
---
Definition
define <name> RPI_1Wire BUSMASTER|ff-xxxxxxxxxxxx|DHT11-<gpio>|DHT22-<gpio>
- BUSMASTER: Automatische Erstellung von Geräten beim Start oder durch den Befehl "scan". Ein BUSMASTER ist nicht erforderlich, es sei denn, Sie möchten Autoerstellung oder die Funktion therm_bulk_read nutzen.
- Die interne Leseoption devices listet alle Gerätekonfigurationen des BUSMASTERs.
- Bei mehreren w1_bus_master-Geräten können Sie "BUSMASTER-x" angeben, wobei "x" die Nummer des entsprechenden w1_bus_masterx im Sysfs ist. Standard ist "1".
- ff-xxxxxxxxxxxx: ID eines 1-Wire-Geräts (ff = Familie). Aktivieren Sie das 1-Wire-Interface über sudo raspi-config.
- DHT11|22-<gpio>: Definiert DHT11/DHT22-Sensoren (kein 1-Wire; erfordert je einen GPIO und ein zusätzliches Perl-Modul). Stellen Sie sicher, den Sensortyp korrekt anzugeben.
---
Befehle
set
- scan: Nur für BUSMASTER. Sucht nach neuen 1-Wire-Geräten und startet die automatische Erstellung.
- update: Erzwingt eine manuelle Aktualisierung der Gerätedaten.
- precision 9|10|11|12: Präzision der Temperaturumwandlung einstellen (nur für Temperatursensoren). Erfordert Linux Kernel 5.10+ und Schreibrechte für Sysfs. Niedrigere Präzision reduziert Umwandlungszeit.
- conv_time <Millisekunden>: Umwandlungszeit der Temperaturmessung einstellen.
- "Timer"-Modus möglich, um nicht blockierende Doppelmessungen zu unterstützen (siehe Details).
- therm_bulk_read on|off: Für BUSMASTER. Löst eine Massenmessung für alle Temperatursensoren aus.
- clear: Fehlerzähler zurücksetzen.
- pioa/piob/pio(0-7) on|off <Dauer>: Schaltet Ports von 2-Port- oder 8-Port-Schaltern ein/aus.
get
- udev: Anleitung zur Konfiguration von udev, um Sysfs-Dateien für den FHEM-Benutzer beschreibbar zu machen.
---
Attribute
- pollingInterval: Aktualisierungsintervall in Sekunden (Standard: 60).
- tempOffset/tempFactor: Korrekturfaktoren für Temperaturmessungen.
- mode: Modus der Datenabfrage (blocking, nonblocking, timer). Standard: nonblocking.
- faultvalues: Liste fehlerhafter Werte, die ignoriert werden sollen.
- decimals: Anzahl der Dezimalstellen für Temperaturanzeige (Standard: 3).
---
Readings
- failures: Anzahl fehlgeschlagener Messungen.
- failreason: Grund für den letzten Fehler (z. B. crc, no_data, open_device).
- temperature: Temperaturwert.
- counter.A/counter.B: Zählerstände (DS2423).
- vad/vdd: Spannungswerte (DS2438).
- pioa/piob/pio1-pio8: Schalterzustände.