Anwesenheitserkennung icloud Binding

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Markus_JE
Beiträge: 138
Registriert: 6. Okt 2019 13:20

Anwesenheitserkennung icloud Binding

Beitrag von Markus_JE »

GUten Tag zusammen,

ich versuche im Moment eine Anwesenheitserkennung via icloud Bindig zu erstellen.
Leider meldet die Rule immer das mein Iphone nicht Zuhause ist.
Kann mir hier jemand helfen an was dies liegt?

Code: Alles auswählen

    Thing device iPhone8Plus   "Markus iPhone 8 Plus"       @ "Apple" [deviceId="ID meines Iphones"]

Code: Alles auswählen

String     MarkusIPhone8PlusBatteryStatus        "Battery status"            (iCloud_Group) {channel="icloud:device:Markus:iPhone8Plus:batteryStatus"}
Number     MarkusIPhone8PlusBatteryLevel         "Batterieladung"            (iCloud_Group) {channel="icloud:device:Markus:iPhone8Plus:batteryLevel"}
Switch     MarkusIPhone8PlusLowBattery           "Niedriger batteriestatus"   (iCloud_Group) {channel="icloud:device:Markus:iPhone8Plus:lowBattery"}
Switch     MarkusIPhone8PlusFindMyPhone          "Find my phone"              (iCloud_Group) {channel="icloud:device:Markus:iPhone8Plus:findMyPhone"}
Location   MarkusIPhone8PlusLocation             "Location"                (iCloud_Group)   {channel="icloud:device:Markus:iPhone8Plus:location"}
Number     MarkusIPhone8PlusLocationAccuracy     "Location accuracy"       (iCloud_Group)   {channel="icloud:device:Markus:iPhone8Plus:locationAccuracy"}
DateTime   MarkusIPhone8PlusLocationLastUpdate   "Last location update"    (iCloud_Group)   {channel="icloud:device:Markus:iPhone8Plus:locationLastUpdate"}
Switch     MarkusIPhone8PlusHome                 "Phone Home"          (iCloud_Group)
Switch     MarkusIPhone8PlusRefresh              "Force iPhone Refresh"     (iCloud_Group) {channel="icloud:device:myaccount:myiPhone8:refresh", autoupdate="false"}

Code: Alles auswählen

rule "iPhone Home"
when
    Item MarkusIPhone8PlusLocation changed
then
    val PointType home_location  = new PointType(new DecimalType(48.96), new DecimalType(9.0))
    val PointType MarkusIPhone8PlusLocation  = MarkusIPhone8PlusLocation.state as PointType
    val int distance = MarkusIPhone8PlusLocation.distanceFrom(home_location).intValue()

    if ( distance < 200) {
        MarkusIPhone8PlusHome.postUpdate(ON)
        logInfo("iPhone Home", "iPhone is at home.")
        }
 else {
        MarkusIPhone8PlusHome.postUpdate(OFF)
        logInfo("iPhone Home", "iPhone is away.")
    }
end

Benutzeravatar
udo1toni
Beiträge: 13859
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Anwesenheitserkennung icloud Binding

Beitrag von udo1toni »

Hast Du die Heimkoordinaten nur hier gekürzt? Damit Du eine Genauigkeit von 200 Meter erreichen kannst, müsstest Du hier mindestens 13 Nachkommastellen angeben, eigentlich sind es 14 Nachkommastellen. Du kannst in Paper UI -> Configuration -> System -> Regional Settings -> Location bequem den exakten Standort Deines Hauses eingeben, die Koordinaten werden dann angezeigt. Ich meine auch, mich zu erinnern, dass Du auf die dort hinterlegten Koordinaten von der Rule engine aus irgendwie zugreifen kannst...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

thoffacker
Beiträge: 7
Registriert: 9. Mär 2021 01:25

Re: Anwesenheitserkennung icloud Binding

Beitrag von thoffacker »

Hallo zusammen,

ich habe gerade versucht, die Anwesenheitserkennung via icloud Binding in OH3 zu implementieren.

Leider bin ich noch recht unerfahren in der Programmierung mit Java.

Es gibt wohl bei den ECMA-Scripts andere Definitionen für Variablen, weshalb die oben gezeigte Lösung nicht funktioniert.
Gibt es denn überhaupt die Möglichkeit das mit ECMA-Script zu programmieren oder muss man hier auf Text-Basierte Rules ausweichen?

Ich hoffe auf eine Antwort von euch, auch wenn das Thema schon etwas älter ist.

Beste Grüße

thoffacker
Beiträge: 7
Registriert: 9. Mär 2021 01:25

Re: Anwesenheitserkennung icloud Binding

Beitrag von thoffacker »

Okay... Fehler gefunden!

Falls noch jemand darüber stolpern sollte: nehmt RuleDSL, dann geht das auch!

Antworten