Ergebnis 1 bis 15 von 40

Thema: Misterhouse EIB5 Außentemperatur

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registriert seit
    Sep 2006
    Ort
    München
    Alter
    52
    Beiträge
    54

    Misterhouse EIB5 Außentemperatur

    Moin,
    ich habe scheinbar ein Problem mit Temperaturen unter 0°C. Die Außentemperatur habe ich als EIB5 angelegt. Unter 0°C kommt konstant folgender Wert: -1.84467440737095e+17.

    21/10/2007 20:03:56 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 19:58:56 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 19:53:56 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 19:48:56 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 19:43:55 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 19:18:55 0.2 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 19:08:55 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 19:03:55 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 18:58:55 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 18:53:55 0.2 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 18:48:54 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 18:38:54 -1.84467440737095e+17 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 18:33:54 0.2 set_by=1.1.101target=$Aussentemperatur
    21/10/2007 18:28:54 0.4 set_by=1.1.101target=$Aussentemperatur


    Irgendwelche Ideen?

    Gruß
    Sven

  2. #2
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Berechnet wird der Wert in mh/lib/EIB_Items.pm in der Klasse EIB5 und deren Prozedur decode mit folgendem Code Sniplet:

    Code:
        my $sign = $data[1] & 0x80;
        my $exp = ($data[1] & 0x78) >> 3;
        my $mant = (($data[1] & 0x7) << 8) | $data[2];
    
        $mant = -~($mant - 1) if $sign != 0;
        $res = (1 << $exp) * 0.01 * $mant;
    Wenn mir jemand mal nen Link schickt wo das genaue Format von EIS5 erklaert ist, dann kann ich das mal checken.

    Evt. sieht es ja auch jemand sofort .
    Hier könnte ihre Werbung stehen.

  3. #3
    Registriert seit
    Oct 2003
    Ort
    Breitscheid (Rheinland/Pfalz)
    Beiträge
    20
    @RaK: Das Code Snippet sieht ganz ok aus. Die Beschreibung der EIS-Typen findet man in 3_7_1_Interworking Standards.pdf der EIB-Spezifikation Volume 3. Das gab's früher mal zum Download bei der EIBA.

    @a20gate: Was hast du denn für einen Messwertaufnehmer. Kann es sein das der nur bis 0°C spezifiziert ist? Kannst du mal mit vbusmonitor1 o.ä. die Bus-Kommunikation für die Übertragung negativer Werte aufzeichnen?

    Grüße
    Mike

  4. #4
    Registriert seit
    Sep 2006
    Ort
    München
    Alter
    52
    Beiträge
    54
    @Mike

    Der Messwert kommt von einer Theben Wetterstation und wird auf einem Berker IQ korrekt angezeigt. Ich habe allerdings noch keinen Monitor mitlaufen lassen, da ich im Moment keinen Zugriff auf das System habe...

    Gruß
    Sven

  5. #5
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Ich debugge gerade den code. Für Werte unter 0 Grad komme ich auf "unsinnige" Werte, wenn ich das mit dem EIB Konverter von Tapko vergleiche. Ich checke das und melde mich sobald ich was habe. Ich probiere das diese Woche hinzubekommen. LG
    Hier könnte ihre Werbung stehen.

  6. #6
    Registriert seit
    Aug 2001
    Ort
    Brussels - Belgium
    Beiträge
    369

    EIS are gone. Long live Datapoint Types

    It's only a new name and a new approach to the same thing.
    But, the Interworking for KNX (and EIB) can still be downloaded, following this link:
    http://www.knx.org/fileadmin/downloa...nt%20types.pdf
    Mr. Steven De Bruyne
    System Department - KNX Association

  7. #7
    Registriert seit
    Sep 2006
    Ort
    München
    Alter
    52
    Beiträge
    54
    Nun das Coding bei Tapco sieht auch anders aus...

    Code:
    function Eis52Value(eis5)
    {
      value = eis5 & 0x07ff;
      if ((eis5 & 0x08000) != 0)
      {
        value |= 0xfffff800;
        value = -value;
      }
      value <<=  ((eis5 & 0x07800) >> 11);
      if ((eis5 & 0x08000) != 0)
        value = -value;
      
      return value;
    }
    
    function Value2Eis5(value)
    {
      eis5 = 0;
      exponent = 0;
      
      if (value < 0)
      {
        eis5 = 0x08000;
        value = -value;
      }  
      while (value > 0x07ff)
      {
        value >>= 1;
        exponent++;
      }
      if (eis5 != 0)
        value = - value;
      
      eis5 |= value & 0x7ff;
      eis5 |= (exponent << 11) & 0x07800;
      return eis5 & 0x0ffff;
    }

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •