Aller au contenu

Plugin JeeNavimow

Plugin JeeNavimow mengintegrasikan robot pemotong rumput Segway Navimow ke Jeedom: pemantauan status, baterai, dan firmware, kontrol (mulai / berhenti / jeda / lanjutkan / kembali ke dok) serta pelacakan waktu nyata melalui MQTT (dengan cadangan REST).

⚠️ Plugin tidak resmi, tidak berafiliasi dengan Segway-Ninebot. Menggunakan API cloud yang sama dengan integrasi komunitas untuk Home Assistant (wilayah Eropa / Frankfurt).

Kompatibilitas

  • Jeedom 4.4+
  • Pemotong rumput Navimow dengan akun Segway Navimow (aplikasi seluler "Navimow") — diuji pada i210 LiDAR Pro, kompatibel dengan seri i / H / X yang terhubung ke cloud Navimow.
  • Dependensi Python dipasang otomatis dalam lingkungan virtual terisolasi (memerlukan Python 3.11+ — dipasang atau dikompilasi otomatis jika tidak ada).

Pemasangan

  1. Pasang plugin dari Market Jeedom (kategori Objek terhubung).
  2. Aktifkan plugin.
  3. Di konfigurasi plugin, jalankan pemasangan dependensi dan tunggu status "OK".
  4. Hubungkan akun Navimow Anda (lihat di bawah).

⏱️ Durasi pemasangan dependensi — di Debian 11 (Bullseye), python3 adalah 3.9 dan tidak ada paket Python 3.11 di repositori. Sejak 0.2.8, plugin mengompilasi sendiri Python 3.11: perkirakan 20 menit hingga 1 jam tergantung mesin (±20 menit pada x86 terbaru, sampai 1 jam pada Raspberry Pi), dibanding kurang dari satu menit di Debian 12 (Bookworm). Penantian ini hanya sekali: Python hasil kompilasi disimpan di /usr/local dan dipakai ulang pada pemasangan berikutnya. Biarkan halaman terbuka sampai status "OK", jangan menjalankan ulang pemasangan sementara itu, dan sediakan sekitar 1,5 GB ruang disk kosong.

Menghubungkan akun Navimow

Autentikasi menggunakan alur OAuth2 resmi Segway (halaman login yang dihosting oleh Segway). Kredensial Anda tidak pernah melewati Jeedom.

  1. Klik "Hubungkan akun Navimow saya".
  2. Langkah 1 — klik Buat URL login.
  3. Langkah 2 — buka URL di browser dan masuk dengan akun Segway Navimow Anda. Setelah login, browser dialihkan ke URL yang berisi ?code=....
  4. Salin URL pengalihan lengkap itu dan tempel ke kolom, lalu Konfirmasi.
  5. Pemotong rumput Anda diimpor otomatis sebagai perangkat.

🔑 Kode login sekali pakai dan kedaluwarsa dalam hitungan detik: buat URL lalu tempel URL pengalihan tanpa menunda. Jika gagal, buat URL baru.

Menyegarkan / menambah pemotong rumput

Tombol "Segarkan mesin pemotong" (terlihat setelah akun terhubung) menjalankan ulang penemuan tanpa masuk ulang — berguna setelah menambah pemotong rumput baru.

Daemon

JeeNavimow menggunakan daemon Python yang: menjaga koneksi ke cloud Navimow (penyegaran token OAuth otomatis); mendengarkan pembaruan waktu nyata melalui MQTT; menjajaki API REST setiap 30 dtk sebagai cadangan bila MQTT tidak tersedia; dan meneruskan perintah (mulai/berhenti/jeda/lanjutkan/dok) ke pemotong rumput. Port daemon dapat dikonfigurasi (ubah hanya jika terjadi konflik).

Perangkat: perintah

Setiap pemotong rumput yang diimpor otomatis menyediakan perintah.

Informasi: Status, kode status, baterai (%), Mengisi daya, Daring, Kesalahan + pesan kesalahan, Kemajuan (%), Area terpotong (m²), Posisi X/Y, Firmware, Pembaruan tersedia, Sinkronisasi terakhir.

Tindakan: Mulai memotong, Berhenti, Jeda, Lanjutkan, Kembali ke dok, Segarkan.

Widget dasbor

Widget khusus menampilkan status pemotong rumput yang beranimasi, indikator baterai, kemajuan pemotongan, dan tombol kontrol, dengan penanganan status luring dan kesalahan.

FAQ / Pemecahan masalah

  • Tidak ada pemotong rumput muncul setelah terhubung → klik Segarkan mesin pemotong. Pastikan pemotong rumput terlihat di aplikasi Navimow.
  • Informasi tidak diperbarui → pastikan daemon berjalan (halaman Kesehatan) dan dependensi "OK". Mulai ulang daemon setelah memperbarui plugin.
  • "Pertukaran token gagal: invalid_grant" → kode OAuth kedaluwarsa: buat URL login baru dan tempel URL pengalihan yang baru.
  • Pemasangan dependensi tampak macet → di Debian 11 (Bullseye) plugin mengompilasi Python 3.11: prosesnya 20 menit sampai 1 jam dan log menampilkan "Compilation de Python 3.11.9 depuis les sources". Ini wajar — biarkan sampai selesai.
  • Pemasangan dependensi gagal → memerlukan Python 3.11+ (diwajibkan oleh navimow-sdk). Periksa di log pemasangan apakah ruang disk (~1,5 GB) atau akses jaringan kurang.

