Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 15 von 40

Thema: Misterhouse EIB5 Außentemperatur

  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;
    }

  8. #8
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Hast du mittlerweile einen Log von vbusmonitor? Mich wuerde interessieren was da wirklich ueber den Bus geht.

    Der Code von Tapco verwirrt mich erst mal. Mein nächster Versuch wäre den Tapco Code zu implementieren und zu schauen was bei dir ueber den Bus geht. Ich habe leider noch keine Temperaturen <0 Grad .

    LG
    Hier könnte ihre Werbung stehen.

  9. #9
    Registriert seit
    Oct 2003
    Ort
    Breitscheid (Rheinland/Pfalz)
    Beiträge
    20
    Im Misterhouse kannst du direkt über den Web-Browser einen Wert losschicken und gleich wieder empfangen. Bei positiven Werten steht dann genau der Wert da, der auch gesetzt wurde. Bei negativen Werten kommt Schrott. Der Wert der dabei auf den Bus gesendet wird, wird von Tapko korrekt interpretiert.

    Bei mir sieht das Setzen so aus:
    http://..../mh/bin/SET;&html_list(group=$Weather)?$Aussentemp_Nord=-3.33
    Weather und Aussentemp_Nord sind von mir definierte Gruppen/Objekte.

  10. #10
    Registriert seit
    Sep 2006
    Ort
    München
    Alter
    52
    Beiträge
    54
    Zitat Zitat von RaK Beitrag anzeigen
    HIch habe leider noch keine Temperaturen <0 Grad .
    Jep ist leider zu warm

    Könnt ihr eigentlich mit der ETS auf den Bus während der eibd läuft? Klappt bei mir nicht - sonst könnte man einfach mit der ETS was negatives senden?

    @Mike
    Dem Aufruf über misterhouse würd ich nicht trauen, der verbummelt vielleicht gleich zwei mal den Wert!?

    Gruß
    Sven

  11. #11
    Registriert seit
    Oct 2003
    Ort
    Breitscheid (Rheinland/Pfalz)
    Beiträge
    20
    Doch doch, dem Senden kann man vertrauen. Ich hatte den Wert den Misterhouse auf den Bus sendet mit Tapko geprüft. Das war ok.

    Mike

  12. #12
    Registriert seit
    Oct 2003
    Ort
    Breitscheid (Rheinland/Pfalz)
    Beiträge
    20
    Das Problem für die falschen Werte kommt daher, da bei der 2er-Komplementbildung in Perl mit 32Bit gearbeitet wird, aber eigentlich ja nur die 11Bit gemeint sind. Ein Ausmaskieren der störenden Bits behebt dann das Problem.

    In lib/EIB_Items.pm muss in der (schon oben gezeigten) Dekodierungsfunktion die Zeile:
    Code:
    $mant = -~($mant - 1) if $sign != 0;
    durch

    Code:
    $mant = -(~($mant - 1) & 0x7ff) if $sign != 0;
    ersetzt werden. Dann geht's.

    Mike

  13. #13
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Das ist der Vorteil von OpenSource! Super.

    Schickst du den Bugfix an die Mailingliste, oder soll cih das machen?

    LG
    Hier könnte ihre Werbung stehen.

  14. #14
    Registriert seit
    Oct 2003
    Ort
    Breitscheid (Rheinland/Pfalz)
    Beiträge
    20
    Ich schicke den Bugfix morgen los. Wobei ich Patches immer direkt an Mattr Williams schicke ...

    Mike

  15. #15
    Registriert seit
    Sep 2005
    Ort
    Alzey
    Alter
    50
    Beiträge
    12

    EIB5 sendet nicht

    Hallo,

    Keine Ahnung auf welchem Stand die EIB_Items.pl sein müsste, aber kann es sein dass in der Orginalen (09/09/2005) die encode-Rountine für den EIS-Typ 5 fehlt. Mein MH sendet nämlich keinerlei EIS5-Werte auf den Bus, bei EIS6 funktioniert es aber.

    Gruß

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
  •