Seite 1 von 1

Distanz des iPhones von einem Ort ausgeben

Verfasst: 26. Mai 2020 21:54
von kgwaldi
Hallo in die Runde,

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! :D
Ich möchte zudem den Wert "distance = phone_location.distanceFrom(home_location).intValue()" in der Sitemap anzeigen lassen und bekomme es nicht hin :o .

Beste Grüße Peter

Re: Distanz des iPhones von einem Ort ausgeben

Verfasst: 26. Mai 2020 23:29
von udo1toni
Hast Du denn die Heimatposition festgelegt?

Re: Distanz des iPhones von einem Ort ausgeben

Verfasst: 27. Mai 2020 06:41
von kgwaldi
ja hab ich:

Code: Alles auswählen

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

Re: Distanz des iPhones von einem Ort ausgeben

Verfasst: 27. Mai 2020 06:45
von kgwaldi
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

Re: Distanz des iPhones von einem Ort ausgeben

Verfasst: 27. Mai 2020 10:57
von udo1toni
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)?

Re: Distanz des iPhones von einem Ort ausgeben

Verfasst: 27. Mai 2020 11:19
von kgwaldi
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

Re: Distanz des iPhones von einem Ort ausgeben

Verfasst: 27. Mai 2020 18:39
von kgwaldi
Super Udo, jetzt läufts, Daaanke

Habe folgende Zeile eingefügt
PeterIPhoneX_Distance_WiWe34a.postUpdate(distance_PeterIPhoneX_wiwe34a)


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

Re: Distanz des iPhones von einem Ort ausgeben

Verfasst: 28. Mai 2020 11:32
von udo1toni
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 \)

Re: Distanz des iPhones von einem Ort ausgeben

Verfasst: 4. Jun 2020 10:32
von kgwaldi

Code: Alles auswählen

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