Updating GpsTracker with iCloud binding

A sample rule in order to tack iPhone position with GpsTracker :

gpslogger.rules

val String gpsLoggerUrl = 'http://127.0.0.1:8080/gpstracker/gpslogger'
val String gpsLoggerData = '{
    "_type":"location",
    "lat":%LAT,
    "lon":%LON,
    "tid":"GL",
    "acc":%ACC,
    "batt":%BATT,
    "tst":%TIMESTAMP
}'

event handling :

rule "iPhone Location update"
when
    Item iPhone_Location received update
then
    val PointType phone_location = iPhone_Location.state as PointType
    val Number epoch = now.getMillis() / 1000
    var int battery = (iPhone_BatteryLevel.state as DecimalType).intValue
    var String data = gpsLoggerData.replace("%LAT",phone_location.getLatitude().toString())
                        .replace("%LON",phone_location.getLongitude().toString())
                        .replace("%ACC",iPhone_LocationAccuracy.state.toString())
                        .replace("%BATT",String.valueOf(battery))
                        .replace("%TIMESTAMP",epoch.toString())

    sendHttpPostRequest(gpsLoggerUrl, "application/json", data)
end
2 Likes