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

appi

Hallo Boris

mit Debugzeile:
Subroutine OWDevice_Initialize redefined at /opt/fhem/FHEM/11_OWDevice.pm line 35.
Subroutine OWDevice_GetDetails redefined at /opt/fhem/FHEM/11_OWDevice.pm line 54.
Subroutine OWDevice_ReadFromServer redefined at /opt/fhem/FHEM/11_OWDevice.pm line 141.
Subroutine OWDevice_ReadValue redefined at /opt/fhem/FHEM/11_OWDevice.pm line 163.
Subroutine OWDevice_WriteValue redefined at /opt/fhem/FHEM/11_OWDevice.pm line 183.
Subroutine OWDevice_UpdateValues redefined at /opt/fhem/FHEM/11_OWDevice.pm line 194.
Subroutine OWDevice_Attr redefined at /opt/fhem/FHEM/11_OWDevice.pm line 216.
Subroutine OWDevice_Get redefined at /opt/fhem/FHEM/11_OWDevice.pm line 241.
Subroutine OWDevice_Set redefined at /opt/fhem/FHEM/11_OWDevice.pm line 260.
Subroutine OWDevice_Define redefined at /opt/fhem/FHEM/11_OWDevice.pm line 290.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:53:17 1: DEBUG>/10.C738A9010800/temperature =>
2013.01.01 19:53:17 3: OW.temp1: reading temperature did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:53:17 1: DEBUG>/10.FBBC18020800/temperature =>
2013.01.01 19:53:17 3: OW.temp2: reading temperature did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:53:17 1: DEBUG>/1D.87860F000000/counters.A =>
2013.01.01 19:53:17 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.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:53:17 1: DEBUG>/1D.87860F000000/counters.B =>
2013.01.01 19:53:17 3: OW.Count.1: reading counters.B did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:53:22 1: DEBUG>/1D.87860F000000/counters.A =>
2013.01.01 19:53:22 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 19:53:22 2: dummy set Verbrauch -141.694
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:54:06 1: DEBUG>/3A.E24E03000000/PIO.A =>
2013.01.01 19:54:06 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.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:54:06 1: DEBUG>/3A.E24E03000000/PIO.B =>
2013.01.01 19:54:06 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.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:54:06 1: DEBUG>/28.F68D08040000/temperature =>
2013.01.01 19:54:06 3: OW.temp3: reading temperature did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:54:06 1: DEBUG>/3A.E24E03000000/PIO.A =>
2013.01.01 19:54:06 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.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:54:06 1: DEBUG>/3A.E24E03000000/PIO.B =>
2013.01.01 19:54:06 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.
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:54:06 1: DEBUG>/28.F68D08040000/temperature =>
2013.01.01 19:54:06 3: OW.temp3: reading temperature did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.


qwtttpd liefert:
top   highest level   directory
10.FBBC18020800   10.FBBC18020800   directory
10.C738A9010800   10.C738A9010800   directory
28.F68D08040000   28.F68D08040000   directory
81.5BDA2D000000   81.5BDA2D000000   directory
1D.87860F000000   1D.87860F000000   directory
bus.0   bus.0   directory
uncached   uncached   directory
settings   settings   directory
system   system   directory
statistics   statistics   directory
structure   structure   directory
simultaneous   simultaneous   directory
alarm   alarm   director

Danke für deinen Support.

gruss Remo

ps: die Umrechnung mit Zähleroffset läuft:
OW.Count.1:counters.A.* { my $kg1 = ((ReadingsVal("OW.Count.1","counters.A","0"))-3490)*0.0406 ;; fhem "set Verbrauch $kg1"}

Dr. Boris Neubert

Zitat von: appi schrieb am Di, 01 Januar 2013 19:57
Use of uninitialized value $value in concatenation (.) or string at /opt/fhem/FHEM/11_OWDevice.pm line 169.
2013.01.01 19:53:17 1: DEBUG>/10.C738A9010800/temperature =>
2013.01.01 19:53:17 3: OW.temp1: reading temperature did not return a value
Use of uninitialized value $value in concatenation (.) or string at fhem.pl line 2961.


