gelöst - 1Wire (OWSERVER) einbinden

Begonnen von Mr-Bean, 09 Juni 2014, 09:06:18

Vorheriges Thema - Nächstes Thema

Mr-Bean

Bei Zugriff über Port 8083 und Befehl ,,get 1wire devices" erhalte ich auf dem ssh Terminalfenster die Meldung ,,Use of uninitialized value in split at ./FHEM/10_OWServer.pm line 425."

Das ist mein erster Versuch FHEM und 1Wire zu verbinden.

Hier meine Konfig
Debian 7.5.0 minimal Installation
Pakete owfs ow-shell sind installiert. Der WEB Zugriff auf Port 2121 zeigt mir meine zwei 1Wire Sensoren an (DS2438 mit HIH5030)

Für die Installation von FHEM habe ich noch diese beiden Pakete installiert - ,,apt-get install libdevice-serialport-perl libwww-perl"
Danach noch ,,dpkg --install fhem-5.5.deb"
FHEM Software noch per ,,update" aktualisiert.
In der fhem.cfg habe ich nur eine Zeile aufgenommen ,,define 1wire OWServer localhost:4304". Nach einem Neustart sehe ich auch ,,1wire Initialized".

Hat jemand einen Tipp für mich?


Mr-Bean

Die dummy Einträge habe ich nicht drinne. Auf dem Web Server von 1wire sehe ich ja meine beiden DS2438

fiedel

So wie du es beschreibst, sollte es eigentlich gehen. Probiere sicherheitshalber noch ein "update force"!

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Mr-Bean

#4
leider auch ohne Erfolg

In der /opt/fhem/log/fhem-2014-06.log sehe ich folgendes

2014.06.09 12:02:57 1: Including fhem.cfg
2014.06.09 12:02:57 3: WEB: port 8083 opened
2014.06.09 12:02:57 2: eventTypes: loaded 7 events from ./log/eventTypes.txt
2014.06.09 12:02:57 1: Including ./log/fhem.save
2014.06.09 12:02:57 3: 1wire: Opening connection to OWServer localhost:4304...
2014.06.09 12:02:57 3: 1wire: Successfully connected to localhost:4304.

Eine Verbindung scheint aufgebaut worden sein. Nur erhalte ich bei get 1wire devices keinerlei Rückmeldung

Liegt es vielleicht an der Version von owfs? Debian hat meistens ältere Pakete im Repository
# apt-cache show owserver
Package: owserver
Source: owfs
Version: 2.8p15-1

fiedel

Hm, wenn du im owhttpd die Devices siehst, sollte es auch in FHEM gehen. Probiere es mal mit den Fake- Devices aus der owfs.conf. Wenn du die in FHEM listen kannst, bist du schon einen Schritt weiter.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

chris1284

bekommst du den im owserver-device readings angezeigt? siehe screenshot?
sobald der owserver erfolgreich verbunden ist (also nicht nur laut log) sollten diese auftauchen

Mr-Bean

@fiedel
auch mit den fake devices die gleiche Geschichte

Nur will jetzt der owhttpd nicht mehr starten. Finde das das nicht wichtig ist. Mit owdir erhalte ich meine beiden DS2438 angezeigt. Heute Vormittag konnte ich in einer VM den :2121 starten

Mr-Bean

@chris
mehr sehe ich nicht. Siehe Bild

Was ist der Unterschied NR 23 zu 20?

Mr-Bean

Das Logging habe ich mal auf "attr global verbose 5" hochgeschraubt. Schaut mal bitte rein


