update conf corrente con sonoff tasmota (1..3)

This commit is contained in:
Samuele E. Locatelli
2021-02-16 11:20:57 +01:00
parent 82bad9e997
commit fbe5dcbc60
11 changed files with 1187 additions and 446 deletions
+18 -18
View File
@@ -1,22 +1,22 @@
'use strict';
// 'use strict';
scriptExtension.importPreset("RuleSupport");
scriptExtension.importPreset("RuleSimple");
// scriptExtension.importPreset("RuleSupport");
// scriptExtension.importPreset("RuleSimple");
var sRule = new SimpleRule() {
execute: function( module, input) {
print("This is a 'hello world!' from a Javascript rule.");
}
};
// var sRule = new SimpleRule() {
// execute: function( module, input) {
// print("This is a 'hello world!' from a Javascript rule.");
// }
// };
sRule.setTriggers([
TriggerBuilder.create()
.withId("aTimerTrigger")
.withTypeUID("timer.GenericCronTrigger")
.withConfiguration(
new Configuration({
"cronExpression": "0 * * * * ?"
})).build()
]);
// sRule.setTriggers([
// TriggerBuilder.create()
// .withId("aTimerTrigger")
// .withTypeUID("timer.GenericCronTrigger")
// .withConfiguration(
// new Configuration({
// "cronExpression": "0 * * * * ?"
// })).build()
// ]);
automationManager.addRule(sRule);
// automationManager.addRule(sRule);
+133
View File
@@ -0,0 +1,133 @@
Group gFF "First Floor" <firstfloor> ["FirstFloor"]
Group gGF "Ground Floor" <groundfloor> ["GroundFloor"]
Group gC "Cellar" <cellar> ["Basement"]
Group Garden "Garden" <garden> ["Garden"]
Group Weather "Weather" <sun>
Group Status
Group Shutters
Group GF_Living "Living Room" <video> (gGF) ["LivingRoom"]
Group GF_Kitchen "Kitchen" <kitchen> (gGF) ["Kitchen"]
Group GF_Toilet "Toilet" <bath> (gGF) ["Bathroom"] { synonyms="Toilets,WC,Restroom" }
Group GF_Corridor "Corridor" <corridor> (gGF) ["Corridor"]
Group FF_Bath "Bathroom" <bath> (gFF) ["Bathroom"]
Group FF_Office "Office" <office> (gFF) ["Room"] { synonyms="Study" }
Group FF_Son "Oliver's Room" <boy_1> (gFF) ["Bedroom"] { synonyms="Oli's Room" }
Group FF_Daughter "Amelia's Room" <girl_1> (gFF) ["Bedroom"] { synonyms="Amy's Room" }
Group FF_Bed "Bedroom" <bedroom> (gFF) ["Bedroom"] { synonyms="Master Bedroom" }
Group FF_Corridor "Corridor" <corridor> (gFF) ["Corridor"]
/* active groups */
Group:Switch:OR(ON, OFF) Lights "All Lights [(%d)]"
Group:Switch:OR(ON, OFF) Heating "No. of Active Heatings [(%d)]" <heating>
Group:Number:AVG Temperature "Avg. Room Temperature [%.1f °C]" <temperature> (Status)
Group:Contact:OR(OPEN, CLOSED) Windows "Open windows [(%d)]" <contact>
/* Lights */
Dimmer Light_GF_Living_Table "Table" (GF_Living, Lights) ["Light", "Lighting"]
Switch Light_GF_Corridor_Ceiling "Ceiling" (GF_Corridor, Lights) ["Light"]
Switch Light_GF_Kitchen_Ceiling "Ceiling" (GF_Kitchen, Lights) ["Light"]
Switch Light_GF_Kitchen_Table "Table" (GF_Kitchen, Lights) ["Light"]
Switch Light_GF_Corridor_Wardrobe "Wardrobe" (GF_Corridor, Lights) ["Light"]
Switch Light_GF_Toilet_Ceiling "Ceiling" (GF_Toilet, Lights) ["Light"]
Switch Light_GF_Toilet_Mirror "Mirror" (GF_Toilet, Lights) ["Light"]
Switch Light_FF_Bath_Ceiling "Ceiling" (FF_Bath, Lights) ["Light"]
Switch Light_FF_Bath_Mirror "Mirror" (FF_Bath, Lights) ["Light"]
Switch Light_FF_Corridor_Ceiling "Corridor" (FF_Corridor, Lights) ["Light"]
Switch Light_FF_Office_Ceiling "Ceiling" (FF_Office, Lights) ["Light"]
Switch Light_FF_Son_Ceiling "Ceiling" (FF_Son, Lights) ["Light"]
Switch Light_FF_Daughter_Ceiling "Ceiling" (FF_Daughter, Lights) ["Light"]
Switch Light_FF_Bed_Ceiling "Ceiling" (FF_Bed, Lights) ["Light"]
Switch Light_C_Corridor_Ceiling "Ceiling" (gC, Lights) ["Light"]
Switch Light_C_Staircase "Staircase" (gC, Lights) ["Light"]
Switch Light_C_Washing_Ceiling "Washing" (gC, Lights) ["Light"]
Switch Light_C_Workshop "Workshop" (gC, Lights) ["Light", "Lighting"]
Switch Light_Garden_Garage "Garage" (Garden, Lights) ["Light", "Lighting"]
Switch Light_Garden_Terrace "Terrace" (Garden, Lights) ["Light"]
/* Heating */
Switch Heating_GF_Corridor "Corridor" <heating> (GF_Corridor, Heating) ["HVAC"]
Switch Heating_GF_Toilet "Toilet" <heating> (GF_Toilet, Heating) ["HVAC"]
Switch Heating_GF_Living "Livingroom" <heating> (GF_Living, Heating) ["HVAC"]
Switch Heating_GF_Kitchen "Kitchen" <heating> (GF_Kitchen, Heating) ["HVAC"]
Switch Heating_FF_Bath "Bath" <heating> (FF_Bath, Heating) ["HVAC"]
Switch Heating_FF_Office "Office" <heating> (FF_Office, Heating) ["HVAC"]
Switch Heating_FF_Son "Oliver's Room" <heating> (FF_Son, Heating) ["HVAC"]
Switch Heating_FF_Daughter "Amelia's Room" <heating> (FF_Daughter, Heating) ["HVAC"]
Switch Heating_FF_Bed "Bedroom" <heating> (FF_Bed, Heating) ["HVAC"]
/* Rollershutters */
Rollershutter Shutter_GF_Toilet "Toilet" (GF_Toilet, Shutters) ["Blinds"]
Rollershutter Shutter_GF_Kitchen "Kitchen" (GF_Kitchen, Shutters) ["Blinds"]
Rollershutter Shutter_GF_Living "Livingroom" (GF_Living, Shutters) ["Blinds"]
Rollershutter Shutter_FF_Bed "Bedroom" (FF_Bed, Shutters) ["Blinds"]
Rollershutter Shutter_FF_Bath "Bath" (FF_Bath, Shutters) ["Blinds"]
Rollershutter Shutter_FF_Office_Window "Office Window" (FF_Office, Shutters) ["Blinds"]
Rollershutter Shutter_FF_Office_Door "Office Door" (FF_Office, Shutters) ["Blinds"]
Switch Shutter_all
/* Indoor Temperatures */
Number Temperature_GF_Corridor "Corridor [%.1f °C]" <temperature> (Temperature, GF_Corridor) ["Temperature", "Measurement"]
Number Temperature_GF_Toilet "Toilet [%.1f °C]" <temperature> (Temperature, GF_Toilet) ["Temperature", "Measurement"]
Number Temperature_GF_Living "Living Room [%.1f °C]" <temperature> (Temperature, GF_Living) ["Temperature", "Measurement"]
Number Temperature_GF_Kitchen "Kitchen [%.1f °C]" <temperature> (Temperature, GF_Kitchen, Thermostat) ["Temperature", "Measurement", "CurrentTemperature"]
Number Temperature_FF_Bath "Bath [%.1f °C]" <temperature> (Temperature, FF_Bath) ["Temperature", "Measurement"]
Number Temperature_FF_Office "Office [%.1f °C]" <temperature> (Temperature, FF_Office) ["Temperature", "Measurement"]
Number Temperature_FF_Son "Oliver's Room [%.1f °C]" <temperature> (Temperature, FF_Son) ["Temperature", "Measurement"]
Number Temperature_FF_Daughter "Amelia's Room [%.1f °C]" <temperature> (Temperature, FF_Daughter) ["Temperature", "Measurement"]
Number Temperature_FF_Bed "Bedroom [%.1f °C]" <temperature> (Temperature, FF_Bed) ["Temperature", "Measurement"]
/* Windows */
Contact Window_GF_Frontdoor "Frontdoor [MAP(en.map):%s]" <frontdoor> (GF_Corridor, Windows) ["FrontDoor"]
Contact Window_GF_Kitchen "Kitchen [MAP(en.map):%s]" (GF_Kitchen, Windows) ["Window"]
Contact Window_GF_Living "Terrace door [MAP(en.map):%s]" <door> (GF_Living, Windows) ["Door"]
Contact Window_GF_Toilet "Toilet [MAP(en.map):%s]" (GF_Toilet, Windows) ["Window"]
Contact Window_FF_Bath "Bath [MAP(en.map):%s]" (FF_Bath, Windows) ["Window"]
Contact Window_FF_Bed "Bedroom [MAP(en.map):%s]" (FF_Bed, Windows) ["Window"]
Contact Window_FF_Office_Window "Office Window [MAP(en.map):%s]" (FF_Office, Windows) ["Window"]
Contact Window_FF_Office_Door "Balcony Door [MAP(en.map):%s]" <door> (FF_Office, Windows) ["Door"]
Contact Garage_Door "Garage Door [MAP(en.map):%s]" <garagedoor> (Garden, Windows) ["GarageDoor"]
Group Weather_Chart
Number Weather_Temperature "Outside Temperature [%.1f °C]" <temperature> (Weather, Weather_Chart)
Number Weather_Temp_Max "Todays Maximum [%.1f °C]" <temperature> (Weather, Weather_Chart)
Number Weather_Temp_Min "Todays Minimum [%.1f °C]" <temperature> (Weather, Weather_Chart)
Number Weather_Chart_Period "Chart Period"
DateTime Weather_LastUpdate "Last Update [%1$ta %1$tR]" <clock>
Number:Angle Sun_Elevation "Sun Elevation" <sun> { channel = "astro:sun:home:position#elevation" }
Number:Angle Sun_Azimuth "Sun Azimuth" <sun> { channel = "astro:sun:home:position#azimuth" }
DateTime Sunrise_Time "Sunrise [%1$tH:%1$tM]" <sunrise> { channel = "astro:sun:home:rise#start" }
DateTime Sunset_Time "Sunset [%1$tH:%1$tM]" <sunset> { channel = "astro:sun:home:set#start" }
Number:Angle Moon_Elevation "Moon Elevation" <moon> { channel = "astro:moon:home:position#elevation" }
Number:Angle Moon_Azimuth "Moon Azimuth" <moon> { channel = "astro:moon:home:position#azimuth" }
String Moon_Phase "Moon Phase" <moon> { channel = "astro:moon:home:phase#name" }
/* Demo items */
DateTime CurrentDate "Date [%1$tA, %1$td.%1$tm.%1$tY]" <calendar> { channel="ntp:ntp:demo:dateTime" }
Switch DemoSwitch "Switch"
Dimmer DimmedLight "Dimmer [%d %%]" <slider>
Color RGBLight "RGB Light" <slider>
Rollershutter DemoShutter "Roller Shutter"
Dimmer DemoBlinds "Blinds [%d %%]" <rollershutter>
Number Scene_General "Scene" <sofa>
Number Radio_Station "Radio" <network>
Dimmer Volume "Volume [%.1f %%]"
Location DemoLocation "Brandenburg Gate Berlin"
Number Wifi_Level "Wifi Level [%d/4]" <signal> (FF_Office)
String ImageURL "Image URL [%s]"
Group Thermostat "Thermostat" <temperature> ["Thermostat"]
Number Temperature_Setpoint "Temperature [%.1f °C]" <temperature> (Thermostat) ["homekit:TargetTemperature", "Setpoint", "Temperature"] { habot="" [ control="knob", min=15, max=35, leftIcon="mdi-thermometer", leftInverted=true ] }
String Thermostat_Mode "Thermostat Mode [%s]" <temperature> (Thermostat) ["homekit:TargetHeatingCoolingMode", "Control"]
// vim: syntax=Xtend
+22
View File
@@ -50,6 +50,13 @@ Number GU120_CL_Stop "Ora spegnimento" <t
/*----------------------------------------------------------------------------*/
/*---------------------- Elementi Sonoff ----------------------*/
// Group:Switch:OR(ON, OFF) Luci100_Switch "Luci attive 100 [(%d)]" <wallswitch>
// Group:Switch:OR(ON, OFF) Luci120_Switch "Luci attive 120 [(%d)]" <wallswitch>
/*----------------------------------------------------------------------------*/
/*---------------------- Elementi Netatmo ----------------------*/
Group GT_Netatmo "Temp Media [%.1f °C]" <temperature>
Group GT_Netatmo_temp "Temp Media [%.1f °C]" <temperature>
@@ -81,10 +88,25 @@ Number GN_NET_U100_Press "Ufficio 100 Pressione" <pressure> (GT
/*---------------------- Elementi Impianto Fotovoltaico Fronius ----------------------*/
// variabili originali
Number Fn_FullLoadNeg "Carico totale istantanteo (-)" (gEN) { channel="fronius:powerinverter:6c4376a1:powerflowchannelpload" }
Number Fn_PrelRete "(B) ↓ Da Rete [%.0f W]" (gEN) { channel="fronius:powerinverter:6c4376a1:powerflowchannelpgrid" }
Number Fn_FromFV "(C) ↑ Da Fotovoltaico [%.0f W]" (gEN) { channel="fronius:powerinverter:6c4376a1:inverterdatachannelpac" }
Number Fn_ProdFVDay "↑ Produzione gg [%.2f kWh]" (gEN) { channel="fronius:powerinverter:6c4376a1:inverterdatachanneldayenergy" }
// variabili calcolate/derivate
Number Fn_FullLoadPos "(A) ↓ Impiego (B+C) [%.0f W]" (gEN)
Number Fn_PrelReteDay "↓ Consumo gg [%.2f kWh]" (gEN)
// variabili accessorie
Number Fn_PrelReteNet "Prelievo grid istantaneo NETTO (>0)" (gEN)
// indici per selezione
Number FronPacInt
Number FronDayEnInt
Number FronYearEnInt
Number FronTotEnInt
Number FronGP
Number FronLP
// Group gEN "Energia" <solarpanel> ["Energia"]
// Number gEN_RTime "Istantanea [%.0f W]" (gEN) {channel="fronius:powerinverter:6c4376a1:inverterdatachannelpac"}
+144 -144
View File
@@ -1,164 +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()
// 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
// /**
// * 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 (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
// 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
// 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
// /**
// * 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 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 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 "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 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
// 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
// // 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 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))
// 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
// 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 "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
// 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
+394 -114
View File
@@ -6,12 +6,170 @@ val Random random = new Random()
// 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 calcoli valori ENERGIA
**********************************************************************/
rule "Fix Fronius FullLoad"
when
Item Fn_FullLoadNeg changed
then
if (Fn_FullLoadNeg.state instanceof Number) {
Fn_FullLoadPos.postUpdate((Fn_FullLoadNeg.state as Number) * -1)
} else {
Fn_FullLoadPos.postUpdate(Undefined) // or UNDEF on OH2
}
end
rule "Prelievo Rete Quotidiano (IN - FV)"
when
Item Fn_PrelRete changed
//Time cron "0 * * * * *"
then
// inizio creando variabile derivata del SOLO valore prelevato
if(Fn_PrelRete.state >= 0) {
Fn_PrelReteNet.postUpdate(Fn_PrelRete.state as Number)
}
else {
Fn_PrelReteNet.postUpdate(0)
}
//logInfo("Fn_PrelRete.rules", "Fn_PrelReteNet:{}", Fn_PrelReteNet.state)
// calcolo parametri delle ore cumulate giornaliere, del valore medio giornaliero
var double dayTime = (now.getMinute() as Number) / 60 + now.getHour()
//logInfo("Fn_PrelRete.rules", "inizio:{}, dayTime: {}", inizio, dayTime)
// var Number mediaGiorn = Fn_PrelRete.averageSince(now.withTimeAtStartOfDay).doubleValue
// logInfo("Fn_PrelRete.rules", "mediaGiorn: {}", mediaGiorn)
// var Number mediaGiornNet = Fn_PrelReteNet.averageSince(now.withTimeAtStartOfDay).doubleValue
var Number mediaGiornNet = Fn_PrelReteNet.averageSince(now.withHour(0).withMinute(0).withSecond(0)).doubleValue
// logInfo("Fn_PrelRete.rules", "mediaGiornNet: {}", mediaGiornNet)
// to-do: usare ALTRA media...
//var double kWh = mediaGiorn * dayTime / 1000
var double kWh = mediaGiornNet * dayTime / 1000
//logInfo("Fn_PrelRete.rules", "kWh:{}", kWh)
Fn_PrelReteDay.postUpdate(kWh)
end
/**********************************************************************
* Rules x automazione CLIMA ALWAYS
**********************************************************************/
rule "Spegnimento Clima sabato-domenica pomeriggio 14:00"
// rule "Accensione Impianto OGNI mattino 7.45"
// when
// Time cron "0 45 7 * * ?"
// then
// if (GU120_CL_Temp.state < 20)
// {
// 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 "Accensione mattino 7.45 ufficio"
when
Time cron "0 0 14 * * SAT,SUN"
Time cron "0 45 7 * * MON-SAT"
then
Heating_GU120_CL_C4_Switch.sendCommand(ON)
end
rule "Accensione mattino 8.00 finestra"
when
Time cron "0 0 8 * * MON-SAT"
then
Heating_GU120_CL_C3_Switch.sendCommand(ON)
end
rule "Accensione mattino 8.15 ingresso"
when
Time cron "0 15 8 * * MON-SAT"
then
Heating_GU120_CL_C1_Switch.sendCommand(ON)
end
rule "Accensione mattino 8.30 corridoio"
when
Time cron "0 30 8 * * MON-SAT"
then
Heating_GU120_CL_C2_Switch.sendCommand(ON)
end
// rule "Accensione Impianto OGNI mattino 8.15 Standard (NO ufficio e sala riunioni)"
// when
// Time cron "0 15 8 * * MON-SAT"
// then
// 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 "Accensione Impianto OGNI mattino 10.30"
when
Time cron "0 30 10 * * ?"
then
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 Impianto OGNI pomeriggio 14.30 FERIE"
// when
// Time cron "0 30 14 * * ?"
// 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 "Accensione Impianto OGNI mattino 8.30 SmartWorking"
// when
// Time cron "0 30 8 * * ?"
// then
// 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 Clima sabato-domenica pomeriggio 17:00"
when
Time cron "0 0 17 ? * 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 Clima OGNI sera 16:30 SmartWorking"
// when
// Time cron "0 30 16 * * ?"
// 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 Clima OGNI sera 19:00"
when
Time cron "0 0 19 * * ?"
then
Heating_GU120_CL_C1_Switch.sendCommand(OFF)
Heating_GU120_CL_C2_Switch.sendCommand(OFF)
@@ -30,59 +188,53 @@ then
Heating_GU120_CL_C4_Switch.sendCommand(OFF)
Heating_GU120_CL_C5_Switch.sendCommand(OFF)
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)
// end
rule "Spegnimento Clima OGNI sera 21:00"
when
Time cron "0 0 21 * * ?"
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
/**********************************************************************/
/**********************************************************************
* Rules x automazione CLIMA INVERNO
* 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 "Accensione Riscaldamento mattino ingresso SAM in inverno"
when
Item gNet_Mobile_Sam changed to ON
//and
//Time cron "* * * * 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 "Accendo tutti se accendo 1 con meno di 21°"
// rule "Accensione Riscaldamento mattino ingresso SAM in inverno"
// when
// Item Heating_GU120_CL_C1_Switch received command ON
// Item gNet_Mobile_Sam changed to ON
// //and
// //Time cron "* * * * JAN,FEB,NOV,DEC ?"
// then
// // if (GU120_CL_Temp.state < 21)
// // {
// // if (GU120_CL_Switch.state == ON)
// // {
// 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)
// // }
// // }
// // 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
/**********************************************************************/
@@ -118,6 +270,134 @@ end
// end
/**********************************************************************/
/**********************************************************************
* Rules x automazione LUCERNARI
**********************************************************************/
rule "Lucernari switch Momentary x 10 sec"
when
Item SonoffLucernari_Open received command ON
then
SonoffLucernari_Close.sendCommand(OFF)
createTimer(now.plusSeconds(11), [|
SonoffLucernari_Open.sendCommand(OFF)
])
createTimer(now.plusSeconds(12), [|
SonoffLucernari_Open.sendCommand(OFF)
])
end
rule "Lucernari switch Momentary x 10 sec"
when
Item SonoffLucernari_Close received command ON
then
SonoffLucernari_Open.sendCommand(OFF)
createTimer(now.plusSeconds(11), [|
SonoffLucernari_Close.sendCommand(OFF)
])
createTimer(now.plusSeconds(12), [|
SonoffLucernari_Close.sendCommand(OFF)
])
end
/**********************************************************************/
/**********************************************************************
* Rules x automazione LUCI
**********************************************************************/
rule "Luce con switch Momentary"
when
Item SonoffLuci01_Switch1 received command ON
then
createTimer(now.plusSeconds(1), [|
SonoffLuci01_Switch1.sendCommand(OFF)
])
createTimer(now.plusSeconds(2), [|
SonoffLuci01_Switch1.sendCommand(OFF)
])
end
rule "Luce con switch Momentary"
when
Item SonoffLuci01_Switch2 received command ON
then
createTimer(now.plusSeconds(1), [|
SonoffLuci01_Switch2.sendCommand(OFF)
])
createTimer(now.plusSeconds(2), [|
SonoffLuci01_Switch2.sendCommand(OFF)
])
end
rule "Luce con switch Momentary"
when
Item SonoffLuci01_Switch3 received command ON
then
createTimer(now.plusSeconds(1), [|
SonoffLuci01_Switch3.sendCommand(OFF)
])
createTimer(now.plusSeconds(2), [|
SonoffLuci01_Switch3.sendCommand(OFF)
])
end
rule "Luce con switch Momentary"
when
Item SonoffLuci02_Switch1 received command ON
then
createTimer(now.plusSeconds(1), [|
SonoffLuci02_Switch1.sendCommand(OFF)
])
createTimer(now.plusSeconds(2), [|
SonoffLuci02_Switch1.sendCommand(OFF)
])
end
rule "Luce con switch Momentary"
when
Item SonoffLuci02_Switch2 received command ON
then
createTimer(now.plusSeconds(1), [|
SonoffLuci02_Switch2.sendCommand(OFF)
])
createTimer(now.plusSeconds(2), [|
SonoffLuci02_Switch2.sendCommand(OFF)
])
end
rule "Luce con switch Momentary"
when
Item SonoffLuci02_Switch3 received command ON
then
createTimer(now.plusSeconds(1), [|
SonoffLuci02_Switch3.sendCommand(OFF)
])
createTimer(now.plusSeconds(2), [|
SonoffLuci02_Switch3.sendCommand(OFF)
])
end
rule "Luce con switch Momentary"
when
Item SonoffLuci02_Switch4 received command ON
then
createTimer(now.plusSeconds(1), [|
SonoffLuci02_Switch4.sendCommand(OFF)
])
createTimer(now.plusSeconds(2), [|
SonoffLuci02_Switch4.sendCommand(OFF)
])
end
/**********************************************************************/
// rule "Test cron Riscaldamento ufficio"
// when
// Time cron "0 * 15 * JAN,FEB,NOV,DEC THU"
@@ -127,49 +407,49 @@ 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
// /**
// * 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 (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
// 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
// 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.
@@ -209,37 +489,37 @@ end
// 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 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
// 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
// // 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
+16 -27
View File
@@ -3,48 +3,37 @@
# Note: If you want to specify your add-ons yourself through entries below, set the package to "minimal"
# as otherwise your definition might be in conflict with what the installation package defines.
#
# Optional. If not set, the dashboard (https://<yourserver>:8080/) will ask you to choose a package.
#
# Valid options:
# - minimal : Installation only with dashboard, but no UIs or other add-ons. Use this for custom setups.
# - simple : Setup for using openHAB purely through UIs - you need to expect MANY constraints in functionality!
# - standard : Default setup for normal users, best for textual setup
# - expert : Setup for expert users, especially for people migrating from openHAB 1.x
# - demo : A demo setup which includes UIs, a few bindings, config files etc.
# - standard : Standard setup for normal use of openHAB
# - minimal : Installation of core components, but no UIs or other add-ons. Use this for special headless setups.
# - demo : A pre-configured demo setup which can be used for demonstration.
#
# See https://www.openhab.org/docs/configuration/packages.html for a detailed explanation of these packages.
#
#package = minimal
package = standard
# Access Remote Add-on Repository
# Defines whether the remote openHAB add-on repository should be used for browsing and installing add-ons.
# This not only makes latest snapshots of add-ons available, it is also required for the installation of
# any legacy 1.x add-on. (default is true)
# Defines whether the remote openHAB add-on repository should be used for browsing and installing add-ons. (default is true)
#
#remote = true
# Include legacy 1.x bindings. If set to true, it also allows the installation of 1.x bindings for which there is
# already a 2.x version available (requires remote repo access, see above). (default is false)
#
#legacy = true
# A comma-separated list of automation services to install (e.g. "automation = groovyscripting")
#automation =
# A comma-separated list of bindings to install (e.g. "binding = sonos,knx,zwave")
# A comma-separated list of bindings to install (e.g. "binding = knx,sonos,zwave")
#binding =
# A comma-separated list of UIs to install (e.g. "ui = basic,paper")
#ui =
# A comma-separated list of miscellaneous services to install (e.g. "misc = openhabcloud")
#misc =
# A comma-separated list of persistence services to install (e.g. "persistence = rrd4j,jpa")
# A comma-separated list of persistence services to install (e.g. "persistence = jpa,rrd4j")
#persistence =
# A comma-separated list of actions to install (e.g. "action = mail,pushover")
#action =
# A comma-separated list of transformation services to install (e.g. "transformation = map,jsonpath")
# A comma-separated list of transformation services to install (e.g. "transformation = jsonpath,map")
#transformation =
# A comma-separated list of voice services to install (e.g. "voice = marytts,freetts")
#voice =
# A comma-separated list of UIs to install (e.g. "ui = basic,habpanel")
#ui =
# A comma-separated list of miscellaneous services to install (e.g. "misc = myopenhab")
#misc =
# A comma-separated list of voice services to install (e.g. "voice = googletts,marytts")
#voice =
+50
View File
@@ -0,0 +1,50 @@
# The installation package of this openHAB instance
# Note: This is only regarded at the VERY FIRST START of openHAB
# Note: If you want to specify your add-ons yourself through entries below, set the package to "minimal"
# as otherwise your definition might be in conflict with what the installation package defines.
#
# Optional. If not set, the dashboard (https://<yourserver>:8080/) will ask you to choose a package.
#
# Valid options:
# - minimal : Installation only with dashboard, but no UIs or other add-ons. Use this for custom setups.
# - simple : Setup for using openHAB purely through UIs - you need to expect MANY constraints in functionality!
# - standard : Default setup for normal users, best for textual setup
# - expert : Setup for expert users, especially for people migrating from openHAB 1.x
# - demo : A demo setup which includes UIs, a few bindings, config files etc.
#
# See https://www.openhab.org/docs/configuration/packages.html for a detailed explanation of these packages.
#
#package = minimal
# Access Remote Add-on Repository
# Defines whether the remote openHAB add-on repository should be used for browsing and installing add-ons.
# This not only makes latest snapshots of add-ons available, it is also required for the installation of
# any legacy 1.x add-on. (default is true)
#
#remote = true
# Include legacy 1.x bindings. If set to true, it also allows the installation of 1.x bindings for which there is
# already a 2.x version available (requires remote repo access, see above). (default is false)
#
#legacy = true
# A comma-separated list of bindings to install (e.g. "binding = sonos,knx,zwave")
#binding =
# A comma-separated list of UIs to install (e.g. "ui = basic,paper")
#ui =
# A comma-separated list of persistence services to install (e.g. "persistence = rrd4j,jpa")
#persistence =
# A comma-separated list of actions to install (e.g. "action = mail,pushover")
#action =
# A comma-separated list of transformation services to install (e.g. "transformation = map,jsonpath")
#transformation =
# A comma-separated list of voice services to install (e.g. "voice = marytts,freetts")
#voice =
# A comma-separated list of miscellaneous services to install (e.g. "misc = myopenhab")
#misc =
File diff suppressed because one or more lines are too long
+86
View File
@@ -0,0 +1,86 @@
##################### LOCALE ####################
# The default language that should be used. If not specified, the system default locale is used.
# The ISO 639 alpha-2 or alpha-3 language code (if there is no alpha-2 one).
# Example: "en" (English), "de" (German), "ja" (Japanese), "kok" (Konkani)
#
#org.eclipse.smarthome.i18n:language=
# The region that should be used.
# ISO 3166 alpha-2 country code or UN M.49 numeric-3 area code.
# Example: "US" (United States), "DE" (Germany), "FR" (France), "029" (Caribbean)
#
#org.eclipse.smarthome.i18n:region=
################ PERSISTENCE ####################
# The persistence service to use if no other is specified.
#
#org.eclipse.smarthome.persistence:default=
################### AUDIO #######################
# This parameter defines the default audio source to use (if not set, the first available one will be used.
#
#org.eclipse.smarthome.audio:defaultSource=
# This parameter defines the default audio sink to use (if not set, the first available one will be used.
#
#org.eclipse.smarthome.audio:defaultSink=
##################### VOICE #####################
# This parameter defines the default text-to-speech service to use (if not set, the first available one will be used.
#
#org.eclipse.smarthome.voice:defaultTTS=
# This parameter defines the default speech-to-text service to use (if not set, the first available one will be used.
#
#org.eclipse.smarthome.voice:defaultSTT=
# The default voice to use if no specific TTS service or voice is specified.
#
#org.eclipse.smarthome.voice:defaultVoice=
# The default human language interpreter to use if no other is specified.
#
#org.eclipse.smarthome.voice:defaultHLI=
################### EPHEMERIS ###################
# This parameter defines the default list of usual non workable days for the Ephemeris service.
# The value has to be surrounded by square brackets ('[' and ']') and optionally contain value delimiters - a comma ',' to be interpreted as a list of values.
# Example: [SATURDAY,SUNDAY]
#
org.openhab.ephemeris:dayset-weekend=[SATURDAY,SUNDAY]
# This parameter defines the default list of usual workable days for the Ephemeris service.
# The value has to be surrounded by square brackets ('[' and ']') and optionally contain value delimiters - a comma ',' to be interpreted as a list of values.
#
org.openhab.ephemeris:dayset-school=[MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY]
################ MISCELLANOUS ###################
# The karaf sshHost parameter configures the bind address for the ssh login to karaf.
# Default is 127.0.0.1 (localhost), so it is only possible to login from the local machine.
#
# Setting this to the address of another network interfaces will allow login from this network.
# Setting this to 0.0.0.0 will allow login from all network interfaces.
#
# !!! Security warning !!!
# Remember to change default login/password, if you allow external login.
# See https://www.openhab.org/docs/administration/console.html for details.
#
#org.apache.karaf.shell:sshHost = 0.0.0.0
# Setting this to true will automatically approve all inbox entries and create Things for them,
# so that they are immediately available in the system (default is false)
#
#org.eclipse.smarthome.inbox:autoApprove=true
# This setting allows to switch between a "simple" and an "advanced" mode for item management.
# In simple mode (autoLinks=true), links and their according items are automatically created for new Things.
# In advanced mode (autoLinks=false), the user has the full control about which items channels are linked to.
# Existing links will remain untouched. (default is true)
#
#org.eclipse.smarthome.links:autoLinks=false
+78
View File
@@ -0,0 +1,78 @@
sitemap demo label="Main Menu"
{
Frame {
Group item=gFF label="First Floor" icon="firstfloor"
Group item=gGF label="Ground Floor" icon="groundfloor"
Group item=gC label="Cellar" icon="cellar"
Group item=Garden icon="garden"
}
Frame label="Weather" {
Text item=Weather_Temperature valuecolor=[Weather_LastUpdate=="NULL"="lightgray",Weather_LastUpdate>90="lightgray",>25="orange",>15="green",>5="orange",<=5="blue"] {
Frame {
Text item=Weather_Temp_Max valuecolor=[>25="orange",>15="green",>5="orange",<=5="blue"]
Text item=Weather_Temp_Min valuecolor=[>25="orange",>15="green",>5="orange",<=5="blue"]
Text item=Weather_LastUpdate visibility=[Weather_LastUpdate>30] valuecolor=[Weather_LastUpdate>120="orange", Weather_LastUpdate>300="red"]
}
Frame {
Switch item=Weather_Chart_Period label="Chart Period" icon="chart" mappings=[0="Hour", 1="Day", 2="Week"]
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]
}
}
Text label="Astronomical Data" icon="sun" {
Text item=Sun_Elevation
Text item=Sun_Azimuth
Text item=Sunrise_Time
Text item=Sunset_Time
Text item=Moon_Elevation
Text item=Moon_Azimuth
Text item=Moon_Phase
}
}
Frame label="Demo" {
Text item=CurrentDate
Text label="Group Demo" icon="firstfloor" {
Switch item=Lights mappings=[OFF="All Off"]
Group item=Heating
Group item=Windows
Text item=Temperature
}
Text label="Widget Overview" icon="chart" {
Frame label="Binary Widgets" {
Switch item=DemoSwitch label="Toggle Switch"
Switch item=DemoSwitch label="Button Switch" mappings=[ON="On"]
}
Frame label="Discrete Widgets" {
Selection item=Scene_General label="Scene Selection" mappings=[0=off, 1=TV, 2=Dinner, 3=Reading]
Switch item=Scene_General label="Scene" mappings=[1=TV, 2=Dinner, 3=Reading]
Setpoint item=Temperature_Setpoint minValue=16 maxValue=28 step=0.5
}
Frame label="Percent-based Widgets" {
Slider item=DimmedLight switchSupport
Colorpicker item=RGBLight icon="slider"
Switch item=DemoShutter
Slider item=DemoBlinds
}
Frame label="Map/Location" {
Mapview item=DemoLocation icon=movecontrol height=10
}
}
Text label="Multimedia" icon="video" {
Frame label="Radio Control" {
Selection item=Radio_Station label="Radio" mappings=[0=off, 1=HR3, 2=SWR3]
Slider item=Volume icon="soundvolume"
}
Frame label="Multimedia Widgets" {
Image url="https://raw.github.com/wiki/openhab/openhab/images/features.png" label="openHAB" {
Text label="https://www.openHAB.org" icon="icon"
}
Video url="https://www.openhab.org/assets/smarthome.mp4"
Webview url="https://en.m.wikipedia.org/w/index.php?title=Main_Page" height=8
Image url="http://fpoimg.com/320x240?text=openHAB" item=ImageURL
}
}
}
}
// vim: syntax=Xtend
+218 -125
View File
@@ -3,60 +3,108 @@ sitemap Steamware label="Steamware"
Frame label="Energia"
{
Text item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy label="Fotovoltaico (prod) [%.2f kWh]" icon="solarplant"
Text item=fronius_powerinverter_6c4376a1_inverterdatachanneldayenergy label="Energia (EV) [%.2f kWh]" icon="solarplant"
{
Text item=fronius_powerinverter_6c4376a1_inverterdatachannelpac label="Potenza Istantanea [%.0f W]" icon="solarplant"
Frame label="Potenza Istantanea"
{
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"
{
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="Produzione Annuale" icon="line"
{
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=Fn_FullLoadPos icon="poweroutlet_eu"
{
Frame label="(A) ↓ Impiego (B+C = Full Load) [%.0f W]"
{
Switch item=FronLP label="Periodo" icon="line" mappings=[0="1h", 1="12h", 2="24h", 3="2g", 4="3g", 5="7g"]
Chart item=Fn_FullLoadPos visibility=[FronLP==0,FronLP=="Uninitialized"] legend=true period=h refresh=500
Chart item=Fn_FullLoadPos visibility=[FronLP==1] legend=true period=12h refresh=1000
Chart item=Fn_FullLoadPos visibility=[FronLP==2] legend=true period=24h refresh=5000
Chart item=Fn_FullLoadPos visibility=[FronLP==3] legend=true period=2D refresh=10000
Chart item=Fn_FullLoadPos visibility=[FronLP==4] legend=true period=3D refresh=60000
Chart item=Fn_FullLoadPos visibility=[FronLP==5] legend=true period=W refresh=60000
}
}
Text item=Fn_PrelRete icon="energy"
{
Frame label="(B) ↓ Da Rete [%.0f W]"
{
Switch item=FronGP label="Periodo" icon="line" mappings=[0="1h", 1="12h", 2="24h", 3="2g", 4="3g", 5="7g"]
Chart item=Fn_PrelRete visibility=[FronGP==0,FronGP=="Uninitialized"] legend=true period=h refresh=500
Chart item=Fn_PrelRete visibility=[FronGP==1] legend=true period=12h refresh=1000
Chart item=Fn_PrelRete visibility=[FronGP==2] legend=true period=24h refresh=5000
Chart item=Fn_PrelRete visibility=[FronGP==3] legend=true period=2D refresh=10000
Chart item=Fn_PrelRete visibility=[FronGP==4] legend=true period=3D refresh=60000
Chart item=Fn_PrelRete visibility=[FronGP==5] legend=true period=W refresh=60000
}
}
Text item=Fn_FromFV icon="solarplant"
{
Frame label="(C) ↑ Da Fotovoltaico"
{
Switch item=FronPacInt label="Periodo" icon="line" mappings=[0="1h", 1="12h", 2="24h", 3="2g", 4="3g", 5="7g"]
Chart item=Fn_FromFV visibility=[FronPacInt==0,FronPacInt=="Uninitialized"] legend=true period=h refresh=500
Chart item=Fn_FromFV visibility=[FronPacInt==1] legend=true period=12h refresh=1000
Chart item=Fn_FromFV visibility=[FronPacInt==2] legend=true period=24h refresh=5000
Chart item=Fn_FromFV visibility=[FronPacInt==3] legend=true period=2D refresh=10000
Chart item=Fn_FromFV visibility=[FronPacInt==4] legend=true period=3D refresh=60000
Chart item=Fn_FromFV visibility=[FronPacInt==5] legend=true period=W refresh=60000
}
}
}
Text item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal label="Produzione Totale" icon="line"
Frame label="Valori Giornalieri"
{
Frame label="Produzione Annuale"
Text item=Fn_PrelReteDay icon="energy"
{
Switch item=FronTotEnInt 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
Frame label="↓ Consumo gg [%.2f kWh]"
{
Switch item=FronDayEnInt label="Periodo" icon="line" mappings=[0="12h", 1="3g", 2="7g", 3="1M", 4="2M", 5="1Y"]
Chart item=Fn_PrelReteDay visibility=[FronDayEnInt==0,FronDayEnInt=="Uninitialized"] legend=true period=12h refresh=100
Chart item=Fn_PrelReteDay visibility=[FronDayEnInt==1] legend=true period=3D refresh=1000
Chart item=Fn_PrelReteDay visibility=[FronDayEnInt==2] legend=true period=W refresh=1000
Chart item=Fn_PrelReteDay visibility=[FronDayEnInt==3] legend=true period=M refresh=5000
Chart item=Fn_PrelReteDay visibility=[FronDayEnInt==4] legend=true period=2M refresh=10000
Chart item=Fn_PrelReteDay visibility=[FronDayEnInt==5] legend=true period=Y refresh=60000
}
}
Text item=Fn_ProdFVDay icon="solarplant"
{
Frame label="↑ Produzione gg [%.2f kWh]"
{
Switch item=FronDayEnInt label="Periodo" icon="line" mappings=[0="12h", 1="3g", 2="7g", 3="1M", 4="2M", 5="1Y"]
Chart item=Fn_ProdFVDay visibility=[FronDayEnInt==0,FronDayEnInt=="Uninitialized"] legend=true period=12h refresh=1000
Chart item=Fn_ProdFVDay visibility=[FronDayEnInt==1] legend=true period=3D refresh=1000
Chart item=Fn_ProdFVDay visibility=[FronDayEnInt==2] legend=true period=W refresh=1000
Chart item=Fn_ProdFVDay visibility=[FronDayEnInt==3] legend=true period=M refresh=5000
Chart item=Fn_ProdFVDay visibility=[FronDayEnInt==4] legend=true period=2M refresh=10000
Chart item=Fn_ProdFVDay visibility=[FronDayEnInt==5] legend=true period=Y refresh=60000
}
}
}
Frame label="Grafici"
{
Text item=fronius_powerinverter_6c4376a1_inverterdatachannelyear label="Produzione Annuale" icon="line"
{
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=5000
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=60000
}
}
}
Text item=fronius_powerinverter_6c4376a1_inverterdatachanneltotal label="Produzione Totale" icon="line"
{
Frame label="Produzione Annuale"
{
Switch item=FronTotEnInt 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=5000
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=60000
}
}
}
// Group item=gEN label="Fronius 6KW" icon="solarplant"
}
}
Frame label="Ufficio 120"
Frame label="Ufficio"
{
Group item=GU120_CL_Switch label="Climatizzazione" icon="heating"
{
@@ -86,11 +134,11 @@ sitemap Steamware label="Steamware"
// }
Group item=GU120_CL_Set label="Set Temperature"
{
Setpoint item=Heating_GU120_CL_C1_Set minValue=18 maxValue=26 step=1 label="Impostazione Ingresso"
Setpoint item=Heating_GU120_CL_C2_Set minValue=18 maxValue=26 step=1 label="Impostazione Corridoio"
Setpoint item=Heating_GU120_CL_C3_Set minValue=18 maxValue=26 step=1 label="Impostazione Finestra"
Setpoint item=Heating_GU120_CL_C4_Set minValue=18 maxValue=26 step=1 label="Impostazione Ufficio"
Setpoint item=Heating_GU120_CL_C5_Set minValue=18 maxValue=26 step=1 label="Impostazione Sala"
Setpoint item=Heating_GU120_CL_C1_Set minValue=18 maxValue=28 step=1 label="Impostazione Ingresso"
Setpoint item=Heating_GU120_CL_C2_Set minValue=18 maxValue=28 step=1 label="Impostazione Corridoio"
Setpoint item=Heating_GU120_CL_C3_Set minValue=18 maxValue=28 step=1 label="Impostazione Finestra"
Setpoint item=Heating_GU120_CL_C4_Set minValue=18 maxValue=28 step=1 label="Impostazione Ufficio"
Setpoint item=Heating_GU120_CL_C5_Set minValue=18 maxValue=28 step=1 label="Impostazione Sala"
}
Group item=GU120_CL_Fan label="Set Velocità"
{
@@ -109,11 +157,13 @@ sitemap Steamware label="Steamware"
Switch item=Heating_GU120_CL_C1_Switch
Text item=Heating_GU120_CL_C1_Temp
{
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="24h", 1="7g", 2="1M", 3="1Y"]
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==0,GU120_CL_TempInt=="Uninitialized"] period=D refresh=30000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==1] period=W refresh=600000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==2] period=M refresh=6000000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==3] period=Y refresh=6000000
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="4h",1="12h",2="24h", 3="7g", 4="1M", 5="1Y"]
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==0] period=4h refresh=2000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==1] period=12h refresh=5000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==2,GU120_CL_TempInt=="Uninitialized"] period=D refresh=10000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==3] period=W refresh=60000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==4] period=M refresh=60000
Chart item=Heating_GU120_CL_C1_Temp legend=true visibility=[GU120_CL_TempInt==5] period=Y refresh=60000
}
Setpoint item=Heating_GU120_CL_C1_Set minValue=18 maxValue=26 step=1 label="Impostazione Ingresso"
}
@@ -122,11 +172,13 @@ sitemap Steamware label="Steamware"
Switch item=Heating_GU120_CL_C2_Switch
Text item=Heating_GU120_CL_C2_Temp
{
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="24h", 1="7g", 2="1M", 3="1Y"]
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==0,GU120_CL_TempInt=="Uninitialized"] period=D refresh=30000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==1] period=W refresh=600000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==2] period=M refresh=6000000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==3] period=Y refresh=6000000
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="4h",1="12h",2="24h", 3="7g", 4="1M", 5="1Y"]
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==0] period=4h refresh=2000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==1] period=12h refresh=5000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==2,GU120_CL_TempInt=="Uninitialized"] period=D refresh=10000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==3] period=W refresh=60000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==4] period=M refresh=60000
Chart item=Heating_GU120_CL_C2_Temp legend=true visibility=[GU120_CL_TempInt==5] period=Y refresh=60000
}
Setpoint item=Heating_GU120_CL_C2_Set minValue=18 maxValue=26 step=1 label="Impostazione Corridoio"
}
@@ -135,11 +187,13 @@ sitemap Steamware label="Steamware"
Switch item=Heating_GU120_CL_C3_Switch
Text item=Heating_GU120_CL_C3_Temp
{
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="24h", 1="7g", 2="1M", 3="1Y"]
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==0,GU120_CL_TempInt=="Uninitialized"] period=D refresh=30000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==1] period=W refresh=600000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==2] period=M refresh=6000000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==3] period=Y refresh=6000000
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="4h",1="12h",2="24h", 3="7g", 4="1M", 5="1Y"]
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==0] period=4h refresh=2000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==1] period=12h refresh=5000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==2,GU120_CL_TempInt=="Uninitialized"] period=D refresh=10000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==3] period=W refresh=60000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==4] period=M refresh=60000
Chart item=Heating_GU120_CL_C3_Temp legend=true visibility=[GU120_CL_TempInt==5] period=Y refresh=60000
}
Setpoint item=Heating_GU120_CL_C3_Set minValue=18 maxValue=26 step=1 label="Impostazione Finestra"
}
@@ -148,11 +202,13 @@ sitemap Steamware label="Steamware"
Switch item=Heating_GU120_CL_C4_Switch
Text item=Heating_GU120_CL_C4_Temp
{
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="24h", 1="7g", 2="1M", 3="1Y"]
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==0,GU120_CL_TempInt=="Uninitialized"] period=D refresh=30000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==1] period=W refresh=600000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==2] period=M refresh=6000000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==3] period=Y refresh=6000000
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="4h",1="12h",2="24h", 3="7g", 4="1M", 5="1Y"]
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==0] period=4h refresh=2000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==1] period=12h refresh=5000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==2,GU120_CL_TempInt=="Uninitialized"] period=D refresh=10000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==3] period=W refresh=60000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==4] period=M refresh=60000
Chart item=Heating_GU120_CL_C4_Temp legend=true visibility=[GU120_CL_TempInt==5] period=Y refresh=60000
}
Setpoint item=Heating_GU120_CL_C4_Set minValue=18 maxValue=26 step=1 label="Impostazione Ufficio"
}
@@ -161,11 +217,13 @@ sitemap Steamware label="Steamware"
Switch item=Heating_GU120_CL_C5_Switch
Text item=Heating_GU120_CL_C5_Temp
{
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="24h", 1="7g", 2="1M", 3="1Y"]
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==0,GU120_CL_TempInt=="Uninitialized"] period=D refresh=30000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==1] period=W refresh=600000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==2] period=M refresh=6000000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==3] period=Y refresh=6000000
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="4h",1="12h",2="24h", 3="7g", 4="1M", 5="1Y"]
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==0] period=4h refresh=2000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==1] period=12h refresh=5000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==2,GU120_CL_TempInt=="Uninitialized"] period=D refresh=10000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==3] period=W refresh=60000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==4] period=M refresh=60000
Chart item=Heating_GU120_CL_C5_Temp legend=true visibility=[GU120_CL_TempInt==5] period=Y refresh=60000
}
Setpoint item=Heating_GU120_CL_C5_Set minValue=18 maxValue=26 step=1 label="Impostazione Sala"
}
@@ -181,11 +239,13 @@ sitemap Steamware label="Steamware"
{
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=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="4h",1="12h",2="24h", 3="7g", 4="1M", 5="1Y"]
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==0] period=4h refresh=2000
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==1] period=12h refresh=5000
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==2,GU120_CL_TempInt=="Uninitialized"] period=D refresh=10000
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==3] period=W refresh=60000
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==4] period=M refresh=60000
Chart item=GU120_CL_Temp legend=true visibility=[GU120_CL_TempInt==5] period=Y refresh=60000
}
}
Text label="Unità Attive" icon="switch"
@@ -193,10 +253,10 @@ sitemap Steamware label="Steamware"
Frame label="Unità Attive" icon="switch"
{
Switch item=GU120_CL_TempInt label="Periodo" icon="line" mappings=[0="12h", 1="24h", 2="7g", 3="1M"]
Chart item=GU120_CL_Switch legend=true visibility=[GU120_CL_TempInt==0,GU120_CL_TempInt=="Uninitialized"] period=12h refresh=30000
Chart item=GU120_CL_Switch legend=true visibility=[GU120_CL_TempInt==0,GU120_CL_TempInt=="Uninitialized"] period=12h refresh=10000
Chart item=GU120_CL_Switch legend=true visibility=[GU120_CL_TempInt==1] period=D refresh=30000
Chart item=GU120_CL_Switch legend=true visibility=[GU120_CL_TempInt==2] period=W refresh=600000
Chart item=GU120_CL_Switch legend=true visibility=[GU120_CL_TempInt==3] period=M refresh=6000000
Chart item=GU120_CL_Switch legend=true visibility=[GU120_CL_TempInt==2] period=W refresh=60000
Chart item=GU120_CL_Switch legend=true visibility=[GU120_CL_TempInt==3] period=M refresh=60000
}
}
@@ -212,54 +272,58 @@ sitemap Steamware label="Steamware"
// Slider item=LR_TV_Volume
// }
}
Text item=Lights label="Luci" icon="lightbulb"
Group item=Luci label="Luci 120" icon="wallswitch"
{
// Group item=Lights label="Luci" icon="light"
Text label="Da integrare con sonoff/MQTT" icon="light"
Frame label="OpenSpace" icon="wallswitch"
{
//Switch item=Luci120_Switch label="Generale 120"
Switch item=SonoffLuci01_Switch1 label="Ingresso" icon="wallswitch"
Switch item=SonoffLuci01_Switch2 label="Muro" icon="wallswitch"
Switch item=SonoffLuci01_Switch3 label="Corridoio" icon="wallswitch"
//Switch item=SonoffLuci01_Switch4 label=""
}
Frame label="Uffici" icon="wallswitch"
{
Switch item=SonoffLuci02_Switch1 label="Uff E Muro" icon="wallswitch"
Switch item=SonoffLuci02_Switch2 label="Uff E Porta" icon="wallswitch"
Switch item=SonoffLuci02_Switch3 label="Uff S Porta" icon="wallswitch"
Switch item=SonoffLuci02_Switch4 label="Uff S Finestra" icon="wallswitch"
}
}
Text item=Shutters label="Tende" icon="blinds"
Group item=Luci label="Luci 100" icon="wallswitch"
{
// Group item=Shutters label="Tende" icon="blinds"
Text label="Da integrare con ikea / zigbee" icon="blinds"
Frame label="OpenSpace" icon="wallswitch"
{
Switch item=SonoffLuci03_Switch1 label="Ingresso" icon="wallswitch"
Switch item=SonoffLuci03_Switch2 label="Fila A" icon="wallswitch"
Switch item=SonoffLuci03_Switch3 label="Fila B" icon="wallswitch"
Switch item=SonoffLuci03_Switch4 label="Fila C" icon="wallswitch"
}
Frame label="Uffici" icon="wallswitch"
{
Switch item=SonoffLuci04_Switch1 label="Uff C" icon="wallswitch"
// Switch item=SonoffLuci04_Switch2 label="Uff A Porta" icon="wallswitch"
Switch item=SonoffLuci04_Switch3 label="Sala Porta" icon="wallswitch"
Switch item=SonoffLuci04_Switch4 label="Sala Muro" icon="wallswitch"
}
}
Group item=Lucernari label="Lucernari" icon="rollershutter"
{
Frame label="Ufficio 120" icon="group"
{
Switch item=SonoffLucernari_Open label="Apertura Lucernari" icon="rollershutter"
Switch item=SonoffLucernari_Close label="Chiusura Lucernari" icon="rollershutter"
}
// Frame label="Uffici0 100" icon="wallswitch"
// {
// Switch item=SonoffLucernari_Switch3 label="Sala Porta" icon="wallswitch"
// Switch item=SonoffLucernari_Switch4 label="Sala Muro" icon="wallswitch"
// }
}
}
// Frame label="Ufficio 100"
// {
// Text label="Climatizzazione" icon="error"
// Text label="Luci" icon="error"
// Text label="Tende" icon="error"
// }
Frame label="Meteo"
{
Text item=Stagione icon="time"
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_condition label="Meteo"
{
Frame label="Situazione Attuale"
{
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_condition
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_temperature
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_humidity
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_pressure
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_wind_direction
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_wind_speed
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_rain
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_snow
}
Frame label="Previsioni 3h"
{
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_condition
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_temperature
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_humidity
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_pressure
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_wind_direction
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_wind_speed
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_rain
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_snow
}
// Setpoint item=GU120_CL_Start minValue=0 maxValue=23 step=1 label="Ora Avvio"
// Setpoint item=GU120_CL_Stop minValue=0 maxValue=23 step=1 label="Ora Spegnimento"
}
Group item=GT_Netatmo label="Rilievi Netatmo"
Text label="Andamento Netatmo" icon="line"
{
Frame label="Temperature Rilevate"
@@ -308,6 +372,35 @@ sitemap Steamware label="Steamware"
Chart item=GT_Netatmo_Press legend=true visibility=[GT_NetatmoInt==4] period=M refresh=6000000
}
}
Group item=GT_Netatmo label="Rilievi Netatmo"
Text item=Stagione icon="time"
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_condition label="Meteo"
{
Frame label="Situazione Attuale"
{
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_condition
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_temperature
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_humidity
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_pressure
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_wind_direction
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_wind_speed
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_rain
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_current_snow
}
Frame label="Previsioni 3h"
{
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_condition
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_temperature
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_humidity
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_pressure
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_wind_direction
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_wind_speed
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_rain
Text item=openweathermap_weather_and_forecast_48a7dcf6_local_forecastHours03_snow
}
// Setpoint item=GU120_CL_Start minValue=0 maxValue=23 step=1 label="Ora Avvio"
// Setpoint item=GU120_CL_Stop minValue=0 maxValue=23 step=1 label="Ora Spegnimento"
}
}
Frame label="Network"
{
@@ -319,7 +412,7 @@ sitemap Steamware label="Steamware"
{
Frame label="Presenze Ufficio"
{
Switch item=gNet_mobileChartSel label="Periodo" icon="door" mappings=[0="24h", 1="7g", 2="1M", 3="2M"]
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