Changelog

0.2.9

  • Diagnostik: opsi baru Tangkapan MQTT mentah di konfigurasi plugin. Opsi ini merekam apa adanya setiap pesan yang diterima dari cloud Navimow ke berkas khusus, tanpa mengubah daemon ke mode debug. Skrip resources/mqtt_report.py menyusun inventaris bidangnya — frekuensi, tipe, contoh — dan menandai yang belum dimanfaatkan plugin. Tujuannya: menemukan bidang kemajuan, luas, dan posisi yang sebenarnya, yang namanya tidak terdokumentasi. Perintah yang dikirim (REST sendCommands) dan respons status juga direkam; token OAuth dan kredensial MQTT disamarkan.
  • Dokumentasi: URL dokumentasi dan changelog diperbaiki (hosting Cloudflare), karena GitHub Pages tidak dapat menerbitkan repositori privat.

0.2.8

  • Dependensi: jika tidak ada Python ≥ 3.11, plugin mencoba apt-get install python3.11 terlebih dahulu, lalu mengompilasi Python 3.11 dari sumber (make altinstall ke /usr/local, tanpa mengubah python3 sistem) — Debian 11 (Bullseye) kini terpasang tanpa langkah manual.
  • Integritas arsip Python diperiksa (MD5 yang diterbitkan python.org), paralelisme kompilasi dibatasi oleh RAM yang tersedia, dan kunci yang mencegah dua instalasi berjalan bersamaan.
  • ⏱️ Di Debian 11 (Bullseye), pemasangan dependensi pertama memakan 20 menit hingga 1 jam (kompilasi Python 3.11) dibanding kurang dari satu menit di Debian 12; Python hasil kompilasi dipakai ulang setelahnya.

0.2.7

  • Widget: perbaikan tautan pada nama mesin pemotong (menambahkan parameter m=) — kini membuka halaman konfigurasi perangkat dengan benar.

0.2.6

  • Dependensi: deteksi otomatis Python ≥ 3.11 yang terpasang berdampingan (mis. python3.11 di Debian 11 yang python3 = 3.9), alih-alih gagal; pesan kesalahan lebih jelas (Debian 11 / Debian 12).

0.2.5

  • Plugin: kategori dipindahkan ke Nature.

0.2.4

  • Widget: tombol Lanjutkan berwarna hijau limau (#9ACD32), berbeda dari Mulai dan Base.

0.2.3

  • Widget: kini mengikuti tema Jeedom (mode gelap / terang) alih-alih tema peramban/OS.

0.2.2

  • Widget: logo plugin di header (menggantikan ikon robot) dan nama mesin pemotong yang dapat diklik untuk membuka konfigurasi perangkat.
  • Widget: tombol donasi (kopi) dengan tooltip buram di latar depan; menghapus tombol "Sync" yang berlebihan.
  • Widget: ikon rumah biru untuk tombol Base dan perbaikan ikon yang hilang (kompatibilitas Font Awesome 5).
  • Widget: "Base" tersedia saat jeda, pengukur baterai terpusat.

0.2.1

  • Ikon mesin pemotong baru di widget (gambar khusus), dianimasikan saat memotong.

0.2.0

  • MQTT waktu nyata melalui broker dinamis mqttHost/mqttUrl yang dikembalikan API (menggantikan hostname mqtt.navimow.com yang tidak dapat di-resolve) — koneksi WSS + langganan topik realtime terkonfirmasi.
  • Penyegaran token OAuth otomatis (~1 jam): proaktif + saat kode 4005 (CODE_OAUTH_INFO_ILLEGAL), pembaruan autentikasi MQTT tanpa memutus koneksi.
  • Permulaian daemon yang tangguh: bind port dengan percobaan ulang, PID ditulis setelah bind berhasil, pembersihan instans yatim (memperbaiki "daemon tidak mau mulai").
  • Widget menyegarkan sendiri: widget dasbor dan seluler kini diperbarui otomatis setiap 15 dtk tanpa memuat ulang halaman.
  • Port daemon bawaan 55149 (menghindari konflik dengan jeewhatsapp).

0.1.0 (beta)

  • Rilis publik pertama (beta).
  • Autentikasi OAuth2 Segway Navimow (alur tempel URL pengalihan).
  • Penemuan otomatis pemotong rumput akun (+ tombol Segarkan mesin pemotong).
  • Informasi: status, baterai, pengisian daya, daring, kesalahan, firmware, sinkronisasi terakhir (serta kemajuan/area/posisi tergantung API).
  • Tindakan: mulai, berhenti, jeda, lanjutkan, kembali ke dok, segarkan.
  • Daemon Python: MQTT waktu nyata + cadangan REST (30 dtk), penyegaran token otomatis.
  • Widget dasbor glassmorphism.
  • Dokumentasi multibahasa (FR, EN, DE, ES, RU, ID, IT).