Apples Wo Ist? Integration in FHEM

Begonnen von Guybrush, 13 August 2026, 15:25:00

Vorheriges Thema - Nächstes Thema

Guybrush

Ich habe bei mir Apples Wo Ist? integriert. Die bisherigen Ansätze über Homekit usw waren mir zu kompliziert. Da ich auch das Rad nicht komplett neu erfinden wollte habe für die Einbindung nun pyicloud genommen, was aktiv gepflegt wird. Da das aber keine vernünftige Schnittstelle für FHEM gab, habe ich eine mqtt bridge entwickelt, womit man nun direkt über mqtt mit pyicloud kommunizieren kann und sowohl die Standorte erhält als auch Lokalisierung starten kann. FHEM mit MQTT wird natürlich vorausgesetzt. Man kann das tool auch nutzen um wichtige Meldungen direkt auf dem iPhone anzeigen zu lassen ;) Ich hab das bei mir primär zum suchen meiner Geräte bei mir umgesetzt. Aber auch eine Anwesenheitserkennung lässt sich damit robust umsetzen.

https://github.com/next81/findmy2mqtt

Das Ganze ist dort schon kurz beschrieben, aber hier nochmal in kürze für debian:

sudo apt update
sudo apt install -y git python3 python3-full python3-pip python3-venv ca-certificates

git clone https://github.com/next81/findmy2mqtt.git
cd findmy2mqtt

sudo ./install.sh

Die Config ist selbsterklärend und liegt im YAML Format default unter:
/etc/findmy2mqtt/config.yaml

Nachdem die config angepasst ist muss der Login zu apple hergestellt werden:
findmy2mqtt password <person1>
findmy2mqtt auth <person1>

Dabei sollte dann die 2FA von apple angestoßen werden. Die Pin sollte dann im Prompt eingegeben werden.

wenn das durch ist können testweise die devices abgefragt werden:
findmy2mqtt devices <person1>


wenn das geht, dann findmy2mqtt als service einrichten:
systemctl enable --now findmy2mqtt

Danach sollten neue mqtt devices in FHEM auftauchen. Ein Beispiel Device für FHEM ist auch in der Github Readme enthalten.

CQuadrat

Danke dafür!

Ich werde es die Tage mal ausprobieren.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

binford6000

Vielen Dank fürs Entdecken!
Ich habe die FHEM Definition aus dem github Repo mal etwas angepasst:

defmod iphone_sebastian.fm MQTT2_DEVICE
attr iphone_sebastian.fm autocreate 0
attr iphone_sebastian.fm devicetopic findmy/person/deviceid
attr iphone_sebastian.fm event-on-change-reading .*
attr iphone_sebastian.fm readingList $DEVICETOPIC/state:.* { json2nameValue($EVENT) }
attr iphone_sebastian.fm setList locate $DEVICETOPIC/locate\
message:textField {"$DEVICETOPIC/message ".(split(/ /,$EVENT,2))[1]}
attr iphone_sebastian.fm timestamp-on-change-reading .*
attr iphone_sebastian.fm userReadings presence {findmyPresence($name)}

Die Fn "findmyPresence" für das presence userReading basiert auf lat und long in global und wurde mit Hilfe von KI generiert:
sub findmyPresence($) {
  my ($name) = @_;
  my $homeRadius = 150;  # Umkreis in Metern um Zuhause, der noch als "home" gilt
  my $lat1 = ReadingsVal($name,"latitude",undef);
  my $lon1 = ReadingsVal($name,"longitude",undef);
  my $lat2 = AttrVal("global","latitude",undef);
  my $lon2 = AttrVal("global","longitude",undef);
  return "unknown" if(!defined($lat1) || !defined($lon1) || !defined($lat2) || !defined($lon2));
  my $pi = 3.14159265358979;
  my $earthRadius = 6371000;  # Erdradius in Metern
  my $dLat = ($lat2-$lat1)*$pi/180;
  my $dLon = ($lon2-$lon1)*$pi/180;
  my $a = sin($dLat/2)**2 + cos($lat1*$pi/180)*cos($lat2*$pi/180)*sin($dLon/2)**2;
  my $c = 2*atan2(sqrt($a),sqrt(1-$a));
  my $distance = $earthRadius*$c;
  return ($distance <= $homeRadius) ? "present" : "absent";
}

VG Sebastian

Guybrush

