OWServer mit AT90USB162 Schnittstelle und DS18B20 Sensoren

Begonnen von richterh, 27 Dezember 2020, 16:14:59

Vorheriges Thema - Nächstes Thema

richterh

Hallo zusammen,

ich versuche seit längerem auf einem 2. Raspberry Pi einen OWServer zum Laufen zu bringen um Temperaturen der Heizung von FHEM auslesen zu können. Am USB-Port steckt eine Schnittstelle mit AT90USB162 Chip und DS18B20 Sensoren.
https://www.led-genial.de/USB-Temperatur-Sensor-Tester-fuer-DS18B20-Rev-C

Ein Testprogramm liest auch die Messwerte fehlerlos aus.
root@raspberrypi:/usr/src/1wire/temp-sensor# ./Read1Wire
Found Temp-Sensor
Sensor #1 of 2: +21.0▒C Power: Extern     ID: 28 AD 39 04 30 14 01 26
Sensor #2 of 2: +21.1▒C Power: Extern     ID: 28 AA 4A 90 1B 13 02 B6
Sensor #1 of 2: +21.0▒C Power: Extern     ID: 28 AD 39 04 30 14 01 26
Sensor #2 of 2: +21.1▒C Power: Extern     ID: 28 AA 4A 90 1B 13 02 B6


Nur der OWServer will nicht starten sondern bricht mit Fehler ab:

