Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

Heizung - eigene VISU-Seite

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

    Heizung - eigene VISU-Seite

    Ich habe eine eigene VISU-Seite erstellt, um die Temperaturen im Haus etwas besser überwachen zu können.
    Die Ausgabe der GA vom MDT-Heizungsaktor war mir zu wenig.
    Verbesserungsvorschläge sind gerne willkommen.

    Ausgabebild.jpg​Hierzu ist folgendes notwendig.
    Anlegen der VISU-Seite mit folgenden Elementen:
    Button_01.jpg
    button02.jpg

    slider01.jpg
    Zeitdiagramm 01.jpgZeitdiagramm 02.jpg

    Dann im Experten noch die Makros bei Eigenen Makros einbauen:
    Code:
    :begin ProzentVonU08(InZahl)
    :info $Liefert einen ganzzahligen Wert in Prozent für den gegebenen Wert. Aus 128u08 wird z. B. 50% \\
        :$Ein numerischer Wert (u08)$
    :shortinfo $Prozent-Darstellung für Ganzzahl$
    :return convert(convert(InZahl,0f32)/2.55f32,0s16)
    :end
    
    :begin Rundenin05Dezimalschritte(Eingangswert)
    :info $Eingangswert vom Typ f16 wird auf 0,5 Schritte gerundet$
    :shortinfo $Rundet f16 Wert auf 0,5$
    :return ((Eingangswert*2f16+0.5f16)/2f16)
    :end
    
    
    :begin HVACMODUSAUSU08(HVACMODUSu08)
    :info $wandelt HVAC MODUSZAHL in Klartext um$
    :shortinfo $Umwandlung HVAC Modus in Klartext$
    :var returnVal@
        returnVal@ = $undefined$
        if HVACMODUSu08 == 1u08 then returnVal@ = $KOMFORT$ endif;
        if HVACMODUSu08 == 2u08 then returnVal@ = $STANDBY$ endif;    
        if HVACMODUSu08 == 15u08 then returnVal@ = $ECONOMY$ endif;    
        if HVACMODUSu08 == 146u08 then returnVal@ = $BUILDING PROTECTION$ endif;        
    :return returnVal@
    :end
    
    
    :begin STRINGINFOTEXT(TEMPERATUR, AKTUELLERSOLLWERT, STELLWERT)
    :var returnTXT@
    :info $setzt die diversen Werte dann zu einem String für die Icondarstellung zusammen$
        returnTXT@ = stringformat(TEMPERATUR,4,1,0,1) + $°C/$ \\
                + stringformat(AKTUELLERSOLLWERT,4,1,0,1) +  $°C | $ \\
                + convert(STELLWERT,$$) +  $%<BR>$ \\
                + CLOCK_STRING
    :return returnTXT@
    :end
    
    :begin HVACMODUS2ICON(HVACMODUSu08)
    :info $sucht den passenden Icon für den HVACMODUS raus$
    :var retICON@
        retICON@ = 0u08
        if HVACMODUSu08 == 1u08 then retICON@ = 20u08 endif;
        if HVACMODUSu08 == 2u08 then retICON@ = 21u08 endif;
        if HVACMODUSu08 == 3u08 then retICON@ = 15u08 endif;
        if HVACMODUSu08 == 4u08 then retICON@ = 14u08 endif;
    :return retICON@
    :end
    
    
    :begin HVACMODUS2ICONCOL(HVACMODUSu08)
    :info $sucht den passenden Icon für den HVACMODUS raus$
    :var retICON1@
        retICON1@ = 0u08
        if HVACMODUSu08 == 1u08 then retICON1@ = DARKRED endif;
        if HVACMODUSu08 == 2u08 then retICON1@ = ACTIVE endif;
        if HVACMODUSu08 == 3u08 then retICON1@ = DISPLAY endif;
        if HVACMODUSu08 == 4u08 then retICON1@ = INACTIVE endif;
    :return retICON1@
    :end
    ​
    und das Programm "Heizung Küche" erstellen:

    Code:
    EG_KUECHE_HZ_ICON              = 0u08
    EG_KUECHE_HZ_ICONCOL           = 0u08
    EG_KUECHE_HZ_INFOTXT           = $$
    EG_KUECHE_HZ_INFOTXTCOL        = 0u08
    EG_KUECHE_RESET_HVAC           = 0u08
    
    //Definitionen
    EG_KUECHE_RESETTMP             = 22f16
    EG_KUECHE_RESET_VORWAHL        = KOMFORT
    EG_KUECHE_TEMPERATURMESSWERT   = "EG Küche Temperaturmesswert-4/2/2"
    EG_KUECHE_AKTUELLER_SOLLWERT   = "EG Küche Sollwert Komfort-4/2/20"
    EG_KUECHE_HVAC_MODUS           = "EG Küche HVAC Modus-4/2/44"
    EG_KUECHE_HVAC_VORWAHL         = "EG Küche HVAC Vorwahl-4/2/38"
    EG_KUECHE_HVAC_VORWAHL_GA      = getaddress("EG Küche HVAC Vorwahl-4/2/38")
    EG_KUECHE_SOLLWERT_KOMFORT     = "EG Küche Sollwert Komfort-4/2/20"
    EG_KUECHE_SOLLWERT_KOMFORT_GA  = getaddress("EG Küche Sollwert Komfort-4/2/20")
    EG_KUECHE_STELLWERT_U          = ProzentVonU08("EG Küche Status Stellwert-4/2/8")
    EG_KUECHE_TMP_RND              = Rundenin05Dezimalschritte(EG_KUECHE_TEMPERATURMESSWERT)
    EG_KUECHE_RESET_VORWAHLTXT     = HVACMODUSAUSU08(EG_KUECHE_RESET_VORWAHL)
    EG_KUECHE_RESETTXT             = $Soll Komfort:$ + convert(EG_KUECHE_RESETTMP,$$) + $<br>($ + EG_KUECHE_RESET_VORWAHLTXT + $)$
    
    if SHUTDOWN or change(EG_KUECHE_SOLLWERT_KOMFORT) or change(EG_KUECHE_HVAC_VORWAHL) then {
            writeflashvar(EG_KUECHE_SOLLWERT_KOMFORT);
            writeflashvar(EG_KUECHE_HVAC_VORWAHL);
    }endif;
    
    if (systemstart()) then {
        readflashvar(EG_KUECHE_SOLLWERT_KOMFORT);
        write(address(EG_KUECHE_SOLLWERT_KOMFORT_GA), EG_KUECHE_SOLLWERT_KOMFORT);
        readflashvar(EG_KUECHE_HVAC_VORWAHL);
        write(address(EG_KUECHE_HVAC_VORWAHL_GA),EG_KUECHE_HVAC_VORWAHL);
        pdisplay(EG_KUECHE_RESET,EG_KUECHE_RESETTXT,RESET,GREEN,GREEN,EG_KUECHE_RESET_P);
    } endif;
    
    //RESET
    if pbutton(EG_KUECHE_RESET,EG_KUECHE_RESET_P) == INACTIVE then {
        if EG_KUECHE_RESET_VORWAHL == BUILDINGPROTECTION then EG_KUECHE_RESET_HVAC = 4u08 else EG_KUECHE_RESET_HVAC = EG_KUECHE_RESET_VORWAHL endif;
        write(address(EG_KUECHE_HVAC_VORWAHL_GA),EG_KUECHE_RESET_HVAC);
        write(address(EG_KUECHE_SOLLWERT_KOMFORT_GA),EG_KUECHE_RESETTMP);
    } endif;
    
    if  change(EG_KUECHE_STELLWERT_U) or  \\
        change(EG_KUECHE_TEMPERATURMESSWERT) or \\
        change(EG_KUECHE_AKTUELLER_SOLLWERT) \\
        then { \\
            EG_KUECHE_HZ_INFOTXT   = STRINGINFOTEXT(EG_KUECHE_TMP_RND,EG_KUECHE_AKTUELLER_SOLLWERT,EG_KUECHE_STELLWERT_U);
            EG_KUECHE_HZ_ICON      = HVACMODUS2ICON(EG_KUECHE_HVAC_MODUS);
            EG_KUECHE_HZ_ICONCOL   = HVACMODUS2ICONCOL(EG_KUECHE_HVAC_MODUS);
            EG_KUECHE_HZ_INFOTXTCOL= GREY;
            pdisplay(EG_KUECHE_HZ_INFO_BUTTON,EG_KUECHE_HZ_INFOTXT , EG_KUECHE_HZ_ICON,EG_KUECHE_HZ_ICONCOL,EG_KUECHE_HZ_INFOTXTCOL,EG_KUECHE_HZ_INFO_BUTTON_P);
    }endif;
    
    if pbutton(EG_KUECHE_HZ_INFO_BUTTON,EG_KUECHE_HZ_INFO_BUTTON_P) == INACTIVE then {
        if EG_KUECHE_HVAC_MODUS == KOMFORT then write(address(EG_KUECHE_HVAC_VORWAHL_GA), STANDBY) endif;
        if EG_KUECHE_HVAC_MODUS == STANDBY then write(address(EG_KUECHE_HVAC_VORWAHL_GA), NIGHTMODE) endif;
        if EG_KUECHE_HVAC_MODUS == NIGHTMODE then write(address(EG_KUECHE_HVAC_VORWAHL_GA), 4u08) endif;
        if EG_KUECHE_HVAC_MODUS == 4u08 then write(address(EG_KUECHE_HVAC_VORWAHL_GA), KOMFORT) endif;
    } endif;
    
    ​
    Danach müssen nur noch die Gruppenadressen
    EG_KUECHE_TEMPERATURMESSWERT = "EG Küche Temperaturmesswert-4/2/2"
    EG_KUECHE_AKTUELLER_SOLLWERT = "EG Küche Sollwert Komfort-4/2/20"
    EG_KUECHE_HVAC_MODUS = "EG Küche HVAC Modus-4/2/44"
    EG_KUECHE_HVAC_VORWAHL = "EG Küche HVAC Vorwahl-4/2/38"
    EG_KUECHE_HVAC_VORWAHL_GA = getaddress("EG Küche HVAC Vorwahl-4/2/38")
    EG_KUECHE_SOLLWERT_KOMFORT = "EG Küche Sollwert Komfort-4/2/20"
    EG_KUECHE_SOLLWERT_KOMFORT_GA = getaddress("EG Küche Sollwert Komfort-4/2/20")
    EG_KUECHE_STELLWERT_U = ProzentVonU08("EG Küche Status Stellwert-4/2/8")​

    Ensprechend "verdrahtet" werden.

    Beste Grüße
    Peter
    never fummel a running system...

    #2
    TRex, kommt man bei Deiner Rechnung oben bei 100% (255) Stellgröße nicht auf 100,25%?

    convert(convert(InZahl,0f32)/2.55f32,0s16) --> bei 255 = 100
    Eingangswert*2f16+0.5f16)/2f16) --> 200,5/2 = 100,25%​

    Kommentar

    Lädt...
    X