Update varie regole + rules a tempo...

This commit is contained in:
Samuele E. Locatelli
2019-12-05 19:12:08 +01:00
parent 26f6480a39
commit a12dc9df12
10 changed files with 592 additions and 83 deletions
+54 -19
View File
@@ -2,28 +2,23 @@
// Group gC "Cellar" <cellar> ["Basement"]
// Group Garden "Garden" <garden> ["Garden"]
// Group Weather "Weather" <sun>
Group gEN "Energia" <solarpanel> ["Energia"]
Group Status
Group Shutters
Group Lights
/* Gruppi Attivi per calcolo */
/* Gruppi Attivi per calcolo */
// Group:Switch:OR(ON, OFF) Lights "All Lights [(%d)]"
// Group:Contact:OR(OPEN, CLOSED) Windows "Open windows [(%d)]" <contact>
/*---------------------- Elementi Clima, Daikin via MODBUS ----------------------*/
Group:Switch:OR(ON, OFF) GU120_CL_Switch "Clima Attivi [(%d)]" <switch>
Group:Number:AVG GU120_CL_Temp "Temp. Rilevata [%.1f °C]" <temperature>
Group:Number:AVG GU120_CL_Set "Temp. Impostata [%.1f °C]" <heating>
Group:Switch:OR(ON, OFF) GU100_CL_Switch "Clima Attivi [(%d)]" <switch>
Group:Number:AVG GU100_CL_Temp "Temp. Rilevata [%.1f °C]" <temperature>
Group GU100_CL_Set "Temp. Impostata [%.1f °C]" <heating>
// Group:Switch:OR(ON, OFF) Lights "All Lights [(%d)]"
// Group:Contact:OR(OPEN, CLOSED) Windows "Open windows [(%d)]" <contact>
Group gNet_print "Printers" <network> (gNet) ["Printers"]
Group gNet_mobile "Presenze" <network> (gNet) ["Presenze"]
/*---------------------- Elementi Clima Daikin via MODBUS ----------------------*/
Group GU100_CL_Set "Temp. Impostata [%.1f °C]" <heating>
Number GU120_CL_TempInt
Switch Heating_GU120_CL_C1_Switch "Ingresso" <heating> (GU120_CL_Switch) {channel="modbus:data:c5a162cd:switch"}
Number Heating_GU120_CL_C1_Temp "Temp Ingresso [%.1f °C]" <temperature> (GU120_CL_Temp) {channel="modbus:data:b81128ff:number"}
Number Heating_GU120_CL_C1_Set "Set Temp [%.1f °C]" <heating> (GU120_CL_Set) {channel="modbus:data:b2c00004:number"}
@@ -40,18 +35,35 @@ Switch Heating_GU120_CL_C4_Switch "Ufficio" <heating> (GU
Number Heating_GU120_CL_C4_Temp "Temp Ufficio [%.1f °C]" <temperature> (GU120_CL_Temp) {channel="modbus:data:3a7f6582:number"}
Number Heating_GU120_CL_C4_Set "Set Temp [%.1f °C]" <heating> (GU120_CL_Set) {channel="modbus:data:f86b3601:number"}
Switch Heating_GU120_CL_C5_Switch "Sala" <heating> (GU120_CL_Switch) {channel="modbus:data:02e9ec27:switch"}
Number Heating_GU120_CL_C5_Temp "Temp Sala [%.1f °C]" <temperature> (GU120_CL_Temp) {channel="modbus:data:f0f9e4a4:number"}
Number Heating_GU120_CL_C5_Set "Set Temp [%.1f °C]" <heating> (GU120_CL_Set) {channel="modbus:data:a775a678:number"}
Switch Heating_GU120_CL_C5_Switch "Sala Riunioni" <heating> (GU120_CL_Switch) {channel="modbus:data:02e9ec27:switch"}
Number Heating_GU120_CL_C5_Temp "Temp Sala Riunioni [%.1f °C]" <temperature> (GU120_CL_Temp) {channel="modbus:data:f0f9e4a4:number"}
Number Heating_GU120_CL_C5_Set "Set Temp Riunioni [%.1f °C]" <heating> (GU120_CL_Set) {channel="modbus:data:a775a678:number"}
/*----------------------------------------------------------------------------*/
/*---------------------- Elementi Impianto Fotovoltaico Fronius ----------------------*/
/*---------------------- Elementi Netatmo ----------------------*/
Group GT_Netatmo "Temp Media [%.1f °C]" <temperature>
Number GT_NetatmoInt
Number GN_NET_ExtUff_Temp "Temp Esterno Ufficio [%.1f °C]" <temperature> (GT_Netatmo) {channel="netatmo:NAModule1:eb8cc662:02000012bbe0:Temperature"}
Number GN_NET_Server_Temp "Temp Sala Server [%.1f °C]" <temperature> (GT_Netatmo) {channel="netatmo:NAModule4:eb8cc662:03000002537a:Temperature"}
Number GN_NET_U120_Temp "Temp Ufficio 120 [%.1f °C]" <temperature> (GT_Netatmo) {channel="netatmo:NAMain:eb8cc662:70ee5012923e:Temperature"}
Number GN_NET_U100_Temp "Temp Ufficio 100 [%.1f °C]" <temperature> (GT_Netatmo) {channel="netatmo:NAModule4:eb8cc662:030000079324:Temperature"}
/*----------------------------------------------------------------------------*/
/*---------------------- Elementi Impianto Fotovoltaico Fronius ----------------------*/
Number FronPacInt
Number FronDayEnInt
Number FronYearEnInt
Number FronTotEnInt
// Group gEN "Energia" <solarpanel> ["Energia"]
// Number gEN_RTime "Istantanea [%.0f W]" (gEN) {channel="fronius:powerinverter:6c4376a1:inverterdatachannelpac"}
Number gEN_Day "Giornaliera" (gEN) {channel="fronius:powerinverter:6c4376a1:inverterdatachanneldayenergy"}
Number gEN_YearProd "Prod. Anno" (gEN) {channel="fronius:powerinverter:6c4376a1:inverterdatachannelyear"}
Number gEN_TotProd "Prod. Totale" (gEN) {channel="fronius:powerinverter:6c4376a1:inverterdatachanneltotal"}
// Number gEN_Day "Giornaliera" (gEN) {channel="fronius:powerinverter:6c4376a1:inverterdatachanneldayenergy"}
// Number gEN_YearProd "Prod. Anno" (gEN) {channel="fronius:powerinverter:6c4376a1:inverterdatachannelyear"}
// Number gEN_TotProd "Prod. Totale" (gEN) {channel="fronius:powerinverter:6c4376a1:inverterdatachanneltotal"}
// Group gEN_Realtime "Realtime" <solarpanel> (gEN) ["Realtime"]
// Group gEN_Day "Giorno" <line> (gEN) ["Giorno"]
@@ -61,6 +73,29 @@ Number gEN_TotProd "Prod. Totale" (gEN) {channel="
/*----------------------------------------------------------------------------*/
/*---------------------- Elementi Networking ----------------------*/
// Group gNet
// Group gNet_print "Printers" <network> (gNet) ["Printers"]
Number gNet_mobileChartSel
Group:Switch:OR(ON, OFF) gNet_mobile "Presenze [(%d)]" <network>
// Group:Switch:OR(ON, OFF) GU120_CL_Switch "Clima Attivi [(%d)]" <switch>
Number gNet_Mobile_Sam "Mobile Sam" <network> (gNet_mobile) ["Mobile"] {channel="network:pingdevice:9f536b87:online"}
Switch HV04 { channel="network:pingdevice:hv04:online" }
Number:Time HV04ResponseTime { channel="network:pingdevice:hv04:latency" }
Switch HV03 { channel="network:pingdevice:hv03:online" }
Number:Time HV03ResponseTime { channel="network:pingdevice:hv03:latency" }
String Speedtest_Running "Test running ... [%s]" {channel="network:speedtest:local:isRunning"}
Number:Dimensionless Speedtest_Progress "Test progress [%d %unit%]" {channel="network:speedtest:local:progress"}
Number:DataTransferRate Speedtest_ResultDown "Downlink [%.2f %unit%]" {channel="network:speedtest:local:rateDown"}
Number:DataTransferRate Speedtest_ResultUp "Uplink [%.2f %unit%]" {channel="network:speedtest:local:rateUp"}
DateTime Speedtest_Start "Test Start [%1$tH:%1$tM]" <time> {channel="network:speedtest:local:testStart"}
DateTime Speedtest_LUD "Timestamp [%1$tH:%1$tM]" <time> {channel="network:speedtest:local:testEnd"}
/*----------------------------------------------------------------------------*/
// Group GF_Living "Living Room" <video> (GU100_CL_) ["LivingRoom"]
+1 -2
View File
@@ -20,8 +20,7 @@ Items {
// gEN_YearProd : strategy = everyDay, restoreOnStartup
// persist items on every change and every minute
netatmo*,modbus*,fronius*,Heating*,gEN*,GU* ,network*: strategy = everyChange, everyMinute
* : strategy = everyChange, everyHour
*: strategy = everyChange, everyMinute
}
// vim: syntax=Xtend
+164
View File
@@ -0,0 +1,164 @@
import java.util.Random
var Timer timer = null
val resList = newArrayList("640/480", "320/240", "480/360")
val urlList = newArrayList("https://www.fillmurray.com", "https://www.fillmurray.com/g",
"https://www.placecage.com", "https://www.placecage.com/c", "https://www.placecage.com/g")
val Random random = new Random()
/**
* 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
+225
View File
@@ -0,0 +1,225 @@
import java.util.Random
var Timer timer = null
val Random random = new Random()
// val resList = newArrayList("640/480", "320/240", "480/360")
// val urlList = newArrayList("https://www.fillmurray.com", "https://www.fillmurray.com/g",
// "https://www.placecage.com", "https://www.placecage.com/c", "https://www.placecage.com/g")
/***********************************
* Rules x automazione CLIMA
***********************************/
rule "Accensione Riscaldamento mattino 8:00 SE < 19°"
when
Time cron "0 0 8 * JAN,FEB,NOV,DEC ?"
then
if (GU120_CL_Temp.state < 19)
{
Heating_GU120_CL_C1_Switch.sendCommand(ON)
Heating_GU120_CL_C2_Switch.sendCommand(ON)
Heating_GU120_CL_C3_Switch.sendCommand(ON)
// Heating_GU120_CL_C4_Switch.sendCommand(ON)
// Heating_GU120_CL_C5_Switch.sendCommand(ON)
}
end
rule "Spegnimento Riscaldamento sabato-domenica pomeriggio 14:00"
when
Time cron "0 0 14 * JAN,FEB,NOV,DEC SAT,SUN"
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)
end
rule "Spegnimento Riscaldamento OGNI sera 19:30"
when
Time cron "0 30 19 * JAN,FEB,NOV,DEC ?"
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)
end
// rule "Test cron Riscaldamento ufficio"
// when
// Time cron "0 * 15 * JAN,FEB,NOV,DEC THU"
// then
// Heating_GU120_CL_C4_Switch.sendCommand(ON)
// end
rule "Accendo 2-3 se accendo 1 con meno di 21°"
when
Item Heating_GU120_CL_C1_Switch received command ON
then
if (GU120_CL_Temp.state < 21)
{
// Heating_GU120_CL_C1_Switch.sendCommand(ON)
Heating_GU120_CL_C2_Switch.sendCommand(ON)
Heating_GU120_CL_C3_Switch.sendCommand(ON)
// Heating_GU120_CL_C4_Switch.sendCommand(ON)
// Heating_GU120_CL_C5_Switch.sendCommand(ON)
}
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
+3
View File
@@ -0,0 +1,3 @@
say("Demo script has been called!")
// vim: syntax=Xtend
File diff suppressed because one or more lines are too long
+5
View File
@@ -23,3 +23,8 @@ user=openhab
password=viaNazionale93
db=openhab_db
retentionPolicy=autogen
url=http://localhost:8086
user=openhab
password=viaNazionale93
db=openhab_db
retentionPolicy=autogen
+4
View File
@@ -0,0 +1,4 @@
binding.network:allowSystemPings=true
binding.network:allowDHCPlisten=false
binding.network:arpPingToolPath=arping
binding.network:cacheDeviceStateTimeInMS=2000
+131 -62
View File
@@ -20,11 +20,11 @@ sitemap Steamware label="Steamware"
Text item=Heating_GU120_CL_C1_Temp
{
Text label="24h" icon="line"
Chart item=Heating_GU120_CL_C1_Temp period=D refresh=30000
Chart item=Heating_GU120_CL_C1_Temp legend=true period=D refresh=30000
Text label="7gg" icon="line"
Chart item=Heating_GU120_CL_C1_Temp period=W refresh=600000
Chart item=Heating_GU120_CL_C1_Temp legend=true period=W refresh=600000
Text label="30gg" icon="line"
Chart item=Heating_GU120_CL_C1_Temp period=M refresh=6000000
Chart item=Heating_GU120_CL_C1_Temp legend=true period=M refresh=6000000
}
Setpoint item=Heating_GU120_CL_C1_Set minValue=18 maxValue=26 step=1 label="Impostazione Ingresso"
}
@@ -34,11 +34,11 @@ sitemap Steamware label="Steamware"
Text item=Heating_GU120_CL_C2_Temp
{
Text label="24h" icon="line"
Chart item=Heating_GU120_CL_C2_Temp period=D refresh=30000
Chart item=Heating_GU120_CL_C2_Temp legend=true period=D refresh=30000
Text label="7gg" icon="line"
Chart item=Heating_GU120_CL_C2_Temp period=W refresh=600000
Chart item=Heating_GU120_CL_C2_Temp legend=true period=W refresh=600000
Text label="30gg" icon="line"
Chart item=Heating_GU120_CL_C2_Temp period=M refresh=6000000
Chart item=Heating_GU120_CL_C2_Temp legend=true period=M refresh=6000000
}
Setpoint item=Heating_GU120_CL_C2_Set minValue=18 maxValue=26 step=1 label="Impostazione Corridoio"
}
@@ -48,11 +48,11 @@ sitemap Steamware label="Steamware"
Text item=Heating_GU120_CL_C3_Temp
{
Text label="24h" icon="line"
Chart item=Heating_GU120_CL_C3_Temp period=D refresh=30000
Chart item=Heating_GU120_CL_C3_Temp legend=true period=D refresh=30000
Text label="7gg" icon="line"
Chart item=Heating_GU120_CL_C3_Temp period=W refresh=600000
Chart item=Heating_GU120_CL_C3_Temp legend=true period=W refresh=600000
Text label="30gg" icon="line"
Chart item=Heating_GU120_CL_C3_Temp period=M refresh=6000000
Chart item=Heating_GU120_CL_C3_Temp legend=true period=M refresh=6000000
}
Setpoint item=Heating_GU120_CL_C3_Set minValue=18 maxValue=26 step=1 label="Impostazione Finestra"
}
@@ -62,11 +62,11 @@ sitemap Steamware label="Steamware"
Text item=Heating_GU120_CL_C4_Temp
{
Text label="24h" icon="line"
Chart item=Heating_GU120_CL_C4_Temp period=D refresh=30000
Chart item=Heating_GU120_CL_C4_Temp legend=true period=D refresh=30000
Text label="7gg" icon="line"
Chart item=Heating_GU120_CL_C4_Temp period=W refresh=600000
Chart item=Heating_GU120_CL_C4_Temp legend=true period=W refresh=600000
Text label="30gg" icon="line"
Chart item=Heating_GU120_CL_C4_Temp period=M refresh=6000000
Chart item=Heating_GU120_CL_C4_Temp legend=true period=M refresh=6000000
}
Setpoint item=Heating_GU120_CL_C4_Set minValue=18 maxValue=26 step=1 label="Impostazione Ufficio"
}
@@ -76,23 +76,25 @@ sitemap Steamware label="Steamware"
Text item=Heating_GU120_CL_C5_Temp
{
Text label="24h" icon="line"
Chart item=Heating_GU120_CL_C5_Temp period=D refresh=30000
Chart item=Heating_GU120_CL_C5_Temp legend=true period=D refresh=30000
Text label="7gg" icon="line"
Chart item=Heating_GU120_CL_C5_Temp period=W refresh=600000
Chart item=Heating_GU120_CL_C5_Temp legend=true period=W refresh=600000
Text label="30gg" icon="line"
Chart item=Heating_GU120_CL_C5_Temp period=M refresh=6000000
Chart item=Heating_GU120_CL_C5_Temp legend=true period=M refresh=6000000
}
Setpoint item=Heating_GU120_CL_C5_Set minValue=18 maxValue=26 step=1 label="Impostazione Sala"
}
}
Text label="Andamento" icon="line"
{
Text label="24h" icon="line"
Chart item=GU120_CL_Temp period=D refresh=30000
Text label="7gg" icon="line"
Chart item=GU120_CL_Temp period=W refresh=600000
Text label="30gg" icon="line"
Chart item=GU120_CL_Temp period=M refresh=6000000
{
Frame label="Temperature Rilevate"
{
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="24h", 1="7g", 2="1M", 3="1Y"]
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==0,GU120_CL_TempInt=="Uninitialized"] period=D refresh=30000
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==1] period=W refresh=600000
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==2] period=M refresh=6000000
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==3] period=Y refresh=6000000
}
}
// Switch item=Lights icon="light"
@@ -100,52 +102,75 @@ sitemap Steamware label="Steamware"
// Selection item=LR_TV_Channel mappings=[0="off", 1="DasErste", 2="BBC One", 3="Cartoon Network"]
// Slider item=LR_TV_Volume
// }
}
Frame label="Netatmo"
{
Group item=GT_Netatmo label="Temperature Rilevate []"
Text label="Andamento" icon="line"
{
Frame label="Temperature Rilevate"
{
Switch item=GT_NetatmoInt label="Periodo" icon="line" mappings=[0="12h", 1="24h", 2="48h", 3="7g", 4="1M"]
// Switch item=GT_NetatmoInt label="Periodo" icon="line" mappings=[0="12h", 1="24h", 2="48h", 3="7g", 4="1M", 5="1Y"]
Chart item=GT_Netatmo legend=true visibility=[GT_NetatmoInt==0,GT_NetatmoInt=="Uninitialized"] period=12h refresh=30000
Chart item=GT_Netatmo legend=true visibility=[GT_NetatmoInt==1] period=D refresh=30000
Chart item=GT_Netatmo legend=true visibility=[GT_NetatmoInt==2] period=2D refresh=30000
Chart item=GT_Netatmo legend=true visibility=[GT_NetatmoInt==3] period=W refresh=600000
Chart item=GT_Netatmo legend=true visibility=[GT_NetatmoInt==4] period=M refresh=6000000
// Chart item=GT_Netatmo legend=true visibility=[GT_NetatmoInt==5] period=Y refresh=6000000
}
}
}
Frame label="Energia"
{
Text item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy label="Fotovoltaico (giornata) [%.2f kWh]" icon="solarplant"
Text item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy label="Fotovoltaico (prod) [%.2f kWh]" icon="solarplant"
{
Text item=fronius_powerinverter_6c4376a1_inverterdatachannelpac label="Potenza Istantanea [%.0f W]" icon="solarplant"
{
Text label="1h" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac period=h refresh=1000
Text label="24h" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac period=D refresh=30000
Text label="7gg" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac period=W refresh=600000
// Text label="30gg" icon="line"
// Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac period=M refresh=6000000
Frame label="Potenza Istantanea"
{
Switch item=FronPacInt label="Periodo" icon="line" mappings=[0="1h", 1="12h", 2="24h", 3="2g", 4="3g", 5="7g"]
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac visibility=[FronPacInt==0,FronPacInt=="Uninitialized"] legend=true period=h refresh=500
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac visibility=[FronPacInt==1] legend=true period=12h refresh=5000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac visibility=[FronPacInt==2] legend=true period=24h refresh=5000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac visibility=[FronPacInt==3] legend=true period=2D refresh=10000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac visibility=[FronPacInt==4] legend=true period=3D refresh=60000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelpac visibility=[FronPacInt==5] legend=true period=W refresh=600000
}
}
Text item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy label="Produzione Giornaliera" icon="solarplant"
{
Text label="24h" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy period=D refresh=30000
Text label="7gg" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy period=W refresh=600000
Text label="30gg" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy period=M refresh=6000000
Frame label="Produzione Giornaliera"
{
Switch item=FronDayEnInt label="Periodo" icon="line" mappings=[0="3g", 1="7g", 2="1M", 3="2M", 3="1Y"]
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy visibility=[FronDayEnInt==0,FronDayEnInt=="Uninitialized"] legend=true period=3D refresh=1000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy visibility=[FronDayEnInt==1] legend=true period=W refresh=10000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy visibility=[FronDayEnInt==2] legend=true period=M refresh=10000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy visibility=[FronDayEnInt==3] legend=true period=2M refresh=600000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy visibility=[FronDayEnInt==4] legend=true period=Y refresh=600000
}
}
Text item=fronius_powerinverter_6c4376a1_inverterdatachannelyear label="Potenza Annuale" icon="solarplant"
Text item=fronius_powerinverter_6c4376a1_inverterdatachannelyear label="Produzione Annuale" icon="line"
{
// Text label="24h" icon="line"
// Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelyear period=D refresh=30000
Text label="7gg" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelyear period=W refresh=600000
Text label="30gg" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelyear period=M refresh=6000000
Text label="365gg" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelyear period=Y refresh=6000000
}
Text item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal label="Produzione Totale" icon="solarplant"
Frame label="Produzione Annuale"
{
Switch item=FronYearEnInt label="Periodo" icon="line" mappings=[0="7g", 1="1M", 2="2M", 3="1Y"]
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelyear visibility=[FronYearEnInt==0,FronYearEnInt=="Uninitialized"] legend=true period=W refresh=1000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelyear visibility=[FronYearEnInt==1] legend=true period=M refresh=10000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelyear visibility=[FronYearEnInt==2] legend=true period=2M refresh=10000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachannelyear visibility=[FronYearEnInt==3] legend=true period=Y refresh=600000
}
}
Text item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal label="Produzione Totale" icon="line"
{
// Text label="24h" icon="line"
// Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal period=D refresh=30000
Text label="7gg" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal period=W refresh=600000
Text label="30gg" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal period=M refresh=6000000
Text label="365gg" icon="line"
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal period=Y refresh=6000000
Frame label="Produzione Annuale"
{
Switch item=FronYearEnInt label="Periodo" icon="line" mappings=[0="7g", 1="1M", 2="2M", 3="1Y"]
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal visibility=[FronTotEnInt==0, FronTotEnInt=="Uninitialized"] legend=true period=W refresh=1000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal visibility=[FronTotEnInt==1] legend=true period=M refresh=10000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal visibility=[FronTotEnInt==2] legend=true period=2M refresh=10000
Chart item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal visibility=[FronTotEnInt==3] legend=true period=Y refresh=600000
}
}
// Group item=gEN label="Fronius 6KW" icon="solarplant"
@@ -161,9 +186,53 @@ sitemap Steamware label="Steamware"
}
Frame label="Network"
{
Group item=gNet label="Network devices" icon="network"
// Group item=gServ label="Server e sistemi" icon="network"
// Group item=gPres label="Presenze" icon="motion"
// Group item=gNet_Mobile label="Presenze [(%d)]" icon="network"
// {
// Switch item=gNet_Mobile_Sam
// }
Text item=gNet_Mobile label="Presenze" icon="door"
{
Frame label="Presenze Ufficio"
{
Switch item=gNet_mobileChartSel label="Periodo" icon="door" mappings=[0="24h", 1="7g", 2="1M", 3="2M"]
Chart item=gNet_Mobile_Sam visibility=[gNet_mobileChartSel==0, gNet_mobileChartSel=="Uninitialized"] legend=true period=D refresh=1000
Chart item=gNet_Mobile_Sam visibility=[gNet_mobileChartSel==1] legend=true period=W refresh=10000
Chart item=gNet_Mobile_Sam visibility=[gNet_mobileChartSel==2] legend=true period=M refresh=10000
Chart item=gNet_Mobile_Sam visibility=[gNet_mobileChartSel==3] legend=true period=2M refresh=600000
}
}
Text label="Servers"
{
Frame
{
Text item=HV03 label="HV03 [%s]"
Text item=HV03ResponseTime label="HV03 ping Response Time [%s]"
Text item=HV04 label="HV04 [%s]"
Text item=HV04ResponseTime label="HV04 ping Response Time [%s]"
}
}
// Frame label="SpeedTest" {
// Text item=Speedtest_Start
// Switch item=Speedtest_Running
// Default item=Speedtest_Progress
// Text item=Speedtest_Running label="Speedtest [%s]" visibility=[Speedtest_Running != "-"]
// }
// Frame label="Down" {
// Text item=Speedtest_ResultDown
// Chart item=Speedtest_ResultDown period=D refresh=30000 service="influxdb" visibility=[sys_chart_period==0, sys_chart_period=="Non initialisé"]
// Chart item=Speedtest_ResultDown period=W refresh=30000 service="influxdb" visibility=[sys_chart_period==1]
// Chart item=Speedtest_ResultDown period=M refresh=30000 service="influxdb" visibility=[sys_chart_period==2]
// Chart item=Speedtest_ResultDown period=Y refresh=30000 service="influxdb" visibility=[sys_chart_period==3]
// }
// Frame label="Up" {
// Text item=Speedtest_ResultUp
// Chart item=Speedtest_ResultUp period=D refresh=30000 service="influxdb" visibility=[sys_chart_period==0, sys_chart_period=="Non initialisé"]
// Chart item=Speedtest_ResultUp period=W refresh=30000 service="influxdb" visibility=[sys_chart_period==1]
// Chart item=Speedtest_ResultUp period=M refresh=30000 service="influxdb" visibility=[sys_chart_period==2]
// Chart item=Speedtest_ResultUp period=Y refresh=30000 service="influxdb" visibility=[sys_chart_period==3]
// }
}
// Frame label="Weather" {
// Text item=Weather_Temperature valuecolor=[Weather_LastUpdate=="NULL"="lightgray",Weather_LastUpdate>90="lightgray",>25="orange",>15="green",>5="orange",<=5="blue"] {
@@ -174,9 +243,9 @@ sitemap Steamware label="Steamware"
// }
// Frame {
// Switch item=Weather_Chart_Period label="Chart Period" icon="chart" mappings=[0="Hour", 1="24h", 2="7gg"]
// Chart item=Weather_Chart period=h refresh=600000 visibility=[Weather_Chart_Period==0, Weather_Chart_Period=="NULL"]
// Chart item=Weather_Chart period=D refresh=3600000 visibility=[Weather_Chart_Period==1]
// Chart item=Weather_Chart period=W refresh=3600000 visibility=[Weather_Chart_Period==2]
// Chart item=Weather_Chart legend=true period=h refresh=600000 visibility=[Weather_Chart_Period==0, Weather_Chart_Period=="NULL"]
// Chart item=Weather_Chart legend=true period=D refresh=3600000 visibility=[Weather_Chart_Period==1]
// Chart item=Weather_Chart legend=true period=W refresh=3600000 visibility=[Weather_Chart_Period==2]
// }
// }
// Text label="Astronomical Data" icon="sun" {
+4
View File
@@ -5,4 +5,8 @@
// ntp:ntp:demo [ hostname="it.pool.ntp.org", refreshInterval=60, refreshNtp=30 ]
Thing network:pingdevice:hv03 [ hostname="10.74.82.243" ]
Thing network:pingdevice:hv04 [ hostname="10.74.82.244" ]
Thing network:speedtest:local "SpeedTest 50Mo" @ "Internet" [url="https://bouygues.testdebit.info/", fileName="50M.iso"]
// vim: syntax=Xtend