Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - KNX Read-Telegramm senden

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] - √ - KNX Read-Telegramm senden

    Kann man in einem Plugin ein KNX Read-Telegramm auf den Bus versenden, ohne auf das Response zu warten? (Ein Read-Telegramm ist ja nur der dritte Typ von KNX-Telegramm.)

    /Per

    #2
    Response wäre implementiert..

    Aber das ist ja das schöne am Plugin: du kannst eigentlich machen, was auch immer dir gerade beliebt..

    Es zu testen & sauber aufzuschreiben bin ich jetzt grad zu faul, aber du kannst das: man kann direkt auf die eibd-API durchlangen und einfach ein beliebiges Telegramm absetzen..

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

    Kommentar


      #3
      OK. Ich nehme an, ich könnte knx_write aus wiregated.pl als Muster benutzen.

      Code:
      sub knx_write {
      my ($dst,$value,$dpt,$response,$dbgmsg) = @_;
      my $bytes;
      my $apci = ($response) ? 0x40 : 0x80; # 0x40=response, 0x80=write
      $apci sollte wohl 0x00 sein, um en READ-Telegramm zu erzeugen.

      Ich probiere in den nächsten Tagen.

      /Per

      Kommentar


        #4
        Zitat von perf Beitrag anzeigen
        OK. Ich nehme an, ich könnte knx_write aus wiregated.pl als Muster benutzen.

        Code:
        sub knx_write {
        my ($dst,$value,$dpt,$response,$dbgmsg) = @_;
        my $bytes;
        my $apci = ($response) ? 0x40 : 0x80; # 0x40=response, 0x80=write
        $apci sollte wohl 0x00 sein, um en READ-Telegramm zu erzeugen.
        Genau so ist es.
        Ich würde die API von knx_write (der Name wäre zum absetzen eines Lesetelegramms aber irgendwie auch irreführend..) ändern, das man den APCI direkt übergibt und bei 1 0x40 genommen wird - Response benutzt eh kaum einer weil das ist ja schon "tief drin" sich damit rumzuschlagen, aber der direkte Weg dürfte für solche Sonderfälle einfacher sein..

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

        Kommentar


          #5
          So funktionert es:

          Code:
          sub readtelegram {
            my $dst = $_[0];
            my $bytes = pack ("CC", 0, 0); 
            my $leibcon = EIBConnection->EIBSocketURL($eib_url) or return("Error opening con: $!");
            if ($leibcon->EIBOpenT_Group(str2addr($dst),1) == -1) { return("Error opening group: $!"); } 
            my $res=$leibcon->EIBSendAPDU($bytes);
            $leibcon->EIBClose();
            return $res;
          }
          /Per

          Kommentar


            #6
            Gut.. Wenn wir dafür einen Anwendungsfall haben (der mehr als einen AW betrifft)?
            Kann das so einziehen (ich hätte es nur knx_read oder so genannt, damit "zerstört" es auch nicht vorhandene ..)

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

            Kommentar


              #7
              Wie müsste ich denn ein knx_write übergeben damit es wie ein Response aussieht ? Das überblicke ich gerade nicht.

              knx_write(GA,DPT,???) ... was kommt in die 3 Fragezeichen ?

              EDIT
              Mit Syntaxfehlern kommt man eben nicht weit

              knx_write(GA,DPT,0x40) erzeugt das Response.
              Umgezogen? Ja! ... Fertig? Nein!
              Baustelle 2.0 !

              Kommentar

              Lädt...
              X