Neue 1-Wire-Module für Raspberry Pi u.a.

Begonnen von Dr. Boris Neubert, 23 Dezember 2012, 17:26:08

Vorheriges Thema - Nächstes Thema

MarkusN

Hallo Ralf,

du benötigst für die Verbindung mit FHEM nur die Komponente "owserver" von OWFS. Alle anderen, also owhttp usw werden nicht gebraucht. Jetzt ist die Frage welchen Port owserver bei dir nutzt. Mit dem Befehl "sudo netstat -tulpn" kannst du das recht einfach herausfinden, bei mir sieht die Ausgabe so aus:

tcp        0      0 0.0.0.0:[u]45678[/u]           0.0.0.0:*               LISTEN      15534/owserver

Bei mir läuft owserver auf Port 45678, also sieht die definition in fhem folgendermassen aus:

define owserver OWServer localhost:45678

Vielleicht hilft dir das weiter.

Grüße,

Markus

UweH

Hallo Boris,

bei mir sieht das so aus:

dpkg -l '*owserver*'
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Enpackt/halb konFiguriert/
       Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name                  Version         Architektur     Beschreibung
+++-=====================-===============-===============-================================================
ii  owserver              2.8p15-1        armhf           Backend server for 1-Wire control

Was sagt mir das? Alles ok oder kaputt? Werd daraus nicht schlau... :(
Mein owserver wird definitiv gestartet, sehe ich auch beim Booten des Raspi, ich kann aber mit i2cdetect keine angeschlossenen Devices erkennen. Einmal hat bisher das Auslesen der Devices über den http-zugriff geklappt, seitdem werden aber diese beiden Devices auch angezeigt, wenn ich sie vom Bus trenne...
Ich hab jetzt mal testweise zwei DS18B20, zwei DS2413, einen DS2450 und einen LCD-Controller dran...wird nichts erkannt.

Gruß
Uwe

dougie


Danke dir Markus,

ja, ich glaube das hilft.  Ein "sudo netstat -tulpn" sagt bei mir

1930/owserver
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN  

Und da ich meinen OWServer mit Port 4304 definiert habe, kann da wohl auch nichts kommen.

Das brächte mich dann zu der Frage, wie ich die Komponenten owhttpd und owftpd wieder deaktiviere (obwohl es mich schon interessiert hätte, was bei mir schief läuft), und wo ich den Port des owservers definieren kann?


VG
Ralf


Zitat von: Markus Niemann schrieb am Do, 03 Januar 2013 10:22Hallo Ralf,

du benötigst für die Verbindung mit FHEM nur die Komponente "owserver" von OWFS. Alle anderen, also owhttp usw werden nicht gebraucht. Jetzt ist die Frage welchen Port owserver bei dir nutzt. Mit dem Befehl "sudo netstat -tulpn" kannst du das recht einfach herausfinden, bei mir sieht die Ausgabe so aus:

tcp        0      0 0.0.0.0:[u]45678[/u]           0.0.0.0:*               LISTEN      15534/owserver

Bei mir läuft owserver auf Port 45678, also sieht die definition in fhem folgendermassen aus:

define owserver OWServer localhost:45678

Vielleicht hilft dir das weiter.

Grüße,

Markus

dougie


Ahh, mist. Zeilenumbruch... hier die korrekte Zeile:

tcp        0      0 127.0.0.1:4304          0.0.0.0:*               LISTEN      1933/owserver

dougie

Und jetzt wird auch hier LICHT!!!! :D


(siehe Anhang / see attachement)



Ich hab die Ddefinition des OWservers in der fhem.cfg abgeändert, weil da war die IP vom RPi eingetragen.
Mit localhost funktioniert das sofort auf Anhieb!!

define OWServer OWServer localhost:4304
attr OWServer room OW_RPi
define OW_Temp_Test OWDevice 10.069C54020800 120


Saubere Sache!!

Boa, Boris, ... glaube damit machst du ne Menge Leute glücklich!! :-)

VG
Ralf

UweH

So weit war ich auch schon, nur wenn ich andere Devices anstöpsele, kommt das System offenbar aus dem Takt...

Was passiert, wenn Du einen anderen DS1820 ansteckst? Kannst Du mit "i2cdetect -y 1" auf der Konsole die Devices auslesen?

Gruß
Uwe

dougie


...weiss nicht ob ich die Frage beantworten kann ;-)

Ich hab gerade mal hinter mich gegriffen, und einen DS2413 gegriffen und angeklemmt, und das scheint er nicht zu mögen.


Hier die Response von meinem RPi:

pi@raspberrypi ~ $ 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: -- -- -- -- -- -- -- --

Es ist in der Tat so, das ich dann keine Antwort mehr bekomme. Auch nicht vom Temp-Sensor. Klemme ich den 2413 wieder ab, kommen auch wieder Temperaturen vom Sensor.
Die Antwort auf i2cdetect hat sich währenddessen nicht verändert.

VG
Ralf

UweH