#3
die idee ist gut. das übernehme ich mal ;) ich würd nur schematisch die home koordinaten mit attributen und nicht mit readings setzen und statt undef 0 nehmen. das setlist passe ich auch im beispiel noch an. ich hatte den topic erst noch anders und nicht umgestellt als ich das vereinheitlicht hab.

ich hab in dem kontext auch die darstellung noch angepasst:

attr FindMy.AndreasiPhone devStateIcon (0|1)\d?:measure_battery_0@red [2-3]\d+:measure_battery_25@orange [4-6]\d+:measure_battery_50@green [7-8]\d+:measure_battery_75@green (9\d+|100).*:measure_battery_100@green
attr FindMy.AndreasiPhone stateFormat { my $s=ReadingsVal($name,"state","unknown");; my $b=ReadingsNum($name,"battery","-");; return "$b\n$s";; }

Jamo

Hi,
ich habe ein Problem. Zuerst habe ich folgendes gemacht, und ich bin mir sicher, das ich den richtigen Code eingegeben habe. Der Code wurde auf meinem MAC angezeigt, und ich habe 'allow' gedrückt.
jamo@inuc:~$ sudo findmy2mqtt auth Jamo
2026-08-14 18:36:45,722 INFO findmy2mqtt.apple: Apple login succeeded for Jamo
2026-08-14 18:36:45,723 INFO findmy2mqtt.apple: Two-factor authentication is required.
Apple verification code (Enter = request new code): 695252
2026-08-14 18:36:58,402 ERROR pyicloud.base: Code verification failed.
2026-08-14 18:36:58,402 ERROR findmy2mqtt: Apple rejected the verification code

Danach habe ich ich im /etc/findmy2mqtt/config.yaml Gross/Kleinschreibung für meinen user und die e-mail Adresse geändert. Jetzt alles klein Schreibung. Passwort neu eingegeben.

Jetzt bekomme ich einfach keinen Apple verification code mehr, auf keinem meiner autorisierten Geräte. Es passiert gar nichts. Und ich habe schon länger als 60 Minuten gewartet.
jamo@inuc:~$ sudo findmy2mqtt auth Jamo
2026-08-14 20:33:07,735 INFO findmy2mqtt.apple: Apple login succeeded for Jamo
2026-08-14 20:33:07,736 INFO findmy2mqtt.apple: Two-factor authentication is required.
Apple verification code (Enter = request new code):
2026-08-14 20:33:40,712 ERROR findmy2mqtt: Apple could not request a new verification code
Auch wenn ich Enter eingebe, bekomme ich keinen neuen code auf einem meiner autorisierten gerate, weder iPhone/iPad/Mac/Watch.

Hat jemand einen Tip?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee2MQTT, Conbee III, FB7690, Signal, Alexa (fhem-lazy), Geotracking, LaCrosse JeeLink, LoRaWan (TTN / Chirpstack), Sonos, ESPresence, HomeAssistant via MQTT, Meshtastic

binford6000

ZitatHat jemand einen Tip?
Hi Jamo,
findmy kennt verbose:

--verbose             enable debug logging
Vielleicht kommt da etwas mehr?
Gruß,
Sebastian

Jamo

ja, nach dem Enter kommt die Fehlerbeschreibung warum nach dem Enter kein neuer code angefordert werden kann, aber es kommt initial weiterhin kein 2FA code auf keinem meiner Geräte:
jamo@inuc:~$ sudo findmy2mqtt --verbose auth jamo
2026-08-14 21:09:32,241 DEBUG pyicloud.session: Using session file /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 21:09:32,242 DEBUG pyicloud.base: Checking session token validity
2026-08-14 21:09:32,242 DEBUG pyicloud.session: POST https://setup.icloud.com/setup/ws/1/validate
2026-08-14 21:09:32,244 DEBUG urllib3.connectionpool: Starting new HTTPS connection (1): setup.icloud.com:443
2026-08-14 21:09:32,572 DEBUG urllib3.connectionpool: https://setup.icloud.com:443 "POST /setup/ws/1/validate HTTP/1.1" 200 1970
2026-08-14 21:09:32,573 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 21:09:32,574 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 21:09:32,575 DEBUG pyicloud.base: Session token is still valid
2026-08-14 21:09:32,575 INFO findmy2mqtt.apple: Apple login succeeded for jamo
2026-08-14 21:09:32,575 INFO findmy2mqtt.apple: Two-factor authentication is required.
Apple verification code (Enter = request new code):
2026-08-14 21:13:35,116 ERROR findmy2mqtt: Apple could not request a new verification code
2026-08-14 21:13:35,117 ERROR findmy2mqtt: Detailed error
Traceback (most recent call last):
  File "/opt/findmy2mqtt/findmy2mqtt.py", line 40, in main
    result = execute_command(args, config)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/lib/cli.py", line 224, in execute_command
    interactive_auth(config, find_account(config, args.account))
  File "/opt/findmy2mqtt/lib/apple.py", line 97, in interactive_auth
    raise RuntimeError("Apple could not request a new verification code")
