Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie GA für knx_write zusammensetzen ?

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

    [wiregate] Wie GA für knx_write zusammensetzen ?

    Ich möchte in einem Plugin eine GA aus

    $1,$2,$3 zusammensetzen also $1/$2/$3 und $val als Wert.

    Wie stelle ich das im Plugin an? Im normalen Script gelingt mir das mit , aber das soll ja ein richtiges WireGate Plugin werden.
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    #2
    Hallo Jumi

    Wie wäre es mit:

    Code:
    knx_write($1."/".$2."/".$3,$val,$dpt);
    Weiss zwar nicht genau für was du das brauchst aber es sollte so funktionieren. Die Frage ist, ob der DPT immer gleich ist oder sich ändert. Desshalb das $dpt im Beispiel
    Gruss Patrik alias swiss

    Kommentar


      #3
      Teste ich mal, hab schon ein paar Varianten durch. Das Verhalten mit Variablen finde ich im Plugin dennoch irgendwie seltsam, aber vielleicht liegst auch an Perl.

      Ein knx_ write wo ich $val einfach durch 1 oder 0 ersetzte läuft nicht. Mit '1' oder '0' läuft es aber. Das macht die Umsetztung ins Plugin System manchmal schwer.
      Umgezogen? Ja! ... Fertig? Nein!
      Baustelle 2.0 !

      Kommentar


        #4
        Hmmm... sollte auch mit 1 oder 0 gehen. Darf aber warscheinlich keinen Leerschlag oder sonnstiges enthalten. Nur Werte die nicht INTEGER sind müssen AFAIK in "" oder '' geschrieben werden.

        Könnte auch sein dass $val als String interpretiert wird, und du mit einem DPT z.B. 1.001 versuchst zu senden. Dass geht natürlich nicht
        Gruss Patrik alias swiss

        Kommentar


          #5
          Zusammensetzen hat geklappt. Danke!
          Wer interpretiert das denn bitte?

          P.S.:
          Habe soeben per SMS das Licht an und aus gemacht
          Umgezogen? Ja! ... Fertig? Nein!
          Baustelle 2.0 !

          Kommentar


            #6
            Gerngeschehen

            Perl interpretiert den Typ der Variabel selber nach dem Inhalt...

            z.B.

            my $1 = 1; -> Definiert die Varialbel als INTEGER mit dem Wert 1
            $1 = $1 . 'A'; -> Macht automatisch daraus einen STRING mit dem Inhalt "1A"

            Dass ist wenn man nicht genau darauf achtet ein grosses Problem. Vor allem wenn man Variabeln aus externen Quellen wie Webabfragen, XML oder über eine Schnittstelle befüllt. Da bin ich auch schon öfters darüber gestolpert
            Gruss Patrik alias swiss

            Kommentar


              #7
              Wobei Perl da eher noch sehr "nett" ist, ich hab mir das vorhin bei JS/CV gedacht, wo eine ein-eindeutige Zahl ohne parseInt(x) trotzdem gnadenlos als String gecastet wird.. Versuch und Irrtum..

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

              Kommentar


                #8
                Ja das stimmt. Oftmals kann man schon mit ein paar Hilfszeilen aus dem Pluginlog den Fehler erkennen da sich relativ leicht erraten läst, als was die Variabel von Perl interpretiert wird
                Gruss Patrik alias swiss

                Kommentar


                  #9
                  Das hab ich mir auch mittlerweile angewöhnt.
                  Wenn ich aber my $val = 0; definiere dann ist das zur Hölle kein String. Aber vielleicht müsste es auch einfach nur my $val=0; sein ? Egal, teste ich mal.
                  Umgezogen? Ja! ... Fertig? Nein!
                  Baustelle 2.0 !

                  Kommentar


                    #10
                    Nein sollte so funktionieren. Ist INTEGER. Ich vermute das Problem an einem anderen Ort. Vieleicht magst du den nicht funktionierenden Code mal posten und wir können uns das Phänomen mal gemeinsam ansehen.
                    Gruss Patrik alias swiss

                    Kommentar

                    Lädt...
                    X