Seite 3 von 3 ErsteErste 123
Ergebnis 31 bis 40 von 40

Thema: Misterhouse EIB5 Außentemperatur

  1. #31
    Registriert seit
    Jan 2005
    Ort
    Neuwied
    Alter
    56
    Beiträge
    80
    @Rak
    habe den Code eingefügt und jetzt kommen "vernünftige Werte".

    Ich bin nicht im Haus und kann erst heute Abend vergleichen ob die ETS im Gruppenbusmonitor die gleichen Zahlen darstellt.

    Ich habe mal versucht über Browser einen negativen Wert zu senden, das funktioniert jedoch nicht (ich probier es heute abend mit der ETS)

    http://nglux:8080/bin/SET;&html_list(group=$messwerte)?$stromzaehler=-50

    Hier die stats von mh im browser als Bsp:
    Stromzaehler states
    13/02/2008 09:15:52 30023 set_by=1.1.55target=$stromzaehler
    13/02/2008 09:15:46 -50 set_by=web [192.168.1.12]target=$stromzaehler
    13/02/2008 09:15:38 30022 set_by=1.1.55target=$stromzaehler
    13/02/2008 09:15:25 30021 set_by=1.1.55target=$stromzaehler
    13/02/2008 09:15:12 30020 set_by=1.1.55target=$stromzaehler
    13/02/2008 09:15:00 30019 set_by=1.1.55target=$stromzaehler
    13/02/2008 09:14:47 30018 set_by=1.1.55target=$stromzaehler
    13/02/2008 09:14:34 30017 set_by=1.1.55target=$stromzaehler
    13/02/2008 09:14:20 30016 set_by=1.1.55target=$stromzaehler
    13/02/2008 09:14:07 30015 set_by=1.1.55target=$stromzaehler

    Hut AB! Finde echt toll das Du Dir netterweise die Zeit genommen hast

    Grüsse

  2. #32
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Senden aus MH raus geht nicht auf den Bus, da die entsprechende Routine noch nicht geschrieben ist!

    Bisher habe ich nur decode geschrieben (vom Bus zu MH). encode muss ich noch schreiben. Wollte nur erstmal testen ob das so funktioniert.

    Teste das mal mit den negativen Werten aus der ETS heraus. Ich bin zuversichtlich, dass das funktioniert.

    Und soviel Arbeit ist das nicht gewesen. Waren ja nur drei neue Zeilen und ein wenig Copy&Paste. Der Rest (Variablen anlegen usw.) ist recht clever über objektorientierte Klassen gelöst.

    Wenn das funktioniert aus der ETS, dann mache ich mich an das Senden aus MH.

    LG
    Hier könnte ihre Werbung stehen.

  3. #33
    Registriert seit
    Jan 2005
    Ort
    Neuwied
    Alter
    56
    Beiträge
    80
    nochmals danke
    ich werde es heute abend testen

    grüsse

  4. #34
    Registriert seit
    Jan 2005
    Ort
    Neuwied
    Alter
    56
    Beiträge
    80
    @rak
    ich bin gerade zuhause und habe über die ets versucht den datentyp 7.001 2byte zähler ohne vorzeichen zu senden (eine negative zahl: -50)
    doch die ets lässt dies nicht zu und sagt bitte wert zwischen 0-65535 einzugeben.

    wenn ich einen anderen datentyp wähle: 2byte und dann -50 sende passiert was:
    der gruppenmonitor der ets zeigt mir dann CE 00 | -2621,44 an

    mh zeigt im log an:
    13/02/2008 12:20:48 EIB write from 1.1.30 to 0/1/8 : "2"
    13/02/2008 12:20:49 EIS10 for 0/6/3: >-12800<


    hoffe diese Infos helfen Dir
    grüsse

  5. #35
    Registriert seit
    Jan 2005
    Ort
    Neuwied
    Alter
    56
    Beiträge
    80

    universalschnittstelle 4fach

    zur info,
    ich verwende für den stromzähler eine

    berker Universallschnittstelle 4-fach

    mit der Funktion Binäreingang und dieser zählt die Impulse des S0-Ausgangs meines Stromzählers mit den werten 0-65535

  6. #36
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Wenn dein Aktor nur 16bit unsigned int sendet, dann implementieren wir das doch auch so .

    Code:
    # EIB10_Item: 16-bit unsigned 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 $res = ($data[1] << 8) | $data[2];
    
        &main::print_log("EIS10 for $self->{groupaddr}: >$res<");
        return $res;
    }
    Der encode Part kommt entweder heute abend, oder nächste Woche. Bin ab morgen auf einer Schulung.

    Aber den Wert vom Bus kannst du schon mal in MH auswerten. Das ist doch schon mal was. Ich freue mich auf das Stromverbrauchspostprozessing Code Sniplet, dass du jetzt schreibst . Halt mich im Loop.

    LG
    Hier könnte ihre Werbung stehen.

  7. #37
    RaK ist offline Registrierter Benutzer
    Registriert seit
    Oct 2005
    Ort
    Neuss
    Alter
    51
    Beiträge
    229
    Code:
    sub encode {
        my ($self, $state) = @_;
    
        return([0, ($state & 0xff00) >> 8, $state & 0xff]);
    }
    Damit sollte auch das Senden aus MH heraus funktionieren. Teste es mal und berichte ob es klappt.

    That's it. Have Fun.
    Hier könnte ihre Werbung stehen.

  8. #38
    Registriert seit
    Jan 2005
    Ort
    Neuwied
    Alter
    56
    Beiträge
    80
    Ich schaue heute abend mit der ets im gruppenmonitor bus ob da die zahl gesendet wird.
    danke

    @Rak, ich habe leider keine Zeit für ein "Code" Snippelt für mh um den Stromverbrauch anzuzeigen, bzw bin leider nicht fitt im perl programmieren...

    Was ich bis jetzt gemacht habe ist, das ich mhsend missbrauche um die Daten an cacti weiterzugeben und lasse mir dort den stromverbrauch anzeigen.

    werde später mal posten, wie ich das gemacht habe...
    grüsse

  9. #39
    Registriert seit
    Jan 2005
    Ort
    Neuwied
    Alter
    56
    Beiträge
    80
    Hi RaK,
    senden geht auch.
    Dann kannst Du den Code bitte der mh Mailingliste zur Verfügung stellen
    Grüsse


    Zitat Zitat von RaK Beitrag anzeigen
    Code:
    sub encode {
        my ($self, $state) = @_;
    
        return([0, ($state & 0xff00) >> 8, $state & 0xff]);
    }
    Damit sollte auch das Senden aus MH heraus funktionieren. Teste es mal und berichte ob es klappt.

    That's it. Have Fun.

  10. #40
    Registriert seit
    Dec 2004
    Ort
    Wiener Neudorf
    Beiträge
    4

    Bitte um kurze Unterstützung, bin ich zu doof ?

    Habe über Linux und eidb usw. eine Zimmertemparatur wert wie folgt:

    0C29 = 21.3 Grad laut http://www.tapko.de/index.php/Tools/31/0/

    Habe im Misterhouse die Funktion gefunden

    Datei EIB_Items.pm

    sub decode {
    my ($self, @data) = @_;
    my $res;

    unless ($#data == 2) {
    &main: print_log("Not EIS type 5 data received for $self->{groupaddr}: \[@data\]") if $main::config_parms{eib_errata} >= 2;
    return;
    }
    my $sign = $data[1] & 0x80;
    my $exp = ($data[1] & 0x78) >> 3;
    my $mant = (($data[1] & 0x7) << 8) | $data[2];

    $mant = -(~($mant - 1) & 0x7ff) if $sign != 0;
    $res = (1 << $exp) * 0.01 * $mant;
    return $res;
    }


    Meine Frage was steht denn in $data[1] und $data[2] in Bezug auf meinen Wert 0C29 oder kann ich das garn nicht so rechnen ? Ich nehme an, wenn die @data richtig befüllt wurde steht dann in $res = 21.3 oder ?

    Bitte um kurze Hilfe. Danke

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
  •