2014.06.09 13:43:31 5: Cmd: >shutdown restart<
2014.06.09 13:43:31 5: Triggering global (1 changes)
2014.06.09 13:43:31 5: Notify loop for global SHUTDOWN
2014.06.09 13:43:31 0: Server shutdown
2014.06.09 13:43:34 5: Initializing Type Library:
2014.06.09 13:43:34 1: Including fhem.cfg
2014.06.09 13:43:34 5: Cmd: >attr global logfile ./log/fhem-%Y-%m.log<
2014.06.09 13:43:34 5: Cmd: >attr global modpath .<
2014.06.09 13:43:34 5: Cmd: >attr global uniqueID ./FHEM/FhemUtils/uniqueID<
2014.06.09 13:43:34 5: Cmd: >attr global statefile ./log/fhem.save<
2014.06.09 13:43:34 5: Cmd: >attr global verbose 5<
2014.06.09 13:43:34 5: Cmd: >attr global updateInBackground<
2014.06.09 13:43:34 5: Cmd: >define WEB FHEMWEB 8083 global<
2014.06.09 13:43:34 5: Loading ./FHEM/01_FHEMWEB.pm
2014.06.09 13:43:34 3: WEB: port 8083 opened
2014.06.09 13:43:34 5: Cmd: >define Logfile FileLog ./log/fhem-%Y-%m.log fakelog<
2014.06.09 13:43:34 5: Loading ./FHEM/92_FileLog.pm
2014.06.09 13:43:34 5: Cmd: >define autocreate autocreate<
2014.06.09 13:43:34 5: Loading ./FHEM/98_autocreate.pm
2014.06.09 13:43:34 5: Cmd: >attr autocreate filelog ./log/%NAME-%Y.log<
2014.06.09 13:43:34 5: Cmd: >define eventTypes eventTypes ./log/eventTypes.txt<
2014.06.09 13:43:34 5: Loading ./FHEM/91_eventTypes.pm
2014.06.09 13:43:34 2: eventTypes: loaded 7 events from ./log/eventTypes.txt
2014.06.09 13:43:34 5: Cmd: >define initialUsbCheck notify global:INITIALIZED usb create<
2014.06.09 13:43:34 5: Loading ./FHEM/91_notify.pm
2014.06.09 13:43:34 5: Cmd: >define 1wire OWServer localhost:4304<
2014.06.09 13:43:34 5: Loading ./FHEM/10_OWServer.pm
2014.06.09 13:43:34 1: Including ./log/fhem.save
2014.06.09 13:43:34 5: Cmd: >setstate 1wire 2014-06-09 13:42:25 state Initialized<
2014.06.09 13:43:34 5: Cmd: >setstate Logfile active<
2014.06.09 13:43:34 5: Cmd: >setstate autocreate active<
2014.06.09 13:43:34 5: Cmd: >setstate eventTypes active<
2014.06.09 13:43:34 5: Cmd: >setstate global <no definition><
2014.06.09 13:43:34 5: Cmd: >setstate initialUsbCheck 2014-06-09 13:42:24<
2014.06.09 13:43:34 5: Triggering global (1 changes)
2014.06.09 13:43:34 5: Notify loop for global INITIALIZED
2014.06.09 13:43:34 5: Triggering initialUsbCheck
2014.06.09 13:43:34 4: initialUsbCheck exec usb create
2014.06.09 13:43:34 5: Cmd: >usb create<
2014.06.09 13:43:34 1: usb create starting
2014.06.09 13:43:35 1: usb create end
2014.06.09 13:43:35 3: 1wire: Opening connection to OWServer localhost:4304...
2014.06.09 13:43:35 3: 1wire: Successfully connected to localhost:4304.
2014.06.09 13:43:35 5: Triggering 1wire (1 changes)
2014.06.09 13:43:35 5: Notify loop for 1wire CONNECTED
2014.06.09 13:43:35 4: eventTypes: OWServer 1wire CONNECTED -> CONNECTED
2014.06.09 13:43:35 4: eventTypes: OWServer 1wire state: CONNECTED -> state: CONNECTED
2014.06.09 13:43:35 5: Triggering 1wire (1 changes)
2014.06.09 13:43:35 5: Notify loop for 1wire Initialized
2014.06.09 13:43:35 4: eventTypes: OWServer 1wire Initialized -> Initialized
2014.06.09 13:43:35 4: eventTypes: OWServer 1wire state: Initialized -> state: Initialized
2014.06.09 13:43:35 2: SecurityCheck:  WEB has no basicAuth attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2014.06.09 13:43:35 0: Server started with 7 defined entities (version $Id: fhem.pl 6080 2014-06-07 16:12:09Z rudolfkoenig $, os linux, user fhem, pid 18693)
2014.06.09 13:43:35 4: Connection accepted from FHEMWEB:10.10.10.104:57547
2014.06.09 13:43:35 4: HTTP FHEMWEB:10.10.10.104:57547 GET /fhem
2014.06.09 13:43:35 4: /fhem / RL:952 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57547 GET /fhem/pgm2/style.css
2014.06.09 13:43:36 4: Connection accepted from FHEMWEB:10.10.10.104:57548
2014.06.09 13:43:36 4: Connection accepted from FHEMWEB:10.10.10.104:57549
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57549 GET /fhem/pgm2/svg.js
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57548 GET /fhem/pgm2/fhemweb_multiple.js
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57547 GET /fhem/pgm2/fhemweb_readingsHistory.js
2014.06.09 13:43:36 4: Connection accepted from FHEMWEB:10.10.10.104:57550
2014.06.09 13:43:36 4: Connection accepted from FHEMWEB:10.10.10.104:57551
2014.06.09 13:43:36 4: Connection accepted from FHEMWEB:10.10.10.104:57552
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57550 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57551 GET /fhem/pgm2/fhemweb_noArg.js
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57552 GET /fhem/pgm2/fhemweb.js
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57549 GET /fhem/pgm2/fhemweb_slider.js
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57547 GET /fhem/pgm2/fhemweb_svg.js
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57548 GET /fhem/pgm2/fhemweb_textField.js
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57550 GET /fhem/pgm2/fhemweb_time.js
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57551 GET /fhem/pgm2/defaultCommon.css
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57547 GET /fhem/pgm2/dashboard_style.css
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57548 GET /fhem/images/default/icoEverything.png
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57547 GET /fhem/images/default/fhemicon.png
2014.06.09 13:43:36 4: HTTP FHEMWEB:10.10.10.104:57547 GET /fhem?XHR=1&inform=type=status;filter=&timestamp=1402314216242
2014.06.09 13:44:30 4: Connection closed for FHEMWEB:10.10.10.104:57548
2014.06.09 13:44:30 4: Connection closed for FHEMWEB:10.10.10.104:57549
2014.06.09 13:44:30 4: Connection closed for FHEMWEB:10.10.10.104:57551
2014.06.09 13:44:31 4: Connection closed for FHEMWEB:10.10.10.104:57550
2014.06.09 13:44:31 4: Connection closed for FHEMWEB:10.10.10.104:57552

