Ankündigung

Einklappen
Keine Ankündigung bisher.

Macro SliderDimmer

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

    #16
    Stimmt, das haben meine auch. Ich werde vielleicht mal mit einer Delay Funktion versuchen in der Form, dass ich 10 Sek. nach Änderung der Status GA diesen Statuswert auf die Ansteuerungs-GA für den Dimmwert sende. So wäre sichergestellt, dass auch bei Änderung über die 4-bit Funktion der Webserver aktuell wäre.

    Gruß Nils

    Kommentar


      #17
      Der Gira Dimmer schick nachdem die Dimmung abgeschlossen ist nur einmal einen Wert. Also wenn ich an einen Schalter gehe und dimme dann wird nach dem Dimmvorgang der Slider richtig aktualisiert. Ich stelle das Makro heute abend rein.

      LG

      Kommentar


        #18
        GAset-> Schreiben auf den Bus (bei Gira 217400 mit Helligkeitswert verbinden)
        GAstat-> Lesen vom Bus (Gira Rückmeldung Helligkeitswert)

        Code:
        :begin SliderDimmerButtonStatus(ID, PageID, GAset, GAstat)
        :info $Ein seitenbezogenen Slider(pslider), der einen Dimmer ansteuert. Die GA ist vom Typ u08 (= Prozenttyp). Das Icon wird dem Zustand angepasst. Der Knopf kann gedrückt werden, um ein Toggeln des Wertes zwischen 0 und 100% zu ereichen.$\\
                 :$ID des psliders$\\
                 :$SeitenID des psliders$\\
                 :$Gruppenadresse des Dimmers (Wert)(Prozenttyp (u08))$\\
                 :$GA des Dimmers (Status)$
        :shortinfo $Einen Dimmer mit einem Slider ansteuern - der Knopf kann betätigt werden$
        initga(GAstat)
        InternDimmer_^ID_^PageID=getpslider(ID,PageID)
        // Status bei normaler Busänderung
        if delay(change(GAstat),150u64) or systemstart() then InternDimmer_^ID_^PageID=GAstat endif
        
        if pbutton(ID,PageID)==1 and GAstat==0 then write(GAset, 100%) endif
        if pbutton(ID,PageID)==1 and GAstat>0 then write(GAset, 0%) endif
        
        
        if change(InternDimmer_^ID_^PageID) then {
            if InternDimmer_^ID_^PageID!=GAstat then {
                write(GAset,InternDimmer_^ID_^PageID)
            } endif;
            if InternDimmer_^ID_^PageID==0 then {
                setpslider(ID,InternDimmer_^ID_^PageID,LIGHT,INACTIVE,PageID)
            } endif ;
            if InternDimmer_^ID_^PageID>=1 and InternDimmer_^ID_^PageID<50  then {
                setpslider(ID,InternDimmer_^ID_^PageID,LIGHT,STATE4,PageID)
            } endif;
            if InternDimmer_^ID_^PageID>=50 and InternDimmer_^ID_^PageID<100  then {
                setpslider(ID,InternDimmer_^ID_^PageID,LIGHT,STATE5,PageID)
            } endif;
            if InternDimmer_^ID_^PageID>=100 and InternDimmer_^ID_^PageID<200  then {
                setpslider(ID,InternDimmer_^ID_^PageID,LIGHT,STATE6,PageID)
            } endif;
            if InternDimmer_^ID_^PageID>=200  then {
                setpslider(ID,InternDimmer_^ID_^PageID,LIGHT,ACTIVE,PageID)
            } endif
        } endif
        :end

        Kommentar


          #19
          Vielen Dank dafür!
          Funktioniert so tadellos!
          MfG MrKnx

          Kommentar

          Lädt...
          X