3 Commits

Author SHA1 Message Date
Samuele Locatelli f8b35844d4 Update display energia e grafici 2026-01-21 08:28:45 +01:00
Samuele Locatelli e9dfa1ba0a Ancora update di finetuning energia e accensione accessori inverno 2026-01-17 10:11:36 +01:00
Samuele Locatelli a6495e76e9 Merge tag 'AddBagniAndFix' into develop
Update per gestione
- automazione bagni con shelly
- ottimizzazione cicli VMC x energia
- init variabili estate/inverno
2026-01-16 07:47:42 +01:00
4 changed files with 621 additions and 629 deletions
+31 -31
View File
@@ -5,8 +5,8 @@ String Stagione {channel="astro:sun:local:season#name"}
/*---------------------- Elementi group logici ----------------------*/ /*---------------------- Elementi group logici ----------------------*/
Group:Switch:OR(ON, OFF) CL_Switch "Clima Attivi [(%d)]" <oh:switch> Group:Switch:OR(ON, OFF) CL_Switch "Clima Attivi [(%d)]" <oh:switch>
Group:Switch:OR(ON, OFF) VMC_Switch "VMC Attive [(%d)]" <oh:switch> Group:Switch:OR(ON, OFF) VMC_Switch "VMC Attive [(%d)]" <oh:switch>
// Group:Switch:OR(ON, OFF) Light_PresetSwitch "Preset Luci" <oh:switch> //Group:Number:AVG CL_Mode "Modalità Clima [%.1f]" <oh:heating>
Group:Number:AVG CL_Mode "Modalità Clima [%.1f]" <oh:heating> Group:Number:AVG CL_Mode "Modalità Prevalente [MAP(clima_modo.map):%.0f]" <oh:heating>
Group:Number:AVG CL_Temp "Temp. Rilevata [%.1f °C]" <oh:temperature> Group:Number:AVG CL_Temp "Temp. Rilevata [%.1f °C]" <oh:temperature>
Group:Number:AVG CL_Set "Temp. Impostata [%.1f °C]" <oh:heating> Group:Number:AVG CL_Set "Temp. Impostata [%.1f °C]" <oh:heating>
Group:Number:AVG CL_Fan "Fan Speed" <oh:temperature> Group:Number:AVG CL_Fan "Fan Speed" <oh:temperature>
@@ -33,56 +33,56 @@ Switch Light_PresetSwitch "Preset Luci"
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/*---------------------- Elementi Clima, Daikin via MODBUS ----------------------*/ /*---------------------- Elementi Clima, Daikin via MODBUS ----------------------*/
Group gClimaTrigger "Gruppo Climatizzatori"
Switch CL_ModoEstivo "Modalità Estiva (freddo)" Switch CL_ModoEstivo "Modalità Estiva (freddo)"
Number GU120_CL "Clima Ufficio 120" // Number GU120_CL "Clima Ufficio 120"
Number CL_GrpScale "Scala Temporale Clima" Number CL_GrpScale "Scala Temporale Clima"
Number VMC_GrpScale "Scala Temporale VMC" Number VMC_GrpScale "Scala Temporale VMC"
Switch Heating_GU120_CL_C1_Switch "Ingresso" <oh:heating> (CL_Switch) {channel="modbus:data:6cb6a78ae4:002f17d3e2:switch"} Switch Heating_GU120_CL_C1_Switch "Ingresso" <oh:heating> (gClimaTrigger, CL_Switch) {channel="modbus:data:6cb6a78ae4:002f17d3e2:switch"}
Number Heating_GU120_CL_C1_Temp "°C Ingresso [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:7f20af572c:a9e7069c7c:number"} Number Heating_GU120_CL_C1_Temp "°C Ingresso [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:7f20af572c:a9e7069c7c:number"}
Number Heating_GU120_CL_C1_Set "Set Ingresso [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:6cb6a78ae4:d016b44d6d:number"} Number Heating_GU120_CL_C1_Set "Set Ingresso [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:6cb6a78ae4:d016b44d6d:number"}
Number Heating_GU120_CL_C1_Fan "Fan Ingresso" <oh:temperature> (CL_Fan) {channel="modbus:data:6cb6a78ae4:b6325f2892:number"} Number Heating_GU120_CL_C1_Fan "Fan Ingresso" <oh:temperature> (gClimaTrigger, CL_Fan) {channel="modbus:data:6cb6a78ae4:b6325f2892:number"}
Number Heating_GU120_CL_C1_Mode "Modo Ingresso [%s]" <oh:heating> (CL_Mode) {channel="modbus:data:6cb6a78ae4:e6e67dfb58:number"} Number Heating_GU120_CL_C1_Mode "Modo Ingresso [MAP(clima_modo.map):%s]" <oh:heating> (gClimaTrigger, CL_Mode) {channel="modbus:data:6cb6a78ae4:e6e67dfb58:number"}
Switch Heating_GU120_CL_C2_Switch "Corridoio" <oh:heating> (CL_Switch) {channel="modbus:data:25ff4e4854:abc8fe8acf:switch"} Switch Heating_GU120_CL_C2_Switch "Corridoio" <oh:heating> (gClimaTrigger, CL_Switch) {channel="modbus:data:25ff4e4854:abc8fe8acf:switch"}
Number Heating_GU120_CL_C2_Temp "°C Corridoio [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:25ff4e4854:9c21d13904:number"} Number Heating_GU120_CL_C2_Temp "°C Corridoio [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:25ff4e4854:9c21d13904:number"}
Number Heating_GU120_CL_C2_Set "Set Corridoio [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:25ff4e4854:4125b665e1:number"} Number Heating_GU120_CL_C2_Set "Set Corridoio [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:25ff4e4854:4125b665e1:number"}
Number Heating_GU120_CL_C2_Fan "Fan Corridoio" <oh:temperature> (CL_Fan) {channel="modbus:data:25ff4e4854:37b7126b15:number"} Number Heating_GU120_CL_C2_Fan "Fan Corridoio" <oh:temperature> (gClimaTrigger, CL_Fan) {channel="modbus:data:25ff4e4854:37b7126b15:number"}
Number Heating_GU120_CL_C2_Mode "Modo Corridoio [%s]" <oh:heating> (CL_Mode) {channel="modbus:data:25ff4e4854:b382599920:number"} Number Heating_GU120_CL_C2_Mode "Modo Corridoio [MAP(clima_modo.map):%s]" <oh:heating> (gClimaTrigger, CL_Mode) {channel="modbus:data:25ff4e4854:b382599920:number"}
Switch Heating_GU120_CL_C3_Switch "Finestra" <oh:heating> (CL_Switch) {channel="modbus:data:1d94db5831:a206ccc2d1:switch"} Switch Heating_GU120_CL_C3_Switch "Finestra" <oh:heating> (gClimaTrigger, CL_Switch) {channel="modbus:data:1d94db5831:a206ccc2d1:switch"}
Number Heating_GU120_CL_C3_Temp "°C Finestra [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:2a1822eb32:db7ce645ec:number"} Number Heating_GU120_CL_C3_Temp "°C Finestra [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:2a1822eb32:db7ce645ec:number"}
Number Heating_GU120_CL_C3_Set "Set Finestra [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:1d94db5831:1877b2eeac:number"} Number Heating_GU120_CL_C3_Set "Set Finestra [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:1d94db5831:1877b2eeac:number"}
Number Heating_GU120_CL_C3_Fan "Fan Finestra" <oh:temperature> (CL_Fan) {channel="modbus:data:1d94db5831:31ea819e70:number"} Number Heating_GU120_CL_C3_Fan "Fan Finestra" <oh:temperature> (gClimaTrigger, CL_Fan) {channel="modbus:data:1d94db5831:31ea819e70:number"}
Number Heating_GU120_CL_C3_Mode "Modo Finestra [%s]" <oh:heating> (CL_Mode) {channel="modbus:data:1d94db5831:b9fdad4dbd:number"} Number Heating_GU120_CL_C3_Mode "Modo Finestra [MAP(clima_modo.map):%s]" <oh:heating> (gClimaTrigger, CL_Mode) {channel="modbus:data:1d94db5831:b9fdad4dbd:number"}
Switch Heating_GU120_CL_C4_Switch "Uff Samuele" <oh:heating> (CL_Switch) {channel="modbus:data:9c572c8b0d:aaad41b599:switch"} Switch Heating_GU120_CL_C4_Switch "Uff Samuele" <oh:heating> (gClimaTrigger, CL_Switch) {channel="modbus:data:9c572c8b0d:aaad41b599:switch"}
Number Heating_GU120_CL_C4_Temp "°C Uff Sam [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:102f2a9339:a684203978:number"} Number Heating_GU120_CL_C4_Temp "°C Uff Sam [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:102f2a9339:a684203978:number"}
Number Heating_GU120_CL_C4_Set "Set Uff Sam [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:9c572c8b0d:4de0ad7a18:number"} Number Heating_GU120_CL_C4_Set "Set Uff Sam [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:9c572c8b0d:4de0ad7a18:number"}
Number Heating_GU120_CL_C4_Fan "Fan Uff Sam" <oh:temperature> (CL_Fan) {channel="modbus:data:9c572c8b0d:4aea01c2ba:number"} Number Heating_GU120_CL_C4_Fan "Fan Uff Sam" <oh:temperature> (gClimaTrigger, CL_Fan) {channel="modbus:data:9c572c8b0d:4aea01c2ba:number"}
Number Heating_GU120_CL_C4_Mode "Modo Uff Sam [%s]" <oh:heating> (CL_Mode) {channel="modbus:data:9c572c8b0d:076c837dc5:number"} Number Heating_GU120_CL_C4_Mode "Modo Uff Sam [MAP(clima_modo.map):%s]" <oh:heating> (gClimaTrigger, CL_Mode) {channel="modbus:data:9c572c8b0d:076c837dc5:number"}
Switch Heating_GU120_CL_C5_Switch "Uff Emm" <oh:heating> (CL_Switch) {channel="modbus:data:b84a9d28c9:2c0b2764b3:switch"} Switch Heating_GU120_CL_C5_Switch "Uff Emm" <oh:heating> (gClimaTrigger, CL_Switch) {channel="modbus:data:b84a9d28c9:2c0b2764b3:switch"}
Number Heating_GU120_CL_C5_Temp "°C Uff Emm [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:54111f6432:92f68904d5:number"} Number Heating_GU120_CL_C5_Temp "°C Uff Emm [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:54111f6432:92f68904d5:number"}
Number Heating_GU120_CL_C5_Set "Set Uff Emm [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:f6b8c93dfe:5e0ba61106:number"} Number Heating_GU120_CL_C5_Set "Set Uff Emm [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:f6b8c93dfe:5e0ba61106:number"}
Number Heating_GU120_CL_C5_Fan "Fan Uff Emm" <oh:temperature> (CL_Fan) {channel="modbus:data:f6b8c93dfe:0bbc6da4ba:number"} Number Heating_GU120_CL_C5_Fan "Fan Uff Emm" <oh:temperature> (gClimaTrigger, CL_Fan) {channel="modbus:data:f6b8c93dfe:0bbc6da4ba:number"}
Number Heating_GU120_CL_C5_Mode "Modo Uff Emm [%s]" <oh:heating> (CL_Mode) {channel="modbus:data:f6b8c93dfe:8cf048aed5:number"} Number Heating_GU120_CL_C5_Mode "Modo Uff Emm [MAP(clima_modo.map):%s]" <oh:heating> (gClimaTrigger, CL_Mode) {channel="modbus:data:f6b8c93dfe:8cf048aed5:number"}
Switch Heating_GU100_CL_C6_Switch "Desk" <oh:heating> (CL_Switch) {channel="modbus:data:32c34522e3:592d883bcc:switch"} Switch Heating_GU100_CL_C6_Switch "Desk" <oh:heating> (gClimaTrigger, CL_Switch) {channel="modbus:data:32c34522e3:592d883bcc:switch"}
Number Heating_GU100_CL_C6_Temp "°C Desk [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:6dfb31b2d0:a9eda37f18:number"} Number Heating_GU100_CL_C6_Temp "°C Desk [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:6dfb31b2d0:a9eda37f18:number"}
Number Heating_GU100_CL_C6_Set "Set Desk [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:32c34522e3:73c82709f7:number"} Number Heating_GU100_CL_C6_Set "Set Desk [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:32c34522e3:73c82709f7:number"}
Number Heating_GU100_CL_C6_Fan "Fan Desk" <oh:temperature> (CL_Fan) {channel="modbus:data:32c34522e3:1d32219a9b:number"} Number Heating_GU100_CL_C6_Fan "Fan Desk" <oh:temperature> (gClimaTrigger, CL_Fan) {channel="modbus:data:32c34522e3:1d32219a9b:number"}
Number Heating_GU100_CL_C6_Mode "Modo Desk [%s]" <oh:heating> (CL_Mode) {channel="modbus:data:32c34522e3:5550465d50:number"} Number Heating_GU100_CL_C6_Mode "Modo Desk [MAP(clima_modo.map):%s]" <oh:heating> (gClimaTrigger, CL_Mode) {channel="modbus:data:32c34522e3:5550465d50:number"}
Switch Heating_GU100_CL_C7_Switch "OpenSpace" <oh:heating> (CL_Switch) {channel="modbus:data:7b0ff8678f:852651bdfb:switch"} Switch Heating_GU100_CL_C7_Switch "OpenSpace" <oh:heating> (gClimaTrigger, CL_Switch) {channel="modbus:data:7b0ff8678f:852651bdfb:switch"}
Number Heating_GU100_CL_C7_Temp "°C OpenSpace [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:15a14761b1:043e67945d:number"} Number Heating_GU100_CL_C7_Temp "°C OpenSpace [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:15a14761b1:043e67945d:number"}
Number Heating_GU100_CL_C7_Set "Set OpenSpace [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:7b0ff8678f:a7c13dd57d:number"} Number Heating_GU100_CL_C7_Set "Set OpenSpace [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:7b0ff8678f:a7c13dd57d:number"}
Number Heating_GU100_CL_C7_Fan "Fan OpenSpace" <oh:temperature> (CL_Fan) {channel="modbus:data:7b0ff8678f:c2ab3ee0e9:number"} Number Heating_GU100_CL_C7_Fan "Fan OpenSpace" <oh:temperature> (gClimaTrigger, CL_Fan) {channel="modbus:data:7b0ff8678f:c2ab3ee0e9:number"}
Number Heating_GU100_CL_C7_Mode "Modo OpenSpace [%s]" <oh:heating> (CL_Mode) {channel="modbus:data:7b0ff8678f:4386a86c96:number"} Number Heating_GU100_CL_C7_Mode "Modo OpenSpace [MAP(clima_modo.map):%s]" <oh:heating> (gClimaTrigger, CL_Mode) {channel="modbus:data:7b0ff8678f:4386a86c96:number"}
Switch Heating_GU100_CL_C8_Switch "Uff Dario" <oh:heating> (CL_Switch) {channel="modbus:data:dfd1d14bf1:d3ddf221cd:switch"} Switch Heating_GU100_CL_C8_Switch "Uff Dario" <oh:heating> (gClimaTrigger, CL_Switch) {channel="modbus:data:dfd1d14bf1:d3ddf221cd:switch"}
Number Heating_GU100_CL_C8_Temp "°C Uff Dario [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:4da0c6beba:766d9bf2b9:number"} Number Heating_GU100_CL_C8_Temp "°C Uff Dario [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:4da0c6beba:766d9bf2b9:number"}
Number Heating_GU100_CL_C8_Set "Set Uff Dario [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:dfd1d14bf1:ef7f18589e:number"} Number Heating_GU100_CL_C8_Set "Set Uff Dario [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:dfd1d14bf1:ef7f18589e:number"}
Number Heating_GU100_CL_C8_Fan "Fan Uff Dario" <oh:temperature> (CL_Fan) {channel="modbus:data:dfd1d14bf1:93736ca830:number"} Number Heating_GU100_CL_C8_Fan "Fan Uff Dario" <oh:temperature> (gClimaTrigger, CL_Fan) {channel="modbus:data:dfd1d14bf1:93736ca830:number"}
Number Heating_GU100_CL_C8_Mode "Modo Uff Dario [%s]" <oh:heating> (CL_Mode) {channel="modbus:data:dfd1d14bf1:ab16eaba84:number"} Number Heating_GU100_CL_C8_Mode "Modo Uff Dario [MAP(clima_modo.map):%s]" <oh:heating> (gClimaTrigger, CL_Mode) {channel="modbus:data:dfd1d14bf1:ab16eaba84:number"}
Switch Heating_GU100_CL_C9_Switch "Sala Riun" <oh:heating> (CL_Switch) {channel="modbus:data:629bd10994:b0f7f4184d:switch"} Switch Heating_GU100_CL_C9_Switch "Sala Riun" <oh:heating> (gClimaTrigger, CL_Switch) {channel="modbus:data:629bd10994:b0f7f4184d:switch"}
Number Heating_GU100_CL_C9_Temp "°C Sala Riun [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:2b1793ab97:b861d34fff:number"} Number Heating_GU100_CL_C9_Temp "°C Sala Riun [%.1f °C]" <oh:temperature> (gClimaTrigger, CL_Temp) {channel="modbus:data:2b1793ab97:b861d34fff:number"}
Number Heating_GU100_CL_C9_Set "Set Riunioni [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:629bd10994:d304255f1e:number"} Number Heating_GU100_CL_C9_Set "Set Riunioni [%.1f °C]" <oh:heating> (gClimaTrigger, CL_Set) {channel="modbus:data:629bd10994:d304255f1e:number"}
Number Heating_GU100_CL_C9_Fan "Fan Riunioni" <oh:temperature> (CL_Fan) {channel="modbus:data:629bd10994:8be791e11a:number"} Number Heating_GU100_CL_C9_Fan "Fan Riunioni" <oh:temperature> (gClimaTrigger, CL_Fan) {channel="modbus:data:629bd10994:8be791e11a:number"}
Number Heating_GU100_CL_C9_Mode "Modo Riunioni [%s]" <oh:heating> (CL_Mode) {channel="modbus:data:629bd10994:7f619bd5fa:number"} Number Heating_GU100_CL_C9_Mode "Modo Riunioni [MAP(clima_modo.map):%s]" <oh:heating> (gClimaTrigger, CL_Mode) {channel="modbus:data:629bd10994:7f619bd5fa:number"}
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
+323 -296
View File
@@ -1,11 +1,20 @@
import java.util.Random import java.util.Random
import org.openhab.core.model.script.ScriptServiceUtil import org.openhab.core.model.script.ScriptServiceUtil
import java.util.HashMap
var Timer timer = null // init oggetti
val Random random = new Random() val Random random = new Random()
var Timer timer = null
// variabile x cicli alternati (VMC, scaldasalviette bagni...) // variabile x cicli alternati (VMC, scaldasalviette bagni...)
var boolean cicloA = true var Boolean cicloA = true
// Ultima temperatura significativa per ogni stanza
var HashMap<String, Number> lastTemp = new HashMap<String, Number>()
// Ultimo timestamp di elaborazione per ogni stanza
var HashMap<String, Long> lastTime = new HashMap<String, Long>()
// Intervallo minimo tra due elaborazioni (in millisecondi)
val long MIN_INTERVAL = 10 * 1000 // 30 secondi
var Number powerOnTemp var Number powerOnTemp
var Number powerOnTempLow var Number powerOnTempLow
@@ -44,8 +53,8 @@ then
} else { } else {
// INVERNO // INVERNO
powerOnTemp = 23 powerOnTemp = 22
powerOnTempLow = 21 powerOnTempLow = 20
minTemp = 19 minTemp = 19
maxTemp = 24 maxTemp = 24
limPrelievoReteMax = 7500 limPrelievoReteMax = 7500
@@ -66,48 +75,49 @@ end
**********************************************************************/ **********************************************************************/
rule "Fix Fronius FullLoad" rule "Fix Fronius FullLoad"
when when
Item Fn_FullLoadNeg changed Item Fn_FullLoadNeg changed
then then
if (Fn_FullLoadNeg.state instanceof Number) { val raw = Fn_FullLoadNeg.state
//logInfo("Fronius.rules", "Start fix Amb prelievo")
var Number posValue = ((Fn_FullLoadNeg.state as Number) * -1) // Caso non numerico → reset
//logInfo("Fronius.rules", "PosValue: {} W", posValue) if (!(raw instanceof Number)) {
Fn_FullLoadPos.postUpdate(posValue) if (Fn_FullLoadPos.state != UNDEF)
} else { Fn_FullLoadPos.postUpdate(UNDEF)
Fn_FullLoadPos.postUpdate(Undefined) // or UNDEF on OH2 return
} }
val Number newValue = -(raw as Number)
val oldValue = Fn_FullLoadPos.state as Number
// Evita update inutili
if (oldValue == null || oldValue != newValue)
Fn_FullLoadPos.postUpdate(newValue)
end end
rule "Prelievo Rete Quotidiano (IN - FV)" rule "Prelievo Rete Quotidiano (IN - FV)"
when when
Item Fn_PrelRete changed Time cron "0/15 * * * * ?" // ogni 15 secondi
//Time cron "0 * * * * *"
then then
//logInfo("Fn_PrelReteDay.rules", "Inizio proc") // 1) Calcolo Fn_PrelReteNet (solo valori >= 0)
// inizio creando variabile derivata del SOLO valore prelevato val Number rete = Fn_PrelRete.state as Number
if(Fn_PrelRete.state >= 0) { Fn_PrelReteNet.postUpdate(if (rete >= 0) rete else 0)
Fn_PrelReteNet.postUpdate(Fn_PrelRete.state as Number)
}
else {
Fn_PrelReteNet.postUpdate(0)
}
//logInfo("Fn_PrelReteDay.rules", "Fn_PrelReteNet: {}", Fn_PrelReteNet.state)
// calcolo parametri delle ore cumulate giornaliere, del valore medio giornaliero
var inizio = now.withHour(0).withMinute(0).withSecond(0)
var double dayTime = (now.getMinute() as Number) / 60 + now.getHour()
//logInfo("Fn_PrelReteDay.rules", "inizio: {}, dayTime: {}", inizio, dayTime)
//var Number dayAVG = Fn_PrelRete.averageSince(inizio) // 2) Inizio giornata
var Number dayAVG_net = Fn_PrelReteNet.averageSince(inizio) val inizio = now.withHour(0).withMinute(0).withSecond(0)
//logInfo("Fn_PrelReteDay.rules", "dayAVG: {} | dayAVG_net: {}", dayAVG, dayAVG_net)
// 3) Somma dei valori (Watt-minuto)
// to-do: usare ALTRA media... val Number somma = Fn_PrelReteNet.sumSince(inizio)
//var double kWh = mediaGiorn * dayTime / 1000
var double kWh = dayAVG_net * dayTime / 1000 // 4) Conversione in kWh
//logWarn("Fn_PrelReteDay.rules", "kWh: {}", kWh) // somma = somma dei valori campionati ogni minuto
Fn_PrelReteDay.postUpdate(kWh) // kWh = somma / (60 * 1000)
val double kWh = somma.doubleValue / 60000.0
// 5) Aggiornamento item
Fn_PrelReteDay.postUpdate(kWh)
end end
rule "Carico totale Shelly" rule "Carico totale Shelly"
when when
Item ShellyPowerValApc changed or Item ShellyPowerValApc changed or
@@ -126,7 +136,7 @@ then
var Number spAll = nCaffe + nApc + nB100 + nB120 var Number spAll = nCaffe + nApc + nB100 + nB120
// Log di debug per verificare i valori // Log di debug per verificare i valori
logInfo("ShellyPower.rules", "Somma: {} + {} + {} + {} = {} W", nCaffe, nApc, nB100, nB120, spAll) logInfo("ShellyPower.rules", "Shelly | Carico rilevato: {} + {} + {} + {} = {} W", nCaffe, nApc, nB100, nB120, spAll)
ShellyPowerValAll.postUpdate(spAll) ShellyPowerValAll.postUpdate(spAll)
end end
@@ -134,7 +144,6 @@ end
/********************************************************************** /**********************************************************************
* Rules x automazione CLIMA ALWAYS * Rules x automazione CLIMA ALWAYS
**********************************************************************/ **********************************************************************/
rule "Accensione mattino 7.00 Uff Samuele" rule "Accensione mattino 7.00 Uff Samuele"
when when
Time cron "0 0 7 * * MON-SAT" Time cron "0 0 7 * * MON-SAT"
@@ -293,21 +302,6 @@ then
Heating_GU100_CL_C9_Switch.sendCommand(OFF) Heating_GU100_CL_C9_Switch.sendCommand(OFF)
end end
// rule "Spegnimento Clima OGNI sera 20:30"
// when
// Time cron "0 30 20 * * ?"
// then
// Heating_GU120_CL_C1_Switch.sendCommand(OFF)
// Heating_GU120_CL_C2_Switch.sendCommand(OFF)
// Heating_GU120_CL_C3_Switch.sendCommand(OFF)
// Heating_GU120_CL_C4_Switch.sendCommand(OFF)
// Heating_GU120_CL_C5_Switch.sendCommand(OFF)
// Heating_GU100_CL_C6_Switch.sendCommand(OFF)
// Heating_GU100_CL_C7_Switch.sendCommand(OFF)
// Heating_GU100_CL_C8_Switch.sendCommand(OFF)
// Heating_GU100_CL_C9_Switch.sendCommand(OFF)
// end
rule "Spegnimento Clima OGNI sera 21:00" rule "Spegnimento Clima OGNI sera 21:00"
when when
Time cron "0 0 21 * * ?" Time cron "0 0 21 * * ?"
@@ -330,29 +324,48 @@ end
**********************************************************************/ **********************************************************************/
rule "Gestione VMC unificata giorno/notte con ping-pong" rule "Gestione VMC unificata giorno/notte con ping-pong"
when when
Time cron "0 0/10 * * * ?" // ogni 10 minuti Time cron "30 0/4 * * * ?" // ogni 4 minuti
then then
val hour = (MyDateTimeItem.state as DateTimeType).zonedDateTime.hour val dayOfWeek = now.getDayOfWeek.getValue // 1 = Lunedì, ..., 6 = Sabato, 7 = Domenica
val consumo = (Fn_PrelRete.state as Number).intValue val hour = now.getHour
val isSummer = (CL_ModoEstivo.state == ON) val isSummer = (CL_ModoEstivo.state == ON)
// --- NUOVA LOGICA DI CONTROLLO TEMPORALE ---
var Boolean isTempoDiFunzionamento = true
// --------------------------- // 1. Controllo Domenica (7)
// 1) FASCIA NOTTURNA (es 20 → 6) if (dayOfWeek == 7) {
// --------------------------- isTempoDiFunzionamento = false
if(hour < oraVmcOn || hour > oraVmcOff) { }
logInfo("VMC.Check", "NOTTE: spegnimento totale forzato") // 2. Controllo Sabato (6) dopo le 14:00
else if (dayOfWeek == 6 && hour >= 14) {
SonoffServizi01_VorticeVCM.sendCommand(OFF) isTempoDiFunzionamento = false
SonoffServizi02_VorticeVCM.sendCommand(OFF) }
ShellySwitchBagno100.sendCommand(OFF) // 3. Controllo Fascia Notturna standard (Lun-Ven o Sab mattina)
ShellySwitchBagno120.sendCommand(OFF) else if (hour < oraVmcOn || hour >= oraVmcOff) {
isTempoDiFunzionamento = false
}
// --- AZIONE DI SPEGNIMENTO ---
if (!isTempoDiFunzionamento) {
// Evitiamo log eccessivi se è già tutto spento
if (SonoffServizi01_VorticeVCM.state == ON || SonoffServizi02_VorticeVCM.state == ON) {
logInfo("VMC.Check", "MODALITÀ RISPARMIO: Sabato pomeriggio/Domenica o Notte -> OFF totale")
SonoffServizi01_VorticeVCM.sendCommand(OFF)
SonoffServizi02_VorticeVCM.sendCommand(OFF)
ShellySwitchBagno100.sendCommand(OFF)
ShellySwitchBagno120.sendCommand(OFF)
}
return return
} }
// --------------------------- // ---------------------------
// 2) FASCIA DIURNA (es 7 → 19) // 2) FASCIA DIURNA ATTIVA
// --------------------------- // ---------------------------
// controllo su 4 min come cron
val maxItem = Fn_PrelRete.maximumSince(now.minusMinutes(4))
val consumo = (maxItem.state as Number).intValue
// --- Soglia massima --- // --- Soglia massima ---
if(consumo > limPrelievoReteMax) { if(consumo > limPrelievoReteMax) {
@@ -400,6 +413,7 @@ then
// alterna ciclo // alterna ciclo
cicloA = !cicloA cicloA = !cicloA
// logInfo("VMC.Check", "DEBUG cicloA dopo = {}", cicloA)
return return
} }
@@ -422,84 +436,292 @@ end
/********************************************************************** /**********************************************************************
* Rules x automazione gestione aria freddo/ventilazione ESTIVO * Rules x automazione gestione aria freddo/ventilazione ESTIVO
**********************************************************************/ // **********************************************************************/
rule "Fine tuning climatizzatori dinamico" rule "Fine tuning climatizzatori dinamico"
when when
Member of gClimaTrigger changed Member of gClimaTrigger changed
then then
// 1. Identificazione val long nowMs = now.toInstant.toEpochMilli
val triggerName = triggeringItem.name val itemName = triggeringItem.name
// Ricava la base, es: Heating_GU120_CL_C1 val newVal = triggeringItem.state
val baseName = triggerName.substring(0, triggerName.lastIndexOf("_"))
logInfo("clima.rule", "{} | Start processing per {}", itemName, newVal)
// --- 1) Validazione stato numerico ---
if (!(newVal instanceof Number))
{
logInfo("clima.rule", "{}: NewVal non è un numero! {}", itemName, newVal)
return
}
// val Number currentVal = newVal as Number
// --- 2) Filtro temporale (Debounce) ---
// Impedisce alla regola di girare a vuoto se un sensore invia 10 update al secondo
val lastT = lastTime.get(itemName)
if (lastT !== null && (nowMs - lastT) < MIN_INTERVAL) {
// Log rimosso per non intasare i file, o trasformato in debug
logInfo("clima.rule", "{}: Processing interrotto x Limite temporale {} < {}", itemName, (nowMs - lastT), MIN_INTERVAL)
return
}
lastTime.put(itemName, nowMs)
// --- 3) Identificazione stanza ---
val baseName = itemName.substring(0, itemName.lastIndexOf("_"))
// 2. Recupero Item correlati
val itemSet = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Set") val itemSet = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Set")
val itemTemp = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Temp") val itemTemp = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Temp")
val itemMode = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Mode") val itemMode = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Mode")
// 3. Controllo sicurezza (evitiamo errori se un item è appena nato o non inizializzato)
if (itemSet.state == NULL || itemTemp.state == NULL || itemMode.state == NULL) { if (itemSet.state == NULL || itemTemp.state == NULL || itemMode.state == NULL) {
logWarn("clima.rule", "Uno degli Item per {} è NULL. Esco.", baseName) logInfo("clima.rule", "{}: Processing interrotto x valori null | itemSet.state {} | itemTemp.state {} | itemMode.state {}", baseName, itemSet.state, itemTemp.state, itemMode.state)
return; return
} }
// 4. Variabili locali // --- 4) Lettura valori ---
var target = itemSet.state as Number var Number target = itemSet.state as Number
val ambient = itemTemp.state as Number val Number ambient = itemTemp.state as Number
val currMode = itemMode.state as Number val Number currMode = itemMode.state as Number
// // Costanti (Assicurati che siano definite globalmente o mettile qui)
// val minTemp = 17
// val maxTemp = 28
// val offsetVal = 0.5 // Esempio
// val range = 0.2 // Esempio
// 5. Logica di Business // --- 5) Limiti target (Sanificazione) ---
// Limito target se fuori range if (target < minTemp) {
if(target < minTemp) { logInfo("clima.rule", "{}: Fix temp | minTemp {}, Target: {})", baseName, minTemp, target)
target = minTemp target = minTemp
itemSet.sendCommand(target) itemSet.sendCommand(target)
} else if(target > maxTemp) { } else if (target > maxTemp) {
logInfo("clima.rule", "{}: Fix temp | maxTemp {}, Target: {})", baseName, maxTemp, target)
target = maxTemp target = maxTemp
itemSet.sendCommand(target) itemSet.sendCommand(target)
} }
// --- 6) Logica Hysteresis ---
var Number turnOnTemp = 0 var Number turnOnTemp = 0
var Number turnOffTemp = 0 var Number turnOffTemp = 0
if (CL_ModoEstivo.state == ON) { if (CL_ModoEstivo.state == ON) {
// --- ESTATE (Raffrescamento) ---
turnOnTemp = target + offsetVal turnOnTemp = target + offsetVal
turnOffTemp = target + offsetVal - range turnOffTemp = target + offsetVal - range
if (ambient >= turnOnTemp) { if (ambient >= turnOnTemp) {
if(currMode != 3) { if (currMode != 3) {
logInfo("clima.rule", "{}: Attivazione Raffrescamento (Amb: {}, Target: {})", baseName, ambient, target) logInfo("clima.rule", "{}: Attivazione Raffrescamento (Amb: {}, Target: {})", baseName, ambient, target)
itemMode.sendCommand(3) itemMode.sendCommand(3)
} }
} else if (ambient <= turnOffTemp) { } else if (ambient <= turnOffTemp) {
if(currMode != 2) { if (currMode != 2) {
logInfo("clima.rule", "{}: Raggiunto target estate (Amb: {}, Target: {})", baseName, ambient, target) logInfo("clima.rule", "{}: Target raggiunto -> Standby (Amb: {}, Target: {})", baseName, ambient, target)
itemMode.sendCommand(2) itemMode.sendCommand(2)
} }
} }
} else { } else {
// --- INVERNO (Riscaldamento) ---
turnOnTemp = target - offsetVal turnOnTemp = target - offsetVal
turnOffTemp = target - offsetVal + range turnOffTemp = target - offsetVal + range
if (ambient <= turnOnTemp) { if (ambient <= turnOnTemp) {
if(currMode != 1) { if (currMode != 1) {
logInfo("clima.rule", "{}: Attivazione Riscaldamento (Amb: {}, Target: {})", baseName, ambient, target) logInfo("clima.rule", "{}: Attivazione Riscaldamento (Amb: {}, Target: {})", baseName, ambient, target)
itemMode.sendCommand(1) itemMode.sendCommand(1)
} }
} else if (ambient >= turnOffTemp) { } else if (ambient >= turnOffTemp) {
if(currMode != 2) { if (currMode != 2) {
logInfo("clima.rule", "{}: Raggiunto target inverno (Amb: {}, Target: {})", baseName, ambient, target) logInfo("clima.rule", "{}: Target raggiunto -> Standby (Amb: {}, Target: {})", baseName, ambient, target)
itemMode.sendCommand(2) itemMode.sendCommand(2)
} }
} }
} }
end end
// rule "Fine tuning climatizzatori dinamico"
// when
// Member of gClimaTrigger changed
// then
// val long nowMs = now.toInstant.toEpochMilli
// val itemName = triggeringItem.name
// val newVal = triggeringItem.state
// logInfo("clima.rule","Inizio processing {} | newVal: {}", itemName, newVal)
// // --- 1) Validazione stato numerico ---
// if (!(newVal instanceof Number)) {
// logInfo("clima.rule","Errore: non è number: {}", itemName)
// return
// }
// val Number newTemp = newVal as Number
// // --- 2) Filtro temporale per prestazioni ---
// val lastT = lastTime.get(itemName)
// if (lastT !== null && (nowMs - lastT) < MIN_INTERVAL) {
// logInfo("clima.rule","Variazione troppo rapida | {} | {}ms", itemName, (nowm - lastT))
// return
// }
// // --- 3) Filtro anti-rumore intelligente ---
// val Number oldTemp = lastTemp.getOrDefault(itemName, newTemp)
// if (Math.abs(newTemp.doubleValue - oldTemp.doubleValue) < 0.05) {
// // variazione troppo piccola, ignoro
// logInfo("clima.rule", "Variazione troppo piccola per {}, ignoro ({} -> {})", itemName, oldTemp, newTemp)
// return
// }
// // Aggiorno i riferimenti
// lastTemp.put(itemName, newTemp)
// lastTime.put(itemName, nowMs)
// // --- 4) Identificazione stanza ---
// val baseName = itemName.substring(0, itemName.lastIndexOf("_"))
// val itemSet = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Set")
// val itemTemp = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Temp")
// val itemMode = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Mode")
// if (itemSet.state == NULL || itemTemp.state == NULL || itemMode.state == NULL) {
// logWarn("clima.rule", "Uno degli Item per {} è NULL. Esco.", baseName)
// return
// }
// // --- 5) Lettura valori ---
// var Number target = itemSet.state as Number
// val Number ambient = itemTemp.state as Number
// val Number currMode = itemMode.state as Number
// // --- 6) Limiti target ---
// if(target < minTemp) {
// target = minTemp
// itemSet.sendCommand(target)
// } else if(target > maxTemp) {
// target = maxTemp
// itemSet.sendCommand(target)
// }
// // --- 7) Hysteresis dinamico (già nella tua logica) ---
// var Number turnOnTemp = 0
// var Number turnOffTemp = 0
// if (CL_ModoEstivo.state == ON) {
// turnOnTemp = target + offsetVal
// turnOffTemp = target + offsetVal - range
// if (ambient >= turnOnTemp) {
// if(currMode != 3) {
// logInfo("clima.rule", "{}: Attivazione Raffrescamento (Amb: {}, Target: {})", baseName, ambient, target)
// itemMode.sendCommand(3)
// }
// } else if (ambient <= turnOffTemp) {
// if(currMode != 2) {
// logInfo("clima.rule", "{}: Raggiunto target estate (Amb: {}, Target: {})", baseName, ambient, target)
// itemMode.sendCommand(2)
// }
// }
// } else {
// turnOnTemp = target - offsetVal
// turnOffTemp = target - offsetVal + range
// if (ambient <= turnOnTemp) {
// if(currMode != 1) {
// logInfo("clima.rule", "{}: Attivazione Riscaldamento (Amb: {}, Target: {})", baseName, ambient, target)
// itemMode.sendCommand(1)
// }
// } else if (ambient >= turnOffTemp) {
// if(currMode != 2) {
// logInfo("clima.rule", "{}: Raggiunto target inverno (Amb: {}, Target: {})", baseName, ambient, target)
// itemMode.sendCommand(2)
// }
// }
// }
// end
// rule "Fine tuning climatizzatori dinamico"
// when
// Member of gClimaTrigger changed
// then
// // // Filtro anti-rumore: ignora variazioni inferiori a 0.05°C
// // val oldVal = triggeringItem.previousState.state as Number
// // val newVal = triggeringItem.state as Number
// // if (Math.abs(newVal.doubleValue - oldVal.doubleValue) < 0.05) {
// // logInfo("clima.rule", "{}: variazione troppo piccola ({} → {}), ignoro", triggeringItem.name, oldVal, newVal)
// // return
// // }
// // 1. Identificazione
// val triggerName = triggeringItem.name
// // Ricava la base, es: Heating_GU120_CL_C1
// val baseName = triggerName.substring(0, triggerName.lastIndexOf("_"))
// // 2. Recupero Item correlati
// val itemSet = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Set")
// val itemTemp = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Temp")
// val itemMode = ScriptServiceUtil.getItemRegistry.getItem(baseName + "_Mode")
// // 3. Controllo sicurezza (evitiamo errori se un item è appena nato o non inizializzato)
// if (itemSet.state == NULL || itemTemp.state == NULL || itemMode.state == NULL) {
// logWarn("clima.rule", "Uno degli Item per {} è NULL. Esco.", baseName)
// return;
// }
// // 4. Variabili locali
// var target = itemSet.state as Number
// val ambient = itemTemp.state as Number
// val currMode = itemMode.state as Number
// // // Costanti (Assicurati che siano definite globalmente o mettile qui)
// // val minTemp = 17
// // val maxTemp = 28
// // val offsetVal = 0.5 // Esempio
// // val range = 0.2 // Esempio
// // 5. Logica di Business
// // Limito target se fuori range
// if(target < minTemp) {
// target = minTemp
// itemSet.sendCommand(target)
// } else if(target > maxTemp) {
// target = maxTemp
// itemSet.sendCommand(target)
// }
// var Number turnOnTemp = 0
// var Number turnOffTemp = 0
// if (CL_ModoEstivo.state == ON) {
// turnOnTemp = target + offsetVal
// turnOffTemp = target + offsetVal - range
// if (ambient >= turnOnTemp) {
// if(currMode != 3) {
// logInfo("clima.rule", "{}: Attivazione Raffrescamento (Amb: {}, Target: {})", baseName, ambient, target)
// itemMode.sendCommand(3)
// }
// } else if (ambient <= turnOffTemp) {
// if(currMode != 2) {
// logInfo("clima.rule", "{}: Raggiunto target estate (Amb: {}, Target: {})", baseName, ambient, target)
// itemMode.sendCommand(2)
// }
// }
// } else {
// turnOnTemp = target - offsetVal
// turnOffTemp = target - offsetVal + range
// if (ambient <= turnOnTemp) {
// if(currMode != 1) {
// logInfo("clima.rule", "{}: Attivazione Riscaldamento (Amb: {}, Target: {})", baseName, ambient, target)
// itemMode.sendCommand(1)
// }
// } else if (ambient >= turnOffTemp) {
// if(currMode != 2) {
// logInfo("clima.rule", "{}: Raggiunto target inverno (Amb: {}, Target: {})", baseName, ambient, target)
// itemMode.sendCommand(2)
// }
// }
// }
// end
/********************************************************************** /**********************************************************************
@@ -548,8 +770,8 @@ then
SonoffLuci01_Switch2.sendCommand(ON) // U120 Muro SonoffLuci01_Switch2.sendCommand(ON) // U120 Muro
SonoffLuci02_Switch3.sendCommand(ON) // Ufficio Sam SonoffLuci02_Switch3.sendCommand(ON) // Ufficio Sam
// impulso OFF dopo 500 ms // impulso OFF dopo 400 ms
createTimer(now.plusMillis(600), [| createTimer(now.plusMillis(500), [|
SonoffLuci03_Switch1.sendCommand(OFF) // U100 Ingresso SonoffLuci03_Switch1.sendCommand(OFF) // U100 Ingresso
SonoffLuci03_Switch3.sendCommand(OFF) // U100 Fila B SonoffLuci03_Switch3.sendCommand(OFF) // U100 Fila B
SonoffLuci01_Switch1.sendCommand(OFF) // U120 Ingresso SonoffLuci01_Switch1.sendCommand(OFF) // U120 Ingresso
@@ -558,199 +780,4 @@ then
]) ])
end end
// rule "Preset luci ufficio"
// when
// Item Light_PresetSwitch received command
// then
// val luci = newArrayList(
// SonoffLuci03_Switch1,
// SonoffLuci03_Switch3,
// SonoffLuci01_Switch1,
// SonoffLuci01_Switch2,
// SonoffLuci02_Switch3,
// )
// // impulso ON
// luci.forEach[ l | l.sendCommand(ON) ]
// // impulso OFF dopo 300 ms
// createTimer(now.plusMillis(300), [|
// luci.forEach[ l | l.sendCommand(OFF) ]
// ])
// end
// rule "Preset luci ufficio"
// when
// Item Light_PresetSwitch received command
// then
// val luci = newArrayList(
// SonoffLuci02_Switch3,
// SonoffLuci02_Switch4
// )
// // impulso ON
// luci.forEach[ l | l.sendCommand(ON) ]
// // impulso OFF dopo 300 ms
// createTimer(now.plusMillis(300), [|
// luci.forEach[ l | l.sendCommand(OFF) ]
// ])
// end
// /**
// * This is a demo rule which simulates a real dimmer by reacting to increase/decrease commands
// * and posting an updated state on the bus
// */
// rule "Dimmed Light"
// when
// Item DimmedLight received command
// then
// if ((receivedCommand == INCREASE) || (receivedCommand == DECREASE)) {
// var Number percent = 0
// if (DimmedLight.state instanceof DecimalType) percent = DimmedLight.state as DecimalType
// if (receivedCommand == INCREASE) percent = percent + 5
// if (receivedCommand == DECREASE) percent = percent - 5
// if (percent < 0) percent = 0
// if (percent > 100) percent = 100
// postUpdate(DimmedLight, percent);
// }
// end
// rule "Timer Demo"
// when
// Item Light_GF_Corridor_Ceiling received command
// then
// if (receivedCommand == ON) {
// if (timer === null) {
// // first ON command, so create a timer to turn the light off again
// timer = createTimer(now.plusSeconds(10)) [|
// sendCommand(Light_GF_Corridor_Ceiling, OFF)
// ]
// } else {
// // subsequent ON command, so reschedule the existing timer
// timer.reschedule(now.plusSeconds(10))
// }
// } else if (receivedCommand == OFF) {
// // remove any previously scheduled timer
// if (timer !== null) {
// timer.cancel
// timer = null
// }
// }
// end
/**
* The following rules help initializing the demo items with some helpful states.
*/
// rule "Initialize light states"
// when
// System started
// then
// Lights?.members.forEach(light|
// postUpdate(light, if (Math::random > 0.7) ON else OFF)
// )
// end
// rule "Initialize heating states"
// when
// System started
// then
// Heating?.members.forEach(heating|
// postUpdate(heating, if (Math::random > 0.8) ON else OFF)
// )
// postUpdate(Temperature_Setpoint, 22)
// end
// rule "Initialize contact states"
// when
// System started
// then
// Windows?.members.forEach(window|
// postUpdate(window, if (Math::random > 0.5) OPEN else CLOSED)
// )
// end
// rule "Initialize Location"
// when
// System started
// then
// DemoLocation.postUpdate(new PointType("52.5200066,13.4049540"))
// end
// rule "Set random room temperatures"
// when
// System started or
// Time cron "0 0/5 * * * ?"
// then
// Temperature?.members.forEach(temperature|
// postUpdate(temperature, 20.0 + (25.0 - (Math::random * 50.0).intValue) / 10.0)
// )
// end
// rule "Set daily max and min temperature"
// when
// Item Weather_Temperature changed or
// Time cron "0 0 0 * * ?" or
// System started
// then
// val max = Weather_Temperature.maximumSince(now.withTimeAtStartOfDay)
// val min = Weather_Temperature.minimumSince(now.withTimeAtStartOfDay)
// if (max !== null && min !== null) {
// postUpdate(Weather_Temp_Max, max.state)
// postUpdate(Weather_Temp_Min, min.state)
// }
// end
// // Creates an item that stores the last update time of this item
// rule "Records last weather update time"
// when
// Item Weather_Temperature received update
// then
// postUpdate(Weather_LastUpdate, new DateTimeType())
// end
// rule "Set random wifi variations"
// when
// System started or
// Time cron "/20 * * * * ?"
// then
// postUpdate(Wifi_Level, (Math::random * 4.0).intValue)
// end
// rule "Set random image URLs"
// when
// Time cron "/10 * * * * ?"
// then
// val url = urlList.get(random.nextInt(urlList.length))
// val res = resList.get(random.nextInt(resList.length))
// postUpdate(ImageURL, url + "/" + res)
// end
// rule "Volume"
// when
// Item Volume received command
// then
// if (receivedCommand instanceof PercentType) {
// setMasterVolume(receivedCommand)
// } else {
// if (receivedCommand == INCREASE) increaseMasterVolume(20)
// if (receivedCommand == DECREASE) decreaseMasterVolume(20)
// }
// end
// rule "Select Radio Station"
// when
// Item Radio_Station received command
// then
// switch(receivedCommand) {
// case 0 : playStream(null)
// case 1 : playStream("http://metafiles.gl-systemhaus.de/hr/hr3_2.m3u")
// case 2 : playStream("http://mp3-live.swr3.de/swr3_m.m3u")
// }
// end
// vim: syntax=Xtend // vim: syntax=Xtend
+261 -302
View File
@@ -134,18 +134,21 @@ sitemap egalware label="EgalWare"
} }
Text label="Andamento Grafico" icon="material:timeline" Text label="Andamento Grafico" icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" mappings=[0="1h",1="4h",2="12h",3="24h",4="3g",5="7g",6="1M",7="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperature Rilevate" Webview url="/page/clima_chart_all" height=16
{
Chart item=CL_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=1000
Chart item=CL_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=4000
Chart item=CL_Temp legend=true visibility=[CL_GrpScale==2] period=12h refresh=6000
Chart item=CL_Temp legend=true visibility=[CL_GrpScale==3,CL_GrpScale=="Uninitialized"] period=D refresh=10000
Chart item=CL_Temp legend=true visibility=[CL_GrpScale==4] period=3D refresh=20000
Chart item=CL_Temp legend=true visibility=[CL_GrpScale==5] period=W refresh=30000
Chart item=CL_Temp legend=true visibility=[CL_GrpScale==6] period=M refresh=60000
Chart item=CL_Temp legend=true visibility=[CL_GrpScale==7] period=Y refresh=60000
} }
Switch item=CL_GrpScale label="Periodo" mappings=[0="1h",1="4h",2="12h",3="24h",4="3g",5="7g",6="1M",7="1Y"]
// Frame label="Temperature Rilevate"
// {
// Chart item=CL_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=1000
// Chart item=CL_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=4000
// Chart item=CL_Temp legend=true visibility=[CL_GrpScale==2] period=12h refresh=6000
// Chart item=CL_Temp legend=true visibility=[CL_GrpScale==3,CL_GrpScale=="Uninitialized"] period=D refresh=10000
// Chart item=CL_Temp legend=true visibility=[CL_GrpScale==4] period=3D refresh=20000
// Chart item=CL_Temp legend=true visibility=[CL_GrpScale==5] period=W refresh=30000
// Chart item=CL_Temp legend=true visibility=[CL_GrpScale==6] period=M refresh=60000
// Chart item=CL_Temp legend=true visibility=[CL_GrpScale==7] period=Y refresh=60000
// }
Frame label="Unità Attive" Frame label="Unità Attive"
{ {
Chart item=CL_Switch legend=true visibility=[CL_GrpScale==0] period=h refresh=2000 Chart item=CL_Switch legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
@@ -168,17 +171,17 @@ sitemap egalware label="EgalWare"
Chart item=CL_Mode legend=true visibility=[CL_GrpScale==6] period=M refresh=60000 Chart item=CL_Mode legend=true visibility=[CL_GrpScale==6] period=M refresh=60000
Chart item=CL_Mode legend=true visibility=[CL_GrpScale==7] period=Y refresh=60000 Chart item=CL_Mode legend=true visibility=[CL_GrpScale==7] period=Y refresh=60000
} }
Frame label="Temp Impostata" // Frame label="Temp Impostata"
{ // {
Chart item=CL_Set legend=true visibility=[CL_GrpScale==0] period=h refresh=2000 // Chart item=CL_Set legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=CL_Set legend=true visibility=[CL_GrpScale==1] period=4h refresh=4000 // Chart item=CL_Set legend=true visibility=[CL_GrpScale==1] period=4h refresh=4000
Chart item=CL_Set legend=true visibility=[CL_GrpScale==2] period=12h refresh=6000 // Chart item=CL_Set legend=true visibility=[CL_GrpScale==2] period=12h refresh=6000
Chart item=CL_Set legend=true visibility=[CL_GrpScale==3,CL_GrpScale=="Uninitialized"] period=D refresh=10000 // Chart item=CL_Set legend=true visibility=[CL_GrpScale==3,CL_GrpScale=="Uninitialized"] period=D refresh=10000
Chart item=CL_Set legend=true visibility=[CL_GrpScale==4] period=3D refresh=20000 // Chart item=CL_Set legend=true visibility=[CL_GrpScale==4] period=3D refresh=20000
Chart item=CL_Set legend=true visibility=[CL_GrpScale==5] period=W refresh=30000 // Chart item=CL_Set legend=true visibility=[CL_GrpScale==5] period=W refresh=30000
Chart item=CL_Set legend=true visibility=[CL_GrpScale==6] period=M refresh=60000 // Chart item=CL_Set legend=true visibility=[CL_GrpScale==6] period=M refresh=60000
Chart item=CL_Set legend=true visibility=[CL_GrpScale==7] period=Y refresh=60000 // Chart item=CL_Set legend=true visibility=[CL_GrpScale==7] period=Y refresh=60000
} // }
Frame label="Velocita" Frame label="Velocita"
{ {
Chart item=CL_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000 Chart item=CL_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
@@ -238,39 +241,42 @@ sitemap egalware label="EgalWare"
Switch item=Heating_GU120_CL_C1_Switch Switch item=Heating_GU120_CL_C1_Switch
Text item=Heating_GU120_CL_C1_Temp icon="material:timeline" Text item=Heating_GU120_CL_C1_Temp icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperatura" Webview url="/page/clima_chart_c1" height=16
{ }
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000 // Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"]
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000 // Frame label="Temperatura"
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000 // {
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000 // Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000 // Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000 // Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000 // Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
} // Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Frame label="Modo" // Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
{ // Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000 // }
Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000 // Frame label="Modo"
Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000 // {
Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000 // Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000 // Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000 // Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000 // Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
} // Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Frame label="Fan Speed" // Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
{ // Chart item=Heating_GU120_CL_C1_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000 // }
Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000 // Frame label="Fan Speed"
Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000 // {
Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000 // Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000 // Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000 // Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000 // Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
} // Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C1_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
} }
Setpoint item=Heating_GU120_CL_C1_Set minValue=19 maxValue=23 step=1 label="Imp. Ingresso" Setpoint item=Heating_GU120_CL_C1_Set minValue=19 maxValue=24 step=1 label="Imp. Ingresso"
Setpoint item=Heating_GU120_CL_C1_Mode minValue=1 maxValue=4 step=1 Setpoint item=Heating_GU120_CL_C1_Mode minValue=1 maxValue=4 step=1
Setpoint item=Heating_GU120_CL_C1_Fan minValue=1 maxValue=3 step=1 Setpoint item=Heating_GU120_CL_C1_Fan minValue=1 maxValue=3 step=1
} }
@@ -279,39 +285,42 @@ sitemap egalware label="EgalWare"
Switch item=Heating_GU120_CL_C2_Switch Switch item=Heating_GU120_CL_C2_Switch
Text item=Heating_GU120_CL_C2_Temp icon="material:timeline" Text item=Heating_GU120_CL_C2_Temp icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperatura" Webview url="/page/clima_chart_c2" height=16
{
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Modo"
{
Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Fan Speed"
{
Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
} }
// Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"]
// Frame label="Temperatura"
// {
// Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Modo"
// {
// Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C2_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Fan Speed"
// {
// Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C2_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
} }
Setpoint item=Heating_GU120_CL_C2_Set minValue=19 maxValue=23 step=1 label="Imp. Corridoio" Setpoint item=Heating_GU120_CL_C2_Set minValue=19 maxValue=24 step=1 label="Imp. Corridoio"
Setpoint item=Heating_GU120_CL_C2_Mode minValue=1 maxValue=4 step=1 Setpoint item=Heating_GU120_CL_C2_Mode minValue=1 maxValue=4 step=1
Setpoint item=Heating_GU120_CL_C2_Fan minValue=1 maxValue=3 step=1 Setpoint item=Heating_GU120_CL_C2_Fan minValue=1 maxValue=3 step=1
} }
@@ -320,39 +329,42 @@ sitemap egalware label="EgalWare"
Switch item=Heating_GU120_CL_C3_Switch Switch item=Heating_GU120_CL_C3_Switch
Text item=Heating_GU120_CL_C3_Temp icon="material:timeline" Text item=Heating_GU120_CL_C3_Temp icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperatura" Webview url="/page/clima_chart_c3" height=16
{
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
} }
Frame label="Modo" // Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"]
{ // Frame label="Temperatura"
Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000 // {
Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000 // Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000 // Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000 // Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000 // Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000 // Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000 // Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Modo"
// {
// Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C3_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Fan Speed"
// {
// Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
} }
Frame label="Fan Speed" Setpoint item=Heating_GU120_CL_C3_Set minValue=19 maxValue=24 step=1 label="Imp. Finestra"
{
Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C3_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
}
Setpoint item=Heating_GU120_CL_C3_Set minValue=19 maxValue=23 step=1 label="Imp. Finestra"
Setpoint item=Heating_GU120_CL_C3_Mode minValue=1 maxValue=4 step=1 Setpoint item=Heating_GU120_CL_C3_Mode minValue=1 maxValue=4 step=1
Setpoint item=Heating_GU120_CL_C3_Fan minValue=1 maxValue=3 step=1 Setpoint item=Heating_GU120_CL_C3_Fan minValue=1 maxValue=3 step=1
} }
@@ -361,39 +373,42 @@ sitemap egalware label="EgalWare"
Switch item=Heating_GU120_CL_C4_Switch Switch item=Heating_GU120_CL_C4_Switch
Text item=Heating_GU120_CL_C4_Temp icon="material:timeline" Text item=Heating_GU120_CL_C4_Temp icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperatura" Webview url="/page/clima_chart_c4" height=16
{
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Modo"
{
Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Fan Speed"
{
Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
} }
// Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"]
// Frame label="Temperatura"
// {
// Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Modo"
// {
// Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C4_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Fan Speed"
// {
// Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C4_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
} }
Setpoint item=Heating_GU120_CL_C4_Set minValue=19 maxValue=23 step=1 label="Imp. Ufficio Samuele" Setpoint item=Heating_GU120_CL_C4_Set minValue=19 maxValue=24 step=1 label="Imp. Ufficio Samuele"
Setpoint item=Heating_GU120_CL_C4_Mode minValue=1 maxValue=4 step=1 Setpoint item=Heating_GU120_CL_C4_Mode minValue=1 maxValue=4 step=1
Setpoint item=Heating_GU120_CL_C4_Fan minValue=1 maxValue=3 step=1 Setpoint item=Heating_GU120_CL_C4_Fan minValue=1 maxValue=3 step=1
} }
@@ -402,39 +417,42 @@ sitemap egalware label="EgalWare"
Switch item=Heating_GU120_CL_C5_Switch Switch item=Heating_GU120_CL_C5_Switch
Text item=Heating_GU120_CL_C5_Temp icon="material:timeline" Text item=Heating_GU120_CL_C5_Temp icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperatura" Webview url="/page/clima_chart_c5" height=16
{
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Modo"
{
Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Fan Speed"
{
Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
} }
// Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"]
// Frame label="Temperatura"
// {
// Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Modo"
// {
// Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C5_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Fan Speed"
// {
// Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU120_CL_C5_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
} }
Setpoint item=Heating_GU120_CL_C5_Set minValue=19 maxValue=23 step=1 label="Imp. Uff Emmanuele" Setpoint item=Heating_GU120_CL_C5_Set minValue=19 maxValue=24 step=1 label="Imp. Uff Emmanuele"
Setpoint item=Heating_GU120_CL_C5_Mode minValue=1 maxValue=4 step=1 Setpoint item=Heating_GU120_CL_C5_Mode minValue=1 maxValue=4 step=1
Setpoint item=Heating_GU120_CL_C5_Fan minValue=1 maxValue=3 step=1 Setpoint item=Heating_GU120_CL_C5_Fan minValue=1 maxValue=3 step=1
} }
@@ -443,39 +461,42 @@ sitemap egalware label="EgalWare"
Switch item=Heating_GU100_CL_C6_Switch Switch item=Heating_GU100_CL_C6_Switch
Text item=Heating_GU100_CL_C6_Temp icon="material:timeline" Text item=Heating_GU100_CL_C6_Temp icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperatura" Webview url="/page/clima_chart_c6" height=16
{
Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Modo"
{
Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Fan Speed"
{
Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
} }
// Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"]
// Frame label="Temperatura"
// {
// Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU100_CL_C6_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Modo"
// {
// Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU100_CL_C6_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
// Frame label="Fan Speed"
// {
// Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
// Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
// Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
// Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
// Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
// Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
// Chart item=Heating_GU100_CL_C6_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
// }
} }
Setpoint item=Heating_GU100_CL_C6_Set minValue=19 maxValue=23 step=1 Setpoint item=Heating_GU100_CL_C6_Set minValue=19 maxValue=24 step=1
Setpoint item=Heating_GU100_CL_C6_Mode minValue=1 maxValue=4 step=1 Setpoint item=Heating_GU100_CL_C6_Mode minValue=1 maxValue=4 step=1
Setpoint item=Heating_GU100_CL_C6_Fan minValue=1 maxValue=3 step=1 Setpoint item=Heating_GU100_CL_C6_Fan minValue=1 maxValue=3 step=1
} }
@@ -484,39 +505,11 @@ sitemap egalware label="EgalWare"
Switch item=Heating_GU100_CL_C7_Switch Switch item=Heating_GU100_CL_C7_Switch
Text item=Heating_GU100_CL_C7_Temp icon="material:timeline" Text item=Heating_GU100_CL_C7_Temp icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperatura" Webview url="/page/clima_chart_c7" height=16
{
Chart item=Heating_GU100_CL_C7_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C7_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C7_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C7_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C7_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C7_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C7_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Modo"
{
Chart item=Heating_GU100_CL_C7_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C7_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C7_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C7_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C7_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C7_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C7_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Fan Speed"
{
Chart item=Heating_GU100_CL_C7_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C7_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C7_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C7_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C7_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C7_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C7_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
} }
} }
Setpoint item=Heating_GU100_CL_C7_Set minValue=19 maxValue=23 step=1 Setpoint item=Heating_GU100_CL_C7_Set minValue=19 maxValue=24 step=1
Setpoint item=Heating_GU100_CL_C7_Mode minValue=1 maxValue=4 step=1 Setpoint item=Heating_GU100_CL_C7_Mode minValue=1 maxValue=4 step=1
Setpoint item=Heating_GU100_CL_C7_Fan minValue=1 maxValue=3 step=1 Setpoint item=Heating_GU100_CL_C7_Fan minValue=1 maxValue=3 step=1
} }
@@ -525,39 +518,11 @@ sitemap egalware label="EgalWare"
Switch item=Heating_GU100_CL_C8_Switch Switch item=Heating_GU100_CL_C8_Switch
Text item=Heating_GU100_CL_C8_Temp icon="material:timeline" Text item=Heating_GU100_CL_C8_Temp icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperatura" Webview url="/page/clima_chart_c8" height=16
{
Chart item=Heating_GU100_CL_C8_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C8_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C8_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C8_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C8_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C8_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C8_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Modo"
{
Chart item=Heating_GU100_CL_C8_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C8_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C8_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C8_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C8_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C8_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C8_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Fan Speed"
{
Chart item=Heating_GU100_CL_C8_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C8_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C8_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C8_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C8_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C8_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C8_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
} }
} }
Setpoint item=Heating_GU100_CL_C8_Set minValue=19 maxValue=23 step=1 Setpoint item=Heating_GU100_CL_C8_Set minValue=19 maxValue=24 step=1
Setpoint item=Heating_GU100_CL_C8_Mode minValue=1 maxValue=4 step=1 Setpoint item=Heating_GU100_CL_C8_Mode minValue=1 maxValue=4 step=1
Setpoint item=Heating_GU100_CL_C8_Fan minValue=1 maxValue=3 step=1 Setpoint item=Heating_GU100_CL_C8_Fan minValue=1 maxValue=3 step=1
} }
@@ -566,39 +531,11 @@ sitemap egalware label="EgalWare"
Switch item=Heating_GU100_CL_C9_Switch Switch item=Heating_GU100_CL_C9_Switch
Text item=Heating_GU100_CL_C9_Temp icon="material:timeline" Text item=Heating_GU100_CL_C9_Temp icon="material:timeline"
{ {
Switch item=CL_GrpScale label="Periodo" icon="material:timeline" mappings=[0="1h",1="4h",2="12h", 3="24h", 4="7g", 5="1M", 6="1Y"] Frame label="Analisi Interattiva" {
Frame label="Temperatura" Webview url="/page/clima_chart_c9" height=16
{
Chart item=Heating_GU100_CL_C9_Temp legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C9_Temp legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C9_Temp legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C9_Temp legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C9_Temp legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C9_Temp legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C9_Temp legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Modo"
{
Chart item=Heating_GU100_CL_C9_Mode legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C9_Mode legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C9_Mode legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C9_Mode legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C9_Mode legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C9_Mode legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C9_Mode legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
}
Frame label="Fan Speed"
{
Chart item=Heating_GU100_CL_C9_Fan legend=true visibility=[CL_GrpScale==0] period=h refresh=2000
Chart item=Heating_GU100_CL_C9_Fan legend=true visibility=[CL_GrpScale==1] period=4h refresh=5000
Chart item=Heating_GU100_CL_C9_Fan legend=true visibility=[CL_GrpScale==2,CL_GrpScale=="Uninitialized"] period=12h refresh=10000
Chart item=Heating_GU100_CL_C9_Fan legend=true visibility=[CL_GrpScale==3] period=D refresh=60000
Chart item=Heating_GU100_CL_C9_Fan legend=true visibility=[CL_GrpScale==4] period=W refresh=60000
Chart item=Heating_GU100_CL_C9_Fan legend=true visibility=[CL_GrpScale==5] period=M refresh=60000
Chart item=Heating_GU100_CL_C9_Fan legend=true visibility=[CL_GrpScale==6] period=Y refresh=60000
} }
} }
Setpoint item=Heating_GU100_CL_C9_Set minValue=19 maxValue=23 step=1 Setpoint item=Heating_GU100_CL_C9_Set minValue=19 maxValue=24 step=1
Setpoint item=Heating_GU100_CL_C9_Mode minValue=1 maxValue=4 step=1 Setpoint item=Heating_GU100_CL_C9_Mode minValue=1 maxValue=4 step=1
Setpoint item=Heating_GU100_CL_C9_Fan minValue=1 maxValue=3 step=1 Setpoint item=Heating_GU100_CL_C9_Fan minValue=1 maxValue=3 step=1
} }
@@ -725,6 +662,17 @@ sitemap egalware label="EgalWare"
Chart item=ShellyEnergyBagno120 visibility=[FronLP==6] legend=true period=W refresh=60000 Chart item=ShellyEnergyBagno120 visibility=[FronLP==6] legend=true period=W refresh=60000
Chart item=ShellyEnergyBagno120 visibility=[FronLP==7] legend=true period=2W refresh=60000 Chart item=ShellyEnergyBagno120 visibility=[FronLP==7] legend=true period=2W refresh=60000
} }
Frame label="Accensione Scaldasalviette"
{
Switch item=FronLP label="Periodo" icon="line" mappings=[0="1h", 1="4h", 2="12h", 3="24h", 4="2g", 5="3g", 6="7g", 7="2w"]
Chart item=ShellySwitchBagno120 legend=true visibility=[FronLP==0,FronLP=="Uninitialized"] period=h refresh=1000
Chart item=ShellySwitchBagno120 legend=true visibility=[FronLP==1] period=8h refresh=4000
Chart item=ShellySwitchBagno120 legend=true visibility=[FronLP==2] period=D refresh=6000
Chart item=ShellySwitchBagno120 legend=true visibility=[FronLP==3] period=3D refresh=10000
Chart item=ShellySwitchBagno120 legend=true visibility=[FronLP==4] period=W refresh=60000
Chart item=ShellySwitchBagno120 legend=true visibility=[FronLP==5] period=Y refresh=60000
Chart item=ShellySwitchBagno120 legend=true visibility=[FronLP==6] period=M refresh=60000
}
} }
Switch item=ShellySwitchBagno100 label="Shelly Bagno Uomini" icon="material:power" Switch item=ShellySwitchBagno100 label="Shelly Bagno Uomini" icon="material:power"
Text item=ShellyPowerValBagno100 label="Bagno Uomini Realtime [%.1f W]" icon="oh:poweroutlet" Text item=ShellyPowerValBagno100 label="Bagno Uomini Realtime [%.1f W]" icon="oh:poweroutlet"
@@ -753,6 +701,17 @@ sitemap egalware label="EgalWare"
Chart item=ShellyEnergyBagno100 visibility=[FronLP==6] legend=true period=W refresh=60000 Chart item=ShellyEnergyBagno100 visibility=[FronLP==6] legend=true period=W refresh=60000
Chart item=ShellyEnergyBagno100 visibility=[FronLP==7] legend=true period=2W refresh=60000 Chart item=ShellyEnergyBagno100 visibility=[FronLP==7] legend=true period=2W refresh=60000
} }
Frame label="Accensione Scaldasalviette"
{
Switch item=FronLP label="Periodo" icon="line" mappings=[0="1h", 1="4h", 2="12h", 3="24h", 4="2g", 5="3g", 6="7g", 7="2w"]
Chart item=ShellySwitchBagno100 legend=true visibility=[FronLP==0,FronLP=="Uninitialized"] period=h refresh=1000
Chart item=ShellySwitchBagno100 legend=true visibility=[FronLP==1] period=8h refresh=4000
Chart item=ShellySwitchBagno100 legend=true visibility=[FronLP==2] period=D refresh=6000
Chart item=ShellySwitchBagno100 legend=true visibility=[FronLP==3] period=3D refresh=10000
Chart item=ShellySwitchBagno100 legend=true visibility=[FronLP==4] period=W refresh=60000
Chart item=ShellySwitchBagno100 legend=true visibility=[FronLP==5] period=Y refresh=60000
Chart item=ShellySwitchBagno100 legend=true visibility=[FronLP==6] period=M refresh=60000
}
} }
} }
Frame label="Ventilazione" Frame label="Ventilazione"
+6
View File
@@ -0,0 +1,6 @@
1=Caldo
2=Ventilazione
3=Freddo
4=Auto
NULL=Sconosciuto
-=Sconosciuto