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