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

UweH

Die Geschichte mit der 5V-Einspeisung hab ich schon in Gebrauch, aber da treten (zumindest bei mir) Phänomene auf, die ich messtechnisch erst mal erfassen muss. Ich habe einen kleinen Zwischenstecker, der mir externe 12V und 5V auf den Bus schickt. Mit den 5V hab ich Probleme...ist aber ein anderes Thema...

AndiB

Hallo zusammen herzlichen Dank für dieses Modul.
Es löst bei mir die Problemem mit dem in OWX (noch) nicht unterstützten USB controller 9490R und das Problem, das mit OWFS keine Counter unterstützt werden.
Dafür schafft es ein neues .... es wird nichts mehr geloggt und die Temepraturen der Sensosren sind auf dem Stand von vor dem Update.

Aber schön der Reihe nach:

System : Ubuntu 12.04 LTS SP1 mit aktuellem FHEM ->Server started (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 2372 2012-12-28 10:52:16Z rudolfkoenig $, pid 890)

Definition in fhem.cfg:
define 1WireOWFS OWServer 127.0.0.1:4304

define Speicher3.unten OWDevice 2027A9020000 180
define Speicher3.oben OWDevice A7DBFF020000 180
....

define EG.Elternschlafzimmer OWDevice 4391BC030000 180
define Garage OWDevice B57ACC020000 180

define TotalHaus FileLog /var/tmp/HausTotalTemp-%Y.log  EG.Elternschlafzimmer:temperature|EG.Gang:temperature|EG.Kueche:temperature|EG.Kinderzimmer:temperature|EG.Gang:temperature|Garage:temperature|OG.Gang:temperature|OG.Grossmutter.Stube:temperature|OG.Kinderzimmer:temperature|Aussentemperatur:temperature|UG.Weinkeller:temperature|Test:temperature


ein list 1WireOWFS ergibt Internals:
   DEF        127.0.0.1:4304
   NAME       1WireOWFS
   NR         39
   STATE      Initialized
   TYPE       OWServer
   Fhem:
     protocol   127.0.0.1:4304
Attributes:


ein get 1WireOWFS devices ergibt 28.2027A9020000 DS18B20
28.0864BC030000 DS18B20
81.E0CC30000000 DS1420
28.BC44CC020000 DS18B20
28.B0E6A8020000 DS18B20
1D.02D50D000000 DS2423
28.9826A3020000 DS18B20
28.A65CCC020000 DS18B20
28.A4B7FF020000 DS18B20
28.BE87CC020000 DS18B20
28.F180CC020000 DS18B20
28.2206A3020000 DS18B20
28.EA0FA9020000 DS18B20
28.B57ACC020000 DS18B20
28.7A09A9020000 DS18B20
28.BD65CC020000 DS18B20
28.CECCFF020000 DS18B20
28.833DCC020000 DS18B20
28.4391BC030000 DS18B20
28.F10FA9020000 DS18B20
28.85F6A8020000 DS18B20
81.4D8130000000 DS1420
28.8D29A9020000 DS18B20
28.CDB5FF020000 DS18B20
28.5D23A9020000 DS18B20
28.A7DBFF020000 DS18B20
28.5706A3020000 DS18B20
81.0B3930000000 DS1420


wenn ich aber auf einen Temeperatursensor gehe steht dort immer noch der uralte Temeperaturwertvon vor mahr als einer Stunde.

DEF F10FA9020000 180
IODev 1WireOWFS
NAME Speicher1.oben
NR 49
STATE T: 59.5625 L: 10 H: 90 P: 1 A: 0 W: none
TYPE OWDevice

Readings present 1 2012-12-31 22:30:51
temperature 59.5625 (Celsius) 2012-12-31 22:30:51
temphigh 90 2012-12-31 22:30:51
templow 10 2012-12-31 22:30:51
warnings none 2012-12-31 22:30:51


Logs werden auch keine geschrieben (seit Umstellung). Vor Umstellung sah der log wie folgt aus ....

2012-12-31_22:30:52 Speicher1.oben tempraw: 59.5625
2012-12-31_22:30:53 Speicher1.unten tempraw: 51.2500
2012-12-31_22:30:54 Speicher.Vorlauf tempraw: 55.3125
2012-12-31_22:30:55 Speicher.Ruecklauf tempraw: 43.9375
2012-12-31_22:30:56 Heizung.Vorlauf tempraw: 51.4375
2012-12-31_22:30:58 Heizung.Ruecklauf tempraw: 46.1875
2012-12-31_22:30:59 Aussentemperatur tempraw: -0.5000
2012-12-31_22:31:00 Solar tempraw: 20.2500
2012-12-31_22:31:01 Boiler.unten tempraw: 39.9375
2012-12-31_22:31:02 Boiler.oben tempraw: 54.6250
2012-12-31_22:31:03 Heizkessel tempraw: 52.6250
2012-12-31_22:31:44 Speicher3.unten tempraw: 41.5000
2012-12-31_22:31:45 Speicher3.oben tempraw: 45.5000


