Danke. Werde über das Eine oder Andere noch ein wenig grübeln müssen ... Schönen Abend.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Erste Erfahrung mit HSL 2.0-Framework
Einklappen
X
-
Code:# -*- coding: iso-8859-1 -*- LOGIKCATEGORY="#lucien\hsb" LOGIKNAME="reg_wohnen" LOGIKID="10310" LOGIKVERSION="2.0b" LOGIKCOMPILEMODE=1 LOGIKDEBUG=1 LOGIKDESCRIPTION=""" Raumregelung (Betriebsmodus und Präsenzobjekt) bei Scharf, Urlaub, Tag und Nacht sowie Zeit, Präsenz """ #5000|"Text"|Remanent(1/0)|Anz.Eingänge|.n.|Anzahl Ausgänge|.n.|.n. #5001|Anzahl Eingänge|Ausgänge|Offset|Speicher|Berechnung bei Start #5002|Index Eingang|Default Wert|0=numerisch 1=alphanummerisch #5003|Speicher|Initwert|Remanent #5004|ausgang|Initwert|runden binär (0/1)|typ (1-send/2-sbc)|0=numerisch 1=alphanummerisch #5012|abbruch bei bed. (0/1)|bedingung|formel|zeit|pin-ausgang|pin-offset|pin-speicher|pin-neg.ausgang 5000|"@LOGIKCATEGORY@\\@LOGIKNAME@"|0|7|"Nacht"|"Urlaub"|"Scharf"|"Pr_Zeit"|"Pr_Bew"|"HVAC_Tag"|"HVAC_Nacht"|2|"Betr_Modus"|"Prsenz"|"@LOGIKID@ - V@LOGIKVERSION@" 5001|7|2|0|0|1 5002|1|0|0 # Nacht 5002|2|0|0 # Urlaub 5002|3|0|0 # Scharf 5002|4|0|0 # Präsenz gemäß Zeit 5002|5|0|0 # Präsenz gemäß Bewegungsmelder 5002|6|2|0 # HVAC Code Tag 5002|7|3|0 # HVAC Code Nacht 5004|1|0|0|2|0 # Betriebsmodus 5004|2|0|0|2|0 # Präsenz für Heizung ## nur beim ersten Mal initialisieren 5012|0|"EI and not hasattr(pItem.LogikItem,'SHARED_REG_WOHNEN')"|"@BYTECODE@"|""|0|0|0|0 @BYTECODESTART@ ## Name bisschen angepasst class C10310_regwohnen(object): def __init__(self,pItem): ## reicht ... rest brauchen wir nicht und dann bauen wir es auch nicht ein pItem.LogikItem.SHARED_REG_WOHNEN = self def check(self,EN,AN): ## ist automatisch wahr ... brauchst du nicht mit True vergleichen if EN[1] or EN[2]: # Nacht oder Urlaub AN[1]=EN[7] AN[2]=0 elif not EN[1] and not EN[3]: # weder Nacht noch Scharf AN[1]=EN[6] AN[2]=(ein[4] or ein[5]) # Präsenz gemäß Zeit oder Präsenzmelder else: AN[1]=EN[6] AN[2]=0 C10310_regwohnen(pItem) @BYTECODEEND@ ## reicht einmal und dann direkt auf AN schreiben, hier muss dann Ausgang auf 0 sonst würde es wieder überschrieben 5012|0|""|"pItem.LogikItem.SHARED_REG_WOHNEN.check(EN,AN)"|""|0|0|0|0
Kommentar
Kommentar