Ankündigung

Einklappen
Keine Ankündigung bisher.

EibPC Real Anzeige von Dimmer Werten.

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

    EibPC Real Anzeige von Dimmer Werten.

    Hallo,

    ich versuche einen Dimmer anzusteuern. Dabei soll der Dimmer Wert auf dem Slider sichtbar sein aber auch mit dem Slider auch einstellbar sein.
    Ich habe zwei GAs eine zum setzen und einer zum lesen.
    Kann man das lösen oder gibt es immer einen Konflikt mit dem setzen und lesen.
    mach ich einen gedanken fehler?

    Slider regiert auf einschalten und ausschalten anzeige wird auch aktualisiert. Was nicht ganz sauber ist ​​,das beim bewegen des slidern nach dem loslassen er zurückspringt und danb nach einer zeit diesen wert anspringt.

    FlurDimmer=getpslider(FlurDeckenLeuchteSliderID,Fl urPageID)
    FlurDimmerReal="Flur Decke Wert Lesen-6/0/4"

    if delay(change("Flur Decke Wert Schreiben-6/0/3"),150u64) or systemstart() then FlurDimmer="Flur Decke Wert Schreiben-6/0/3";FlurDimmerReal="Flur Decke Wert Lesen-6/0/4" endif
    if pbutton(FlurDeckenLeuchteSliderID,FlurPageID)==1 and "Flur Decke-4/0/40"==AUS then write("Flur Decke-4/0/40",EIN) endif
    if pbutton(FlurDeckenLeuchteSliderID,FlurPageID)==1 and "Flur Decke-4/0/40"==EIN then write("Flur Decke-4/0/40",AUS) endif

    if change(FlurDimmer) or change(FlurDimmerReal) then {
    if FlurDimmer!="Flur Decke Wert Schreiben-6/0/3" and !change(FlurDimmerReal) then {
    write("Flur Decke Wert Schreiben-6/0/3",FlurDimmer)
    } endif;
    if FlurDimmer==0 then {
    setpslider(FlurDeckenLeuchteSliderID,FlurDimmerRea l,LIGHT,INACTIVE,FlurPageID)
    } endif ;
    if FlurDimmer>=1 and FlurDimmer<50 then {
    setpslider(FlurDeckenLeuchteSliderID,FlurDimmerRea l,LIGHT,STATE4,FlurPageID)
    } endif;
    if FlurDimmer>=50 and FlurDimmer<100 then {
    setpslider(FlurDeckenLeuchteSliderID,FlurDimmerRea l,LIGHT,STATE5,FlurPageID)
    } endif;
    if FlurDimmer>=100 and FlurDimmer<200 then {
    setpslider(FlurDeckenLeuchteSliderID,FlurDimmerRea l,LIGHT,STATE6,FlurPageID)
    } endif;
    if FlurDimmer>=200 then {
    setpslider(FlurDeckenLeuchteSliderID,FlurDimmerRea l,LIGHT,ACTIVE,FlurPageID)
    } endif
    } endif
    Zuletzt geändert von PharaDOS; 22.06.2016, 15:56.

    #2
    In der EnertexWebV3.lib sollte dieses Makro sein:
    Code:
    // Webelement
    // @date    28.09.2015
    // @version    1
    // @author     Enertex Bayern GmbH
    :begin SliderDimmerStatusVerzoegerung(ID, PageID, GA, StatusGA)
    :info $Ein seitenbezogenen Slider(pslider), der einen Dimmer ansteuert. Die GA ist vom Typ u08 (= Prozenttyp). Es gibt eine Statusrückmeldung, die nach spätestens 6 Sekunden nach der Rückmeldung in der Visu aktualisiert wird. Das Icon wird dem Zustand angepasst.$\\
             :$ID des psliders$\\
             :$SeitenID des psliders$\\
             :$Gruppenadresse des Dimmers (Prozenttyp (u08))\\
         :$Statusadresse des Dimmers (Prozenttyp (u08))$
    :shortinfo $Einen Dimmer mit einem Slider ansteuern$
    initga(GA)
    initga(StatusGA)
    InternDimmer_^ID_^PageID=0
    InternDimmerManuell_^ID_^PageID=EIN
    
    // Status bei normaler Busnderung
    if systemstart()  then {
         write(GA,StatusGA);
         InternDimmer_^ID_^PageID=StatusGA
    } endif
    
    
    if change(GA) then InternDimmer_^ID_^PageID=GA endif
    // Warte auf eine Rückmeldung 6 Sekunden
    if delay(change(StatusGA),6000u64) then {
           if StatusGA!=InternDimmer_^ID_^PageID then {
                 InternDimmer_^ID_^PageID=StatusGA;
                 // Keine manuelle Bedienung des Sliders
                 InternDimmerManuell_^ID_^PageID=AUS;
            } endif
        } endif
    
    
    if change(InternDimmer_^ID_^PageID) then {
        // Schreibe einen neuen Wert nur, wenn dieser von der Sliderbetaetigung kommt
        if InternDimmer_^ID_^PageID!=GA and InternDimmerManuell_^ID_^PageID then {
            write(GA,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;
    
    if change(getpslider(ID,PageID)) then {
        InternDimmerManuell_^ID_^PageID=EIN;
        InternDimmer_^ID_^PageID=getpslider(ID,PageID);
    } endif
    :end
    Einfach mal testen.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      also die lib die ihr zum download anbietet hat dieses macro nicht. v3.005 vom 9.1.2015 ! wo habt ihr denn die neue ?

      Kommentar


        #4
        Danke das maceo ist gut fehlt nur der schaltmodus beim klicken. Hab es modifiziert.

        Aber wie gesagt wo gibt es die neuen macros.
        Gibt es vielleicht auch eine neuere exe v3.021 hat ja ein paar Bugs.

        Kommentar


          #5
          Das wird die Steffi demnächst veröffentlichen ...
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar

          Lädt...
          X