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.jpgHierzu 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:
und das Programm "Heizung Küche" erstellen:
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
Die Ausgabe der GA vom MDT-Heizungsaktor war mir zu wenig.
Verbesserungsvorschläge sind gerne willkommen.
Ausgabebild.jpgHierzu 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
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;
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
Kommentar