{ "id": "ShariXKnowledgeTeltonikaGpsTrackerBPMN", "page": "sharixopen:knowledge:scenarios:teltonika_gps_tracker", "area": "open", "type": "procedure", "title": "Приёмник Teltonika open_teltonika_gps_tracker", "status": "review", "schema_version": 1, "relations": { "related_to": [ "ShariXKnowledgeBasicBotBPMN", "ShariXKnowledgeReportHandlerBPMN", "ShariXKnowledgeOpenKnowledgeModulesHandlers", "ShariXKnowledgeScenarios" ], "depends_on": [ "ShariXKnowledgeOpenKnowledgeModulesHandlers" ], "verified_by": [ "ShariXKnowledgeVerification" ] }, "extensions": { "taxonomy": { "domain": "integrations", "lifecycle": "implemented", "component": "handlers_examples, handlers_backend", "parents": [ "ShariXKnowledgeScenarios" ], "terms": [ "audience_developer", "audience_integrator", "audience_operator", "audience_support", "audience_ai", "product_sharix_open", "material_scenario", "topic_operations_diagnostics", "topic_handlers_blockly", "topic_handlers_runtime", "teltonika", "udp", "avl", "gpx", "device_ack", "first_party_handler", "xmpp", "bpmn", "blockly", "generated_python" ] }, "diagram": { "format": "bpmn", "executable": false }, "source_evidence": [ { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker.py", "sha256": "176dc8e04c8370481da568124f7e5a27a5418592a3947f718986b042b4a5e083" }, { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "generated_handler_blocks/open_teltonika_gps_tracker.json", "sha256": "a44f034cf10fe311ba6775c8c3579bd14448dc95c9c8ef08fa699c5c2b13ef2d" }, { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "catalog.py", "sha256": "e3dcb72b7e620e2837adacd7af053f35b04cdff475789496d9c114e17d57dfde" }, { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "first_party_operations/open_teltonika_gps_tracker.py", "sha256": "d8c766ceecb6eabdd24bccc0d0f6e9ddcab1fc3b8dab7432b1cf6a0dbda27e86" }, { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "config.py", "sha256": "7b23db9ed283d3bbc3cf2cfbd5d41c629f6be507c3ca38c611572d08a75743a4" }, { "repository": "sharix-open-handlers-backend", "commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "first_party_blockly_codegen.py", "sha256": "7f4dc6607ad62f3150c58de6341b758ebe97f81bd936c9ec033b7d86fed44640" }, { "repository": "sharix-open-handlers-backend", "commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/first_party_handler_runtime.py", "sha256": "fb5ee98561b029de9291e73c2a08205cc9fc2b7b239abffe4a4bb24f56093bdb" }, { "repository": "sharix-open-handlers-backend", "commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "main.py", "sha256": "66b7df94fedbec931ed4cb2d4e1afd9cf0386e14ed0932e22b15eb301cd792d7" }, { "repository": "sharix-open-handlers-backend", "commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "runtime_provider.py", "sha256": "c311d3b0721d18d8eccc9cd7fba155108bf285df3002507ee915ee73b797a2f4" }, { "repository": "sharix-open-handlers-backend", "commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/JabberBot.py", "sha256": "7fbd4d1f41bc867109b73dbb632efcfae920269a1aaf6da0e577cc70838820f1" }, { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "teltonika_config.py", "sha256": "37b1abca5f520f89812e0c0f02c0386511a69553ace5e9cf29243d0ad3d7fb0d" }, { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/catcher.py", "sha256": "f99e418651e38d15bf198e5cd8fb547d97fc084a7bd330e88f9bb9a8e0cdf6dd" }, { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/decoder.py", "sha256": "e5420416a997acfabf29ae0942d8fa95b52890cec71d036f39d9164c210942d3" }, { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/gpx_recorder.py", "sha256": "fa7cbabbfe354fade58e2d9b16195df911755dc49489c405fad389a38abb1b38" }, { "repository": "sharix-open-handlers-examples", "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/config_importer.py", "sha256": "3b2ca95e371bdf92dad65a7a9bd4befd0682f0c8ea03212c94b1c2678376c5df" } ], "handler_process": { "handler_id": "open_teltonika_gps_tracker", "source_kind": "git_builtin", "canonical_python_verified": true, "reviewed_on": "2026-10-29", "generator": "tools/generate_handler_bpmn.py", "generator_sha256": "488101a6be2f8f43d63ce966760be9f1c3664c88d88bed17ce0d6bfee9563cae", "models": { "startup": "7cb80dec5a0ffd4830c44262261653ebdaec2976918ed1f7e5fa605eddab8264", "packet": "7ef78abb7b1a1caefcc38a12a8232a7f762363095d6763919ae7f3f906962df3" }, "canonical_renderer": "handlers_backend/first_party_blockly_codegen.py", "typed_operations": [ "teltonika_udp_receiver" ] }, "classification": { "schema": "sharix.knowledge.classification.v1", "products": [ "sharix_open" ], "audiences": [ "developer", "integrator", "operator", "support", "ai" ], "material": "scenario", "topics": [ "operations/diagnostics", "handlers/blockly", "handlers/runtime" ], "tag_terms": [ "audience_developer", "audience_integrator", "audience_operator", "audience_support", "audience_ai", "product_sharix_open", "material_scenario", "topic_operations_diagnostics", "topic_handlers_blockly", "topic_handlers_runtime", "teltonika", "udp", "avl", "gpx", "device_ack", "first_party_handler", "xmpp", "bpmn", "blockly", "generated_python" ], "registry_document": "ShariXKnowledgeClassification", "state_meaning": "implemented — описана проверенная реализация исходников; серверный runtime отдельно; review — состояние текста" }, "editorial_review": { "date": "2026-10-31", "scope": "Конкретизация действий, условий, результатов и диагностики; перечисления; исходные BPMN сохранены", "current_source_records_verified": 15, "original_source_evidence_recheck": "После git fetch все исходные commits/SHA-256 совпали; дополнительные функциональные источники включены в source_evidence", "canonical_regeneration": { "kind": "first_party", "compared_python_paths": [ "handlers/open_teltonika_gps_tracker.py" ], "generator_sources_verified": 11, "handler_executed": false }, "runtime_checked": false } }, "content_sha256": "219a0431e5fc529909c786fb6d4c09fae6263f12d7c8b0335642c3d9a0c380ab", "schema": 1 } ====== Приёмник Teltonika open_teltonika_gps_tracker ====== ~~NOCACHE~~ **Назначение:** [[sharixopen:knowledge:classification:materials#scenarij_processa|Сценарий процесса]]. **Продукт:** [[sharixopen:knowledge:classification:products#sharix_open|ShariX Open]]. **Для кого:** [[sharixopen:knowledge:classification:audiences#razrabotchik|Разработчик]] · [[sharixopen:knowledge:classification:audiences#integrator|Интегратор]] · [[sharixopen:knowledge:classification:audiences#operator_razvjortyvanija|Оператор развёртывания]] · [[sharixopen:knowledge:classification:audiences#podderzhka|Поддержка]] · [[sharixopen:knowledge:classification:audiences#nejroset|Нейросеть]]. **Темы:** [[sharixopen:knowledge:classification:topics#diagnostika|Эксплуатация → Диагностика]] · [[sharixopen:knowledge:classification:topics#blockly|Обработчики → Blockly]] · [[sharixopen:knowledge:classification:topics#runtime|Обработчики → Runtime]]. **Область:** ShariX Open. **Обработчик:** ''open_teltonika_gps_tracker'', системный first-party handler без типа/рабочего статуса Ticket. 31.10.2026 исходники повторно получены из Git. First-party Python совпал с каноническим renderer; отдельно проверены операция, catcher, decoder, recorder и общий launcher. Сам обработчик и его внешние действия не запускались. Выбранная версия, настройки и доступность подключений конкретной установки проверяются отдельно. ===== Назначение и канонический контракт ===== Обработчик запускает пример UDP-приёмника AVL-пакетов: * получает датаграмму и разбирает её; * пишет читаемую диагностику; * при включённых режимах записывает GPX и отдельные AVL-файлы; * отправляет ответ устройству. Координаты не записываются этим путём в Orders/Provider/Ticket; интеграция с картой и смена статуса заказа здесь не выполняются. В Blockly зафиксирована typed operation ''teltonika_udp_receiver''. Сгенерированный Python вызывает binding; runtime сверяет точную program tuple с каталогом и загружает ''first_party_operations/open_teltonika_gps_tracker.py''. Бизнес-детали находятся также в catcher/decoder/GPX recorder, поэтому они включены в источники сценария. Совпадение generated wrapper не заменяет анализа вложенной operation. BPMN описательные, isExecutable=false; исполняется Python из Blockly, а не JSON/XML Wiki. Сценарий описывает текущий пример, не обещает поддержку всех вариантов протокола Teltonika. ===== Запуск и UDP loop (BPMN) ===== {"notes": ["BPMN isExecutable=false; typed operation teltonika_udp_receiver из Blockly, Python сверён канонически.", "Штатный binding requires_xmpp=True: UDP запускается после XMPP connection preflight.", "GPX и отдельные AVL файлы по умолчанию выключены в этом binding; интерактивный catcher main не вызывается.", "ACK из raw byte slices не доказывает успешное сохранение всех точек."], "sources": [{"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker.py", "repository": "sharix-open-handlers-examples", "sha256": "176dc8e04c8370481da568124f7e5a27a5418592a3947f718986b042b4a5e083"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "generated_handler_blocks/open_teltonika_gps_tracker.json", "repository": "sharix-open-handlers-examples", "sha256": "a44f034cf10fe311ba6775c8c3579bd14448dc95c9c8ef08fa699c5c2b13ef2d"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "catalog.py", "repository": "sharix-open-handlers-examples", "sha256": "e3dcb72b7e620e2837adacd7af053f35b04cdff475789496d9c114e17d57dfde"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "first_party_operations/open_teltonika_gps_tracker.py", "repository": "sharix-open-handlers-examples", "sha256": "d8c766ceecb6eabdd24bccc0d0f6e9ddcab1fc3b8dab7432b1cf6a0dbda27e86"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "config.py", "repository": "sharix-open-handlers-examples", "sha256": "7b23db9ed283d3bbc3cf2cfbd5d41c629f6be507c3ca38c611572d08a75743a4"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "first_party_blockly_codegen.py", "repository": "sharix-open-handlers-backend", "sha256": "7f4dc6607ad62f3150c58de6341b758ebe97f81bd936c9ec033b7d86fed44640"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/first_party_handler_runtime.py", "repository": "sharix-open-handlers-backend", "sha256": "fb5ee98561b029de9291e73c2a08205cc9fc2b7b239abffe4a4bb24f56093bdb"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "main.py", "repository": "sharix-open-handlers-backend", "sha256": "66b7df94fedbec931ed4cb2d4e1afd9cf0386e14ed0932e22b15eb301cd792d7"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "runtime_provider.py", "repository": "sharix-open-handlers-backend", "sha256": "c311d3b0721d18d8eccc9cd7fba155108bf285df3002507ee915ee73b797a2f4"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/JabberBot.py", "repository": "sharix-open-handlers-backend", "sha256": "7fbd4d1f41bc867109b73dbb632efcfae920269a1aaf6da0e577cc70838820f1"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "teltonika_config.py", "repository": "sharix-open-handlers-examples", "sha256": "37b1abca5f520f89812e0c0f02c0386511a69553ace5e9cf29243d0ad3d7fb0d"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/catcher.py", "repository": "sharix-open-handlers-examples", "sha256": "f99e418651e38d15bf198e5cd8fb547d97fc084a7bd330e88f9bb9a8e0cdf6dd"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/decoder.py", "repository": "sharix-open-handlers-examples", "sha256": "e5420416a997acfabf29ae0942d8fa95b52890cec71d036f39d9164c210942d3"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/gpx_recorder.py", "repository": "sharix-open-handlers-examples", "sha256": "fa7cbabbfe354fade58e2d9b16195df911755dc49489c405fad389a38abb1b38"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/config_importer.py", "repository": "sharix-open-handlers-examples", "sha256": "3b2ca95e371bdf92dad65a7a9bd4befd0682f0c8ea03212c94b1c2678376c5df"}]} udp_start udp_xmpp udp_socket udp_stop udp_close udp_receive udp_result udp_repeat udp_error udp_Flow_0 udp_Flow_0 udp_Flow_1 udp_Flow_1 udp_Flow_2 udp_Flow_2 udp_Flow_3 udp_Flow_4 udp_Flow_3 udp_Flow_4 udp_Flow_5 udp_Flow_5 udp_Flow_6 udp_Flow_7 udp_Flow_6 udp_Flow_7 Несмотря на UDP-полезную работу, текущий binding имеет **requires_xmpp=true** и создаёт JabberBot. Общий launcher сначала подключает XMPP, регистрирует callback/supervisor и ждёт connection preflight. При неуспехе UDP loop не начинается. Успешный XMPP connect, напротив, ещё не доказывает доступность UDP endpoint устройству. UDP loop после XMPP bootstrap: - Создать IPv4 UDP socket с SO_REUSEADDR. - Установить timeout=1.0 секунды и bind на TELTONIKA_HOSTNAME/TELTONIKA_PORT. - Пока exit_event не установлен — вызывать receive_and_print. - При TimeoutError/socket.timeout продолжать цикл. - При другом исключении выйти через finally с закрытием socket; далее действует общая политика launcher. При штатной остановке exit_event проверяется между вызовами; затем закрываются socket и XMPP. В operation нет отдельного TCP listener или IMEI handshake. Закомментированный TCP-код в catcher не является активным путём запуска. ===== Одна датаграмма: разбор, файлы и ACK (BPMN) ===== {"notes": ["BPMN isExecutable=false; typed operation teltonika_udp_receiver из Blockly, Python сверён канонически.", "Штатный binding requires_xmpp=True: UDP запускается после XMPP connection preflight.", "GPX и отдельные AVL файлы по умолчанию выключены в этом binding; интерактивный catcher main не вызывается.", "ACK из raw byte slices не доказывает успешное сохранение всех точек."], "sources": [{"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker.py", "repository": "sharix-open-handlers-examples", "sha256": "176dc8e04c8370481da568124f7e5a27a5418592a3947f718986b042b4a5e083"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "generated_handler_blocks/open_teltonika_gps_tracker.json", "repository": "sharix-open-handlers-examples", "sha256": "a44f034cf10fe311ba6775c8c3579bd14448dc95c9c8ef08fa699c5c2b13ef2d"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "catalog.py", "repository": "sharix-open-handlers-examples", "sha256": "e3dcb72b7e620e2837adacd7af053f35b04cdff475789496d9c114e17d57dfde"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "first_party_operations/open_teltonika_gps_tracker.py", "repository": "sharix-open-handlers-examples", "sha256": "d8c766ceecb6eabdd24bccc0d0f6e9ddcab1fc3b8dab7432b1cf6a0dbda27e86"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "config.py", "repository": "sharix-open-handlers-examples", "sha256": "7b23db9ed283d3bbc3cf2cfbd5d41c629f6be507c3ca38c611572d08a75743a4"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "first_party_blockly_codegen.py", "repository": "sharix-open-handlers-backend", "sha256": "7f4dc6607ad62f3150c58de6341b758ebe97f81bd936c9ec033b7d86fed44640"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/first_party_handler_runtime.py", "repository": "sharix-open-handlers-backend", "sha256": "fb5ee98561b029de9291e73c2a08205cc9fc2b7b239abffe4a4bb24f56093bdb"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "main.py", "repository": "sharix-open-handlers-backend", "sha256": "66b7df94fedbec931ed4cb2d4e1afd9cf0386e14ed0932e22b15eb301cd792d7"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "runtime_provider.py", "repository": "sharix-open-handlers-backend", "sha256": "c311d3b0721d18d8eccc9cd7fba155108bf285df3002507ee915ee73b797a2f4"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/JabberBot.py", "repository": "sharix-open-handlers-backend", "sha256": "7fbd4d1f41bc867109b73dbb632efcfae920269a1aaf6da0e577cc70838820f1"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "teltonika_config.py", "repository": "sharix-open-handlers-examples", "sha256": "37b1abca5f520f89812e0c0f02c0386511a69553ace5e9cf29243d0ad3d7fb0d"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/catcher.py", "repository": "sharix-open-handlers-examples", "sha256": "f99e418651e38d15bf198e5cd8fb547d97fc084a7bd330e88f9bb9a8e0cdf6dd"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/decoder.py", "repository": "sharix-open-handlers-examples", "sha256": "e5420416a997acfabf29ae0942d8fa95b52890cec71d036f39d9164c210942d3"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/gpx_recorder.py", "repository": "sharix-open-handlers-examples", "sha256": "fa7cbabbfe354fade58e2d9b16195df911755dc49489c405fad389a38abb1b38"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_teltonika_gps_tracker_dir/config_importer.py", "repository": "sharix-open-handlers-examples", "sha256": "3b2ca95e371bdf92dad65a7a9bd4befd0682f0c8ea03212c94b1c2678376c5df"}]} packet_start packet_parse packet_parsed packet_log packet_record packet_gpx packet_ack packet_end packet_broken packet_error packet_abort packet_gpx_error packet_ack_error packet_Flow_0 packet_Flow_0 packet_Flow_1 packet_Flow_1 packet_Flow_2 packet_Flow_8 packet_Flow_2 packet_Flow_3 packet_Flow_3 packet_Flow_4 packet_Flow_6 packet_Flow_4 packet_Flow_5 packet_Flow_5 packet_Flow_6 packet_Flow_9 packet_Flow_7 packet_Flow_7 packet_Flow_8 packet_Flow_9 packet_Flow_10 packet_Flow_10 packet_Flow_11 packet_Flow_12 packet_Flow_11 packet_Flow_12 Обработка одной датаграммы: - Получить до 1024 байт через recvfrom и адрес отправителя. - Передать raw bytes и addr decoder. - Проверить заявленную/фактическую длину, извлечь заголовки, IMEI, codec, records и IO. - При успешной структуре сформировать читаемый logging-output. - Отдельный AVL-файл писать только при write_logs=true. После parse: - Если есть структура и GPX recorder включён — добавить точки с координатами, высотой и timestamp по IMEI. - Пропустить точку (0,0). - Сформировать ACK через answer_to_device. - Вызвать sendto на адрес источника датаграммы. ACK формируется и после parse_data=None, если до него не было исключения. ==== ACK не равен сохранённой телеметрии ==== ACK берёт поля непосредственно из raw bytes: * UDP packet id — data[2:4]; * AVL packet id — data[5:6]; * count — data[24:25]. Count не вычисляется по фактически разобранным или записанным GPX-точкам. Получение ACK не подтверждает сохранённую телеметрию или обновление бизнес-объекта. Поэтому ACK не доказывает корректность всех координат, запись файла или обновление бизнес-объекта. Исключение декодирования, файловой операции или sendto — другой исход: оно не обрабатывается как обычный socket timeout и может завершить текущий запуск с последующим restart. Разбор не содержит полноценного fail-closed валидатора всех возможных форматов/codec; IMEI извлекается как данные, а не сопоставляется здесь с разрешённым устройством в БД. Лимит recvfrom — 1024 байта. Для диагностики длинных/повреждённых пакетов учитывайте этот предел и реальный формат входа, а не только факт получения UDP. Сценарий не объявляет универсальную совместимость по одному удачно разобранному пакету. ===== Что действительно включено при штатном запуске ===== В штатном first-party запуске: * GPX_Recorder создаётся с is_recording=false; * AVL_DATA — с write_logs=false и show_broken_data=false; * binding вызывает receive_and_print напрямую; * catcher.main, control_thread и переключатели записи этим путём не вызываются. Команды stdin g/l/b/q самостоятельного примера не являются интерфейсом управления handler через XMPP или launcher. Обычный читаемый logging при удачном parse выполняется, но отдельные AVL-файлы и GPX в этом binding автоматически не включаются. Директории могут создаваться при импорте recorder/decoder ещё до открытия socket; наличие каталога не доказывает активную запись. Если запись включена другим разрешённым способом, GPX хранится по IMEI и времени первой точки, AVL logs — по IMEI в своих output dirs. Это файлы примера, а не проекция в БД сервиса. ===== Настройки и диагностика ===== ^ Назначение ^ Настройка / значение источника ^ | UDP host | TELTONIKA_HOSTNAME; default 0.0.0.0 | | UDP port | TELTONIKA_PORT; default 350, допустимо 1..65535 | | Часовой пояс timestamp | TELTONIKA_TIMEZONE; default UTC, проверяется ZoneInfo | | Каталог отдельного AVL-log | TELTONIKA_AVL_OUTPUT_DIR | | Каталог GPX | TELTONIKA_GPX_OUTPUT_DIR | | Период проверки остановки socket loop | Socket timeout 1.0 секунды, в operation | | Подключение и общие restart limits | Штатные настройки общего handler runtime | Относительные output paths разрешаются от корня проекта; реальные значения и managed permissions определяет установка. Не следует считать default внутри каталога примера доказательством фактического пути production. Проверяйте штатную env/permission-подготовку, не создавая параллельный неуправляемый конфиг для handler. Порядок диагностики: - Сверить выбранные Python version и binding. - Проверить XMPP preflight: без него UDP loop не начинается. - Проверить import и права output dirs, затем bind UDP. - Проверить приход датаграммы и реальный parse result. - Отдельно проверить флаги записи, созданные данные и ACK. XMPP callback только логирует допустимые chat/normal от технического allowlist; он не переключает GPX и не обновляет трекер в БД. ===== Проверенные источники ===== Git SHA/SHA-256 и модели закреплены в metadata/BPMN; упаковка повторно сверяет файлы. Handler, socket, устройства и тестовые сообщения при анализе не запускались, секретные runtime env не читались. Общий автоматический hook Wiki пока не завершён. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/handlers/open_teltonika_gps_tracker.py|sharix-open-handlers-examples / handlers/open_teltonika_gps_tracker.py]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/generated_handler_blocks/open_teltonika_gps_tracker.json|sharix-open-handlers-examples / generated_handler_blocks/open_teltonika_gps_tracker.json]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/catalog.py|sharix-open-handlers-examples / catalog.py]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/first_party_operations/open_teltonika_gps_tracker.py|sharix-open-handlers-examples / first_party_operations/open_teltonika_gps_tracker.py]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/config.py|sharix-open-handlers-examples / config.py]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-backend/src/commit/50baf376e224d915a87d63240f3f339b3dda9afa/first_party_blockly_codegen.py|sharix-open-handlers-backend / first_party_blockly_codegen.py]] — Git 50baf376e224d915a87d63240f3f339b3dda9afa. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-backend/src/commit/50baf376e224d915a87d63240f3f339b3dda9afa/core/first_party_handler_runtime.py|sharix-open-handlers-backend / core/first_party_handler_runtime.py]] — Git 50baf376e224d915a87d63240f3f339b3dda9afa. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-backend/src/commit/50baf376e224d915a87d63240f3f339b3dda9afa/main.py|sharix-open-handlers-backend / main.py]] — Git 50baf376e224d915a87d63240f3f339b3dda9afa. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-backend/src/commit/50baf376e224d915a87d63240f3f339b3dda9afa/runtime_provider.py|sharix-open-handlers-backend / runtime_provider.py]] — Git 50baf376e224d915a87d63240f3f339b3dda9afa. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-backend/src/commit/50baf376e224d915a87d63240f3f339b3dda9afa/core/JabberBot.py|sharix-open-handlers-backend / core/JabberBot.py]] — Git 50baf376e224d915a87d63240f3f339b3dda9afa. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/teltonika_config.py|sharix-open-handlers-examples / teltonika_config.py]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/handlers/open_teltonika_gps_tracker_dir/catcher.py|sharix-open-handlers-examples / handlers/open_teltonika_gps_tracker_dir/catcher.py]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/handlers/open_teltonika_gps_tracker_dir/decoder.py|sharix-open-handlers-examples / handlers/open_teltonika_gps_tracker_dir/decoder.py]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/handlers/open_teltonika_gps_tracker_dir/gpx_recorder.py|sharix-open-handlers-examples / handlers/open_teltonika_gps_tracker_dir/gpx_recorder.py]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/handlers/open_teltonika_gps_tracker_dir/config_importer.py|sharix-open-handlers-examples / handlers/open_teltonika_gps_tracker_dir/config_importer.py]] — Git 76e0c693b628ed4a1fa34515a3f8abdff26149bb. ===== Связанные материалы ===== * [[sharixopen:knowledge:scenarios:basic_bot|Диагностический XMPP-бот]] * [[sharixopen:knowledge:scenarios:report_handler|Сборщик служебных отчётов]] * [[sharixopen:knowledge:modules:handlers|Модуль обработчиков]] * [[sharixopen:knowledge:scenarios:start|Индекс сценариев]] ~~SHARIX_KNOWLEDGE_RELATED~~