Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Misterhouse sendet doppelte Telegramme!?

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

    - √ - Misterhouse sendet doppelte Telegramme!?

    Hallo,
    ich bräuchte mal wieder einen Rat, könnte jemand der sich mit perl auskennt und nicht nur wie ich per copy/paste arbeitet da mal drüber schauen.

    Zum Thema, ich habe mit mit Rak zusammen ein "Szenen" Scipt sprich "button" entworfen, also ich habe es gefordert, er hat es geschrieben, wenn ich jetzt die interne MH GA "clicke" führt er auch das Scipt aus, allerdings durchläuft er dieses oder meine pl zeile zweimal!

    Hintergrund der ganzen Sache ist das mich das bei einem Szenenaufruf ja nicht stören würde, aber wenn ich den IR-Sender damit anfahre um meine Anlage zu steuern bedeutet dieses das es gleich zweimal lauter oder zwei Sender weiter geschaltet wird.

    Ich hänge mal das entsprechende Script sowie meine .pl und Screenshoots an, wobei die im HTML eingebunden Grafiken nicht mehr per SzenenItem angesprochen werden sonder direkt im HTML code die "push" buttons von mh schon:
    Code:
    # EIB61_Item: "scaling". Relative values 0-255 with 8 bit resolution
    
    package EIB61_Item;
    
    @EIB61_Item::ISA = ('EIB_Item');
    
    sub eis_type {
        return '6.1';
    }
    
    sub decode {
        my ($self, @data) = @_;
        my $res;
    
        unless ($#data == 1) {
            &main::print_log("Not EIS type 6.1 data received for $self->{groupaddr}: \[@data\]") if $main::config_parms{eib_errata} >= 2;
            return;
        }
        $res = sprintf("%.0f", $data[1] );
        return $res;
    }
    
    sub encode {
        my ($self, $state) = @_;
        my $newval;
        if ($state =~ /^(\d+)$/) {
            $newval = $1;
        }
        elsif ($state =~ /^\+(\d+)$/) {
            $newval = $self->{state} + $1;
            $newval = 255 if ($newval > 255 );
        }
        elsif ($state =~ /^\-(\d+)$/) {
            if ($self->{state} < $1) {
                $newval = 0;
            }
            else {
                $newval = $self->{state} - $1;
            }
        }
        elsif ($state =~ /^(\d+)\%$/) {
            $newval = $1;
        }
        else {
            print "Invalid state for EIS type 6: \'$state\'\n";
            return;
        }
        my $byte = sprintf ("%.0f", $newval );
        return([0, int $byte]);
    }
    
    # set receive -- detected a "read" or "write" message on the bus.  For
    # readable actuators, don't trust the values in "write" messages, as
    # they may not have been accepted by the actuator. So if it is a
    # write, and the actuator is readable, generate a read request to
    # obtain the actual value from the actuator
    
    sub set_receive {
        my ($self, $state, $set_by, $target, $read) = @_;
    
        if (!$read && $self->{readable}) {
            $self->delayed_read_request();
        }
        else {
            $self->SUPER::set_receive($state, $set_by, $target);
        }
    }
    Code:
    #Szenen definitionen in Misterhouse
    
    
    tie_event $Wasserbedienung 'if ($state eq ON) {set $Wasserbedienung OFF; set $Wasser ON}';
    tie_event $TV 'if ($state eq ON) {set $TV OFF; set $Szeneneingang 2}';
    tie_event $Schlafen 'if ($state eq ON) {set $Schlafen OFF; set $SzeneneingangTS2_ohnekinder 1}';
    tie_event $Nachtruhe 'if ($state eq ON) {set $Nachtruhe OFF; set $SzeneneingangTS2_ohnekinder 0}';
    tie_event $Test 'if ($state eq ON) {set $Test OFF; set $Arbeitszimmer ON; set $Kueche_wert 150; set $Essen_Rollladen 150}';
    tie_event $Pioneer_Taster 'if ($state eq ON) {set $Pioneer_Taster OFF; set $AnlagePioneer_S ON}';
    tie_event $Pioneer_lauter 'if ($state eq ON) {set $Pioneer_lauter OFF; set $AnlagePioneer_laut ON}';
    tie_event $Pioneer_leiser 'if ($state eq ON) {set $Pioneer_leiser OFF; set $AnlagePioneer_leise ON}';
    tie_event $Pioneer_Aux    'if ($state eq ON) {set $Pioneer_Aux OFF; set $AnlagePioneer_mAux ON}';
    tie_event $Pioneer_Radio  'if ($state eq ON) {set $Pioneer_leiser OFF; set $AnlagePioneer_R ON}';
    tie_event $Pioneer_Sender 'if ($state eq ON) {set $Pioneer_Sender OFF; set $AnlagePioneer_Sender ON}';
    tie_event $Pioneer_Aux    'if ($state eq ON) {set $Pioneer_Aux OFF; set $AnlagePioneer_mAux ON}';
    tie_event $Pioneer_Radio  'if ($state eq ON) {set $Pioneer_leiser OFF; set $AnlagePioneer_R ON}';
    tie_event $Fernseher_schalten 'if ($state eq ON) {set $Fernseher_schalten OFF; set $Grundig_ein ON}';
    tie_event $Fernseher_1 'if ($state eq ON) {set $Fernseher_1 OFF; set $ard ON}';
    tie_event $Fernseher_2 'if ($state eq ON) {set $Fernseher_2 OFF; set $zdf ON}';
    tie_event $Fernseher_3 'if ($state eq ON) {set $Fernseher_3 OFF; set $wdr ON}';
    tie_event $Fernseher_4 'if ($state eq ON) {set $Fernseher_4 OFF; set $rtl ON}';
    tie_event $Fernseher_5 'if ($state eq ON) {set $Fernseher_5 OFF; set $sat1 ON}';
    tie_event $Fernseher_6 'if ($state eq ON) {set $Fernseher_6 OFF; set $kika ON}';
    tie_event $Fernseher_7 'if ($state eq ON) {set $Fernseher_7 OFF; set $pro7 ON}';
    Vielen Dank schonmal für Hilfe.
    Christoph
    Angehängte Dateien

    #2
    hi.

    ich hatte damals auch das Problem, dass Telegramme zweimal gesendet wurden:
    https://knx-user-forum.de/59973-post26.html

    Hast du die "geänderte" eibd Kommunikation in Verwendung ?

    Kommentar


      #3
      Zitat von spookyt. Beitrag anzeigen
      hi.

      ich hatte damals auch das Problem, dass Telegramme zweimal gesendet wurden:
      https://knx-user-forum.de/59973-post26.html

      Hast du die "geänderte" eibd Kommunikation in Verwendung ?
      Ach ja, kann sein das ich dieses bei meiner Neuinstallation vergessen habe checke ich heute Abend mal, Danke!

      Christoph

      Kommentar


        #4
        Danke, das war es!

        Kommentar


          #5
          Nur ein Vorschlag: Tretet da doch mal auf der mh-Mailingliste nach, warum das noch nicht drin ist..

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

          Kommentar


            #6
            Nur ein Vorschlag: Tretet da doch mal auf der mh-Mailingliste nach, warum das noch nicht drin ist..
            Das Wirrwar um die diversen Patches die im SVN enthalten sind oder auch nicht und Software die mit Patchstand xy läuft oder auch nicht finde ich bei MH wirklich nervig...

            Vielleicht könnte man ja hier im rahmen des Forums mal einen SVN-Server aufsetzen der zumindest alle Patches zum offiziellen Server enthält. An der Finanzierung würde ich mich gerne beteiligen.

            Kommentar


              #7
              Bei mh etc. ansich halte ich mich ehrlichgesagt raus, aber wenn ihr einen SVN-Server wollt: kein Problem, gerne!
              Wenn sich jemand dafür zuständig&verantwortlich fühlt, stelle ich den gerne.
              (sourceforge wäre vermutlich trotzdem einfacher)

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

              Kommentar

              Lädt...
              X