Hmm, wir sind so schlau als wie zuvor. OWDevice_ReadFromServer() liefert undef zurück. Daran ist aber seit der ersten Version nichts geändert worden. Kannst Du bitte mal fhem stoppen, den owserver neu starten, und dann fhem wieder starten?

Wenn das nicht hilft, dann bitte zurück aufs Backup und weiter am Wochenende.

ZitatOW.Count.1:counters.A.* { my $kg1 = ((ReadingsVal("OW.Count.1","counters.A","0"))-3490)*0.0406 ;; fhem "set Verbrauch $kg1"}

Früher oder später kommt noch was generisches à la

attr OW.Count.1 virtualReadings Verbrauch,(ReadingsVal("OW.Count.1","counters.A","0"))-3490)*0.0406


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

AndiB

Ich habe das Problem mit den "did not return a value" auch ...

Folgendes kann ich bei mir aber feststellen:

1: Wenn ich den FHEM Server neu starte sieht es wie folgt aus:2013.01.01 20:26:57 1: Including fhem.cfg
2013.01.01 20:26:57 3: telnetPort: port 7072 opened
2013.01.01 20:26:57 3: WEB: port 8083 opened
2013.01.01 20:26:57 3: WEBphone: port 8084 opened
2013.01.01 20:26:57 3: WEBtablet: port 8085 opened
2013.01.01 20:26:57 3: No I/O device found for Aussenlicht
2013.01.01 20:26:57 3: S0Stromzaehler: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: S0Stromzaehler: reading counters.A did not return a value
2013.01.01 20:26:57 3: S0Stromzaehler: reading counters.B did not return a value
2013.01.01 20:26:57 2: dummy set S0old 0
2013.01.01 20:26:57 2: dummy set S0dif 0
2013.01.01 20:26:57 3: Speicher3.unten: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: Speicher3.unten: reading temperature did not return a value
2013.01.01 20:26:57 3: Speicher3.oben: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: Speicher3.oben: reading temperature did not return a value
...
2013.01.01 20:26:57 3: Heizkessel: reading temperature did not return a value
2013.01.01 20:26:57 3: EG.Kueche: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: EG.Kueche: reading temperature did not return a value
2013.01.01 20:26:57 3: EG.Kinderzimmer: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: EG.Kinderzimmer: reading temperature did not return a value
2013.01.01 20:26:57 3: EG.Gang: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: EG.Gang: reading temperature did not return a value
2013.01.01 20:26:57 3: OG.Grossmutter.Stube: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: OG.Grossmutter.Stube: reading temperature did not return a value
2013.01.01 20:26:57 3: OG.Gang: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: OG.Gang: reading temperature did not return a value
2013.01.01 20:26:57 3: UG.Weinkeller: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: UG.Weinkeller: reading temperature did not return a value
2013.01.01 20:26:57 3: OG.Kinderzimmer: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: OG.Kinderzimmer: reading temperature did not return a value
2013.01.01 20:26:57 3: EG.Elternschlafzimmer: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: EG.Elternschlafzimmer: reading temperature did not return a value
2013.01.01 20:26:57 3: Garage: I/O device is 1WireOWFS
2013.01.01 20:26:57 3: Garage: reading temperature did not return a value
2013.01.01 20:26:59 2: Fronius100 will read from solarview at 192.168.0.1:15000 every 300 seconds
2013.01.01 20:26:59 1: Including ./log/fhem.save
2013.01.01 20:27:00 1: usb create starting
2013.01.01 20:27:00 3: Opening CUL device /dev/ttyACM0
2013.01.01 20:27:00 3: Can't open /dev/ttyACM0: Permission denied
2013.01.01 20:27:00 1: usb create end
2013.01.01 20:27:00 0: Server started (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 2372 2012-12-28 10:52:16Z rudolfkoenig $, pid 882)


Danach ist Ruhe und das der Swerver und 1 Wire läuft!