vor dem Update arbeitetet ich mit OWFS und OWTEMP.

Rechner ist bereits mehrfach neu gestartet.

Jede Hilfe ist willkommen ->  Herzlichen Dank!

Gutes neues Jahr an alle!
Gruss Andi
 
FHEM 5.7 development auf Ubuntu 14.04 LTS auf intelnuc i3 installiert. ca.20x1Wire, Solarview, VantagPro2, KNX-EIB, S0 Stromzähler, etc

Reinerlein

Hi,

Frohes Neues :-)

Also bei mir habe ich bei der Definition den Family-Code noch davor, also z.B.:
define hwr_WTemp OWDevice 28.436C71040000 600

Bist du sicher, dass das vorher mal ging?

Grüße Reinerlein

eppi

Hallo zusammen
Ein gutes Neues Jahr an alle und herzlichen Dank für die neuen 1Wire Module!

Zu meiner Ausgangslage:

Ich betreibe OWFS auf einem Dockstar mit Debian Squeeze welcher 100% funktioniert (IP: 192.168.2.15).
FHEM ist auf einem ODROID-X mit Debian Wheezy am rennen seit 2 Monaten ohne Probleme (IP: 192.168.2.22)mit aktueller FHEM-SVN Version.

Wenn ich nun die neuen 1Wire Module am ODROID-X definiere, gehe ich wie folgt vor:
define OWFS OWServer 192.168.2.15:4304

Den Server finde ich dann in "Unsorted", mit Status Initialisiert. Nach einem "save" und anschliessendem "shutdown restart" ist mein Eintrag des OWFS kurz zu sehen, nach etwa 5 Sec ist er dann nicht mehr zu finden in der Weboberfläche.
Im Log (Verbose 3 & 4) habe ich keinen Eintrag der auf einen Fehler hindeutet gefunden.

Um sicherzustellen, dass mein OWFS auf dem Dockstar funktioniert, habe ich einen weiteren Dockstar mit Debian Squeeze (IP: 192.168.2.25) aufgesetzt und danach fhem.deb installiert. Den gleichen Eintrag define OWFS OWServer 192.168.2.15:4304 wieder definiert und "save", "shutdown restart" eingegeben und siehe da, FHEM zeigt den OWServer an. Ich konnte auch alle meine DS1820 anzeigen lassen mit get OWFS devices. Somit ist in meinen Augen bewiesen, dass OWFS funktioniert!

Das Problem ist somit auf meinem ODROID-X zu suchen. Um sicherzustellen, dass alle Module auf dem aktuellen Stand sind, habe ich am ODROID-X update force eingegben. Auch nach dem "shutdown restart" war alles unverändert: OWServer ist ein paar Sekunden zu sehen, danach weg.

Ich habe mit ODROID-X mit "apt-get update" und "apt-get upgrade" aktualisiert, keine Besserung. Die Perlversion ist This is perl 5, version 14, subversion 2 (v5.14.2).

Wer kann mir einen Tip geben wo ich suchen muss um den Fehler zu finden? Danke vielmals für die Hilfe.

Gruss Dani

appi

Hoi Dani
ich habe diesen Fehler auch gemerkt. Ursache auf meinem System das OWX Modul von Pah, welches deinen OWServer löscht.

OWX löschen.....

gruss und ein gutes neues Jahr.

Remo

AndiB

Genau das war der Fehler!!

Herzlichen Dank Reinerlein! -> die angezeigten Temperaturen waren die letzten Werte von OWTEMP (OWFS). Ich hatte die Gerätenamen nicht geändert. Jetzt funtioniert log und Grafik einwandfrei.

Das Modul macht Spass! Einfach, ohne grosse Abhängigkeiten, OWFS Kompatibel .... was will mann noch mehr :)
Als nächstes kommt der Zähler des Stromverbrauches dran ->  DS2423.

Gruss und nochmals Dank
Andi
FHEM 5.7 development auf Ubuntu 14.04 LTS auf intelnuc i3 installiert. ca.20x1Wire, Solarview, VantagPro2, KNX-EIB, S0 Stromzähler, etc

eppi

Hallo Remo
Ein gutes Neues Jahr!

Zitatich habe diesen Fehler auch gemerkt. Ursache auf meinem System das OWX Modul von Pah, welches deinen OWServer löscht.

OWX löschen.....
Genau das war es! :=)
Danke für den Tipp!

Gruss Dani

appi

Hallo

habe auf meinem FHEM 5.3 CVS heute Nachmittsg ein update gemacht. Nun funktioniert OWServer und OWDevices nicht mehr korrekt:
Es können keine Werte mehr gelesen werden.
Im Log steht:
2013.01.01 17:49:36 3: OW.Count.1: reading counters.A did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
2013.01.01 17:49:36 2: dummy set Verbrauch -141.694
2013.01.01 17:49:41 3: OW.SW.1: reading PIO.A did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
2013.01.01 17:49:41 3: OW.SW.1: reading PIO.B did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
2013.01.01 17:49:41 3: OW.temp3: reading temperature did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.