Mr-Bean

#10
Jetzt geht der httpd Dienst auch wieder. Kommt vom vielen Rumspielen.
Diesen Eintrag hatte ich in der owfs.conf auskommentiert: ! server: server = localhost:4304

Muss ich vielleicht einen anderen Sensor anschliessen? z.B. DS18B20
oder
ein aktuelles owfs Paket

Habe noch einen Server mit owfs am laufen. Diesen habe ich testweise in fhem eingebunden (localhost gegen 10.10.10.23 getauscht). Es werden ebenfalls keine Sensoren (DS18B20) angezeigt.

Hier noch meine fhem.cfg
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global uniqueID ./FHEM/FhemUtils/uniqueID
attr global statefile ./log/fhem.save
attr global verbose 5
attr global updateInBackground
attr global motd none

#define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global

#define WEBphone FHEMWEB 8084 global
#attr WEBphone stylesheetPrefix smallscreen

#define WEBtablet FHEMWEB 8085 global
#attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create

define 1wire OWServer 10.10.10.23:4304

fiedel

#11
Bei diesem Problem würde ich zuerst nur mit den Fakedevices probieren bis du Verbindung hast, bzw. die Devices in FHEM aufgelistet werden. Dann können echte dran. Das owfs- Paket, bzw. den owserver habe ich bei mir auf aktuellem Wheezy einfach per "apt-get install owserver" und "apt-get install owhttpd" installiert.
Vergleiche mal auch noch die owfs.conf mit meiner :


server: device = /dev/LinkUSBi
! server: server = localhost:4304

# random simulated device
# FAKE = DS18S20,DS2405

owfs: mountpoint = /mnt/1wire
#allow_other

# use syslog
error_print = 1

# server: port = 2125
server: port = 4304

http: port = 2121

# ftp: port = 3131
ftp: port = 2120

Celsius


Die CFG sieht auch gut aus. Es müsste gehen...
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Mr-Bean

#12
Habe mir jetzt eine neue virtuelle Maschine (VM) erstellt. Dort habe ich wie bereits oben beschrieben Debain V7.5.0 installiert.

Hier meine Installationsparameter während der Installation
Expert install
Grundinstallation
linux-image-amd64
generisch: alle verfügbaren Treiber einbinden

Abschließend per ssh auf die VM geschaltet und folgendes eingetippt
apt-get -y install owfs ow-shell
apt-get install libdevice-serialport-perl libwww-perl
dpkg --install fhem-5.5.deb

owhttpd zeigt die fake 1wire Sensoren an

unter ip:8083 folgendes eingegeben
notice confirm update-20130127-001
update check
update
shutdown restart

in der fhem.cfg nur diese Zeile aufgenommen: define 1wire OWServer localhost:4304

Das wars - wieder keine devices beim "get ..." Befehl


Auf der Console erscheinen diese beiden Meldungen
Use of uninitialized value in split at ./FHEM/10_OWServer.pm line 379.
Use of uninitialized value in split at ./FHEM/10_OWServer.pm line 446.

Würde eher sagen, dass ein Linux Paket fehlt

In den Zeilen 379 & 446 steht dieses: my @dir= split(",", $owserver->dir("/"));


Weitere Tipps?

root@debian:~# cat /etc/owfs.conf
# Sample configuration file for the OWFS suite for Debian GNU/Linux.
#
#
# This is the main OWFS configuration file. You should read the
# owfs.conf(5) manual page in order to understand the options listed
# here.