2: Wenn ich die fhem.cfg editiere und speichere, ist es meist (nicht immer!) so, dass die "not return a value" keine Ruhe geben und ich gezwungen bin den Server neu zu starten dann folgt 1:

Mehr jkann ich dazu auch nicht sagen ....
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

dougie



Das Problem ist, wenn man (noch) mehr als einen Fehler hat. Wie ich zum Beispiel. ;-)

Nochmal etwas mehr Info von meinem Setup:

Ich verwende meinen RPi mit COC Modul. Dort hängt der DS2482 ja eigentlich auch nur am i2c Bus.
Ich muss dazu sagen, das ich wirklich kein Linus Profi bin, sondern noch ziemlich am Anfang stehe, aber ich hab's hin bekommen OWFS zu kompilieren und zu installieren (ein apt-get install OWFS hatte zwar funktioniert, aber der http und ftp deamon meldete ein FAIL beim Systemstart, also hab ich das wieder removed und das ganze Paket installiert und kompiliert).

Problem: der http und ftp deamon startet immer noch nicht.

Wo kann ich denn nachsehen, woran das liegen könnte??

Was OWFS an sich angeht, so scheint es ja prinzipiell zu laufen, da mein TempSensor ja angelegt wurde, und die Temperaturen in /mnt/1wire vorhanden sind.

Aber ich denke das mein Fehler mit dem fehlenden http deamoin zu tun hat, daher sollte ich erst mal das fixen.

VG
Ralf

dougie



Nachtrag: ich hab gerade gesehen, das mir OWFS eine zweite owfs.conf angelegt hat.

Die von Boris habe ich wie beschrieben in /etc/owfs.conf angelegt, aber ich hab auch noch eine in /usr/share/owfs

Welche ist die "richtige"?

VG
Ralf

appi

Hallo
in der ersten Zeile liegt wahrscheinlich das Problem. Die OWDevices haben kein OWServer zugeordnet.

2013.01.02 09:06:15 5: No I/O device or ReadFn found for OW.Count.1
2013.01.02 09:06:15 3: OW.Count.1: reading counters.A did not return a value
2013.01.02 09:06:15 5: Triggering OW.Count.1 (1 changes)

Frege: laufen bei jemandem die Module OWServer und OWDevice noch einwandfrei?

grussRemo

eppi

Hallo Remo
Ich benutze die OWServer(SVN:2383) und OWDevice(SVN:2392), diese funktionieren bei mir.

Ich habe jedoch festgestellt, dass wenn ich an FHEM arbeite und mittels "rereadcfg" die Config neu einlese bei mir auch diese Fehler auftreten. Jedoch, wenn ich nach den Änderungen die Module mittels "shutdown restart" neu lade, ist der Fehler weg und die Tempsensoren und Counter funktionieren einwandfrei.

Ich hoffe, dass das auch bei dir helfen wird!

Gruss Dani

dougie


...ich hab das gerade mal versucht bei mir nachzuvollziehen.

Ich kann den owfs http deamon manuell mit

 /opt/owfs/bin/owhttpd -d /dev/i2c-1 -p 2121

starten, und dann läuft er auch! Also muss der Aufruf entweder defekt sein, oder irgendwelche Rechte unzureichend (?)
Mal sehen ob ich rausfinden kann, wo das bei mir schief läuft.

VG
Ralf

thoweiss

Jetzt bin ich aber von den Socken!


Ich hatte vor den Feiertagen angefangen meine eigenen OWFS-Module zu basteln.
Gut das ich noch nicht sehr weit gekommen bin, bisher liefen nur Temperatursensoren.

Hat sich ja jetzt erledigt - vielen dank für die Module!


Ich werde das gleich mal testen...

Gruß,
Thorsten

appi

Hallo Boris
meine Installation OWServer und OWDevice funktioniert wieder. Ich hatte den folgenden Fehler:
2013.01.02 09:06:15 5: No I/O device or ReadFn found for OW.Count.1
2013.01.02 09:06:15 3: OW.Count.1: reading counters.A did not return a value

