Update varie regole + rules a tempo...
This commit is contained in:
@@ -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"]
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,3 @@
|
||||
say("Demo script has been called!")
|
||||
|
||||
// vim: syntax=Xtend
|
||||
File diff suppressed because one or more lines are too long
@@ -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
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
binding.network:allowSystemPings=true
|
||||
binding.network:allowDHCPlisten=false
|
||||
binding.network:arpPingToolPath=arping
|
||||
binding.network:cacheDeviceStateTimeInMS=2000
|
||||
@@ -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" {
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user