tankerkoenig.Items:
Code: Alles auswählen
/* Gruppen */
Group gSprit "Spritpreise" (Whg)
Group gAral "Sprit Aral" <aral> (gSprit)
Group gShell "Sprit Shell" <shell> (gSprit)
Group gTotal "Sprit Total" <total> (gSprit)
Number NewInfoMsg_Aral "Neuer Preis [%s]" <neu> (gAral)
Number OldInfoMsg_Aral "Alter Preis [%s]" <alt> (gAral)
Number NewInfoMsg_Shell "Neuer Preis [%s]" <neu> (gShell)
Number OldInfoMsg_Shell "Alter Preis [%s]" <alt> (gShell)
Number NewInfoMsg_Total "Neuer Preis [%s]" <neu> (gTotal)
Number OldInfoMsg_Total "Alter Preis [%s]" <alt> (gTotal)
Number E10_Shell "E10 Shell [%.3f ]" <e10>(gShell) { channel="tankerkoenig:station:WebserviceName:StationName1:e10" }
Number E5_Shell "E5 Shell [%.3f ]" <e5> (gShell) { channel="tankerkoenig:station:WebserviceName:StationName1:e5" }
Number E10_Aral "E10 Aral [%.3f ]" <e10> (gAral) { channel="tankerkoenig:station:WebserviceName:StationName2:e10"}
Number E5_Aral "E5 Aral [%.3f ]" <e5> (gAral) { channel="tankerkoenig:station:WebserviceName:StationName2:e5"}
Number E10_Total "E10 Total [%.3f ]" <e10> (gTotal) { channel="tankerkoenig:station:WebserviceName:StationName3:e10"}
Number E5_Total "E5 Total [%.3f ]" <e5> (gTotal) { channel="tankerkoenig:station:WebserviceName:StationName3:e5"}
Code: Alles auswählen
import org.joda.time.LocalTime
rule "Benzinpreise Info"
when
Item E10_Aral received update or
Item E10_Shell received update
then
postUpdate(OldInfoMsg_Shell, E10_Shell.state)
postUpdate(OldInfoMsg_Aral, E10_Aral.state)
postUpdate(OldInfoMsg_Total, E10_Total.state)
val LocalTime afternoon = new LocalTime(15, 0) // 15pm every day
val LocalTime evening = new LocalTime(17, 0) // 17pm every day
if (now.toLocalTime().isAfter(afternoon) && now.toLocalTime().isBefore(evening)){ //zwischen 15 und 17 Uhr
var double ShellNewPrice = (NewInfoMsg_Shell.state as DecimalType).doubleValue
var double AralNewPrice = (NewInfoMsg_Aral.state as DecimalType).doubleValue
var double ShellOldPrice = (OldInfoMsg_Shell.state as DecimalType).doubleValue
var double AralOldPrice = (OldInfoMsg_Aral.state as DecimalType).doubleValue
if ((ShellOldPrice == ShellNewPrice )||(AralOldPrice == AralNewPrice )){ // Der Preis der gleiche ist
// do nothing
}
else if ((ShellNewPrice < 1.30) && (ShellNewPrice < AralNewPrice)){
sendBroadcastNotification("Tanken? Shell: " + ShellNewPrice)
}
else if ((AralNewPrice < 1.30) && (AralNewPrice < ShellNewPrice)){
sendBroadcastNotification("Tanken? Aral: " + AralNewPrice)
}
}
end
Da ich zwei Sitemaps nutze (eine für Admin Zwecke, eine für Anzeige der wichtigsten Info's) und auch, weil ich sehr stark Gruppen nutze (siehe items) zeige ich lediglich die Sprit-Hauptgruppe "gSprit" in meiner Hauptgruppe Whg an:
Code: Alles auswählen
Group item=Whg label="Alle Elemente" icon="house"