Ich habe die Alias der Devices gelöscht und die Devices mit modify neu erstellt/geändert.

Danach wurden die Devices wieder ausdelesen.

Gruss
Remo

Dr. Boris Neubert

Hallo Ralf,

Zitat von: dougie schrieb am Mi, 02 Januar 2013 08:52Ich muss dazu sagen, das ich wirklich kein Linus Profi bin, sondern noch ziemlich am Anfang stehe, aber ich hab's hin bekommen OWFS zu kompilieren und zu installieren (ein apt-get install OWFS hatte zwar funktioniert, aber der http und ftp deamon meldete ein FAIL beim Systemstart, also hab ich das wieder removed und das ganze Paket installiert und kompiliert).

hmm, bei mir lief ein apt-get install owserver auf dem Raspi sauber durch:


dpkg -l '*owserver*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                  Version         Architecture    Description
+++-=====================-===============-===============-================================================
ii  owserver              2.8p15-1        armhf           Backend server for 1-Wire control


Mit diesem /etc/owfs.conf

! server: server = localhost:4304
server: device = /dev/i2c-1 # i2c port: DS2482-100
http: port = 2121
ftp: port = 2120
server: port = localhost:4304
server: port = raspi:4304
Celsius


läuft es bei mir einwandfrei.

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

thoweiss

Also bei mir auf dem pi ließ sich OWFS auch ganz normal mit apt-get install owfs installieren....

Als 1-Wire Adapter benutze ich ja ein Ibuttonlink Link45.
Das ist ein RS 232-Adapter aber der funktioniert sogar mit einem RS232 -> USB Adapter an meinem Atom Server problemlos.

Ich das läuft auch unter dem PI. Aber das gehört hier nicht hin.

Aktuell läuft mein 1-wire Zugriff remote über den Atom Server.
Die neuen Module laufen bei mir soweit problemlos.
 
OWFS rules!


dougie


Schöne Lösung, Uwe! Passt! :-)

Ich überlege derzeit eine Art "Standard-Platine" zu layouten, auf der man alle gängigen 1Wire Devices bestücken kann.
Das Ganze mit reichlich Lötbrücken, damit man flexibel nur das verwenden kann/muss, was man auch wirklich braucht.
Das sollte einen grösseren Interessentenkreis erreichen, als nur eine Eizenlanwendung.

Sollte man das mal andenken?

Ich verwende allerdings nur EAGLE und kann daher andere Design-Files nicht verarbeiten.  Mein Platinenhersteller ist auch nicht wirklich teuer, überzeugt aber mit guter Qualität.

Würde mich freuen, wenn da mal das allgemeine Interesse bekundet würde.

[sorry for OT]

VG
Ralf


Zitat von: UweH schrieb am So, 30 Dezember 2012 22:08Hi Martin,

der Louis Swart-Controller braucht 5V, eine einfache Anbindung des DS2482 bringt aber nur 3,3V auf den Bus. Oder funktioniert das auch so?
Ich habe daher gleich mal einen Plan entworfen...3,3V auf 5V Levelshifter mit angeflanschtem DS2482. Hast Du oder einer der Mitstreiter hier schaltungstechnische Verbesserungsvorschläge?

Gruß
Uwe

dougie

So, moin zusammen :-)

Ich hab mir vorgenommen, das heute ans Laufen zu bekommen.

Irgendwie habe ich irgendwas bei der Installation falsch gemacht, und muss das jetzt fixen. Aber ohne Hilfe werde ich das wahrscheinlich nicht so schnell hin bekommen.
Aber ich fasse nich mal zusammen.

Hardware: RPi mit COC und einem einzelnen TempSensor am COC

Problem: beim Start des RPi bekomme ich zwei Fehlermeldungen, und ich bekomme partout keine Werte vom Temp Sensor.

Starting 1-Wire FTP server: owftpd failed!
Starting 1-Wire HTTP deamon: owhttpd failed!

Ich kann mit


