ich habe das iCloud Binding installiert und aus dem "Full Example" die icloud.items, icloud.sitemap und icloud.rules für mein Smarthome angepasst und übernommen, was alles funktioniert!
Ich möchte zudem den Wert "distance = phone_location.distanceFrom(home_location).intValue()" in der Sitemap anzeigen lassen und bekomme es nicht hin .
rule "Peter_kommt_zum WiWe"
when
Item PeterIPhoneX_Location changed
then
// specify your home location
//my home location
val PointType wiwe34a_location = new PointType(new DecimalType(51.357484), new DecimalType(6.563360))
//my work location
//val PointType mvz_location = new PointType(new DecimalType(51.332303), new DecimalType(6.567933))
val PointType phone_location = PeterIPhoneX_Location.state as PointType
val int distance_PeterIPhoneX_wiwe34a = (phone_location).distanceFrom(wiwe34a_location).intValue()
//val int distance_work = phone_location.distanceFrom(mvz_location).intValue()
//val PeterIPhoneX_Distance_WiWe34a = distance_PeterIPhoneX_wiwe34a
// specify your preferred radius (in meters)
if (distance_PeterIPhoneX_wiwe34a < 200) {
PeterIPhoneX_Home.postUpdate(ON)
logInfo("PeterIPhoneX Home", "PeterIPhoneX ist auf dem WiWe34a.")
}
else {
PeterIPhoneX_Home.postUpdate(OFF)
logInfo("PeterIPhoneX Home", "PeterIPhoneX is unterwegs.")
}
end
in den Items steht bei mit :
Number distance_PeterIPhoneX_WiWe34a "Entfernung IPhone - WiWe34a [%.0f m]" (IC_Iphone, gIphone)
der Text in Klammer erscheint, aber es wird kein wert angegeben
Die rule funktioniert einwandfrei
In der Rule verwendest Du eine innerhalb der Rule definierte Konstante distance_PeterIPhoneX_wiwe34a, speicherst diese aber nirgends in ein Item, auch nicht in das Item distance_PeterIPhoneX_WiWe34a. Ich nutze selbst bisher keine Lokalisierung, deshalb frage ich mal ganz blöd: ist Das Item direkt mit irgendwas verknüpft, damit es gefüllt wird, oder handelt es sich am Ende um ein ungebundenes Item, welchem Du dann natürlich über die Rule den Wert geben musst (per .postUpdate)?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Danke für die Info Udo,
das item ist mit keinem Channel verknüpft
werde heute abend dem somit ungebundene Item, über die Rule per .postUpdate einen Wert zu geben
when
Item PeterIPhoneX_Location changed
then
// specify your home location
//my home location
val PointType wiwe34a_location = new PointType(new DecimalType(51.357484), new DecimalType(6.563360))
val PointType phone_location = PeterIPhoneX_Location.state as PointType
val int distance_PeterIPhoneX_wiwe34a = (phone_location).distanceFrom(wiwe34a_location).intValue()
PeterIPhoneX_Distance_WiWe34a.postUpdate(distance_PeterIPhoneX_wiwe34a)
// specify your preferred radius (in meters)
if (distance_PeterIPhoneX_wiwe34a < 200) {
PeterIPhoneX_Home.postUpdate(ON)
logInfo("PeterIPhoneX Home", "PeterIPhoneX ist auf dem WiWe34a.")
}
else {
PeterIPhoneX_Home.postUpdate(OFF)
logInfo("PeterIPhoneX Home", "PeterIPhoneX is unterwegs.")
}
end
Prima! Aber bitte Code immmer mit Code-Tags versehen (im vollständigen Editor den </> Knopf drücken oder alternativ die Tags direkt hinschreiben:
[code\]Hier kommt der Code[/code\] (ohne die \)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
rule "Peter_kommt_zum WiWe"
when
Item PeterIPhoneX_Location changed
then
// specify your home location
//my home location
val PointType wiwe34a_location = new PointType(new DecimalType(51.357484), new DecimalType(6.563360))
val PointType phone_location = PeterIPhoneX_Location.state as PointType
val int distance_PeterIPhoneX_wiwe34a = (phone_location).distanceFrom(wiwe34a_location).intValue()
PeterIPhoneX_Distance_WiWe34a.postUpdate(distance_PeterIPhoneX_wiwe34a)
// specify your preferred radius (in meters)
if (distance_PeterIPhoneX_wiwe34a < 200) {
PeterIPhoneX_Home.postUpdate(ON)
logInfo("PeterIPhoneX Home", "PeterIPhoneX ist auf dem WiWe34a.")
}
else {
PeterIPhoneX_Home.postUpdate(OFF)
logInfo("PeterIPhoneX Home", "PeterIPhoneX is unterwegs.")
}
end