Skip to content

PfisterDaniel/node-red-contrib-apple-find-me

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-red-contrib-apple-find-me

This is a node-red node to get the current locations and other metrics of connected Apple devices.

It work's without 2-Factor-Authentication (2FA) and retrive all connected devices.

Important: Family-Devices are not longer working!

Donation:

You can buy me a coffee or two if you find helpfull my node.

If you buy me a coffee I would like to thank you in advance for your donation.

Donate

Installation

NPM Downloads Current Release

Install from your Node-RED Manage Palette

or

Install using npm

$ npm install node-red-contrib-apple-find-me

Redmatic:

$ source /usr/local/addons/redmatic/home/.profile
$ cd /usr/local/addons/redmatic/var
$ npm install --save --no-package-lock --global-style --save-prefix="~" --production node-red-contrib-apple-find-me

Check for Updates:

$ npm outdated

Update:

$ npm install node-red-contrib-apple-find-me@latest

Nodes:

Nodes

Examples:

NodeExample

Parameter (Account):

Parameter Description
Name Node Name
Apple ID self explanatory
Password self explanatory
Timezone Select your Timezone
Format Define your Time-Format
Request-Timeout Define Request-Timeout in seconds

Parameter (Locate my Devices):

Parameter Description
Account Your Apple Account
Name Node Name
Geo-API OpenStreetMaps, HereMaps or GoogleMaps (HereMaps and GoogleMaps needs an API-KEY)
Trigger Interval How often should the devices be updated
Places Define locations that should be specified in the payload if the device is within a 150 meter radius

Parameter (Locate my Devices with Payload):

Parameter Description
Account Your Apple Account
Name Node Name
Geo-API OpenStreetMaps, HereMaps or GoogleMaps (HereMaps and GoogleMaps needs an API-KEY)
Places Define locations that should be specified in the payload if the device is within a 150 meter radius

Parameter (Send Message):

Parameter Description
Account Your Apple Account
Name Node Name
Device-ID ID of the iOS-Device (You can get it with the Locate my Devices Node)
Message ID of the iOS-Device (You can get it with the Locate my Devices Node)

Parameter (Find my Phone):

Parameter Description
Account Your Apple Account
Name Node Name
Device-ID ID of the iOS-Device (You can get it with the Locate my Devices Node)

How to use

  • Add Locate my Devices node or a Locate my Devices (run with Payload) node to your flow
  • Create Account-Information
  • Setting Properties and enjoy

Features

  • Define places
  • Retriev device metrics (ModelName, ModelImage, DeviceID, DisplayName, BatteryLevel, BatteryState)
  • Retriev location information (Latitude, Longitude, CurrentPlace, CurrentAddress, OSM-Url, GoogleMaps-Url)
  • Run Find my iPhone
  • Send Message to an iOS Device
  • Add new node within you can locate your devices by incoming an input

Example Payload (Locate my Devices):

{
       "<ModelType> e.g: MacBook Pro or iPhone":[
          {
             "modelName":"<ModelName> e.g: MacBook Pro 13\"",
             "modelImageLink_Small":"<ModelImageSmallLink>",
             "modelImageLink_Medium":"<ModelImageMediumLink>",
             "modelImageLink_Large":"<ModelImageLargeLink>",
             "deviceID":"<Unique DeviceID>",
             "displayName":"<DiviceName> e.g: Daniel's MacBook Pro",
             "batteryLevel":"<BatteryLevel in percent> e.g 53",
             "batteryState":"<BatteryStatus> e.g: CHARGING",
             "locationInfo":{
                "distances": [
                    {
                      "name": "HOME",
                      "distance_in_meter": <Distance in meter> e.g 200,
                      "distance_in_km": <Distance in kilometer> e.g 0.2,
                      "distance_in_miles": <Distance in miles> e.g 0.3
                    }
                  ]
                },
                "altitude":0,
                "latitude":0.00000000000,
                "longitude":0.00000000000,
                "isInaccurate":false,
                "isOld":false,
                "positionType":"Wifi or GPS",
                "horizontalAccuracy": "<Accuracy in meters> e.g: 65",
                "verticalAccuracy":0,
                "currentPlace":"<if device in place then its here the name of place when distance < 150 meters>",
                "currentAddress":{<Address-Object from OpenStreetMap, HereMap or GoogleMaps>},
                "osmUrl":"<OpenStreetMaps Url>",
                "googleUrl":"<GoogleMaps Url>",
                "locationTimeStamp":"<TimeStamp of last location> e.g: 2020-11-10 14:51:12"
             },
             "refreshTimeStamp":"<RefreshTimeStamp> e.g: 2020-11-10 14:54:22"
          }
       ]
    }
 }

Changelog

Version Description
1.0.0 Initial Version
1.0.1 Add BatteryStatus
1.0.2 Nodes now available through the Node-Red palette
1.0.3 Bug with Places solved
1.0.4 Added Find my iPhone and send message, Geolocation GoogleMaps
1.0.5 Added new Node (apple-find-me-with-payload), API-Key now a Password-Fields
Added Descriptions
1.0.6 Change from node-red-apple-find-me to node-red-contrib-apple-find-me
1.0.7 Issue #4 (Send Message) solved
1.0.8 Bug fixed: Crash if address was not found
1.0.9 Added Timezone and Time-Format
1.1.0 Remove Family-Devices (not longer working) Issue #15
1.1.1 Change Version
1.1.2 Add Request-Timeout Settings in Account-Node
1.1.3 Bug fixed: Issue #22
1.1.4 Issue #23
1.1.5 Bug fixed: Problem with Package.json in 1.1.4
1.1.7 Bug fix and add new Geolocation-Provider (BingMaps, Geoapify, LocationIQ, Positionstack, Tomtom)
1.1.8 Bug fix and add distances (remove slow Elevation API Issue #27)

Bugs and feature requests

Please create an issue in GitHub

About

Node to get the current locations and other metrics of connected Apple devices.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published