Ankündigung

Einklappen
Keine Ankündigung bisher.

MisterHouse & Temperaturabfrage über DS1920

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

    #31
    Hallo,
    Zitat von tombu Beitrag anzeigen
    Code:
    use Owfs_Item;
    use Owfs_Thermostat;
    
    if ($New_Minute) {
    my $at = OW::get('/10.0DE4ED010800/temperature');
    set $TAussentemperatur $at;
    print_log "### Aussentemperatur".$TAussentemperatur->state();
    }
    startet MH und gibt mir aber jede volle Minute ein
    Code:
    08/20/10 03:39:00 AM: Saving object states ... done
    inside temp = F
    inside humid = %
    aus.
    Die Ausgabe passt nicht zum Code, vielleicht kannst Du dem nachgehen. Mit Deinem Interface kann ich Dir nicht helfen, da gibt es Berufenere;-)
    Was Du noch machen kannst:
    1. owfs auslesen. Irgendetwas in der Art
      Code:
      my $data = file_read("/mnt/1wire/10.0DE4ED010800/temperature");
      print_log $data;
    2. digitemp verwenden. Wahlweise mittels systemcall von mh aus, oder per externem Script und hier wiederum je nach Laune
      1. über das Filesystem wie Marc Merlin hier
      2. über den Bus wie Andreas
      3. mit mhsend
      4. mit oxc

    an mh übergeben.

    Grüße
    Werner

    Kommentar


      #32
      Abschliessend, die unterstützung für den "Schönwetter-Bit-bang-Adapter" wurde AFAIR irgendwann im owfs aufgegeben, deswegen ist die Zeile im owfs-Wiki auch mal durchgestrichen (das es ein solcher ist, vermutete ich seit dem ersten owfs-Debug )
      Details auf der owfs-Mailingsliste..

      Die gepostete Zeichnung ist für die DS18B/S20 jedenfals grottenfalsch, den DS1820 (ohne B/S) gibts seit fast einem gefühlten Jahrzehnt nicht mehr. "we don't need this leg" stimmt einfach nicht, sagt Dallas/Maxim.
      We need this leg! -> Bitte auf GND legen falls parasitär.. Der Rest der falschen Schönwetterschaltung (funktioniert nur an einem echten seriellen Port!) wurde ja schon kommentiert. Sowas kann man machen, aber IMHO nur wenn man zuviel Zeit und viel Spass an der Fehlersuche hat..

      Makki
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        #33
        Verbindungsabbruch - USB Hostadapter DS9490R

        Hallo,

        nun habe ich eine USB Hostadapter DS9490R gekauft und einen Temperaturfühler an diesem angeschlossen und ehrlich gesagt bin ich keinen Schritt weiter. Ich kann den 1wirebus mounten bekomme mit einem 'ls' den Fühler und den Contoller angezeigt. Eine Minute später werden beide NICHT MEHR ANGEZEIGT:

        Ich hoffe mir kann da jemand einen TIP geben:

        1) 'owfs einhängen'
        Code:
        pumuckl:/mnt # /opt/owfs/bin/owfs -u -m /mnt/1wire
        DEFAULT: ow_usb_msg.c:DS9490_open(263) Opened USB DS9490 bus master at 1:2.
        DEFAULT: ow_usb_cycle.c:DS9490_ID_this_master(191) Set DS9490 1:2 unique id to 81 D6 1D 2C 00 00 00 2E
        2) Ein Temperaturfühler wurde gefunden
        Code:
        pumuckl:/mnt # ls -1 1wire/
        10.0DE4ED010800
        81.D61D2C000000
        alarm
        bus.0
        settings
        simultaneous
        statistics
        structure
        system
        uncached
        FAZIT:
        Der Temperaturfühler ist da -> 10.0DE4ED010800
        Der DS9490R ist da -> 81.D61D2C000000


        3) owfsserver starten
        Code:
        /opt/owfs/bin/owserver -u -p 3030
        4) zum testen mal eine Temperatur auslesen
        Code:
        pumuckl:/mnt # /opt/owfs/bin/owread -C -s localhost:3030 10.0DE4ED010800/temperature
        ServerRead: Data error on 10.0DE4ED010800/temperature
        Auch dem MH Eintrag kalappert es nicht:
        Mit dem Beispiel von Werner
        Code:
        use Owfs_Item;
        use Owfs_Thermostat;
        
        
        $tempWZ = new Owfs_DS18S20 ("10.0DE4ED010800", "WZ", 2 );
        if (new_second 60) {
          set $TempWZ get_temperature $tempWZ;
          print_log " Wohnzimmertemperatur: " . state $TempWZ;
        }
        Startet mein MH NICHT und gibt aus:

        Code:
        Error in user code file ./../data/mh_temp.user_code
        
          11/04/10 08:52:29 PM: Can't locate object method "new" via package "Owfs_DS18S20" (perhaps you forgot to load "Owfs_DS18S20"?) at (eval 572) line 416.
        Hat da jemand eine IDEE was MH von mir will ?????

        Kommentar


          #34
          MisterHouse & 1-Wire funktioniert - Leider keine Werte in der Visualisierung

          Soo.

          Der Zugriff auf die 1-Wire Temperaturfühler funktioniert nun.
          Hardware
          - USB Hostadapter DS9490R
          - Temperaturfühler DS2450 mittels gelb/weissem EIB-Kabel am USB-Adapter angeschlossen

          Dann den owserver starten. Der 1-Wire Bus muss übrigens nicht gemountet werden.
          Den Port des owservers unbedingt auf 3030 belassen
          Code:
          /opt/owfs/bin/owserver -u -p 3030
          Nun können die /der Fühler angezeigt werden:
          Code:
          /opt/owfs/bin/owdir -s localhost:3030
          Das ergibt dann:
          Code:
          /10.08B8ED010800
          /81.D61D2C000000
          /bus.0
          /uncached
          /settings
          /system
          /statistics
          /structure
          /simultaneous
          /alarm
          Die Temperatur vom Sensor kann nun mittels:
          Code:
          /opt/owfs/bin/owread -s localhost:3030 10.08B8ED010800/temperature
          abgefragt werden.

          Konfiguration von MisterHouse:

          In die 'mh.private.ini' muss der Port des owservers angegeben werden:
          Code:
          owfs_port = 3030
          Mit einer anderen Portnummer z.B. 3000 habe ich es nicht hinbekommen.

          Als nächstes kann mit diesem Beispiel die Temperatur ausgelesen werden:
          Code:
          use Owfs_Item;
          use Owfs_Thermostat;
          
           $sensor = new Owfs_Item ( "10.08B8ED010800");
           $ds2450 = new Owfs_DS2450 ( "10.08B8ED010800", "Wohnzimmer", "A", 2 );
          
          my $temp2;
          
          if (new_second 10) {
          # $temp2 = $sensor->get( "temperature");
           $temp2 = $ds2450->get( "temperature");
          
           print_log "Die Temperature im Wohnzimmer ist $temp2 °C";
          
          }
          Beide Items 'Owfs_Item' und auch das 'Owfs_DS2450' sollten funktionieren.
          Wenn also MH gestartet wird erscheint in der Konsole alle 10Sekunden ein:
          Code:
          11/29/10 09:30:10 PM Die Temperature in Raum2 ist           12 °C
          Leider habe ich es noch nicht hinbekommen das die Temperatur in der MH Weboberfläche angezeigt wird. Wenn ich mir in der 'Browse Items' Seite die 'Owfs Items' anzeigen möchte bricht MisterHouse mit der folgenden Meldung ab.

          Code:
          Can't locate object method "state" via package "Owfs_DS2450" at /usr/local/src/mh/bin/./.                                           ./lib/http_server.pl line 1753, <GEN539> line 12.
          Vielleicht hat jemand dafür noch einen Tip wie die Werte in der Webseite angezeigt werden können.

          Kommentar


            #35
            Zu mh kann ich Dir wenig sagen.
            Aber das ist weder ein DS1920 (Temperature iButton) noch ein DS2450 (Quad AD) sondern definitiv ein DS18S20

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar

            Lädt...
            X