Jedoch funktiniert get myRemoteOWServer devices:


10.FBBC18020800    DS18S20 OW.temp2
10.C738A9010800    DS18S20 OW.temp1
28.F68D08040000    DS18B20 OW.temp3
81.5BDA2D000000     DS1420
1D.87860F000000     DS2423 OW.Count.1


Was kann das sein ?

Bin froh wenn es wieder läuft, habe alle OWX Modul abgelöst.

gruss
Remo

MarkusN

Hallo,

ich wollte nur mal kurz Danke sagen. Habe OWFS mit FHEM schon länger im Einsatz, allerdings nicht so elegant. OWX konnte ich nie nutzen da ich keinen kompatiblen Busmaster habe. Dass ich jetzt direkt in FHEM und ohne Umwege meine Switches bedienen kann ist schon sehr cool. Sobald mein Display läuft werde ich sicherlich auch die LCD-Integration nutzen.

Danke an alle die hier so tatkräftig mitgearbeitet haben!

dougie


Da bin ich aber platt!! Hab heute das erste mal seit vor Weihnachten wieder mal Zeit gehabt ins Forum zu schauen.
Ist ja unglaublich, was hier "mal eben so" auf die Beine gestellt wird. Danke dafür.

Musste aber erst mal etwas lesen und installieren.

Sachstand:
ich hab die Anleitung von Boris abgearbeitet und nach dieser Anleitung OWFS installiert.

http://wiki.temperatur.nu/index.php/OWFS_with_i2c_support_on_Raspberry_Pi_%28English_version%29


Das Gute: unter cat /mnt/1wire/10.F6877C010800/temperature
kann ich die Temperatur meines zur Zeit einzigen TempSensors abrufen.
Nur mit fhem hab ich noch meine Probleme.

Weder liefert mir ein "get OWServer devices" eine Antwort, noch sieht man die Temperatur des manuell angelegten Devices.

Auch bei mit stehen dazu im log die o.g. Fehlermeldung aus der fhem.pl line 2961

Was mache ich noch falsch?

VG
Ralf

Dr. Boris Neubert

Zitat von: dougie schrieb am Di, 01 Januar 2013 18:53Was mache ich noch falsch?

Hast Du es mal mit http://neubert-volmar.de/Hausautomation/RaspberryPi/index.html abgeglichen?

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

UweH

Zitat von: Markus Niemann schrieb am Di, 01 Januar 2013 18:03Dass ich jetzt direkt in FHEM und ohne Umwege meine Switches bedienen kann ist schon sehr cool.

Moin,

das irritiert mich jetzt etwas...direkt hieße ohne Busmaster, aber die ersten Zeilen der Boris'schen Anleitung beziehen sich auf die Ankoppelung der 1-Wire-Devices über einen Busmaster mit dem DS2482-100.

Klär mich mal auf...

Danke und Gruß
Uwe

MarkusN

Hallo Uwe,

mit "direkt" meine ich ohne Umweg z.B. über Scripts. So hab ich es nämlich vorher gemacht. Natürlich habe ich einen Busmaster.

Grüße,

Markus

UweH

OK, Danke.
Ich saß hier mit großen Augen :o

Dr. Boris Neubert

Hallo Remo,

Zitat von: appi schrieb am Di, 01 Januar 2013 17:55Im Log steht:
2013.01.01 17:49:36 3: OW.Count.1: reading counters.A did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
2013.01.01 17:49:36 2: dummy set Verbrauch -141.694
2013.01.01 17:49:41 3: OW.SW.1: reading PIO.A did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
2013.01.01 17:49:41 3: OW.SW.1: reading PIO.B did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
2013.01.01 17:49:41 3: OW.temp3: reading temperature did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.

auch nach längerer Betrachtung des Codes fällt mir nicht ein, woran es liegen kann.

Kannst Du bitte mal in 11_OWDevice.pm eine Debug-Zeile wie unten markiert einfügen und das Ergebnis aus dem Log hier posten?


###################################
sub
OWDevice_ReadValue($$) {

        my ($hash,$reading)= @_;
       
        my $address= $hash->{fhem}{address};
        my $value= OWDevice_ReadFromServer($hash, "/$address/$reading");
        Debug "/$address/$reading => $value";  ##### DIESE ZEILE
        if(defined($value)) {
          $value= trim($value) if(AttrVal($hash,"trimvalues",1));
          my @getters= @{$hash->{fhem}{getters}};
          $hash->{STATE}= "$reading: $value" if($reading eq $getters[0]);
        } else {
          Log 3, $hash->{NAME} . ": reading $reading did not return a value";
        }
       
        return $value;
}


Was gibt Dein OWFS-HTTP-Server an Angaben zu den Geräten zurück (http://deinserver:2121)?

Wenn es am Code liegen sollte, komme ich vor dem nächsten Wochenende nicht mehr zu einem Fix. Bitte nimm in diesem Fall erst einmal die Module 10_OWServer.pm und 11_OWDevice.pm aus Deinem Backup.

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