Apples Wo Ist? Integration in FHEM

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

Vorheriges Thema - Nächstes Thema

Jamo

Hallo Guybrush, das funktioniert nicht - es kommt unter Linux keine prompt, wo ich den Verifikation Code eingeben kann. Also die Zeile "Apple verification code (Enter = request new code): " kommt nicht. Das ganze stoppt wo ich HIER HIER HIER HIER eingefügt habe. Ein Enter führt dann zum Abbruch:

jamo@inuc:~$ sudo findmy2mqtt --verbose auth jamo
2026-08-15 10:23:58,807 DEBUG pyicloud.session: Using session file /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:23:58,808 INFO pyicloud.session: Session file does not exist
2026-08-15 10:23:58,808 DEBUG pyicloud.base: Authenticating as jamo@emaildomain.com
2026-08-15 10:23:58,808 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/authorize/signin
2026-08-15 10:23:58,811 DEBUG urllib3.connectionpool: Starting new HTTPS connection (1): idmsa.apple.com:443
2026-08-15 10:23:59,527 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/authorize/signin?frame_id=a9db1fc0-9882-11f1-8c33-1c697a6923d0&skVersion=7&iframeid=a9db1fc0-9882-11f1-8c33-1c697a6923d0&client_id=d39ba9916b7251055b22c7f910e2ea796ee65e98b2ddecea8f5dde8d9d1a815d&response_type=code&redirect_uri=https%3A%2F%2Fwww.icloud.com&response_mode=web_message&state=a9db1fc0-9882-11f1-8c33-1c697a6923d0&authVersion=latest HTTP/1.1" 200 None
2026-08-15 10:23:59,531 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:23:59,532 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 10:23:59,533 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/signin/init
2026-08-15 10:23:59,738 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/signin/init HTTP/1.1" 200 None
2026-08-15 10:23:59,741 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:23:59,742 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 10:23:59,781 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/signin/complete
2026-08-15 10:24:00,664 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/signin/complete?isRememberMeEnabled=true HTTP/1.1" 409 None
2026-08-15 10:24:00,665 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:24:00,665 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 10:24:00,666 DEBUG pyicloud.base: 2FA required to complete authentication.
2026-08-15 10:24:00,666 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth
2026-08-15 10:24:00,954 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth HTTP/1.1" 200 None
2026-08-15 10:24:00,955 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:24:00,955 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 10:24:00,956 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/verify/trusteddevice
2026-08-15 10:24:01,531 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/verify/trusteddevice HTTP/1.1" 200 None
2026-08-15 10:24:01,531 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:24:01,532 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 10:24:01,532 DEBUG pyicloud.base: Requested 2FA code via trusted device push
2026-08-15 10:24:01,532 DEBUG pyicloud.session: PUT https://idmsa.apple.com/appleauth/auth/verify/phone
2026-08-15 10:24:02,219 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "PUT /appleauth/auth/verify/phone HTTP/1.1" 200 None
2026-08-15 10:24:02,220 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:24:02,220 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 10:24:02,221 DEBUG pyicloud.base: Requested 2FA code via SMS (phone id 1)
2026-08-15 10:24:02,221 DEBUG pyicloud.session: POST https://setup.icloud.com/setup/ws/1/accountLogin
2026-08-15 10:24:02,222 DEBUG urllib3.connectionpool: Starting new HTTPS connection (1): setup.icloud.com:443
2026-08-15 10:24:02,779 DEBUG urllib3.connectionpool: https://setup.icloud.com:443 "POST /setup/ws/1/accountLogin HTTP/1.1" 200 2011
2026-08-15 10:24:02,780 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:24:02,780 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 10:24:02,780 DEBUG pyicloud.base: 2FA is required
2026-08-15 10:24:02,780 INFO findmy2mqtt.apple: Apple login succeeded for jamo
2026-08-15 10:24:02,780 INFO findmy2mqtt.apple: Two-factor authentication is required.
2026-08-15 10:24:02,782 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-15 10:24:02,782 DEBUG pyicloud.hsa2_bridge: Opening trusted-device websocket: host=websocket.push.apple.com bootstrapPayloadLen=342
2026-08-15 10:24:03,764 DEBUG pyicloud.hsa2_bridge: Trusted-device bridge connected; received push token (80 bytes)
2026-08-15 10:24:03,764 DEBUG pyicloud.hsa2_bridge: Sent trusted-device webFilterMessage for topic=com.apple.idmsauthwidget
2026-08-15 10:24:03,765 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 0 with sessionUUID=daa4fa04... ptknLen=160
2026-08-15 10:24:03,765 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/0
2026-08-15 10:24:04,431 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/0 HTTP/1.1" 200 None
2026-08-15 10:24:04,433 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:24:04,435 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
[b]HIER HIER HIER HIER [/b]
2026-08-15 10:24:34,455 DEBUG pyicloud.hsa2_bridge: Trusted-device websocket transport error during bootstrap.
Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1128, in start
    push_payload = self._wait_for_bridge_push(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1449, in _wait_for_bridge_push
    message = websocket.read_message()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 979, in read_message
    first_byte, second_byte = self._read_exact(2)
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 937, in _read_exact
    chunk = self._socket.recv(max(4096, size - len(self._buffer)))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1296, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1169, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out
2026-08-15 10:24:34,461 DEBUG pyicloud.base: Trusted-device bridge bootstrap failed; falling back to SMS when available.
Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1128, in start
    push_payload = self._wait_for_bridge_push(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1449, in _wait_for_bridge_push
    message = websocket.read_message()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 979, in read_message
    first_byte, second_byte = self._read_exact(2)
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 937, in _read_exact
    chunk = self._socket.recv(max(4096, size - len(self._buffer)))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1296, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1169, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/base.py", line 1002, in request_2fa_code
    self._trusted_device_bridge_state = self._trusted_device_bridge.start(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1181, in start
    raise PyiCloudTrustedDevicePromptException(
pyicloud.exceptions.PyiCloudTrustedDevicePromptException: Failed to bootstrap the trusted-device bridge prompt.
2026-08-15 10:24:34,465 DEBUG pyicloud.session: PUT https://idmsa.apple.com/appleauth/auth/verify/phone
2026-08-15 10:24:34,468 DEBUG urllib3.connectionpool: Resetting dropped connection: idmsa.apple.com
2026-08-15 10:24:35,475 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "PUT /appleauth/auth/verify/phone HTTP/1.1" 200 None
2026-08-15 10:24:35,477 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 10:24:35,480 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
Verification code requested via: sms
Trusted-device prompt failed; falling back to SMS.
Apple verification code from the latest request: 2026-08-15 10:24:35,481 ERROR findmy2mqtt: empty verification code
2026-08-15 10:24:35,481 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 179, in interactive_auth
    raise RuntimeError("empty verification code")
RuntimeError: empty 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

das liegt scheinbar daran, dass du Enter gedrückt hast während der Wartezeit. Richtig? Wenn du das nochmal startest und wartest bis der code kommt, sollte es aber eigentlich gehen. Ein zu frühes Enter habe ich bislang nicht abgefangen. Ich baus mal ein, aber es sollte jetzt eigentlich auch schon gehen, wenn man nichts drückt bis der code kommt

Jamo

Nein, das funktioniert auch nicht.
Asuuserdem kommt die Zeile Apple verification code (Enter = request new code): " nicht.
Schaum mal da wo ich den code 428295 eingebe.

jamo@inuc:~$ sudo findmy2mqtt --verbose auth jamo
2026-08-15 12:01:21,773 DEBUG pyicloud.session: Using session file /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:21,773 INFO pyicloud.session: Session file does not exist
2026-08-15 12:01:21,773 DEBUG pyicloud.base: Authenticating as jamo@emaildomain.com
2026-08-15 12:01:21,773 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/authorize/signin
2026-08-15 12:01:21,776 DEBUG urllib3.connectionpool: Starting new HTTPS connection (1): idmsa.apple.com:443
2026-08-15 12:01:23,069 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/authorize/signin?frame_id=4488e946-9890-11f1-9367-1c697a6923d0&skVersion=7&iframeid=4488e946-9890-11f1-9367-1c697a6923d0&client_id=d39ba9916b7251055b22c7f910e2ea796ee65e98b2ddecea8f5dde8d9d1a815d&response_type=code&redirect_uri=https%3A%2F%2Fwww.icloud.com&response_mode=web_message&state=4488e946-9890-11f1-9367-1c697a6923d0&authVersion=latest HTTP/1.1" 200 None
2026-08-15 12:01:23,073 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:23,074 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:01:23,076 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/signin/init
2026-08-15 12:01:23,290 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/signin/init HTTP/1.1" 200 None
2026-08-15 12:01:23,292 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:23,293 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:01:23,333 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/signin/complete
2026-08-15 12:01:24,542 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/signin/complete?isRememberMeEnabled=true HTTP/1.1" 409 None
2026-08-15 12:01:24,544 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:24,546 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:01:24,546 DEBUG pyicloud.base: 2FA required to complete authentication.
2026-08-15 12:01:24,546 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth
2026-08-15 12:01:24,859 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth HTTP/1.1" 200 None
2026-08-15 12:01:24,861 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:24,861 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:01:24,862 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/verify/trusteddevice
2026-08-15 12:01:25,340 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/verify/trusteddevice HTTP/1.1" 200 None
2026-08-15 12:01:25,342 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:25,344 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:01:25,344 DEBUG pyicloud.base: Requested 2FA code via trusted device push
2026-08-15 12:01:25,344 DEBUG pyicloud.session: PUT https://idmsa.apple.com/appleauth/auth/verify/phone
2026-08-15 12:01:26,036 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "PUT /appleauth/auth/verify/phone HTTP/1.1" 200 None
2026-08-15 12:01:26,039 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:26,040 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:01:26,040 DEBUG pyicloud.base: Requested 2FA code via SMS (phone id 1)
2026-08-15 12:01:26,041 DEBUG pyicloud.session: POST https://setup.icloud.com/setup/ws/1/accountLogin
2026-08-15 12:01:26,043 DEBUG urllib3.connectionpool: Starting new HTTPS connection (1): setup.icloud.com:443
2026-08-15 12:01:26,578 DEBUG urllib3.connectionpool: https://setup.icloud.com:443 "POST /setup/ws/1/accountLogin HTTP/1.1" 200 2012
2026-08-15 12:01:26,582 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:26,584 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:01:26,585 DEBUG pyicloud.base: 2FA is required
2026-08-15 12:01:26,585 INFO findmy2mqtt.apple: Apple login succeeded for jamo
2026-08-15 12:01:26,585 INFO findmy2mqtt.apple: Two-factor authentication is required.
2026-08-15 12:01:26,589 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-15 12:01:26,592 DEBUG pyicloud.hsa2_bridge: Opening trusted-device websocket: host=websocket.push.apple.com bootstrapPayloadLen=340
2026-08-15 12:01:27,530 DEBUG pyicloud.hsa2_bridge: Trusted-device bridge connected; received push token (80 bytes)
2026-08-15 12:01:27,531 DEBUG pyicloud.hsa2_bridge: Sent trusted-device webFilterMessage for topic=com.apple.idmsauthwidget
2026-08-15 12:01:27,531 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 0 with sessionUUID=8908df4e... ptknLen=160
2026-08-15 12:01:27,531 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/0
2026-08-15 12:01:28,226 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/0 HTTP/1.1" 200 None
2026-08-15 12:01:28,228 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:28,230 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
428295

2026-08-15 12:01:58,258 DEBUG pyicloud.hsa2_bridge: Trusted-device websocket transport error during bootstrap.
Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1128, in start
    push_payload = self._wait_for_bridge_push(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1449, in _wait_for_bridge_push
    message = websocket.read_message()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 979, in read_message
    first_byte, second_byte = self._read_exact(2)
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 937, in _read_exact
    chunk = self._socket.recv(max(4096, size - len(self._buffer)))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1296, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1169, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out
2026-08-15 12:01:58,262 DEBUG pyicloud.base: Trusted-device bridge bootstrap failed; falling back to SMS when available.
Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1128, in start
    push_payload = self._wait_for_bridge_push(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1449, in _wait_for_bridge_push
    message = websocket.read_message()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 979, in read_message
    first_byte, second_byte = self._read_exact(2)
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 937, in _read_exact
    chunk = self._socket.recv(max(4096, size - len(self._buffer)))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1296, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1169, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/base.py", line 1002, in request_2fa_code
    self._trusted_device_bridge_state = self._trusted_device_bridge.start(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1181, in start
    raise PyiCloudTrustedDevicePromptException(
pyicloud.exceptions.PyiCloudTrustedDevicePromptException: Failed to bootstrap the trusted-device bridge prompt.
2026-08-15 12:01:58,266 DEBUG pyicloud.session: PUT https://idmsa.apple.com/appleauth/auth/verify/phone
2026-08-15 12:01:58,268 DEBUG urllib3.connectionpool: Resetting dropped connection: idmsa.apple.com
2026-08-15 12:01:59,362 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "PUT /appleauth/auth/verify/phone HTTP/1.1" 200 None
2026-08-15 12:01:59,363 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:59,364 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
Verification code requested via: sms
Trusted-device prompt failed; falling back to SMS.
Apple verification code from the latest request: 2026-08-15 12:01:59,364 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/verify/phone/securitycode
2026-08-15 12:01:59,807 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/verify/phone/securitycode HTTP/1.1" 400 None
2026-08-15 12:01:59,809 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:01:59,811 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:01:59,811 ERROR pyicloud.base: Code verification failed.
2026-08-15 12:01:59,811 WARNING findmy2mqtt.apple: Apple rejected the verification code; requesting a new code (1/3).
2026-08-15 12:01:59,811 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-15 12:01:59,812 DEBUG pyicloud.hsa2_bridge: Opening trusted-device websocket: host=websocket.push.apple.com bootstrapPayloadLen=342
2026-08-15 12:02:00,838 DEBUG pyicloud.hsa2_bridge: Trusted-device bridge connected; received push token (80 bytes)
2026-08-15 12:02:00,839 DEBUG pyicloud.hsa2_bridge: Sent trusted-device webFilterMessage for topic=com.apple.idmsauthwidget
2026-08-15 12:02:00,839 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 0 with sessionUUID=59947e21... ptknLen=160
2026-08-15 12:02:00,839 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/0
2026-08-15 12:02:01,509 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/0 HTTP/1.1" 200 None
2026-08-15 12:02:01,512 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:02:01,514 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:02:31,543 DEBUG pyicloud.hsa2_bridge: Trusted-device websocket transport error during bootstrap.
Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1128, in start
    push_payload = self._wait_for_bridge_push(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1449, in _wait_for_bridge_push
    message = websocket.read_message()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 979, in read_message
    first_byte, second_byte = self._read_exact(2)
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 937, in _read_exact
    chunk = self._socket.recv(max(4096, size - len(self._buffer)))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1296, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1169, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out
2026-08-15 12:02:31,545 DEBUG pyicloud.base: Trusted-device bridge bootstrap failed; falling back to SMS when available.
Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1128, in start
    push_payload = self._wait_for_bridge_push(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1449, in _wait_for_bridge_push
    message = websocket.read_message()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 979, in read_message
    first_byte, second_byte = self._read_exact(2)
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 937, in _read_exact
    chunk = self._socket.recv(max(4096, size - len(self._buffer)))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1296, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1169, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/base.py", line 1002, in request_2fa_code
    self._trusted_device_bridge_state = self._trusted_device_bridge.start(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1181, in start
    raise PyiCloudTrustedDevicePromptException(
pyicloud.exceptions.PyiCloudTrustedDevicePromptException: Failed to bootstrap the trusted-device bridge prompt.
2026-08-15 12:02:31,546 DEBUG pyicloud.session: PUT https://idmsa.apple.com/appleauth/auth/verify/phone
2026-08-15 12:02:31,576 ERROR findmy2mqtt: Request failed to iCloud
2026-08-15 12:02:31,578 ERROR findmy2mqtt: Detailed error
Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1128, in start
    push_payload = self._wait_for_bridge_push(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1449, in _wait_for_bridge_push
    message = websocket.read_message()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 979, in read_message
    first_byte, second_byte = self._read_exact(2)
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 937, in _read_exact
    chunk = self._socket.recv(max(4096, size - len(self._buffer)))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1296, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1169, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/base.py", line 1002, in request_2fa_code
    self._trusted_device_bridge_state = self._trusted_device_bridge.start(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1181, in start
    raise PyiCloudTrustedDevicePromptException(
pyicloud.exceptions.PyiCloudTrustedDevicePromptException: Failed to bootstrap the trusted-device bridge prompt.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/urllib3/connectionpool.py", line 788, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/urllib3/connectionpool.py", line 534, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/urllib3/connection.py", line 571, in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/http/client.py", line 1394, in getresponse
    response.begin()
  File "/usr/lib/python3.11/http/client.py", line 323, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/http/client.py", line 292, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/requests/adapters.py", line 696, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/urllib3/connectionpool.py", line 842, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/urllib3/util/retry.py", line 498, in increment
    raise reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/urllib3/util/util.py", line 38, in reraise
    raise value.with_traceback(tb)
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/urllib3/connectionpool.py", line 788, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/urllib3/connectionpool.py", line 534, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/urllib3/connection.py", line 571, in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/http/client.py", line 1394, in getresponse
    response.begin()
  File "/usr/lib/python3.11/http/client.py", line 323, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/http/client.py", line 292, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/session.py", line 304, in _request
    response: Response = super().request(
                         ^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/requests/sessions.py", line 784, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/requests/adapters.py", line 711, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

The above exception was the direct cause of the following exception:

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 171, in interactive_auth
    if not _request_2fa_code(api, account):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/lib/apple.py", line 110, in _request_2fa_code
    if requestCode():
       ^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/base.py", line 1020, in request_2fa_code
    return self._request_sms_2fa_code(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/base.py", line 915, in _request_sms_2fa_code
    self.session.put(
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/requests/sessions.py", line 726, in put
    return self.request("PUT", url, data=data, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/session.py", line 206, in request
    return self._request(
           ^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/session.py", line 339, in _request
    self._raise_request_exception(err)
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/session.py", line 350, in _raise_request_exception
    raise PyiCloudAPIResponseException("Request failed to iCloud") from err
pyicloud.exceptions.PyiCloudAPIResponseException: Request failed to iCloud
jamo@inuc:~$
jamo@inuc:~$
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 da jetzt Änderungen in den dev branch commitet. mach da mal ein git pull + install und teste nochmal

Jamo

Das hat jetzt geklappt, aber irgendwie bin ich in eine Schleife reingekommen.
Es wurden 3 requests gemacht und ich habe 3 mal den code eingeben müssen.
Siehe Log.
Und die Zeile "Apple verification code (Enter = request new code): ", wo ich gestern den code eingeben musste, habe ich nicht gesehen, aber dafür deine neue Zeile "Requesting a new Apple verification code. This can take up to 30 seconds; wait for the code prompt before pressing Enter."
jamo@inuc:~$ sudo findmy2mqtt --verbose auth jamo
2026-08-15 12:36:34,126 DEBUG pyicloud.session: Using session file /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:34,127 DEBUG pyicloud.base: Checking session token validity
2026-08-15 12:36:34,127 DEBUG pyicloud.base: Invalid authentication token, will log in from scratch.
2026-08-15 12:36:34,127 DEBUG pyicloud.base: Authenticating as jamo@emaildomain.com
2026-08-15 12:36:34,127 DEBUG pyicloud.session: POST https://setup.icloud.com/setup/ws/1/accountLogin
2026-08-15 12:36:34,130 DEBUG urllib3.connectionpool: Starting new HTTPS connection (1): setup.icloud.com:443
2026-08-15 12:36:34,671 DEBUG urllib3.connectionpool: https://setup.icloud.com:443 "POST /setup/ws/1/accountLogin HTTP/1.1" 200 2012
2026-08-15 12:36:34,676 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:34,679 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:36:34,680 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/authorize/signin
2026-08-15 12:36:34,685 DEBUG urllib3.connectionpool: Starting new HTTPS connection (1): idmsa.apple.com:443
2026-08-15 12:36:35,236 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/authorize/signin?frame_id=e25f8afe-9894-11f1-80a6-1c697a6923d0&skVersion=7&iframeid=e25f8afe-9894-11f1-80a6-1c697a6923d0&client_id=d39ba9916b7251055b22c7f910e2ea796ee65e98b2ddecea8f5dde8d9d1a815d&response_type=code&redirect_uri=https%3A%2F%2Fwww.icloud.com&response_mode=web_message&state=e25f8afe-9894-11f1-80a6-1c697a6923d0&authVersion=latest HTTP/1.1" 200 None
2026-08-15 12:36:35,240 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:35,242 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:36:35,244 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/signin/init
2026-08-15 12:36:35,438 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/signin/init HTTP/1.1" 200 None
2026-08-15 12:36:35,441 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:35,443 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:36:35,483 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/signin/complete
2026-08-15 12:36:36,639 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/signin/complete?isRememberMeEnabled=true HTTP/1.1" 409 None
2026-08-15 12:36:36,642 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:36,645 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:36:36,645 DEBUG pyicloud.base: 2FA required to complete authentication.
2026-08-15 12:36:36,645 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth
2026-08-15 12:36:36,928 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth HTTP/1.1" 200 None
2026-08-15 12:36:36,931 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:36,933 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:36:36,936 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/verify/trusteddevice
2026-08-15 12:36:37,434 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/verify/trusteddevice HTTP/1.1" 200 None
2026-08-15 12:36:37,436 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:37,438 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:36:37,439 DEBUG pyicloud.base: Requested 2FA code via trusted device push
2026-08-15 12:36:37,439 DEBUG pyicloud.session: PUT https://idmsa.apple.com/appleauth/auth/verify/phone
2026-08-15 12:36:38,127 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "PUT /appleauth/auth/verify/phone HTTP/1.1" 200 None
2026-08-15 12:36:38,130 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:38,132 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:36:38,133 DEBUG pyicloud.base: Requested 2FA code via SMS (phone id 1)
2026-08-15 12:36:38,134 DEBUG pyicloud.session: POST https://setup.icloud.com/setup/ws/1/accountLogin
2026-08-15 12:36:38,510 DEBUG urllib3.connectionpool: https://setup.icloud.com:443 "POST /setup/ws/1/accountLogin HTTP/1.1" 200 2011
2026-08-15 12:36:38,513 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:38,514 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:36:38,514 DEBUG pyicloud.base: 2FA is required
2026-08-15 12:36:38,514 INFO findmy2mqtt.apple: Apple login succeeded for jamo
2026-08-15 12:36:38,514 INFO findmy2mqtt.apple: Two-factor authentication is required.
Requesting a new Apple verification code. This can take up to 30 seconds; wait for the code prompt before pressing Enter.
2026-08-15 12:36:38,515 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-15 12:36:38,516 DEBUG pyicloud.hsa2_bridge: Opening trusted-device websocket: host=websocket.push.apple.com bootstrapPayloadLen=340
2026-08-15 12:36:39,278 DEBUG pyicloud.hsa2_bridge: Trusted-device bridge connected; received push token (80 bytes)
2026-08-15 12:36:39,278 DEBUG pyicloud.hsa2_bridge: Sent trusted-device webFilterMessage for topic=com.apple.idmsauthwidget
2026-08-15 12:36:39,278 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 0 with sessionUUID=4100d66d... ptknLen=160
2026-08-15 12:36:39,278 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/0
2026-08-15 12:36:39,872 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/0 HTTP/1.1" 200 None
2026-08-15 12:36:39,872 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:36:39,873 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
375160
2026-08-15 12:37:09,902 DEBUG pyicloud.hsa2_bridge: Trusted-device websocket transport error during bootstrap.
Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1128, in start
    push_payload = self._wait_for_bridge_push(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1449, in _wait_for_bridge_push
    message = websocket.read_message()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 979, in read_message
    first_byte, second_byte = self._read_exact(2)
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 937, in _read_exact
    chunk = self._socket.recv(max(4096, size - len(self._buffer)))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1296, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1169, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out
2026-08-15 12:37:09,906 DEBUG pyicloud.base: Trusted-device bridge bootstrap failed; falling back to SMS when available.
Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1128, in start
    push_payload = self._wait_for_bridge_push(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1449, in _wait_for_bridge_push
    message = websocket.read_message()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 979, in read_message
    first_byte, second_byte = self._read_exact(2)
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 937, in _read_exact
    chunk = self._socket.recv(max(4096, size - len(self._buffer)))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1296, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1169, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/base.py", line 1002, in request_2fa_code
    self._trusted_device_bridge_state = self._trusted_device_bridge.start(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/findmy2mqtt/venv/lib/python3.11/site-packages/pyicloud/hsa2_bridge.py", line 1181, in start
    raise PyiCloudTrustedDevicePromptException(
pyicloud.exceptions.PyiCloudTrustedDevicePromptException: Failed to bootstrap the trusted-device bridge prompt.
2026-08-15 12:37:09,909 DEBUG pyicloud.session: PUT https://idmsa.apple.com/appleauth/auth/verify/phone
2026-08-15 12:37:09,912 DEBUG urllib3.connectionpool: Resetting dropped connection: idmsa.apple.com
2026-08-15 12:37:10,987 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "PUT /appleauth/auth/verify/phone HTTP/1.1" 200 None
2026-08-15 12:37:10,989 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:37:10,990 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
Verification code requested via: sms
Trusted-device prompt failed; falling back to SMS.
Apple verification code from the latest request: 366320
2026-08-15 12:37:44,739 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/verify/phone/securitycode
2026-08-15 12:37:44,743 DEBUG urllib3.connectionpool: Resetting dropped connection: idmsa.apple.com
2026-08-15 12:37:45,495 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/verify/phone/securitycode HTTP/1.1" 400 None
2026-08-15 12:37:45,497 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:37:45,498 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:37:45,498 ERROR pyicloud.base: Code verification failed.
2026-08-15 12:37:45,498 WARNING findmy2mqtt.apple: Apple rejected the verification code; requesting a new code (1/3).
Requesting a new Apple verification code. This can take up to 30 seconds; wait for the code prompt before pressing Enter.
2026-08-15 12:37:45,499 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-15 12:37:45,499 DEBUG pyicloud.hsa2_bridge: Opening trusted-device websocket: host=websocket.push.apple.com bootstrapPayloadLen=338
2026-08-15 12:37:46,340 DEBUG pyicloud.hsa2_bridge: Trusted-device bridge connected; received push token (80 bytes)
2026-08-15 12:37:46,341 DEBUG pyicloud.hsa2_bridge: Sent trusted-device webFilterMessage for topic=com.apple.idmsauthwidget
2026-08-15 12:37:46,341 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 0 with sessionUUID=3e4c56e1... ptknLen=160
2026-08-15 12:37:46,341 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/0
2026-08-15 12:37:46,926 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/0 HTTP/1.1" 200 None
2026-08-15 12:37:46,928 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:37:46,930 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:37:51,526 DEBUG pyicloud.hsa2_bridge: Acknowledged trusted-device push message id=3645107103 topic=com.apple.idmsauthwidget
2026-08-15 12:37:51,526 DEBUG pyicloud.hsa2_bridge: Received trusted-device bridge payload: sessionUUID=3e4c56e1... nextStep=2 ruiURLKey=None
Verification code requested via: trusted_device
Apple verification code from the latest request: 223980
2026-08-15 12:38:03,530 DEBUG pyicloud.hsa2_bridge: Starting trusted-device bridge code verification: sessionUUID=3e4c56e1... nextStep=2 txnid=2300_5452528...
2026-08-15 12:38:03,590 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 2 with sessionUUID=3e4c56e1...
2026-08-15 12:38:03,590 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/2
2026-08-15 12:38:03,973 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/2 HTTP/1.1" 200 None
2026-08-15 12:38:03,975 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:38:03,977 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:38:05,653 DEBUG pyicloud.hsa2_bridge: Acknowledged trusted-device push message id=542266544 topic=com.apple.idmsauthwidget
2026-08-15 12:38:05,653 DEBUG pyicloud.hsa2_bridge: Decoded trusted-device bridge payload: sessionUUID=3e4c56e1... nextStep=4 txnid=2300_5169397... ec=0 has_data=True has_encryptedCode=False
2026-08-15 12:38:05,653 DEBUG pyicloud.hsa2_bridge: Received trusted-device bridge payload: sessionUUID=3e4c56e1... nextStep=4 txnid=2300_5169397...
2026-08-15 12:38:05,653 DEBUG pyicloud.hsa2_bridge: Processing trusted-device bridge step 4 payload for sessionUUID=3e4c56e1...
2026-08-15 12:38:05,709 DEBUG pyicloud.hsa2_bridge: Trusted-device bridge prover rejected the step-4 confirmation for sessionUUID=3e4c56e1...
2026-08-15 12:38:05,710 ERROR pyicloud.base: Code verification failed.
2026-08-15 12:38:05,710 WARNING findmy2mqtt.apple: Apple rejected the verification code; requesting a new code (2/3).
Requesting a new Apple verification code. This can take up to 30 seconds; wait for the code prompt before pressing Enter.
2026-08-15 12:38:05,710 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-15 12:38:05,710 DEBUG pyicloud.hsa2_bridge: Opening trusted-device websocket: host=websocket.push.apple.com bootstrapPayloadLen=342
2026-08-15 12:38:06,373 DEBUG pyicloud.hsa2_bridge: Trusted-device bridge connected; received push token (80 bytes)
2026-08-15 12:38:06,373 DEBUG pyicloud.hsa2_bridge: Sent trusted-device webFilterMessage for topic=com.apple.idmsauthwidget
2026-08-15 12:38:06,374 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 0 with sessionUUID=a7a6c0e1... ptknLen=160
2026-08-15 12:38:06,374 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/0
2026-08-15 12:38:06,985 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/0 HTTP/1.1" 200 None
2026-08-15 12:38:06,987 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:38:06,989 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:38:27,549 DEBUG pyicloud.hsa2_bridge: Acknowledged trusted-device push message id=2421707769 topic=com.apple.idmsauthwidget
2026-08-15 12:38:27,549 DEBUG pyicloud.hsa2_bridge: Received trusted-device bridge payload: sessionUUID=a7a6c0e1... nextStep=2 ruiURLKey=None
Verification code requested via: trusted_device
Apple verification code from the latest request: 771335
2026-08-15 12:38:34,100 DEBUG pyicloud.hsa2_bridge: Starting trusted-device bridge code verification: sessionUUID=a7a6c0e1... nextStep=2 txnid=2300_5453585...
2026-08-15 12:38:34,158 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 2 with sessionUUID=a7a6c0e1...
2026-08-15 12:38:34,158 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/2
2026-08-15 12:38:34,505 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/2 HTTP/1.1" 200 None
2026-08-15 12:38:34,507 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:38:34,509 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:38:35,584 DEBUG pyicloud.hsa2_bridge: Acknowledged trusted-device push message id=327485396 topic=com.apple.idmsauthwidget
2026-08-15 12:38:35,585 DEBUG pyicloud.hsa2_bridge: Decoded trusted-device bridge payload: sessionUUID=a7a6c0e1... nextStep=4 txnid=2300_5359112... ec=0 has_data=True has_encryptedCode=False
2026-08-15 12:38:35,585 DEBUG pyicloud.hsa2_bridge: Received trusted-device bridge payload: sessionUUID=a7a6c0e1... nextStep=4 txnid=2300_5359112...
2026-08-15 12:38:35,585 DEBUG pyicloud.hsa2_bridge: Processing trusted-device bridge step 4 payload for sessionUUID=a7a6c0e1...
2026-08-15 12:38:35,615 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge step 4 with sessionUUID=a7a6c0e1...
2026-08-15 12:38:35,615 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/4
2026-08-15 12:38:36,016 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/4 HTTP/1.1" 200 None
2026-08-15 12:38:36,018 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:38:36,020 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:38:37,529 DEBUG pyicloud.hsa2_bridge: Acknowledged trusted-device push message id=3981355170 topic=com.apple.idmsauthwidget
2026-08-15 12:38:37,529 DEBUG pyicloud.hsa2_bridge: Decoded trusted-device bridge payload: sessionUUID=a7a6c0e1... nextStep=4 txnid=2300_6154945... ec=0 has_data=False has_encryptedCode=True
2026-08-15 12:38:37,530 DEBUG pyicloud.hsa2_bridge: Received trusted-device bridge final payload: sessionUUID=a7a6c0e1... nextStep=4 txnid=2300_6154945...
2026-08-15 12:38:37,530 DEBUG pyicloud.hsa2_bridge: Decrypting trusted-device bridge code for sessionUUID=a7a6c0e1...
2026-08-15 12:38:37,530 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/code/validate
2026-08-15 12:38:38,133 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/code/validate HTTP/1.1" 409 None
2026-08-15 12:38:38,135 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:38:38,136 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:38:38,136 DEBUG pyicloud.hsa2_bridge: Posting trusted-device bridge completion step 4 with sessionUUID=a7a6c0e1... verifyStatus=409
2026-08-15 12:38:38,136 DEBUG pyicloud.session: POST https://idmsa.apple.com/appleauth/auth/bridge/step/4
2026-08-15 12:38:38,674 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "POST /appleauth/auth/bridge/step/4 HTTP/1.1" 200 None
2026-08-15 12:38:38,675 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:38:38,675 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:38:38,676 DEBUG pyicloud.base: Code verification successful.
2026-08-15 12:38:38,676 DEBUG pyicloud.session: GET https://idmsa.apple.com/appleauth/auth/2sv/trust
2026-08-15 12:38:39,056 DEBUG urllib3.connectionpool: https://idmsa.apple.com:443 "GET /appleauth/auth/2sv/trust HTTP/1.1" 204 0
2026-08-15 12:38:39,058 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:38:39,061 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:38:39,061 DEBUG pyicloud.session: POST https://setup.icloud.com/setup/ws/1/accountLogin
2026-08-15 12:38:39,064 DEBUG urllib3.connectionpool: Resetting dropped connection: setup.icloud.com
2026-08-15 12:38:39,614 DEBUG urllib3.connectionpool: https://setup.icloud.com:443 "POST /setup/ws/1/accountLogin HTTP/1.1" 200 2015
2026-08-15 12:38:39,651 DEBUG pyicloud.session: Saved session data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.session
2026-08-15 12:38:39,654 DEBUG pyicloud.session: Saved cookies data to file: /var/lib/findmy2mqtt/sessions/jamo/jamoemaildomaincom.cookiejar
2026-08-15 12:38:39,654 DEBUG pyicloud.base: Session trust successful.
2026-08-15 12:38:39,655 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

das sieht richtig aus. die exceptions siehst du ja nur wegen --verbose. mach das mal ohne. dann sollte alles gut sein

Jamo

DANKE, Super! Kommen die AirTags auch noch irgendwann?

Danke vielmals und noch ein schönes Wochenende!
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

Jamo

Hier übrigens noch ein Codeschnipsel, mit dem man sich aus latitude/longitude die Adresse reverse e extrahieren kann. Ist damals für die Blitzer eingestellt worden
https://forum.fhem.de/index.php/topic,90014.msg884277.html#msg884277

Die sub getBlitzerOrte($$$$){ } setzt im device $Blitzerdev die Adresse, also Stadt/Strasse/etc
Dazu braucht man noch die sub getBlitzerOrteCallback, auch weiter unten im Codebeispiel vom link.

Also beides in die 99_MyUtils.pm kopieren, und dann getBlitzerOrte z.B. mit getBlitzerOrte(47.11234,12.6789,"1","devicename") aufrufen. Nach Aufruf der sub steht dann im device "devicename" die Adresse.


Auch noch eine vereinfachte Variante zur Distanzberechnung:
##########################################################
# Calculate distance between two geocoordinates
##########################################################
sub calcDistkm {
  my($latNew,$lonNew,$latOld,$lonOld) = @_;
  #Entfernung zur Home-Koordinate (Luftlinie)
  #Berechnung nach: https://www.kompf.de gps distcalc.html
  # Verbesserte Methode
  #my $lat = ($latNew + $latOld) / 2 * 0.01745;
  #my $dx  = 111.3 * cos($lat) * abs($lonNew - $lonOld);
  #my $dy  = 111.3 * abs($latNew - $latOld);
  if ($latNew && $lonNew && $latOld && $lonOld) {
    #Einfache Variante
    my $dx =  71.5 * abs($lonNew - $lonOld);
    my $dy = 111.3 * abs($latNew - $latOld);

    my $distance = sprintf("%.2f",sqrt($dx * $dx + $dy * $dy));
    return $distance;
  } else {return -9999};
}
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

Airtags sind leider ein richtiges Problem, weil Apple die ganz anders behandelt. PyiCloud unterstützt das leider nicht. Es gibt noch andere Libs, die beides können, aber dort ist der Funktionsumfang total eingeschränkt. Insbesondere kann man da nichts senden, also kein locate etc ausführen. Ich will auch nicht zwei getrennte Verbindungen aufbauen. Ich muss das erstmal untersuchen, welche Option es da gibt, das zu integrieren. Ich hab ja bewusst auf PyiCloud zurückgegriffen, weil ich den Overhead gering halten will. Es ging mir ja vor allem darum eine einfach (!) einzurichtende Verbindung herzustellen. Da gibts einfach nichts, was irgendwie brauchbar erscheint. Deswegen ja die Idee eine echte MQTT Bridge davor zu setzen nebst installer etc, damit das jeder ganz einfach einrichten kann. Ich hab das bei mir nun schon in FTUI umgesetzt, dass ich mein Handy direkt darüber orten kann ohne erst ein anderes apple gerät holen zu müssen. Das war die Hauptintention, aber Airtags wären in der Tat nice...

Guybrush

Zitat von: Jamo am 15 August 2026, 14:02:34Hier übrigens noch ein Codeschnipsel, mit dem man sich aus latitude/longitude die Adresse reverse e extrahieren kann. Ist damals für die Blitzer eingestellt worden
https://forum.fhem.de/index.php/topic,90014.msg884277.html#msg884277

Die sub getBlitzerOrte($$$$){ } setzt im device $Blitzerdev die Adresse, also Stadt/Strasse/etc
Dazu braucht man noch die sub getBlitzerOrteCallback, auch weiter unten im Codebeispiel vom link.
Das ist auch gut, damit könnte man theoretisch sogar recht easy ein einfaches DOIF erstellen, was erkennt, wenn jemand nach hause kommt. Man müsste ja nur die Distanz entsprechend validieren. Für die Einbindung einer Karte müßten lon/lat ja schon genügen.

CQuadrat

#25
Ich prüfe, ob jemand zuhause ist, über die Entfernung. Dazu folgendes Codeschnipsel für die 99_myUtils:
sub myDistance ($$) {
  my ($lat,$lon) = @_;
  $lat = $lat*pi/180;
  $lon = $lon*pi/180;
  my $lat_B29 = AttrVal("global","latitude",0)*pi/180 ;
  my $lon_B29 = AttrVal("global","longitude",0)*pi/180;
  my $earthRadius = 6371.0;

  my $distance = great_circle_distance($lon, pi/2 - $lat, $lon_B29, pi/2 - $lat_B29, $earthRadius);
  return $distance;
}
Im global-Device müssen dann natürlich die Koordinaten von zuhause gesetzt sein.

Und dann kann man das über ein Userreading im Apple-Device einfach berechnen:
attr MQTT2_findmy2mqttiPhone userReadings distance:state_longitude.* { my $distance = myDistance(ReadingsNum($name,"state_latitude",0),ReadingsNum($name,"state_longitude",0)) }

Mit weiteren Devices lässt sich dann einfach über die ermittelte Entfernung auf An- und Abwesenheit prüfen.


Nachtrag:
In der 99_myUtils benötigt man dann ggf. noch ein paar mathematische Perl-Pakete:
use Math::Trig ':pi';
use Math::Trig 'great_circle_distance';
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

Guybrush

#26
dann kann man das aber auch direkt komplett umsetzen @CQuadrat ;D

defmod DOIF.FindMy.AndreasiPhone.Distance DOIF ([FindMy.AndreasiPhone:distance:d] >= 0){\
my $new = ReadingsNum("$DEVICE","distance",0);;\
my $d1 = ReadingsNum("$SELF","distance_1",0);;\
my $d2 = ReadingsNum("$SELF","distance_2",0);;\
my $position = "away";;\
\
if ($new < 0.05) { \
$position = "home";;\
} elsif ($new <= 0.25) { \
$position = "nearby";;\
} elsif ($new < $d1 && $d1 < $d2) {\
$position = "home comming";;\
} \
\
fhem("setreading $SELF distance_3 $d2");;\
fhem("setreading $SELF distance_2 $d1");;\
fhem("setreading $SELF distance_1 $new");;\
fhem("setreading $SELF position $position");;\
}
attr DOIF.FindMy.AndreasiPhone.Distance do always