OWX langsame Weboberfläche

Begonnen von Tommi ratlos, 10 November 2016, 13:28:17

Vorheriges Thema - Nächstes Thema

Tommi ratlos

Hallo zusammen,

seit ein paar Tagen beschäftige ich mich jetzt mit FHEM.
Bisher habe ich meine Etagenheizung über ein Bash Script gesteuert. Die Temperaturen werden über 11 DS18S20 Sensoren und Digitemp gelesen.

Die Sensoren hängen Parasitär an einer echten Seriellen Schnittstelle (KEIN USB) /dev/ttyS4 mit ein paar Dioden usw. . Betriebssystem Ubuntu 14.04 LTS.

Habe im ersten Schritt versucht die Temperaturen über FHEM zu lesen.

Über die Weboberfläche
curl -u <user>:<passwort> -k "https://localhost:8083 /fhem?cmd=set%20<dummy name>%20<temperatur>&XHR=1"



Hat funktioniert ;-)

Als nächstes habe ich es mit OWServer versucht, leider habe ich es nicht zum laufen bekommen. Zwar wurden in FHEM die FAKE-Einträge von OWServer angezeigt, aber ich konnte OWServer nicht davon überzeugen die Sensoren an der Seriellen Schnittstelle zu Lesen.

Aktuell nutze ich OWX in FHEM habe ich folgende Konfig:
define OneWire OWX /dev/ttyS4
attr OneWire dokick 1
attr OneWire interval 60

define OWX_10_00FA6C010800 OWTHERM DS1820 00FA6C010800
attr OWX_10_00FA6C010800 IODev OneWire
attr OWX_10_00FA6C010800 alias TemperaturSensor Keller
attr OWX_10_00FA6C010800 event-on-change-reading temperature:0.1
attr OWX_10_00FA6C010800 interval 60
attr OWX_10_00FA6C010800 model DS1820
attr OWX_10_00FA6C010800 room Keller,OWX
attr OWX_10_00FA6C010800 tempHigh 75
attr OWX_10_00FA6C010800 tempLow 70


usw.

Dieser Notify ruft das Script zum Schreiben der Daten nach Mysql auf:
define ntfy_write_temp_mysql notify OWX_10_.*:temperature:.* { my $TEMP=(sprintf "%.1f",(ReadingsVal($NAME,"temperature",20.0)));;;; my $TSTAMP=(time_str2num(ReadingsTimestamp($NAME,"temperature","0"))) ;;;; my $STTIME=(time_str2num(ReadingsTimestamp($NAME,"state","0"))) ;;;; system("./write_temp.sh $TSTAMP $NAME $TEMP $STTIME") }


("state" ist anscheinend überflüssig da gleicher Zeitstempel wie "temperature")
Der Prozess läuft, die Daten werden in die Datenbank geschrieben.

Das Problem ist das die FHEM Weboberfläche jetzt so langsam ist das man praktisch nur noch wartet :-(

Ich habe im Forum gelesen das der OWX Prozess im Hintergrund läuft und den Rest nicht beeinflusst. Ich sehe allerdings immer nur einen FHEM Prozess in der Prozessliste. Der Rechner ist nicht ausgelastet, alle anderen Prozesse z.B. Apache laufen flüssig.

Gibt es einen Parameter den ich noch setzen muss?

Gruß
Thomas
Pi 3 CUNX868 mit 433 Pigator.

Prof. Dr. Peter Henning

Nein, OWX läuft nicht "im Hintergrund" und FHEM ist nicht multithreaded.

Das bedeutet, dass bei einer Bus-Aktion mit OWX tatsächlich auf die Daten gewartet wird. Das ist schon seit Jahren (!) ein relativ unbefriedigender Zustand - der allerdings bei der Verwendung von ordentlichen Busmastern mit USB-Anschluss eben nur "relativ" unbefriedigend ist, weil diese das Bustiming selbst übernehmen und in vielen Bereichen FHEM gar nicht belasten. Von diesen betreibe ich an einem einzelnen FHEM-Hauptsystem vier Stück parallel.

Wenn man aber nur ein primitives passives Interface ("ein paar Dioden", also einen uralten DS9097, siehe hier: http://www.fhemwiki.de/wiki/Passives_Interface_f%C3%BCr_1-Wire) verwendet, liefert das alte OWX-Modul das gesamte Bustiming. Und das kostet ZEIT... Kurz gesagt: machbar, aber keinesfalls empfehlenswert.

Ein neues OWX gibt schon als Beta: Das baut für jeden Busmaster eine eigene Queue auf. Diese wird zwar in FHEM abgearbeitet - aber nicht-blockierend. Das Teil hat zwar noch ein paar Macken, ist aber schon recht vielversprechend. Der Wermutstropfen: Unterstützung für den primitiven DS9097 aus "ein paar Dioden" muss vermutlich herausfliegen.

Also mein Tipp: Einen ordentlichen Busmaster mit DS2480B anschließen. Das muss nicht über USB sein, sondern kann weiter über die serielle Schnittstelle gehen: http://www.fhemwiki.de/wiki/Aktives_1-Wire-Interface. Es ist aber sicherer, das Bustiming in diese Hardware zu verlagern.

LG

pah

Tommi ratlos

Hallo,

Danke für die schnelle und ausführliche Antwort. Ist zwar nicht befriedigend aber jetzt weiß ich zumindest das es so nicht geht. :'(


Gruß
Thomas
Pi 3 CUNX868 mit 433 Pigator.