Ankündigung

Einklappen
Keine Ankündigung bisher.

Commandfusion JoinDimmer Makro

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

    Commandfusion JoinDimmer Makro

    Eine meiner Anforderungen meiner CF Visu ist es, die Visu auf verschiedenen Steuergeräten synchron zu halten.

    Nun sehe ich, dass das gelieferte JoinDimmer Makro ausschliesslich mit einer GA arbeitet und keine Rückmeldung berücksichtigt. Dazu zwei Fragen:
    • @Enertex: Gibt es einen speziellen Grund weshalb das Makro mit einer GA arbeitet und ihr nicht - wie z.B. im Fall von JoinToggle/Join2Toggle - ein Makro mit 2 GAs wie z.B. Join2Dimmer mitliefert?
    • Ich habe mir überlegt, in der ETS sicherzustellen, dass die beiden Dimmer-Ausgänge Dimmwert und Zustandswert synchron bleiben indem ich sie einer GA zuordne. Das ist wohl nicht wirklich sinnvoll (?). Ich frage mich, ob hier mein Elektriker das KNX-System nicht optimal parametriert hat. Es sollte doch so sein, dass die Status GA automatisch angepasst wird sobald ich den Dimmwert am Taster oder auf der Visu ändere.


    Thx, G.

    #2
    Zitat von GoldenEye Beitrag anzeigen
    Nun sehe ich, dass das gelieferte JoinDimmer Makro ausschliesslich mit einer GA arbeitet und keine Rückmeldung berücksichtigt.
    Anbei eine Version des Makros für 2 GAs für den Fall, dass Kommando- und Status-GA unterschiedlich sind:

    [highlight=epc]
    // Join2Dimmer
    // @date 05.04.2014
    // @version 1
    // @author Enertex Bayern GmbH, Erweitert
    :begin Join2Dimmer(Name,JoinID,GA,StatusGA)
    :info $Dieses Makro verbindet zwei Gruppenadressen vom Typ u08 mit einem analogen Join des Command Fusion Teilnehmers. \\
    Der analoge Join wird dabei passend auf einen Dimmerwert (%) skaliert.$\\
    $Der Name Ihrer Anbindung, z.B cf oder iphone oder ipad oder ... $\\
    $Der Bezeichner des Joins, z.B. a123$\\
    $Die Gruppenadresse vom Datentyp u08 (%-Wert), die mit dem Join des Command Fusion verbunden werden soll. (Aktion)$
    $Die Status-Gruppenadresse vom Datentyp u08 (%-Wert), die mit dem Join des Command Fusion verbunden werden soll. (Feedback, Status)$
    :shortinfo $Join2 für einen Dimmer$

    //------------------------------------------------------------
    //
    // Join: Digital, Analog or Serial
    //
    //-------------------------------------------------------------

    if Name_Command==$^JoinID^$ and change(Name_CommandCount) and Name_Connected then {
    if convert(convert(Name_Arg,0u16)/256u16,0)!=GA then write(GA,convert(convert(Name_Arg,0u16)/256u16,0)) endif;
    #ifdef DEBUG
    if Name_Debug then write('0/5/1'c14,$Set:$c14+convert(Name_Command+$=$,$$c14)+co nvert(convert(Name_Arg,0u16)/256u16,$$c14)) endif;
    #endif
    Name_Next=!Name_Next
    } endif

    // Answering delayed
    if after(change(StatusGA),500u64) and Name_Connected then {
    sendtcp(Name_Port,Name_IPC,$^JoinID^$+$=$+convert( convert(StatusGA,0u16)*255u16,Name_Arg)+Name_EndLi miter)
    #ifdef DEBUG
    ;if Name_Debug then write('0/5/1'c14,convert($R^JoinID^$+$=$,$$c14)+convert(conve rt(StatusGA,0u16)*255u16,$$c14)) endif
    #endif
    } endif

    // Initializing
    if Name_Init and Name_Connected then {
    if StatusGA!=0 then {
    sendtcp(Name_Port,Name_IPC,$^JoinID^$+$=$+convert( convert(StatusGA,0u16)*255u16,Name_Arg)+Name_EndLi miter)
    #ifdef DEBUG
    ;if Name_Debug then write('0/5/1'c14,convert($I:^JoinID^$+$=$,$$c14)+convert(conv ert(StatusGA,0u16)*255u16,$$c14)) endif
    #endif
    } endif
    } endif
    :end
    [/highlight]

    Packen würde ich es entweder in die EnertexCommandFusion.lib oder in eine eigene Lib.

    Nicht getestet, sorry.
    BR
    Marc

    Kommentar


      #3
      Hallo saft6luck

      Danke Dir für Deinen Mühe und Deinen Input, der mir geholfen hat.

      Unten mein Makro, das ich mittlerweile produktiv nutze.

      G.

      Code:
      ///////////////////////////////////////////////////////////////////////////////
      //
      // Commandfusion Dimmer mit Rückmeldung
      //
      
      :begin JoinDimmer2GA(Name,JoinID,GA,StatusGA)
      :info $Dieses Makro verbindet eine Gruppenadresse vom Typ u08 mit einen analogen Join des Command Fusion Teilnehmers. \\
       Der analoge Join wird dabei passend auf einen Dimmerwert (%) skaliert. \\
       Durch eine Statusgruppenadresse wird der Join nachgeführt.$\\
            $Der Name Ihrer Anbindung, z.B cf oder iphone oder ipad oder ... $\\
            $Der Bezeichner des Joins, z.B. a123$\\
            $Die Gruppenadresse vom Datentyp u08 (%-Wert), die mit dem Join des Command Fusion verbunden werden soll$
            $Die Status-Gruppenadresse vom Datentyp u08 (%-Wert), die mit dem Join des Command Fusion verbunden werden soll. (Feedback, Status)$
      :shortinfo $Join für einen Dimmer mit gesondertem Statusobjekt$
      
      //------------------------------------------------------------
      //
      //    Join: Digital, Analog or Serial
      //
      //-------------------------------------------------------------
      
      if Name_Command==$^JoinID^$ and change(Name_CommandCount) and Name_Connected then { 	
         	if convert(convert(Name_Arg,0u16)/256u16,0)!=GA then write(GA,convert(convert(Name_Arg,0u16)/256u16,0)) endif;
      	if Name_Debug then write('1/2/3'c14,$Set:$c14+\\
      		convert(Name_Command+$=$,$$c14)+convert(convert(Name_Arg,0u16)/256u16,$$c14)) endif; 	
      	Name_Next=!Name_Next	
      } endif 
      
      // Answering delayed
      if after(change(StatusGA),4000u64) and Name_Connected then {
      	sendtcp(Name_Port,Name_IPC,$^JoinID^$+$=$+convert(convert(StatusGA,0u16)*255u16,Name_Arg)+Name_EndLimiter);
      	if Name_Debug then write('1/2/3'c14,convert($R^JoinID^$+$=$,$$c14)+convert(convert(StatusGA,0u16)*255u16,$$c14)) endif
       } endif 
      
      // Initializing
      if Name_Init and Name_Connected then {
             if StatusGA!=0 then {
                   sendtcp(Name_Port,Name_IPC,$^JoinID^$+$=$+convert(convert(StatusGA,0u16)*255u16,Name_Arg)+Name_EndLimiter)
             } endif 
      } endif 
      
      :end

      Kommentar


        #4
        Zitat von GoldenEye Beitrag anzeigen
        Hallo saft6luck
        Danke Dir für Deinen Mühe und Deinen Input, der mir geholfen hat.
        Unten mein Makro, das ich mittlerweile produktiv nutze.
        Vielen Dank. Ich würde das in die Makrosammlung mit aufnehmen, wenn du es erlaubst.
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Zitat von enertegus Beitrag anzeigen
          Vielen Dank. Ich würde das in die Makrosammlung mit aufnehmen, wenn du es erlaubst.
          Ja, klar. Nur zu!

          Kommentar

          Lädt...
          X