Ankündigung

Einklappen
Keine Ankündigung bisher.

MisterHouse & Temperaturabfrage über DS1920

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Werner
    antwortet
    Hallo,

    Das sieht dann ja schon ganz gut aus. Als nächstes owserver starten (bei mir mit):
    Code:
    /opt/owfs/bin/owserver -u -p 3030
    in der mh.private.ini den oa. Port angeben:
    Code:
    owfs_port = 3030
    als Code dann zB:
    Code:
    use Owfs_Item;
    use Owfs_Thermostat;
    
    $tempWZ = new Owfs_DS18S20 ("28.DB0B66010000", "WZ", 2 );
    if (new_second 60) {
      set $TempWZ get_temperature $tempWZ;
      print_log " Wohnzimmertemperatur: " . state $TempWZ;
    }
    Wobei $TempWZ ein EIB5 Item ist.

    Grüße
    Werner

    Einen Kommentar schreiben:


  • tombu
    antwortet
    Hallo,

    ich habe das Verzeichniss '/mnt/1wire' angelegt und nun startet owfs ohne Fehlermeldung. Ein 'ls -l /mnt/1wire' zeigt die angeschlossenen Fühleradressen die ich von digitemp kenne.

    Code:
    pumuckl:/mnt # /opt/owfs/bin/owfs -d /dev/ttyS0 -m /mnt/1wire
    pumuckl:/mnt # ls /mnt/1wire/
    10.0DE4ED010800  10.A2DCED010800  alarm     simultaneous  system
    10.39ABED010800  10.ADC1ED010800  bus.0     statistics    uncached
    10.A2D0ED010800  10.D40EDA000800  settings  structure
    Reicht das um mit MH diese Fühler anzusprechen und wie sieht so eine einfache Temperaturabfrage aus ?



    @makki

    Busmaster meinst Du damit den Fühler ? Ein DS1820 und kein DS2480. Wie stelle ich das für den owserver um ?



    @Werner
    • Läuft eibd? = JA
    • Kannst Du mit groupswrite auf den Bus senden? = JA
    • Misterhouse hat Verbindung zum Bus? = JA

    DANKE für die geduldige Hilfe

    Einen Kommentar schreiben:


  • Werner
    antwortet
    Zitat von makki Beitrag anzeigen
    mkdir /mnt/1wire
    Plus notwendige Berechtigungen setzen.
    Zitat von makki
    Entweder ich sehs nicht oder es steht nirgends: was für einen Busmaster haste denn da dran?
    Als weitere Fragen:
    • Wie weit bist Du überhaupt?
    • Läuft eibd?
    • Kannst Du mit groupswrite auf den Bus senden?
    • Misterhouse hat Verbindung zum Bus?

    Grüße
    Werner

    Einen Kommentar schreiben:


  • makki
    antwortet
    Zitat von tombu Beitrag anzeigen
    fuse: bad mount point `/mnt/1wire': No such file or directory
    mkdir /mnt/1wire
    pumuckl:/opt/owfs/bin # /opt/owfs/bin/owserver -d /dev/ttyS0 -p 3000
    Entweder ich sehs nicht oder es steht nirgends: was für einen Busmaster haste denn da dran?

    Makki

    Einen Kommentar schreiben:


  • tombu
    antwortet
    Hallo,

    Zitat von Werner

    zB. mit Owfs_Item.pm

    Das Problem mit Open Source ist nicht ob etwas geht, sondern dass es meistens auf viele Arten geht. Wenn Du eibd und misterhouse bereits am laufen hast und Werte von digitemp bekommst, würde ich fürs Erste die Lösung von Andreas empfehlen.
    OK die Lösung von Andreas scheint also einfacher aber wie kann ich mit MH eine Datei z.B. /tmp/digitempwerte.log einlesen bzw die Daten auf den EIB-Bus schicken.


    Zitat von McTao Beitrag anzeigen
    Hallo,
    ... dem owfsserver bekomme ich es nicht hin.

    Genau aus obigen Gründen heraus bin ich im Moment dabei die von dir vorgeschlagene Lösung umzusetzen:

    OWFS läuft unabhängig von mh und schreibt die Werte in eine Datei. mh liest diese Datei und braucht nicht auf die langsamen Temperaturgeber zu warten. (Eigentlich sollte die Nutzung von owfsserver dieses auch schon entkoppeln, aber das funktioniert bei mir nicht.) (Hierzu gab es auch schon Artikel im Forum).

    Gruss McTao (Andreas)

    Kann mir einer dafür ein Beispiel bezüglich MH schreiben ?
    Auf der Seite 'http://marc.merlins.org/perso/homeha/post_2009-12-23_Temperature-monitoring-and-graphing-with-1wire-devices_-digitemp_-misterhouse_-and-cacti.html' macht der Autor es genauso, die Digitemp Ergebnisse werden sogar noch umgeschrieben aber wie die Datei von MH dann eingelesen wird steht leider nicht auf der Seite.


    Und noch eine Frage zu OwFS (verzweifel)
    Habe jetzt noch etliches installiert und owfs nochmal mit configure und mit make install durcheiern lassen und jetzt sieht mein '/opt/owfs' komplett so aus:


    Code:
    owdir  owftpd  owhttpd  ownet.php  owread    owtap
    owfs   owget   owmon    owpresent  owserver  owwrite
    Mit scheint jetzt habe ich wirklich alles von owfs installiert - und NU ???

    Code:
    pumuckl:/opt/owfs/bin # /opt/owfs/bin/owfs -d /dev/ttyS0 -m /mnt/1wire
    fuse: bad mount point `/mnt/1wire': No such file or directory
    Meine DS1820 hängen aber am '/dev/ttyS0'

    Code:
    pumuckl:/opt/owfs/bin # digitemp -a -i  -c /etc/digitemprc
    DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
    GNU Public License v2.0 - http://www.digitemp.com
    Turning off all DS2409 Couplers
    ......
    Searching the 1-Wire LAN
    10D40EDA0008002D : DS1820/DS18S20/DS1920 Temperature Sensor
    10A2D0ED0108009E : DS1820/DS18S20/DS1920 Temperature Sensor
    10A2DCED010800BF : DS1820/DS18S20/DS1920 Temperature Sensor
    1039ABED010800CA : DS1820/DS18S20/DS1920 Temperature Sensor
    100DE4ED0108007D : DS1820/DS18S20/DS1920 Temperature Sensor
    10ADC1ED0108000B : DS1820/DS18S20/DS1920 Temperature Sensor
    ROM #0 : 10D40EDA0008002D
    ROM #1 : 10A2D0ED0108009E
    ROM #2 : 10A2DCED010800BF
    ROM #3 : 1039ABED010800CA
    ROM #4 : 100DE4ED0108007D
    ROM #5 : 10ADC1ED0108000B
    Wrote /etc/digitemprc
    Aug 17 21:12:13 Sensor 0 C: 13.56 F: 56.41
    Aug 17 21:12:14 Sensor 1 C: 25.19 F: 77.34
    Aug 17 21:12:16 Sensor 2 C: 39.75 F: 103.55
    Aug 17 21:12:17 Sensor 3 C: 15.31 F: 59.56
    Aug 17 21:12:18 Sensor 4 C: 17.12 F: 62.83
    Aug 17 21:12:19 Sensor 5 C: 20.38 F: 68.67
    Wie starte ich den nun owfs ?

    und ein

    Code:
    pumuckl:/opt/owfs/bin # /opt/owfs/bin/owserver -d /dev/ttyS0 -p 3000 --error_lev                                                                  el=1 --foreground
    CONNECT: owlib.c:SetupSingleInboundConnection(105) Cannot detect DS2480 or LINK interface on /dev/ttyS0.
    Segmentation fault
    Ok ich verwende DS1820 wie Konfiguriere ich owfs denn um ?


    Danke für eure Hilfe.

    Einen Kommentar schreiben:


  • makki
    antwortet
    2.8p0 (bzw. alles >2.7p34) habe ich bis heute nicht ansatzweise halbwegs stabil in allen Umgebungen ans rennen gebracht; owfs aus dem source zu machen kann auch leicht anstrengend werden, für x86 gibts nen einfachen Ausweg

    Wie immer der Disclaimer: nicht alle packages in dem repository sind ungefährlich, man weiss bitte was man tut (owfs alleine sollte schon ungefährlich sein)

    Makki

    Einen Kommentar schreiben:


  • Werner
    antwortet
    Hallo,
    Zitat von tombu Beitrag anzeigen
    prima das so viele auf meine Frage antworten - leider verstehe nur Bahnhof.
    Keine Sorge, das wird besser. In ein paar Jahren verstehst Du zwar immer noch Bahnhof, aber es stört Dich nicht mehr
    Zitat von tombu
    '1-Wire' bzw 'owfs' setzt das die Zusatzsoftware von 'owfs.org' vorraus ?
    owfs - Ja.
    Zitat von tombu
    Wenn ja was muss ich denn jetzt alles auf meinem Linux-System installieren und kompilieren und keine Ahnung was damit ich die Beispielscripte aus den Examples benutzen kann ???
    Du findest sicher eine Anleitung für deine Distribution im Internet. Für Ubuntu zB. hier.
    Zitat von tombu
    Und wie greift MH auf diese Informationen zu ???
    zB. mit Owfs_Item.pm

    Das Problem mit Open Source ist nicht ob etwas geht, sondern dass es meistens auf viele Arten geht. Wenn Du eibd und misterhouse bereits am laufen hast und Werte von digitemp bekommst, würde ich fürs Erste die Lösung von Andreas empfehlen.
    Zitat von McTao
    Das übermitteln der Temperaturwerte mache ich jetzt (nicht wie geplant über eine Datei) mit groupswrite.
    Die Temperaturwerte gehen dann über den Bus und nicht übers Filesystem.

    Grüße
    Werner

    Einen Kommentar schreiben:


  • tombu
    antwortet
    Hallo,

    prima das so viele auf meine Frage antworten - leider verstehe nur Bahnhof.

    '1-Wire' bzw 'owfs' setzt das die Zusatzsoftware von 'owfs.org' vorraus ?

    Wenn ja was muss ich denn jetzt alles auf meinem Linux-System installieren und kompilieren und keine Ahnung was damit ich die Beispielscripte aus den Examples benutzen kann ??? Und wie greift MH auf diese Informationen zu ???

    Wäre super wenn mir da jemand Ansatzweise den Zusammenhang erklären könnte - da ich leider kein LinuxGURU bin.

    Für ein paar Tipps schon mal Danke im Vorraus.

    Einen Kommentar schreiben:


  • McTao
    antwortet
    Zitat von Werner Beitrag anzeigen
    Hallo,

    Welchen Busmaster verwendest Du? Ich kann das mit einem DS9490 nicht bestätigen. Ich lese jetzt versuchsweise alle 30 sek aus und mh läuft ohne Probleme.
    Ich nutze auch den DS9490 an einem Debian XEN System. Ich habe noch keinen Grund gefunden, warum es so langsam ist, habe aber noch folgende Testmöglichkeiten (komme nur nicht dazu):
    Hochwertigere Kabel und aktive power zu verwenden. (Ich vermute daran liegts).

    Bin aber mit der asyncronen Lösung, welche seit Freitag läuft erst mal gut zufrieden.

    Gruss McTao (Andreas)

    Einen Kommentar schreiben:


  • Werner
    antwortet
    Hallo,
    Zitat von McTao Beitrag anzeigen
    Aber das zum lesen dieser Werte mh komplett stehen blieb und nicht mehr ansprechbar war (teilweise bis zu mehreren Minuten) war dann nicht mehr akzeptabel.
    Welchen Busmaster verwendest Du? Ich kann das mit einem DS9490 nicht bestätigen. Ich lese jetzt versuchsweise alle 30 sek aus und mh läuft ohne Probleme.
    Grüße
    Werner

    Einen Kommentar schreiben:


  • McTao
    antwortet
    Zitat von Werner Beitrag anzeigen
    Was sind denn vernünftige Werte?
    Hast recht wenn die Werte übermittelt werden, war der Inhalt schon vernünftig (also richtige Temperaturwerte). Aber das zum lesen dieser Werte mh komplett stehen blieb und nicht mehr ansprechbar war (teilweise bis zu mehreren Minuten) war dann nicht mehr akzeptabel.

    Gestern habe ich deshalb folgende Lösung umgesetzt:
    Ich habe mein TemperaturOWFS.pl aus dem codeVerzeichnis von mh genommen und als eigenständiges Script in meine crontab übernommen.

    Das übermitteln der Temperaturwerte mache ich jetzt (nicht wie geplant über eine Datei) mit groupswrite. D.h. die Temperaturen werden von einem externen Prozess (bei dem es egal ist, wie lange er dauert) auf den Bus gesendet.

    Ergebnis: mh wird nicht mehr ausgebremst beim lesen der Temperaturwerte und läuft wieder so flüssig wie es ohne owfs mal war.

    Umsetzung: Lesen der Daten mit ow.pm (ow::init und ow::read) und konvertieren der Daten dann zu EIS5 (code aus EIB_Item) und senden dieser dann per groupswrite auf den Bus.

    Gruss McTao (Andreas)
    Ich lese die Daten mit

    Einen Kommentar schreiben:


  • makki
    antwortet
    owfs verwenden.. digitemp ist IMHO eine Schönwetter-Applikation
    vernünftige Werte: 85,0° ignorieren, denn das sind nach Maxim Lesefehler..

    Edit: und die DS1920 sind seit Urzeiten EOL..

    Makki

    Einen Kommentar schreiben:


  • Werner
    antwortet
    Hallo,

    Zitat von McTao Beitrag anzeigen
    Allerdings bekomme ich nur vernünftige Werte, ...
    Was sind denn vernünftige Werte?

    Grüße
    Werner

    Einen Kommentar schreiben:


  • McTao
    antwortet
    Hallo,

    habe bisher eine Lösung mit
    realisiert (benutzen der Suchfunktion hier führt auch zum CodeBeispiel).

    Allerdings bekomme ich nur vernünftige Werte, wenn ich den USB-1Wire Adapter direkt abfrage (mit der Wartezeit, die mir meinen ganzen Misterhouse anhält), mit dem owfsserver bekomme ich es nicht hin.

    Genau aus obigen Gründen heraus bin ich im Moment dabei die von dir vorgeschlagene Lösung umzusetzen:

    OWFS läuft unabhängig von mh und schreibt die Werte in eine Datei. mh liest diese Datei und braucht nicht auf die langsamen Temperaturgeber zu warten. (Eigentlich sollte die Nutzung von owfsserver dieses auch schon entkoppeln, aber das funktioniert bei mir nicht.) (Hierzu gab es auch schon Artikel im Forum).

    Gruss McTao (Andreas)

    Einen Kommentar schreiben:


  • Werner
    antwortet
    Hallo tombu,

    misterhouse bietet Funktionen für Dateioperationen an. Schau Dir einmal file_changed und file_tail an, damit sollte sich deine Forderung lösen lassen.

    Grüße
    Werner

    Einen Kommentar schreiben:

Lädt...
X