RuntimeError: Apple could not request a new verification code
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee2MQTT, Conbee III, FB7690, Signal, Alexa (fhem-lazy), Geotracking, LaCrosse JeeLink, LoRaWan (TTN / Chirpstack), Sonos, ESPresence, HomeAssistant via MQTT, Meshtastic

binford6000

  • Evtl mal alle Session Artefakte löschen in /var/lib/findmy2mqtt/sessions/jamo
  • und nochmal Rate-Limiting ausschließen durch abwarten

Jamo

#8
Ich habe jetzt mein Apple Account Passwort geändert auf einem meiner trusted Devices. Dann mit "sudo findmy2mqtt password jamo" auch für findmy2mqtt geändert. Dann bekomme ich nach sudo findmy2mqtt --verbose auth jamowieder einen 2FA code. Nach dem ich mit 'allow' akzeptiert habe und den angezeigten 6-stelligen Code eingebe, kommt aber immer "Apple rejected the verification code". Versteh ich nicht.

Ich probiere morgen früh nochmal.

Apple verification code (Enter = request new code): 227108
2026-08-14 21:36:33,046 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/verify/trusteddevice/securitycode
2026-08-14 21:36:33,616 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/verify/trusteddevice/securitycode HTTP/1.1" 409 None
2026-08-14 21:36:33,619 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 21:36:33,621 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 21:36:33,622 ERROR pyicloud.base: Code verification failed.
2026-08-14 21:36:33,622 ERROR findmy2mqtt: Apple rejected the verification code
2026-08-14 21:36:33,623 ERROR findmy2mqtt: Detailed error
Traceback (most recent call last):
  File "/opt/findmy2mqtt/findmy2mqtt.py", line 40, in main
    result = execute_command(args, config)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/lib/cli.py", line 224, in execute_command
    interactive_auth(config, find_account(config, args.account))
  File "/opt/findmy2mqtt/lib/apple.py", line 109, in interactive_auth
    raise RuntimeError("Apple rejected the verification code")
RuntimeError: Apple rejected the verification code
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee2MQTT, Conbee III, FB7690, Signal, Alexa (fhem-lazy), Geotracking, LaCrosse JeeLink, LoRaWan (TTN / Chirpstack), Sonos, ESPresence, HomeAssistant via MQTT, Meshtastic

Guybrush

ich hab eine Vermutung woran es liegt. Versuche mal folgendes:

1. Das Session-Verzeichnis /var/lib/findmy2mqtt/sessions/jamo leeren.
2. sudo findmy2mqtt --verbose auth jamo starten.
3. Beim ersten Prompt den möglicherweise bereits angezeigten Code ignorieren und Enter drücken.
4. Den danach neu angeforderten Code erst beim Prompt New Apple verification code eingeben.

bitte debug + log hier dann posten.

Jamo

