'Externer WebSocket-Transport', 'detail' => 'OCPP_Server erwartet einen echten WebSocket-Server/Parent oder lokalen Adapter und uebernimmt nur Routing und Protokollzustand.', 'warning' => 'WebHook Control wird in diesem Modus nicht als OCPP-CSMS-Endpunkt verwendet.', 'hookPath' => $hookPath ]; } if ($registerHookAvailable) { return [ 'status' => 'WebHook-Spike', 'detail' => 'RegisterHook ist verfuegbar, aber der WebHook-Pfad ist kein vollwertiger OCPP-CSMS-WebSocket-Server mit garantiertem Async-Push.', 'warning' => 'Nur fuer Spike/Diagnose verwenden. Produktiv ist ein echter WebSocket-Server/Parent erforderlich.', 'hookPath' => $hookPath ]; } return [ 'status' => 'Hook manuell/spaeter', 'detail' => 'RegisterHook ist in dieser Symcon-Umgebung nicht als Modul-Methode verfuegbar. WebHook Control muss manuell oder nach Upgrade verbunden werden.', 'warning' => 'Kein produktiver OCPP-WebSocket-Transport aktiv.', 'hookPath' => $hookPath ]; } public static function readRawBody(): string { $data = @file_get_contents('php://input'); return is_string($data) ? $data : ''; } } ?>