pi@raspberrypi ~ $ sudo /opt/owfs/bin/owhttpd -d /dev/i2c-1 -p 2121
pi@raspberrypi ~ $ sudo /opt/owfs/bin/owftpd -d /dev/i2c-1 -p 2120


beides starten, und dann läuft es auch.

Ein ps -A | grep ow liefert


pi@raspberrypi ~ $ ps -A | grep ow
 1930 ?        00:14:24 owserver
 2084 ?        00:00:00 owfs
 2258 ?        00:00:00 owhttpd
 2261 ?        00:00:00 owftpd


Hier der Nachweis, das der Service läuft, und der Sensor erkannt wird.


(siehe Anhang / see attachement)


Meine Zeilen aus der fhem.cfg:

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


Meine /etc/owfs.conf


server: device = /dev/i2c-1 # i2c port: DS2482-100
http: port = 2121
ftp: port = 2120
server: port = localhost:4304
server: port = raspberry:4304
Celsius



Auszug aus dem Log-File:


2013.01.03 09:16:46 1: Including /etc/fhem.cfg
2013.01.03 09:16:48 3: tPort: port 7072 opened
2013.01.03 09:16:49 3: WEB: port 8083 opened
2013.01.03 09:16:50 3: WEBphone: port 8084 opened
2013.01.03 09:16:50 3: WEBtablet: port 8085 opened
2013.01.03 09:16:51 3: Opening CUL_0 device /dev/ttyACM0
2013.01.03 09:16:52 3: Setting CUL_0 baudrate to 9600
2013.01.03 09:16:52 3: CUL_0 device opened
2013.01.03 09:16:53 3: CUL_0: Possible commands: BCFiAGMRTVWXefmltux
2013.01.03 09:16:53 3: Opening COC_1 device /dev/ttyAMA0
2013.01.03 09:16:53 3: Setting COC_1 baudrate to 38400
2013.01.03 09:16:53 3: COC_1 device opened
2013.01.03 09:16:53 3: COC_1: Possible commands: mBCFAZOGMRTVWXefltux
2013.01.03 09:16:53 2: Switched COC_1 rfmode to HomeMatic
2013.01.03 09:17:28 3: Opening CUNO_3 device 192.168.1.24:2323
2013.01.03 09:17:29 3: CUNO_3 device opened
2013.01.03 09:17:29 3: CUNO_3: Possible commands: mBCFDiAGMRTVWXOefltuxEcq
2013.01.03 09:17:31 3: OW_Temp_Test: I/O device is OWServer
2013.01.03 09:17:31 3: OW_Temp_Test: reading temperature did not return a value
2013.01.03 09:17:31 1: Including /var/log/fhem/fhem.save
2013.01.03 09:17:33 0: Server started (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 2372 2012-12-28 10:52:16Z rudolfkoenig $, pid 1770)
2013.01.03 09:19:31 3: OW_Temp_Test: reading temperature did not return a value
2013.01.03 09:21:31 3: OW_Temp_Test: reading temperature did not return a value
2013.01.03 09:23:31 3: OW_Temp_Test: reading temperature did not return a value
2013.01.03 09:25:31 3: OW_Temp_Test: reading temperature did not return a value
2013.01.03 09:27:31 3: OW_Temp_Test: reading temperature did not return a value
2013.01.03 09:29:31 3: OW_Temp_Test: reading temperature did not return a value
2013.01.03 09:31:31 3: OW_Temp_Test: reading temperature did not return a value
2013.01.03 09:33:31 3: OW_Temp_Test: reading temperature did not return a value


Frage 1: wie/ wo kann ich nachschauen, warum der automatische Start von owftpd und owhttpd fehl schlägt?
Frage 2: was kann noch die Ursache sein, das ich keine Werte vom TempSensor bekomme?

Vielen Dank für eure Hife!! :-)

VG
Ralf

dougie


Mist, vergessen.... auf meinem RPi läuft auch noch ein proftpdraspberrypi ftp server... kann es sein, das der einen Konflikt verursacht?