Das hat geklappt!!!jamo@inuc:~$ sudo findmy2mqtt --verbose auth jamo
2026-08-14 22:17:11,646 DEBUG pyicloud.session: Using session file /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:11,646 INFO pyicloud.session: Session file does not exist
2026-08-14 22:17:11,647 DEBUG pyicloud.base: Authenticating as jamo@emaildomain.com
2026-08-14 22:17:11,647 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/authorize/signin
2026-08-14 22:17:11,649 DEBUG urllib3.connectionpool: Starting new HTTPS connection (1): idmsa.apple.com:443
2026-08-14 22:17:12,293 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/authorize/signin?frame_id=21f66354-981d-11f1-ae3a-1c697a6923d0&skVersion=7&iframeid=21f66354-981d-11f1-ae3a-1c697a6923d0&client_id=d39ba9916b7251055b22c7f910e2ea796ee65e98b2ddecea8f5dde8d9d1a815d&response_type=code&redirect_uri=https%3A%2F%2Fwww.icloud.com&response_mode=web_message&state=21f66354-981d-11f1-ae3a-1c697a6923d0&authVersion=latest HTTP/1.1" 200 None
2026-08-14 22:17:12,297 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:12,299 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:12,301 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/signin/init
2026-08-14 22:17:12,519 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/signin/init HTTP/1.1" 200 None
2026-08-14 22:17:12,522 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:12,523 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:12,564 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/signin/complete
2026-08-14 22:17:13,630 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/signin/complete?isRememberMeEnabled=true HTTP/1.1" 409 None
2026-08-14 22:17:13,634 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:13,635 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:13,635 DEBUG pyicloud.base: 2FA required to complete authentication.
2026-08-14 22:17:13,636 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth
2026-08-14 22:17:13,920 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth HTTP/1.1" 200 None
2026-08-14 22:17:13,923 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:13,924 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:13,927 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/verify/trusteddevice
2026-08-14 22:17:14,374 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/verify/trusteddevice HTTP/1.1" 200 None
2026-08-14 22:17:14,376 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:14,377 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:14,378 DEBUG pyicloud.base: Requested 2FA code via trusted device push
2026-08-14 22:17:14,378 DEBUG pyicloud.session: PUT https://idmsa.apple.com/appleauth/auth/verify/phone
2026-08-14 22:17:15,085 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "PUT /appleauth/auth/verify/phone HTTP/1.1" 200 None
2026-08-14 22:17:15,088 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:15,089 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:15,090 DEBUG pyicloud.base: Requested 2FA code via SMS (phone id 1)
2026-08-14 22:17:15,090 DEBUG pyicloud.session: POST https://setup.icloud.com/setup/ws/1/accountLogin
2026-08-14 22:17:15,093 DEBUG urllib3.connectionpool: Starting new HTTPS connection (1): setup.icloud.com:443
2026-08-14 22:17:15,561 DEBUG urllib3.connectionpool: https://setup.icloud.com:443 "POST /setup/ws/1/accountLogin HTTP/1.1" 200 2009
2026-08-14 22:17:15,565 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:15,568 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:15,569 DEBUG pyicloud.base: 2FA is required
2026-08-14 22:17:15,569 INFO findmy2mqtt.apple: Apple login succeeded for jamo
2026-08-14 22:17:15,569 INFO findmy2mqtt.apple: Two-factor authentication is required.
Apple verification code (Enter = request new code):
2026-08-14 22:17:23,115 DEBUG pyicloud.hsa2_bridge: Bootstrapping trusted-device bridge: auth_endpoint=https://idmsa.apple.com/appleauth/auth websocket_host=websocket.push.apple.com topic=com.apple.idmsauthwidget source_app_id=1159
2026-08-14 22:17:23,118 DEBUG pyicloud.hsa2_bridge: Opening trusted-device websocket: host=websocket.push.apple.com bootstrapPayloadLen=342
2026-08-14 22:17:24,074 DEBUG pyicloud.hsa2_bridge: Trusted-device bridge connected; received push token (80 bytes)
2026-08-14 22:17:24,074 DEBUG pyicloud.hsa2_bridge: Sent trusted-device webFilterMessage for topic=com.apple.idmsauthwidget
2026-08-14 22:17:24,075 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 0 with sessionUUID=dd5e042e... ptknLen=160
2026-08-14 22:17:24,075 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/0
2026-08-14 22:17:24,718 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/0 HTTP/1.1" 200 None
2026-08-14 22:17:24,720 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:24,721 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:38,124 DEBUG pyicloud.hsa2_bridge: Acknowledged trusted-device push message id=2412964662 topic=com.apple.idmsauthwidget
2026-08-14 22:17:38,124 DEBUG pyicloud.hsa2_bridge: Received trusted-device bridge payload: sessionUUID=dd5e042e... nextStep=2 ruiURLKey=None
Verification code requested via: trusted_device
New Apple verification code: 485172
2026-08-14 22:17:48,741 DEBUG pyicloud.hsa2_bridge: Starting trusted-device bridge code verification: sessionUUID=dd5e042e... nextStep=2 txnid=2300_4653917...
2026-08-14 22:17:48,831 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 2 with sessionUUID=dd5e042e...
2026-08-14 22:17:48,831 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/2
2026-08-14 22:17:49,172 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/2 HTTP/1.1" 200 None
2026-08-14 22:17:49,173 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:49,174 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:51,131 DEBUG pyicloud.hsa2_bridge: Acknowledged trusted-device push message id=1387051303 topic=com.apple.idmsauthwidget
2026-08-14 22:17:51,131 DEBUG pyicloud.hsa2_bridge: Decoded trusted-device bridge payload: sessionUUID=dd5e042e... nextStep=4 txnid=2300_3953450... ec=0 has_data=True has_encryptedCode=False
2026-08-14 22:17:51,132 DEBUG pyicloud.hsa2_bridge: Received trusted-device bridge payload: sessionUUID=dd5e042e... nextStep=4 txnid=2300_3953450...
2026-08-14 22:17:51,132 DEBUG pyicloud.hsa2_bridge: Processing trusted-device bridge step 4 payload for sessionUUID=dd5e042e...
2026-08-14 22:17:51,162 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 4 with sessionUUID=dd5e042e...
2026-08-14 22:17:51,162 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/4
2026-08-14 22:17:51,538 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/4 HTTP/1.1" 200 None
2026-08-14 22:17:51,540 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:51,542 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:53,133 DEBUG pyicloud.hsa2_bridge: Acknowledged trusted-device push message id=1870295629 topic=com.apple.idmsauthwidget
2026-08-14 22:17:53,133 DEBUG pyicloud.hsa2_bridge: Decoded trusted-device bridge payload: sessionUUID=dd5e042e... nextStep=4 txnid=2300_3953595... ec=0 has_data=False has_encryptedCode=True
2026-08-14 22:17:53,133 DEBUG pyicloud.hsa2_bridge: Received trusted-device bridge final payload: sessionUUID=dd5e042e... nextStep=4 txnid=2300_3953595...
2026-08-14 22:17:53,133 DEBUG pyicloud.hsa2_bridge: Decrypting trusted-device bridge code for sessionUUID=dd5e042e...
2026-08-14 22:17:53,134 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/code/validate
2026-08-14 22:17:53,656 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/code/validate HTTP/1.1" 409 None
2026-08-14 22:17:53,658 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:53,660 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:53,660 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge completion step 4 with sessionUUID=dd5e042e... verifyStatus=409
2026-08-14 22:17:53,660 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/4
2026-08-14 22:17:54,186 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/4 HTTP/1.1" 200 None
2026-08-14 22:17:54,189 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:54,191 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:54,194 DEBUG pyicloud.base: Code verification successful.
2026-08-14 22:17:54,195 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/2sv/trust
2026-08-14 22:17:54,902 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/2sv/trust HTTP/1.1" 204 0
2026-08-14 22:17:54,904 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:54,906 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:54,907 DEBUG pyicloud.session: POST https://setup.icloud.com/setup/ws/1/accountLogin
2026-08-14 22:17:55,241 DEBUG urllib3.connectionpool: https://setup.icloud.com:443 "POST /setup/ws/1/accountLogin HTTP/1.1" 200 2011
2026-08-14 22:17:55,245 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-14 22:17:55,248 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-14 22:17:55,249 DEBUG pyicloud.base: Session trust successful.
2026-08-14 22:17:55,249 INFO findmy2mqtt.apple: 2FA completed for jamo
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee2MQTT, Conbee III, FB7690, Signal, Alexa (fhem-lazy), Geotracking, LaCrosse JeeLink, LoRaWan (TTN / Chirpstack), Sonos, ESPresence, HomeAssistant via MQTT, Meshtastic

Guybrush

ok, dann bau ich das mal robuster um... danke fürs mithelfen  ;D

Guybrush

#12
ich hab das im dev branch mal geändert und auch das alte auth verfahren rausgenommen. war sowieso blödsinn das mit einzubauen, weils nur uralt accounts betreffen dürfte.

git clone -b dev https://github.com/next81/findmy2mqtt.git

damit sollte der auth dann direkt richtig funktionieren. bitte einmal testen wenn möglich :-) das sessionverzeichnis in /var/lib/findmy2mqtt/sessions/jamo/ vorher leeren

Jamo

Erstmal danke für die super Entwicklungsarbeit. Hammer!
Habe gerade erstmal alle meine Devices eingerichtet.

Kurze Frage, damit ich nichts zerschiesse: Nach dem
"git clone -b dev https://github.com/next81/findmy2mqtt.git" muss ich wieder ein "sudo ./install.sh" machen, korrekt?
Danach dann das "sudo findmy2mqtt --verbose auth jamo"...
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee2MQTT, Conbee III, FB7690, Signal, Alexa (fhem-lazy), Geotracking, LaCrosse JeeLink, LoRaWan (TTN / Chirpstack), Sonos, ESPresence, HomeAssistant via MQTT, Meshtastic