root@raspberrypi:/etc# systemctl status owfs.service
● owfs.service - 1-wire filesystem FUSE mount
   Loaded: loaded (/lib/systemd/system/owfs.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2020-12-27 13:06:10 CET; 2h 51min ago
     Docs: man:owfs(1)
  Process: 275 ExecStart=/usr/bin/owfs -c /etc/owfs.conf --allow_other /run/owfs (code=exited, status=1/FAILURE)
Main PID: 275 (code=exited, status=1/FAILURE)

Dez 27 13:06:08 raspberrypi systemd[1]: Starting 1-wire filesystem FUSE mount...
Dez 27 13:06:09 raspberrypi OWFS[275]: DEFAULT: ow_arg.c:(132) Not a "character" device /run/owfs (st_mode=41ed)
Dez 27 13:06:09 raspberrypi OWFS[275]: DEFAULT: owlib.c:(52) No valid 1-wire buses found
Dez 27 13:06:10 raspberrypi systemd[1]: owfs.service: Main process exited, code=exited, status=1/FAILURE
Dez 27 13:06:10 raspberrypi systemd[1]: owfs.service: Failed with result 'exit-code'.
Dez 27 13:06:10 raspberrypi systemd[1]: Failed to start 1-wire filesystem FUSE mount.
root@raspberrypi:/etc#


Habe schon mehrmals neu installiert, in der owfs.conf schon verschiedenste Einstellungen versucht aber alles ohne Erfolg.
Hat jemand eine Idee was ich noch versuchen kann?

Viele Grüße
Harald


richterh

kleine Erfolgsmeldung, nach einer Überarbeitung der owfs.conf startet oqserver und owhttpd.
Messwerte bekomme ich noch keine aber es geht voran...

root@raspberrypi:/etc# systemctl status owfs.service
● owfs.service - 1-wire filesystem FUSE mount
   Loaded: loaded (/lib/systemd/system/owfs.service; enabled; vendor preset: ena
   Active: active (running) since Sun 2020-12-27 19:59:18 CET; 7min ago
     Docs: man:owfs(1)
Main PID: 285 (owfs)
    Tasks: 3 (limit: 881)
   CGroup: /system.slice/owfs.service
           └─285 /usr/lib/owfs/owfs -c /etc/owfs.conf -c /etc/owfs.conf --allow_

Dez 27 19:59:15 raspberrypi systemd[1]: Starting 1-wire filesystem FUSE mount...
Dez 27 19:59:18 raspberrypi systemd[1]: Started 1-wire filesystem FUSE mount.
lines 1-11/11 (END)


Viele Grüße
Harald

richterh

Mit FAKE-Source in der owfs.conf läuft es:

# local machine...
! server: server = 127.0.0.1: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
#server: altUSB
#server: device = /dev/i2c-0
#
# Serial port: DS9097
#server: device = /dev/ttyS1
#
# owserver tcp address
#server: server = 192.168.178.246:3131
#


Mir fehlt nur die richtige Einstellung für meine USB-Schnittstelle. Habe schon verschiedene probiert...
Jemand ne weitere Idee?

Viele Grüße
Harald

rob

Hallo Harald.

Habe selber eine andere Hardware (Denkovi), sollte doch aber im Prinzip gleich laufen. Das OWserver via Fake schonmal läuft, ist doch erstmal OK. Die owfs.conf muss auf das passende Device zeigen und dann sollte doch der Zugriff hoffentlich machbar sein.

Du schreibst
Zitat von: richterh am 27 Dezember 2020, 16:14:59
...USB-Port steckt eine Schnittstelle mit AT90USB162 Chip ...
In der verlinkten Doku steht:
Zitat
...besteht im Wesentlichen aus dem STM32F042, einem USB-Controller der Firma ST-Microelectronic...
Egal was zutrifft, es sollte ein Device unter /dev/... erscheinen und hoffentlich darüber der Zugriff möglich sein. Jetzt gilt es herauszufinden, welches das ist.

Mich verunsichert ein wenig
Zitat von: richterh
...in der owfs.conf schon verschiedenste Einstellungen versucht aber alles ohne Erfolg....Mir fehlt nur die richtige Einstellung für meine USB-Schnittstelle. Habe schon verschiedene probiert...
Das Testprogramm muss ja auch auf irgendein Device zugreifen. Wir wissen halt nicht welches/ wie.

Versuchen wir mal uns heranzutasten: Könntest Du bitte den Stick abziehen via cli schauen was der Befehl zeigt

ls /dev/tty* -lah

Anschließend wieder den Stick anstecken und erneut den Befehl absetzen. Was ist hinzugekommen? Was sagt ggf. dieser Befehl via cli?

dmesg | grep usb


Magst Du das bitte posten? Vielleicht lässt sich schon erkennen, welches Device gesucht wird. Dann wäre der nächste Schritt die owfs.conf ...

Viele Grüße
rob


richterh

#4
Hallo rob,

beim Ab- und Anstecken zeigen sich keine Unterschiede. Es gibt /dev/usb/hiddev0, das könnte es eventuell sein. Es verschwindet beim Abstecken.
"dmesg | grep usb" bringt schon mal mehr:

root@raspberrypi:~# dmesg | grep usb
[    0.198914] usbcore: registered new interface driver usbfs
[    0.199074] usbcore: registered new interface driver hub
[    0.199386] usbcore: registered new device driver usb
[    1.872699] usbcore: registered new interface driver smsc95xx
[    2.807693] dwc_otg 20980000.usb: DWC OTG Controller
[    2.816841] dwc_otg 20980000.usb: new USB bus registered, assigned bus number 1
[    2.825885] dwc_otg 20980000.usb: irq 56, io mem 0x00000000
[    2.852558] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[    2.861290] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.869950] usb usb1: Product: DWC OTG Controller
[    2.878607] usb usb1: Manufacturer: Linux 5.4.79+ dwc_otg_hcd
[    2.887225] usb usb1: SerialNumber: 20980000.usb
[    2.917103] usbcore: registered new interface driver usb-storage
[    3.005791] usbcore: registered new interface driver usbhid
[    3.014609] usbhid: USB HID core driver
[    4.292348] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    4.593597] usb 1-1: New USB device found, idVendor=0424, idProduct=9512, bcdDevice= 2.00
[    4.610885] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    4.982456] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    5.122956] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00, bcdDevice= 2.00
[    5.140709] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    5.271544] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-20980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:3a:dd:c2
[    5.392394] usb 1-1.2: new full-speed USB device number 4 using dwc_otg
[    5.546425] usb 1-1.2: New USB device found, idVendor=16c0, idProduct=0480, bcdDevice= 1.00
[    5.564623] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.581596] usb 1-1.2: Product: Temp-Sensor-Tester
[    5.595892] usb 1-1.2: Manufacturer: DIAMEX GmbH
[    5.621165] hid-generic 0003:16C0:0480.0001: hiddev96,hidraw0: USB HID v1.11 Device [DIAMEX GmbH Temp-Sensor-Tester] on usb-20980000.usb-1.2/input0
[    5.742375] usb 1-1.3: new low-speed USB device number 5 using dwc_otg
[    5.916359] usb 1-1.3: New USB device found, idVendor=413c, idProduct=2113, bcdDevice= 1.08
[    5.935060] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[    5.952499] usb 1-1.3: Product: Dell KB216 Wired Keyboard
[    6.031084] input: Dell KB216 Wired Keyboard as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:413C:2113.0002/input/input0
[    6.150316] hid-generic 0003:413C:2113.0002: input,hidraw1: USB HID v1.11 Keyboard [Dell KB216 Wired Keyboard] on usb-20980000.usb-1.3/input0
[    6.216623] input: Dell KB216 Wired Keyboard System Control as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.3/1-1.3:1.1/0003:413C:2113.0003/input/input1
[    6.296648] input: Dell KB216 Wired Keyboard Consumer Control as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.3/1-1.3:1.1/0003:413C:2113.0003/input/input2
[    6.329411] hid-generic 0003:413C:2113.0003: input,hidraw2: USB HID v1.11 Device [Dell KB216 Wired Keyboard] on usb-20980000.usb-1.3/input1
[12573.492614] usb 1-1.2: USB disconnect, device number 4
[12620.894383] usb 1-1.2: new full-speed USB device number 6 using dwc_otg
[12621.028514] usb 1-1.2: New USB device found, idVendor=16c0, idProduct=0480, bcdDevice= 1.00
[12621.028545] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12621.028565] usb 1-1.2: Product: Temp-Sensor-Tester
[12621.028582] usb 1-1.2: Manufacturer: DIAMEX GmbH
[12621.053815] hid-generic 0003:16C0:0480.0004: hiddev96,hidraw0: USB HID v1.11 Device [DIAMEX GmbH Temp-Sensor-Tester] on usb-20980000.usb-1.2/input0
root@raspberrypi:~#