Deckt sich mit meinen Erfahrungen. Du bekommst aber wenigstens auf i2cdetect eine Antwort. Das hat bei mir noch nie funktioniert. Einmal wurden zwei Devices erkannt und dann nie wieder. Als wenn die festgetackert in einer Datei eingefroren wären...

dougie


Da ich mit meiner geringen Erfahrung ja nicht genau weiss, was ich hier tue, nur noch der Hinweis:

Ich hab inzwischen die packages owftpd und owhttpd deinstalliert.

owfs liess sich nicht deinstallieren, weil es laut apt-get gar nicht installiert ist... hm....

Also hab ich das startscript aus init.d und mit update-rc.d entfernt. Seit dem läuft nur noch owserver. Hoffe das war richtig so; zumindest hab ich jetzt keine Fehlermeldungen mehr während des Systemstarts.


VG
Ralf

appi

Hallo
nun läuft bei mir das Modul (OWDevice)von Boris perfekt.
 
Frage: Wie kann ich die Kommastellen der Temp. Sensoren auf eine Stelle beschränken?

gruss und danke für dieses Super Modul.

Gruss
Remo

Dr. Boris Neubert

Zitat von: appi schrieb am Do, 03 Januar 2013 14:00Frage: Wie kann ich die Kommastellen der Temp. Sensoren auf eine Stelle beschränken?

Neu in diesem Theater dank Rudi (ab morgen im Update): Attribut stateFormat

Grüße
Boris

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

dougie

Nachtrag zu meinen Tests heute und Korrektur meiner obigen Angaben. ;)

Das Modul von Boris funktioniert auch mit mehreren Temp Sensoren einwandfrei, und sogar ein DS2413 wird erkannt.
Hatte heute vormittag etwas falsch angeschlossen.

Nächster Schritt wäre dann die Ports des 2413 zu definieren?

Nochmals vielen Dank und sorry wegen der vielen Anfängerfragen.

VG
Ralf


(siehe Anhang / see attachement)

thoweiss

So jetzt habe ich auch mal was...

Ich habe einige 1-Wire-Komponenten definiert.

# Verbindung zum OWSERVER über die neuen Module von Boris Neubert
define myOWServer OWServer 192.168.178.2:3030

#1-Wire Gerätedefinitionen
define temp_wohnzimmer OWDevice 28.5AC1DF000000 300
attr temp_wohnzimmer icon icoTempHausEG
attr temp_wohnzimmer room Wohnzimmer

define temp_brauchwasser OWDevice 10.4B0AE5000800 300
attr temp_brauchwasser icon icoTempWasser
attr temp_brauchwasser room Heizung

define temp_mischer_vorlauf OWDevice 28.69BBDF000000 300
attr temp_mischer_vorlauf icon icoTempHeizung
attr temp_mischer_vorlauf room Heizung

define ds2423_zaehler_strom OWDevice 1D.601209000000 300

define ds2408_relais OWDevice 29.568E01000000 300

define ds2438_sensor_zisterne OWDevice 26.200776000000 300

define ds2405_schalter_lueftung_aus OWDevice 05.10062A000000 10



Die Abfrage der Sensoren funktioniert soweit, allerdings hat ein Sensor wohl Schizophrenie?


(siehe Anhang / see attachement)


Der Temperatursensor zeigt auch die readings vom DS2408???

Im log tauchen ständig solche Zeilen auf:
2013.01.04 06:10:32 3: ds2408_relais: reading PIO.7 did not return a value
2013.01.04 06:13:54 3: temp_wohnzimmer: reading temperature did not return a value
2013.01.04 06:13:54 3: temp_brauchwasser: reading temperature did not return a value
2013.01.04 06:13:54 3: temp_mischer_vorlauf: reading temperature did not return a value
2013.01.04 06:13:54 3: ds2408_relais: reading PIO.0 did not return a value



Im Anhang nochmal meine komplette fhem.cfg und ein Auszug aus den logs

Ist das ein Bug oder ein Feature?
Habe ich etwas falsch gemacht?

Die Module sind vom 2013.01.02

Danke und gruß,
Thorsten

dougie


Feedback: Seit dem Update heute Morgen wird der TempWert zwar einwandfrei ermittelt und gelogged, aber im Frontend nicht mehr angezeigt.
Das Attribut stateFormat habe ich nicht verwendet. :-)

VG
Ralf

Zitat von: Dr. Boris Neubert schrieb am Do, 03 Januar 2013 19:28
Zitat von: appi schrieb am Do, 03 Januar 2013 14:00Frage: Wie kann ich die Kommastellen der Temp. Sensoren auf eine Stelle beschränken?

Neu in diesem Theater dank Rudi (ab morgen im Update): Attribut stateFormat

Grüße
Boris


thoweiss

Ich habe jetzt mal ein update gemacht.

Die Meldugen aus dem log sind jetzt verschwunden.

Allerdings wird im State kein wert mehr angezeigt.
Und das mein Brauchwassertemperaturfühler immer noch meint er wäre ein DS2408 - hat sich auch nicht geändert...


Ich schaue mir das zuhause mal genauer an...