Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Logikprozessor: Knopf in der Logik

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

    [WireGate-Plugin] - √ - Logikprozessor: Knopf in der Logik

    Hallo miteinander,

    ich habe seit ein paar Tagen nun auch auf den Logikprozessor von Fry umgestellt und konnte einiges an Memory und Laufzeiten optimieren können.

    Nun habe ich aber einen Knopf in meiner Logik, welches mit einem separaten Plugin bisher funktioniert:


    fenster_status_DG => {
    receive => '0/3/13', # Status-DG vom HS
    transmit => '0/3/12', # RGB-LED vom Taster
    #transmit_changes_only => 1,
    translate => sub {
    return 'FF 00 00' if ($input)=2;
    return 'FF 66 00' if ($input)=1;
    return '00 00 00' if ($input)=0;
    },
    debug => 1

    Diese simple Statusabfrage endet damit, dass der return Wert immer der ersten Zeile, also 'FF 00 00' ergibt. Dies egal welchen Wert der receive wert hat. Ich weiss leider nicht weiter.
    Hat jemand eine Idee??

    Auszug aus dem Plugin-Log:
    2013-09-01 22:54:36.234,Logikprozessor.pl,1.1.255 0/3/13:2 -> $logic->{fenster_status_DG}{receive}(Logik) -> 0/3/12:FF 00 00 gesendet; ,0s,
    2013-09-01 22:54:47.353,Logikprozessor.pl,1.1.255 0/3/13:1 -> $logic->{fenster_status_DG}{receive}(Logik) -> 0/3/12:FF 00 00 gesendet; ,0s,
    2013-09-01 22:54:53.444,Logikprozessor.pl,1.1.255 0/3/13:2 -> $logic->{fenster_status_DG}{receive}(Logik) -> 0/3/12:FF 00 00 gesendet; ,0s,
    2013-09-01 22:54:53.705,Logikprozessor.pl,1.1.255 0/3/13:0 -> $logic->{fenster_status_DG}{receive}(Logik) -> 0/3/12:FF 00 00 gesendet; ,0s,

    Auszug aus dem eib.log:
    2013-09-01 22:54:36.210,A_GroupValue_Write,1.1.255,0/3/13,02,2,,5.005,1,high,6,T_DATA_XXX_REQ,0
    2013-09-01 22:54:47.331,A_GroupValue_Write,1.1.255,0/3/13,01,1,,5.005,1,high,6,T_DATA_XXX_REQ,0
    2013-09-01 22:54:53.417,A_GroupValue_Write,1.1.255,0/3/13,02,2,,5.005,1,high,6,T_DATA_XXX_REQ,0
    2013-09-01 22:54:53.680,A_GroupValue_Write,1.1.255,0/3/13,00,0,,5.005,1,high,6,T_DATA_XXX_REQ,0

    Konfiguration im eib.conf:
    [0/3/12]
    short=Fenster
    DPTSubId=232.600
    ga=0/3/12
    name=Fenster DG Status - offen (RGB)
    DPTId=232
    [0/3/13]
    DPTSubId=5.010
    short=Fenster
    ga=0/3/13
    DPTId=5
    name=Fenster DG Status - offen (Bit)

    Gruss
    Marcel
    seit: 11'08 KNX / 04'09 HS3 / 12'09 WG mit 21 Temp & 4 Feuchtesensoren / 10'10 Enocean mit 15 Fenstergriffe Hoppe / 02'11 MBus2Serial Gas-Wasserzähler
    HS3: 99% / VISU: PV 99%, iPad 99%
    60 Akt. Linie1 / 14 Akt. Linie2

    #2
    Zitat von marlan99 Beitrag anzeigen
    return 'FF 00 00' if ($input)=2;
    return 'FF 66 00' if ($input)=1;
    return '00 00 00' if ($input)=0;
    Ich habe zwar keine Ahnung vom Logikprozessor, aber ich kenne keine Sprache, in der das funktioniert. Das muss doch sicher anders herum geschrieben werden.

    Code:
    if ($input = 2) return 'FF 00 00';
    if ($input = 1) return 'FF 66 00';
    if ($input = 0) return '00 00 00';
    Grüße
    Michael

    Kommentar


      #3
      Hallo MicHau,

      das hat denselben Effekt :-)

      gruss
      marcel
      seit: 11'08 KNX / 04'09 HS3 / 12'09 WG mit 21 Temp & 4 Feuchtesensoren / 10'10 Enocean mit 15 Fenstergriffe Hoppe / 02'11 MBus2Serial Gas-Wasserzähler
      HS3: 99% / VISU: PV 99%, iPad 99%
      60 Akt. Linie1 / 14 Akt. Linie2

      Kommentar


        #4
        Ich muss mich auch korrigieren. Tatsächlich kenne ich nun eine Sprache, in der das funktioniert. Sie nennt sich Perl
        Grüße
        Michael

        Kommentar


          #5
          Vielleicht hat es mit dem DPT was zu tun?
          Im Log steht 5.005, in eib.conf steht "DPTSubId=5.010"
          Zitat von marlan99 Beitrag anzeigen
          Auszug aus dem eib.log:
          2013-09-01 22:54:36.210,A_GroupValue_Write,1.1.255,0/3/13,02,2,,5.005,1,high,6,T_DATA_XXX_REQ,0

          Konfiguration im eib.conf:
          [0/3/13]
          DPTSubId=5.010
          Grüße
          Michael

          Kommentar


            #6
            MicHau,

            Da hast du ein scharfes Auge :-)

            Da ist was beim copy paste falsch zusammengesetzt worden. my fault:

            Habs nochmal nachgestellt und hier die aktuellen Logs mit demselben Effekt:

            2013-09-02 00:09:51.876,A_GroupValue_Write,1.1.255,0/3/13,02,2,,5.010,1,high,6,T_DATA_XXX_REQ,0
            2013-09-02 00:10:24.839,A_GroupValue_Write,1.1.255,0/3/13,00,0,,5.010,1,high,6,T_DATA_XXX_REQ,0

            2013-09-02 00:09:51.917,Logikprozessor.pl,1.1.255 0/3/13:2 -> $logic->{fenster_status_DG}{receive}(Logik) -> 0/3/12:FF 00 00 gesendet; ,0s,
            2013-09-02 00:10:24.874,Logikprozessor.pl,1.1.255 0/3/13:0 -> $logic->{fenster_status_DG}{receive}(Logik) -> 0/3/12:FF 00 00 gesendet; ,0s,

            [0/3/12]
            short=Fenster
            DPTSubId=232.600
            ga=0/3/12
            name=Fenster DG Status - offen (RGB)
            DPTId=232
            [0/3/13]
            short=Fenster
            DPTSubId=5.010
            ga=0/3/13
            name=Fenster DG Status - offen (Bit)
            DPTId=5
            seit: 11'08 KNX / 04'09 HS3 / 12'09 WG mit 21 Temp & 4 Feuchtesensoren / 10'10 Enocean mit 15 Fenstergriffe Hoppe / 02'11 MBus2Serial Gas-Wasserzähler
            HS3: 99% / VISU: PV 99%, iPad 99%
            60 Akt. Linie1 / 14 Akt. Linie2

            Kommentar


              #7
              Nun aber letzter Versuch.
              Probiere es doch mal mit
              Code:
              if ($input == 2) ...
              Alternativ fiele mir noch ein
              Code:
              if (int($input) == 2) ...
              Grüße
              Michael

              Kommentar


                #8
                einen Schritt weiter !!

                mit: if ($input == 2) ...

                gibt er im log schon mal den korrekten Wert aus. Allerdings wird noch nichts auf den Bus gesendet.

                plugin log:
                2013-09-02 00:59:18.008,Logikprozessor.pl,1.1.255 0/3/13:1 -> $logic->{fenster_status_DG}{receive}(Logik) -> 0/3/12:FF 66 00 gesendet; ,0s,
                2013-09-02 00:59:18.635,Logikprozessor.pl,1.1.255 0/3/13:2 -> $logic->{fenster_status_DG}{receive}(Logik) -> 0/3/12:FF 00 00 gesendet; ,0s,
                2013-09-02 00:59:18.845,Logikprozessor.pl,1.1.255 0/3/13:0 -> $logic->{fenster_status_DG}{receive}(Logik) -> 0/3/12:00 00 00 gesendet; ,0s,

                eib.log:
                2013-09-02 00:59:17.990,A_GroupValue_Write,1.1.255,0/3/13,01,1,,5.010,1,high,6,T_DATA_XXX_REQ,0
                2013-09-02 00:59:18.615,A_GroupValue_Write,1.1.255,0/3/13,02,2,,5.010,1,high,6,T_DATA_XXX_REQ,0
                2013-09-02 00:59:18.818,A_GroupValue_Write,1.1.255,0/3/13,00,0,,5.010,1,high,6,T_DATA_XXX_REQ,0
                seit: 11'08 KNX / 04'09 HS3 / 12'09 WG mit 21 Temp & 4 Feuchtesensoren / 10'10 Enocean mit 15 Fenstergriffe Hoppe / 02'11 MBus2Serial Gas-Wasserzähler
                HS3: 99% / VISU: PV 99%, iPad 99%
                60 Akt. Linie1 / 14 Akt. Linie2

                Kommentar


                  #9
                  Wie hast Du denn den DPT232.600 im wiregated.pl eingebaut ?
                  Aktuell ist der nämlich nicht per default drin.
                  Umgezogen? Ja! ... Fertig? Nein!
                  Baustelle 2.0 !

                  Kommentar


                    #10
                    Hallo Jumi,

                    den habe ich nicht eingebaut, den habe ich nur über das Wiregate GUI als KNX Gruppenadresse so definiert.

                    Gruss
                    Marcel
                    seit: 11'08 KNX / 04'09 HS3 / 12'09 WG mit 21 Temp & 4 Feuchtesensoren / 10'10 Enocean mit 15 Fenstergriffe Hoppe / 02'11 MBus2Serial Gas-Wasserzähler
                    HS3: 99% / VISU: PV 99%, iPad 99%
                    60 Akt. Linie1 / 14 Akt. Linie2

                    Kommentar


                      #11
                      Dann gehts nicht. Das WireGate unterstützt diesen Typ nicht.
                      Umgezogen? Ja! ... Fertig? Nein!
                      Baustelle 2.0 !

                      Kommentar


                        #12
                        ok, danke für den Tipp, dann mach ich es via system call. Das funktioniert nämlich weiterhin :-)

                        Gruss
                        Marcel
                        seit: 11'08 KNX / 04'09 HS3 / 12'09 WG mit 21 Temp & 4 Feuchtesensoren / 10'10 Enocean mit 15 Fenstergriffe Hoppe / 02'11 MBus2Serial Gas-Wasserzähler
                        HS3: 99% / VISU: PV 99%, iPad 99%
                        60 Akt. Linie1 / 14 Akt. Linie2

                        Kommentar


                          #13
                          Zitat von MicHau Beitrag anzeigen
                          Ich muss mich auch korrigieren. Tatsächlich kenne ich nun eine Sprache, in der das funktioniert. Sie nennt sich Perl
                          Liegt übrigens daran, dass Larry Wall Sprachwissenschaften (Linguistik) studiert hat.
                          VG, Fry

                          Kommentar

                          Lädt...
                          X