######################## SOURCES ########################
#
# With this setup, any client (but owserver) uses owserver on the
# local machine...
! server: server = localhost:4304
#
# ...and owserver uses the real hardware, by default fake devices
# This part must be changed on real installation
server: FAKE = DS18S20,DS2405
#
# USB device: DS9490
#server: usb = all
#
# Serial port: DS9097
#server: device = /dev/ttyS1
#
# owserver tcp address
#server: server = 192.168.10.1:3131
#
# random simulated device
#server: FAKE = DS18S20,DS2405
#
######################### OWFS ##########################
#
#mountpoint = /mnt/1wire
#allow_other
#
####################### OWHTTPD #########################

http: port = 2121

####################### OWFTPD ##########################

ftp: port = 2120

####################### OWSERVER ########################

server: port = localhost:4304

root@debian:~#

Mr-Bean

Jetzt habe ich Debian einmal komplett installiert. Sprich mit grafischer Oberfläche.

Auch hier zeigt sich der gleiche Fehler

fiedel

#14
Vergleiche mal die Version mit meiner:

root@debian:~# owserver --version
owserver version:
        2.8p15
libow version:
        2.8p15


Außerdem kann das an der VM liegen. Da sind Netzwerkmäßig die verschiedensten Schweinereien möglich...  ;)
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Mr-Bean

Verwende die VM nur zum Testen. Damit muss ich meine Hardwarekiste nicht immer neu installieren. Der Fehler ist bei Hardware und VM gleich.

root@debian:~# owserver --version
owserver version:
2.8p15
libow version:
2.8p15
root@debian:~#

Mr-Bean

Nach vielen Installationen / Stunden habe ich es geschafft.

Die Lösung ist ganz einfach. Auch wenn nicht so schön. In der owfs.conf und fhem.cfg muss beim OWServer immer mit der IP Adresse gearbeitet werden. localhost kann ich nicht verwendet. Die ware IP Adresse rein und schon erscheinen im fhem alle Devices.

Mr-Bean

#17
Hier die bessere Lösung

In der owfs.conf Datei nur den Port stehen lassen. Den Eintrag <localhost:> oder <IP:> löschen.


So sieht es jetzt bei mir aus:
! server: server = 4304

server: port = 4304


In der fhem.cfg kann jetzt auch wieder der localhost Eintrag wieder rein

P.S. Die Lösung mit der IP Adresse war zwar auf den ersten Blick die Lösung. Nur konnte ich dann nicht mit dem Port 2121 (owhttpd) arbeiten. Der Dienst hat sich ca. 5 Sekunden nach dem Start einfach beendet. Erneutes Starten brachte auch nichts.

erichfhem

Zitat von: Mr-Bean am 22 Juni 2014, 21:02:32

Nach vielen Installationen / Stunden habe ich es geschafft.

Die Lösung ist ganz einfach. Auch wenn nicht so schön. In der owfs.conf und fhem.cfg muss beim OWServer immer mit der IP Adresse gearbeitet werden. localhost kann ich nicht verwendet. Die ware IP Adresse rein und schon erscheinen im fhem alle Devices.

Bei mir ist es leider gerade anders rum!
Wenn ich in fhem.cfg  localhost und in der owfs.conf die IP-Adresse stehen habe, dann funktioniert es, wenn owfs und fhem auf dem selben System läuft.
Wenn ich aber über die IP-Adresse in fhem.cfg versuche zuzugreifen, dann findet er von ca. 60 devices nur ein einziges.
Leider läuft bei mir aber normalerweise owfs auf zwei anderen Rechnern und ich muss über die IP-Adresse gehen.
Der Zugriff vom FHEM-Rechner auf die OW-Devices auf diesen anderen Rechnern funktioniert mittels owphp über die jeweilige IP-Adresse:4303 einwandfrei.  Nicht aber mittels FHEM.
Was kann ich tun?

Grüße
Erich

fiedel

Hi Erich,

vielleicht bringt dich dieser Post oder ger gesamte Thread weiter. Mir hat er damals bei der Einrichtung sehr geholfen.

Übrigens: Herzlich willkommen im Forum!  :)

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Grembold

Vielen dank für den tipp ich hatte das gleiche Problem.

Fehlerbild:
Owserver war richtig eigerichtet und hat über die shell oder die  eigene webseite 1wire devices angezeigt.
In Fhem konnte ich das owserver device anlegen und es bekam auch den status initialisiert. Doch readings oder devices wurden in Fhem nicht angezeigt.

Lösung:
Aus der owfs.conf die IP-adressen oder localhost entfernt und nur die ports eintragen.
sudo nano /etc/owfs.conf
dann den dienst neugestartet
sudo service owserver restart

Dann in fhem
Set myOWServer reopen
Und schon waren die readings da und get devices ging auch.

agsteffan

Hi zusammen,

auch mir hat der Tipp mit dem "localhost" aus der owfs.conf zu löschen weitergeholfen.
Danke.

Andreas