Ankündigung

Einklappen
Keine Ankündigung bisher.

Prozentdarstellung Rollläden und Jalousie

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

    Prozentdarstellung Rollläden und Jalousie

    Hallo Zusammen,
    ich habe nun endlich die Zeit gefunden, mich mit der EibPC Visu zu beschäftigen.

    Meine Frage/Fragen, wofür ich bisher keine Lösung gefunden habe und mit dem Handbuch auch irgendwie an meine Grenzen gestoßen bin.

    Ich habe in der ETS die Position der Rollläden / Jalousien in Prozent eingestellt, jedoch wird es mit 255 (geschlossen) / 0 (geöffnet) als u8 angezeigt. Ich hätte es gern aber in Prozent angezeigt.
    Ein Makro mit „convert“ in u16 und anschließender Prozentrechnung hat mich nicht weitergebracht bzw. funktionierte nicht.

    Vielleicht hat das Problem jemand anderweitig gelöst?? Für Hilfen würde ich mich freuen.

    Eine weitere Frage...
    Derzeit löse ich es so, dass ich das Makro „JalousiemitLamellenStopp“ nutze und einen „pshifter“ für auf und ab und jeweils einen weiteren „pshifter“ für die Position / Lamellensteuerung.
    Das hätte ich aber gern alles in eine Dastellung gepackt.

    Sprich:
    Grafik1(auf) / Grafik2(Icon) / Grafik3(ab) / Grafik4(+ Lamelle) / Grafik5(- Lamelle) / Text1(Beschreibung) / Text2(Position in Prozent)


    Vll. kann mich jemand bei diesem Vorhaben unterstützen?Ich bin wie gesagt Anfänger, habe aber meine Visu ohne Assitenten erstellt. Vielen Dank schon einmal für die Antworten.

    Beste Grüße und guten Rutsch
    Martin


    #2
    Schwierig, zu helfen, wenn Du nicht die relevanten Teile Deines Codes mitgibst - Glaskugel...

    Code:
    pdisplay(btnLearnPos,convert(convert(GAStatusPos,0f16) * 100f16 / 255f16,$$) + $ %$,ROLLER,STATE4,GREEN,pgID);
    Ergebnis:
    RollladenProzentanzeige.jpg

    Zum Visu-Editor kann ich Dir allerdings nicht helfen, denn ich versorge die Visualisierung altmodisch von Hand - dann kann ich Fehler ziemlich sicher bei mir suchen...
    Angehängte Dateien

    Kommentar


      #3
      Hallo Klaus,

      ich bin auch gerade dabei die Visu per Hand neu zu erstellen und mich mit dem EibPC endlich mal intensiver zu beschäftigen. So langsam durchblicke ich die Sache und es geht auch mal etwas vorwärts.

      Ich verwende bei den buttons die "Standardfarben", z. B. so:

      webdisplay(ID_Wasser_Afriso_1,split(CLOCK_STRING,0 u16,8u16)+$<BR>$+convert(Temp_Sensor1,CLOCK_STRING )+$°C$,TEMPERATURE,DISPLAY,GREEN);
      Dann ist Tag/Uhrzeit und der Messwert beides grün. Dein Beispiel gefällt mir viel besser (Farbe/Schriftgröße), kannst du mir bitte zeigen wie du das machst? Ich gehe mal von html-Code aus? Dafür brauche ich vermutlich mit try and error Stunden . Wäre super, dann baue ich das gleich ein bei mir.

      Gruß Ralf

      Kommentar


        #4
        Zitat von Ralf74 Beitrag anzeigen
        Dann ist Tag/Uhrzeit und der Messwert beides grün. Dein Beispiel gefällt mir viel besser (Farbe/Schriftgröße), kannst du mir bitte zeigen wie du das machst? Ich gehe mal von html-Code aus?
        Ja, ist HTML:

        Die Makros
        Code:
        /*---------------  HTML --------------------*/
        /*---------------  htmlTxtCol ------------*/
        :begin htmlTxtCol(pTxt, pCol)
        :info $Textfarbe festlegen (hex: FFFF00 ist gelb...$\\
        $txt: string zur Textausgabe$ \\
        $col: htmlfarbe$
        
        //Textfarbe festlegen
        
        :return $<font color=$ + pCol + $>$ + pTxt + $</font>$
        :end
        
        /*---------------  htmlTxtSize ------------*/
        :begin htmlTxtSize(pTxt, pSize)
        :info $Textgröße festlegen $\\
        $txt: string zur Textausgabe$ \\
        $pSize: Textgröße (1..7)$
        
        //Textgröße festlegen
        
        :return $<font size=$ + convert(pSize,$$) + $>$ + pTxt + $</font>$
        :end
        
        /*---------------  htmlTxtBold ------------*/
        :begin htmlTxtBold(pTxt)
        :info $Text fett schreiben $\\
        $txt: string zur Textausgabe$ \\
        
        //Text als fett festlegen
        
        :return $<b>$ + pTxt + $</b>$
        :end
        Schnelle Info über z.B. "<font size=..." findest du hier: https://wiki.selfhtml.org/wiki/CSS/E...rung/font-size

        Vielleicht denkst Du auch daran, Deine Buttons, die Du standardmäßig brauchst, gleich als Makros zu definieren - nur so als Idee:

        Code:
        /*---------------  toggleButton ------------*/
        :begin togglePButton(PButton,pgID,GA)
        :info $Bei Auslösung eines "PBUTTON" Den Wert einer 0b01 GA invertieren und senden$\\
        $Button-ID$
        $PageID$
        $GA die umgeschaltet werden soll (0b01)$
        //Code
        if (pbutton(PButton,pgID) == 1) then {
            write(GA,!GA);
        } endif
        
        :return 
        :end
        
        /*---------------  togglePButtonWithState ------------*/
        :begin togglePButtonWithState(PButton,pgID,GA,StatGA)
        :info $Bei Auslösung eines "PBUTTON" Den Wert einer 0b01 GA invertieren und senden$\\
        $Button-ID$ \\
        $PageID$ \\
        $GA die umgeschaltet werden soll (0b01)$ \\
        $Status GA des Aktors$
        //Code
        if (pbutton(PButton,pgID) == 1) then {
            write(GA,!StatGA);
        } endif
        if change(StatGA) then {
            pdisplay(PButton,htmlTxtCol(htmlTxtSize(DATE_STRING + $<br>$ + CLOCK_STRING,1),$#00CC00$),LIGHT,showIconActive(StatGA),GREEN,pgID);
        } endif
        
        :return 
        :end
        
        /*---------------  showPButtonWithState (inaktiv, nur zur Anzeige)------------*/
        :begin showPButtonWithState(PButton,pgID,StatGA)
        :info $Bei Auslösung eines "PBUTTON" Den Wert einer 0b01 GA invertieren und senden$\\
        $Button-ID$ \\
        $PageID$ \\
        $Status GA des Aktors$
        //Code
        if change(StatGA) then {
            pdisplay(PButton,htmlTxtCol(htmlTxtSize(DATE_STRING + $<br>$ + CLOCK_STRING,1),$#00CC00$),LIGHT,showIconActive(StatGA),GREEN,pgID);
        } endif
        
        :return 
        :end
        
        /*---------------  togglePButtonWithStateAndIcon ------------*/
        :begin togglePButtonWithStateAndIcon(PButton,pgID,GA,StatGA,Icon)
        :info $Bei Auslösung eines "PBUTTON" Den Wert einer 0b01 GA invertieren und senden$\\
        $Button-ID$ \\
        $PageID$ \\
        $GA die umgeschaltet werden soll (0b01)$ \\
        $Status GA des Aktors$ \\
        $Anzuzeigendes Icon$
        //Code
        if (pbutton(PButton,pgID) == 1) then {
            write(GA,!StatGA);
        } endif
        if change(StatGA) then {
            pdisplay(PButton,htmlTxtCol(htmlTxtSize(DATE_STRING + $<br>$ + CLOCK_STRING,1),$#00CC00$),Icon,showIconActive(StatGA),GREEN,pgID);
        } endif
        
        :return 
        :end
        
        /*---------------  showPButtonWithStateAndIcon ------------*/
        :begin showPButtonWithStateAndIcon(PButton,pgID,StatGA,Icon)
        :info $Zur Statusanzeige einer GA auf dem Button$\\
        $Button-ID$ \\
        $PageID$ \\
        $Status GA des Aktors$ \\
        $Anzuzeigendes Icon$
        //Code
        if change(StatGA) then {
            pdisplay(PButton,htmlTxtCol(htmlTxtSize(DATE_STRING + $<br>$ + CLOCK_STRING,1),$#00CC00$),Icon,showIconActive(StatGA),GREEN,pgID);
        } endif
        
        :return 
        :end
        
        /*---------------  showPButtonWithStateAndMatchingIcon ------------*/
        :begin showPButtonWithStateAndMatchingIcon(PButton, pgID, StatGA, Icon, IconStateTrue, IconStateFalse)
        :info $Zur Statusanzeige einer GA auf dem Button$\\
        $Button-ID$ \\
        $PageID$ \\
        $Status GA des Aktors$ \\
        $Anzuzeigendes Icon$ \\
        $Status-Nr für True-Icon$ \\
        $Status-Nr für False-Icon$
        //Code
        if change(StatGA) or systemstart() then {
            if (StatGA) then {
                pdisplay(PButton,htmlTxtCol(htmlTxtSize(DATE_STRING + $<br>$ + CLOCK_STRING,1),$#00CC00$),Icon,IconStateTrue,GREEN,pgID);
            } else {
                pdisplay(PButton,htmlTxtCol(htmlTxtSize(DATE_STRING + $<br>$ + CLOCK_STRING,1),$#00CC00$),Icon,IconStateFalse,GREEN,pgID);
            } endif;
            
        } endif
        
        :return 
        :end
        
        /*---------------  togglePButtonVarAndIcon ------------*/
        :begin togglePButtonVarAndIcon(PButton,pgID,Var,Icon)
        :info $Bei Auslösung eines "PBUTTON" Den Wert einer 0b01 Variablen invertieren$\\
        $Button-ID$ \\
        $PageID$ \\
        $Variable die umgeschaltet werden soll (0b01)$ \\
        $Anzuzeigendes Icon$
        //Code
        if (pbutton(PButton,pgID) == 1) then {
            Var = !Var;
        } endif
        if change(Var) then {
            pdisplay(PButton,htmlTxtCol(htmlTxtSize(DATE_STRING + $<br>$ + CLOCK_STRING,1),$#00CC00$),Icon,showIconActive(Var),GREEN,pgID);
        } endif
        
        :return 
        :end
        
        /*---------------  pdisplayButton als Active oder Inactive ------------*/
        :begin showIconActive(GA)
        :info $liefert ACTIVE oder INACTIVE zurück, um Icons in Buttons richtig darzustellen$\\
        $GA die geprüft werden soll (0b01)$
        //Code
        :return convert(GA,0u08)+1u08
        :end
        
        /*---------------  showTemperature -------------------*/
        :begin showPButtonTemperature(PButton, pgID, pGA)
        :info $Einfache Temperaturausgabe in °C$\\
        $Button-ID$\\
        $PageID$\\
        $Gruppenadresse des Temperaturwerts$
        //Code
        if change(pGA) then {
            pdisplay(PButton,htmlTxtCol(convert(pGA,$$) + $ °C$ + $<br>$ + htmlTxtSize(CLOCK_STRING,1),$#00CC00$),TEMPERATURE,DISPLAY,GREEN,pgID);
        } endif
        
        :return
        :end
        Im letzten Makro "showPButtonTemperature(....)" - aber auch anderen - findest Du die HTML-Makros verwendet.

        Einmal so ein Makro definiert, schaltest Du schon viele Fehlerquellen aus und sparst Dir haufenweise Codegetippe:

        3 verschiedene Buttons mit Leben erfüllt:
        Code:
        togglePButtonWithState(btnDavWzLichtStrahler,pgID_DavidWz,"DavWzLichtStrahler-4/1/16","StatDavWzLichtStrahler-4/1/17")
        togglePButtonWithState(btnDavWzLichtLED,pgID_DavidWz,"DavWzLichtLEDleiste-4/1/18","StatDavWzLichtLEDleiste-4/1/19")
        togglePButtonWithState(btnDavWzLichtVent,pgID_DavidWz,"DavWzLichtVent-4/1/20","StatDavWzLichtVent-4/1/21")
        Viel Spaß wünscht aus dem oberbayrischen Schnee
        Klaus

        Kommentar


          #5
          Hallo Klaus,

          das ging schnell und sieht komplexer aus als bereits schon befürchtet. Ich versuche mich dran.

          Damit hast du mir ggf. Stunden meiner Zeit gerettet oder ggf. auch Stunden meiner Zeit gestohlen - wird sich zeigen.

          Gruß aus dem verregnetem NRW und herzlichen Dank!

          Ralf

          Kommentar

          Lädt...
          X