Vielen Dank für deine Hilfe
Harald

rob

Hi.

Supi. Könnte also /dev/usb/hiddev0 sein. Zumindest taucht der Name "Diamex" per dmesg auf. Scheint halt ganz anders zu funktionieren, als die Dinger die mir sonst untergekommen sind (machen meist was mit virtuellen seriellen Interfaces).

Dann sichere Dir doch mal bitte die owfs.conf z.B. nach /etc/owfs.conf.old, um im Zweifel zurück gehen zu können und fülle die owfs.conf mit dem hier:

! server: server = localhost:4303
server: device = /dev/usb/hiddev0
http: port = 2121
server: port = localhost:4303

Diese Zeilen sollten ausreichen zum Testen. Und via Browser mal schauen, ob was kommt via http://betreffenderhost:2121/ (owserver und owhttpd sollten als Services laufen, ohne Abbruch).

Wenn die DS18B20 Sensoren angeschlossen sind und OWServer mit den vom Stick erzeugten Daten etwas anfangen kann, könnten Temp-Werte etc. sichtbar werden.
Es könnte aber auch sein, dass die Implementierung auf dem Device nicht mit OWserver kompatibel ist. Das Testprogramm passt natürlich zur Firmware vom Stick - muss aber nicht zwingend so strukturiert sein, dass OWServer dies auch versteht. Will den Teufel aber nicht herbeimalen  :o

Ich drück die Daumen  :)

Worst case: Hersteller fragen, wie man via OWServer auf die Daten zugreifen kann.

Sobald im WebIF vom OWServer Daten erscheinen, wäre die Einbindung in Fhem simpel.

Viele Grüße
rob


richterh

Hallo rob,

hat leider nicht funktioniert. Vielleicht ist der Tester doch nicht für OWServer geeignet. Habe beim Betreiber von
https://www.docollipics.de/diamex-temp-sensor-tester-fuer-ds18b20-unter-ubuntu-linux-20-04/
mal angefragt ob er einen Tipp geben kann.

Vielen Dank und Grüße
Harald

24cx

Gibt es das Testprogramm zufällig irgendwo? Bin bei der gleichen Aufgabe gerade :) Danke!

fiedel

#8
Dieses Teil ist nix für OWX oder OWServer. Das macht sein eigenes Ding.
Wie oben schon empfohlen lieber nach dem Adapter von Denkovi suchen.
Damit kann man dann den vielen existierenden Anleitungen für FHEM folgen.

Edit: Eine Möglichkeit an die Daten zu kommen wäre dieses Modul.
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