Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 16 bis 30 von 40

Thema: Misterhouse EIB5 Außentemperatur

  1. #16
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Ich meine das ist so. Ich weiss nicht wer die geschrieben hat (war ich das?) . Ich meine ja, weil ich die Aussentemperatur übers Netz lese und von MH auf den Bus schicke. Dargestellt wird sie dann auf dem TS2+.

    Code:
    sub encode {
        my ($self, $state) = @_;
        my $data;
    
        my $sign = ($state <0 ? 0x8000 : 0);
        my $exp  = 0;
        my $mant = 0;
    
        $mant = int($state * 100.0);
        while (abs($mant) > 2047) {
            $mant = $mant >> 1;
            $exp++;
        }
    
        $data = $sign | ($exp << 11) | ($mant & 0x07ff);
    
        return([0, $data >> 8, $data & 0xff]);
    }
    Geändert von RaK (13.02.08 um 14:44 Uhr)
    Hier könnte ihre Werbung stehen.

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

    Eib5

    Perfekt!

    Endlich kann meine Frau sehen, wieviel Anrufe Ihr während ihrer Shopping-Tour entgangen sind.

    Danke

  3. #18
    Registriert seit
    Sep 2006
    Ort
    München
    Alter
    52
    Beiträge
    54
    Zitat Zitat von Mike Beitrag anzeigen
    Code:
    $mant = -(~($mant - 1) & 0x7ff) if $sign != 0;
    Hm, ich habe den Code entsprechend geändert, aber bei negativen Werten kommt noch immer das Falsche:
    -1.84467440737095e+17

    Funktioniert das bei euch?

    Gruß
    Sven

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

    neue Version

    Ja, sieht bei mir ähnlich aus.

    Ich erhalte auch Rundungsfehler. Wenn ich den Wert 125 senden will, wird 124.96 gesendet.



    Hat schon jemand die 2.104 Version ausprobiert.
    Wie es aussieht haben ja eine Reihe von Ralf's Änderungen Einzug gefunden. Also, Empfehlenswert ???

  5. #20
    Registriert seit
    Sep 2006
    Ort
    München
    Alter
    52
    Beiträge
    54
    Moin,
    ich hab eben nochmal einen kleinen Test gemacht...

    1) Wetterstation sendet negativen Wert -> mh zeigt -1.84467440737095e+17 an
    2) /mh/bin/SET;&html_list(group=$Wetter)?$Aussentemperatur=-3,33 -> mh zeigt -3.3 an

    Gruß
    Sven

  6. #21
    Registriert seit
    Oct 2003
    Ort
    Breitscheid (Rheinland/Pfalz)
    Beiträge
    20
    @Sallyvan
    In jedem Fall sollte auf 2.104 aktualisiert werden. Immerhin sind da einige neue EIB Items hinzugekommen und auch ein paar Bugs gefixt.

    @a20gate
    Kannst du ermitteln, was auf dem Bus gesendet wird, wenn mh den falschen Wert anzeigt? Also mit vbusmonitor1 mal den Traffic mitschneiden ...

    Mike

  7. #22
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Zitat Zitat von a20gate Beitrag anzeigen
    2) /mh/bin/SET;&html_list(group=$Wetter)?$Aussentemperatur=-3,33 -> mh zeigt -3.3 an
    Das heisst ja nur,dass MH sowohl beim codieren und decodieren den gleichen Fehler macht .

    Sorry, ich kann das gerade nicht testen, bin ausser haus diese Woche.
    Hier könnte ihre Werbung stehen.

  8. #23
    Registriert seit
    Oct 2003
    Ort
    Breitscheid (Rheinland/Pfalz)
    Beiträge
    20
    Ich kann das Problem nicht nachvollziehen. Ich habe mit -125.04, -6.6 und -0.4 getestet. Bei diesen Werten funktioniert es. Die Werte werden von ausserhalb, also zur Sicherheit ohne MH-Enkoder, gesendet.

    Rundungsfehler sind ganz normal. Es sind ja nur 2 Bytes und damit lassen sich nicht alle Werte exakt darstellen.

    Habt ihr mal die 2.104 ausprobiert? Dort ist die Änderung schon enthalten.

    Gibt es noch jemand, bei dem es auch nicht funktioniert und der mal das Bus-Telegram dazu aufzeichnen kann?

    Mike

  9. #24
    Registriert seit
    Sep 2006
    Ort
    München
    Alter
    52
    Beiträge
    54
    So diese Nacht wars mal wieder kalt...

    vbusmonitor1:
    Code:
    LPDU: BC 11 65 2E 01 E3 00 80 00 0A 71 :L_Data low from 1.1.101 to 5/6/1 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 00 0A 
    LPDU: BC 11 65 2E 01 E3 00 80 00 00 7B :L_Data low from 1.1.101 to 5/6/1 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 00 00 
    LPDU: BC 11 65 2E 01 E3 00 80 87 F6 0A :L_Data low from 1.1.101 to 5/6/1 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 87 F6
    mh:
    Code:
    09/11/2007 21:07:33  EIB write from 1.1.101 to 5/6/1:: "0.1"
    09/11/2007 21:12:33  EIB write from 1.1.101 to 5/6/1:: "0"
    09/11/2007 21:17:33  EIB write from 1.1.101 to 5/6/1:: "-1.84467440737095e+17"
    Tapco:
    0.1
    0
    -0.1

    Gruß
    Sven

  10. #25
    Registriert seit
    Oct 2003
    Ort
    Breitscheid (Rheinland/Pfalz)
    Beiträge
    20
    Bei mir kommt:
    Code:
    2007-11-10 11:27:04 -0.1 set_by=0.0.0target=$Aussentemp_Nord
    2007-11-10 11:26:59 0.1 set_by=0.0.0target=$Aussentemp_Nord
    die 0° Meldung erscheint komischerweise nicht im Log (wenn man im Browser auf den Temperaturwert klickt).

    Da steckt irgendwo der Wurm drin. Kannst du mir die ganze lib/EIB_Items.pm mal als PN schicken? Dann sehe ich mir das mal an. Vielleicht hast du dich irgendwo vereditiert .

    Alternativ versuche doch mal die Zeile richtig schrottig zu machen, um zu sehen ob du die richtige Datei geändert hast. Z.B. indem du einfach schreibst:
    Code:
    $mant = 0;
    . Dann sollte immer 0 rauskommen. Wenn was anderes herauskommt, dann warst du in der falschen Datei. Oder hol dir die EIB_Items.pm aus dem misterhouse-2.104 Paket.

    Testen kannst du dann mit:
    Code:
    groupwrite ip:localhost 5/6/1 87 f6
    dann sollte -0.1 ankommen.

    Mike

  11. #26
    Registriert seit
    Sep 2006
    Ort
    München
    Alter
    52
    Beiträge
    54
    Super Tipp: "$mant = 0;", das war mal wieder ein Eigentor... ich habe noch eine EIB_Items.pm unter mh-local/code.

    Danke für die Geduld

    Gruß
    Sven

  12. #27
    Registriert seit
    Jan 2005
    Ort
    Neuwied
    Alter
    56
    Beiträge
    80

    frage nach datentyp für zählerwert 2byte in EIB_Item.pm

    Hallo Ihr Lieben,
    ich hoffe ich poste hier im richtigen Thread...
    ich will meinen Stromzähler (2byte, Zählwert) an mh übermitteln um dann die daten weiter in capti darzustellen.
    Hierzu habe ich den stromzähler als EIB5 Item definiert.
    Hier kommen jedoch nur werte mit komma raus. z.B. 45.21. (denke der EIB5 Typ ist nur für Temperaturen usw.)

    Da ich mit mit der EIB Materie nicht so gut auskenne, habe ich ein wenig recherchiert und denke der Datentyp ist in der EIB_Item.pm noch nicht definiert.

    Im KNX Dokument Interworking Datapoint types habe ich den richtigen gefunden.

    Kapitel 9
    2-octet unsigned value (nennt sich dann wohl EIS 10 unsigned Typ)

    Kann jemand netterweise, diesen für mich in die EIB_Item.pm hineinprogrammieren?

    Danke in Vorraus.

    @Mike ich wohne in Deiner Nähe (Neuwied), hast Du mal Lust auf ein Treffen?

  13. #28
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Stehe bald vor dem gleichen Problem ,den ich habe mir einen neuen Binaereingang in der Bucht geschossen.

    Wenn das noch nicht geht, dann gibt es bald eine Lösung .

    Wenn es schnell gehen muss, dann empfehle ich eine Anfrage in der MH Mailingliste unter
    http://www.nabble.com/Misterhouse---User-f14394.html

    LG
    Hier könnte ihre Werbung stehen.

  14. #29
    Registriert seit
    Jan 2005
    Ort
    Neuwied
    Alter
    56
    Beiträge
    80
    @RaK
    dringend ist es nicht. Ist halt nur für die Statistik um den Stromverbrauch zu sehen.

    Würde mich freuen, wenn Du den EIS Typen implementieren könntest!

    danke für den Tipp mit der mailingliste (bin da schon seit 2002 drin :-))

    THANKS

    Zitat Zitat von RaK Beitrag anzeigen
    Stehe bald vor dem gleichen Problem ,den ich habe mir einen neuen Binaereingang in der Bucht geschossen.

    Wenn das noch nicht geht, dann gibt es bald eine Lösung .

    Wenn es schnell gehen muss, dann empfehle ich eine Anfrage in der MH Mailingliste unter
    http://www.nabble.com/Misterhouse---User-f14394.html

    LG

  15. #30
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    @commander:
    Probier mal folgendes in EIB_Items.pm hinzuzufuegen (ne Sicherheitskopie ist nie ne schlechte Idee!) und sende aus der ETS mal einen EIB10 Wert. Erst mal einen positiven und später einen negativen.

    @all: Kann mir einer der den EIB Standard kennt mal erklären wie ich auf dem Bus unterscheide, ob es sich um einen signed oder unsigned Wert handelt. In der Interworking Standards.pdf finde ich dazu nichts. DOrt ist unter EIS10 beides definiert.

    In MH muesste er mit den paar Zeile ankommen. Teste das mit ein paar print_log zeilen.

    Obs funktioniert kann ich erstmal nicht garantieren . Hab keinen EIB10 Aktor und keine ETS parat, oder kann man nen TS2+ so konfigurieren, dass er bei Tastendruck auf eine Wippe einen festen EIB10 Wert sendet?

    Code:
    # EIB10_Item: 16-bit signed integer
    
    package EIB10_Item;
    
    @EIB10_Item::ISA = ('EIB_Item');
    
    sub eis_type {
        return '10';
    }
    
    sub decode {
        my ($self, @data) = @_;
        my $res;
    
        unless ($#data == 2) {
            &main::print_log("Not EIS type 10 data received for $self->{groupaddr}: \[@data\]") if $main::config_parms{eib_errata} >= 2;
            return;
        }
        my $sign = $data[1] & 0x80;
        my $res = (($data[1] & 0x7f) << 8) | $data[2];
        $res = -(~($res - 1) & 0x7fff) if $sign != 0;
    
        &main::print_log("EIS10 for $self->{groupaddr}: >$res<");
        return $res;
    }
    Hier könnte ihre Werbung stehen.

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
  •