Ankündigung

Einklappen
Keine Ankündigung bisher.

eibPC Komfortdimmer Makro mehrmals nutzen

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

    eibPC Komfortdimmer Makro mehrmals nutzen

    Hallo zusammen,

    ich versuche das Komfortdimmer Makro vom eibPC mehrmals im selben Projekt einzusetzen, erhalte jedoch die Fehlermeldung
    'Deklaration der Variable muss eindeutig sein in >DimmerWert=10<
    ID:35'
    In einem Beitrag von 2010 https://knx-user-forum.de/code-schni...cht-logik.html habe ich dazu den Eintrag von Marcus gefunden der da heisst:
    "Habe es gefunden, ins Makro noch die Variable Name einfügen und schon gehts auch mit mehreren :-) "

    Wie genau geht jetzt das mit der 'Variable Name einfügen' Ich stehe völlig auf dem Schlauch...

    Besten Dank für jegliche Unterstützung,
    Mario

    #2
    Nehme an, es geht um den Webserver. Du musst die Variable um einem Index für das Element (ID) und/oder für die Seite (PageID) ergänzen.

    Das sieht bei der Variablendefinition dann z.B. so aus:

    Code:
    Dimmwert_^ID_^PageID=0u08
    Dieses "Dimmwert_^ID_^PageID" ist dann die Variable, die du im Weiteren verwendest.

    Kommentar


      #3
      Name im Makro

      Eine andre Möglichkeit ist der "Name" oder "Raum" in einem Makro.

      siehe
      // Doppelklick
      // @date 11.01.2012
      // @version 1
      // @author Enertex Bayern GmbH
      :begin Doppelklick(Name,TasteGA,TasteWert,Klick1GA,Klick1 Wert,Klick2GA,Klick2Wert)
      :info $Mit diesem Funktionsblock können Sie einen Doppelklick auf eine Taste realisieren: Wenn Sie innerhalb von 0.8 Sekunden zweimal auf den Taster drücken, wird eine andere Aktion ausgelöst, als wie wenn Sie einmal drücken. Beide Aktionen können Sie mit diesem FunktionsblockMakro steuern$ \\
      $Name des Taster (zwecks Eindeutigkeit)$\\
      $Grupenadresse, auf welcher der Taster Werte sendet$\\
      $Der vom Taster gesendete Wert (z.B. EIN oder AUS) $\\
      $Gruppenadresse für Telegramm bei einfachen Tastendruck$\\
      $Wert für Telegramm bei einfachen Tastendruck (z.B. EIN oder AUS oder 23%$\\
      $Gruppenadresse für Telegramm bei doppelten Tastendruck$\\
      $Wert für Telegramm bei doppelten Tastendruck (z.B. EIN oder AUS oder 23%$
      :shortinfo $Eine Taste mit Doppelklick$

      Name^DoppelKlick=0
      if event(TasteGA) and (TasteGA==TasteWert) then Name^DoppelKlick=Name^DoppelKlick+1 endif
      if after(Name^DoppelKlick==1, 800u64) and Name^DoppelKlick==1 then write(Klick1GA,Klick1Wert) endif
      if after(Name^DoppelKlick==1, 800u64) and Name^DoppelKlick==2 then write(Klick2GA,Klick2Wert) endif
      if after(Name^DoppelKlick==1, 1000u64) then Name^DoppelKlick=0 endif

      :end

      Durch die freien Verwendung des Felder Name, z.B. WOZI, SchlafRi, wird die Variable eindeitig.

      Die andere Variante findest Du im Eintag zuvor. Für mich immer etwas problematisch, da ich mir beim Debug/Trace immer Feldnummer und Seitennummer merken muss. Kind1_Helligkeit ist für mich leichter zuzuordnen.

      Ich hoffe es hilft

      Wolfgang

      Kommentar


        #4
        [QUOTE
        Die andere Variante findest Du im Eintag zuvor. Für mich immer etwas problematisch, da ich mir beim Debug/Trace immer Feldnummer und Seitennummer merken muss. Kind1_Helligkeit ist für mich leichter zuzuordnen.
        [/QUOTE]


        Na ja, ID und PageID werden sowohl bei den Fehlermeldungen, als auch im Debugger aufgelöst. Damit wird zumindest der Seitenname im Klartext angezeigt. Wenn pro Raum nur ein Dimmer benötigt wird, lässt du ID einfach weg. Wenn du mehrere Dimmer pro Raum hast, brauchst du ein weiteres Attribut.

        So weit ich das in Erinnerung habe, ist das Dimmer Makro bugbehaftet. Ich habe jedenfalls für jeden Dimmertyp nachfeilen müssen.

        Kommentar


          #5
          Komfortdimmer

          Ich brauche (noch) keinen Webserver, das heisst die Antworten scheinen mein Problem nicht zu lösen.

          Im Detail möchte ich folgendes nutzen:
          KomfortDimmer("OG Vorplatz Treppe Deckenlicht DALI s-1/1/44","OG Vorplatz Treppe Deckenlicht DALI w-1/3/44","OG Vorplatz Treppe Deckenlicht DALI s-1/1/44","Bewegung Schalter Licht OG Treppe-1/7/2",23,00,30,06,00,80)
          KomfortDimmer("OG Vorplatz Zimmer 3 Deckenlicht DALI s-1/1/45","OG Vorplatz Zimmer 3 Deckenlicht DALI w-1/3/45","OG Vorplatz Zimmer 3 Deckenlicht DALI s-1/1/45","Bewegung Schalter Licht OG Treppe-1/7/3",23,01,30,06,01,80)

          Der im Makro relevante Teil:
          // Komfort Dimmer
          // @date 11.01.2012
          // @version 1
          // @author Enertex Bayern GmbH
          :begin KomfortDimmer(Dimmer, GADimmerWert, Bewegungsmelder,Schalter, StundenNacht,MinutenNacht,DimmerwertNacht,StundenT ag,MinutenTag, DimmerwertTag)
          :info $ Ein Dimmer, gesteuert über einen Bewegungsmelder oder Schalter. Der Dimmerwert kann für Tag und Nacht unterschiedlich eingestellt werden. \\
          Wird der Schalter eingeschalten, soll die Lampe einschalten und der Dimmer auf 100% gehen. \\
          Wenn der Schalter auf "aus" geht, sollen die Lichter ausgehen. \\
          Wenn der Schalter aktiv ist, soll der Bewegungsmelder deaktiviert werden.$\\
          $Gruppenadresse des Dimmers$ \\
          $Gruppenadresse für die Helligkeit des Dimmers$ \\
          $Gruppenadresse des Bewegungsmelders$ \\
          $Gruppenadresse des Schalters$ \\
          $Stunde Nacht$ \\
          $Minute Nacht$ \\
          $Dimmerwert Nacht in %$ \\
          $Stunde Tag$ \\
          $Minute Tag$ \\
          $Dimmerwert Tag in %$
          :shortinfo $Dimmer, schaltbar über Bewegungsmelder oder Schalter. Der Dimmerwert kann für Tag und Nacht unterschiedlich eingestellt werden.$

          //DimmerWert=GADimmerWert
          DimmerWert=10%
          // Der Schalter
          if (Schalter==EIN) then write(Dimmer,EIN); write(GADimmerWert,100%) endif
          if (Schalter==AUS) then write(GADimmerWert,0%) endif

          //Bewegungsmelder
          if (htime(StundenNacht,MinutenNacht,00)) and (Schalter==AUS) then DimmerWert=DimmerwertNacht^% endif
          if (htime(StundenTag,MinutenTag,00)) and (Schalter==AUS) then DimmerWert=DimmerwertTag^% endif

          if (Bewegungsmelder==EIN) and (Schalter==AUS) then write(Dimmer,EIN); write(GADimmerWert,DimmerWert) endif
          if (Bewegungsmelder==AUS) and (Schalter==AUS) then write(Dimmer,AUS) endif

          :end

          was muss nun in diesem Makro angepasst werden damit mehrere Komfortdimmer parallel genutzt werden können?

          Kommentar


            #6
            Feldname eindeutig machen hat nichts mit Webserver zu tun!

            Wie im Beitra 2 oder 3 beschieben.

            In den Makroaufruf Name einfügen und vor jedes Feld DimmerWert ebenfalls Name (mit dem Sonderzeichen) laut Beispiel-

            Ebenso möglich mit Feld_ID, Seiten_ID.

            Schau einmal in die diversen LIBs. Viele Beispiele.

            Wolfgang

            Kommentar


              #7
              Jetzt ist der Groschen gefallen.

              Vielen Dank für die schnellen Antworten!
              Mario

              Kommentar

              Lädt...
              X