Englisches Original: https://argusic.com/subject/pyvesync

pyvesync

pyvesync ist eine Python-Bibliothek zur Verwaltung von Etekcity- und Levoit-Smart-Geräten.

Läuft mit MocksQuelle: GitHubPythonMITCommit 58eee3bdbfba

Python, Lizenz MIT. Das Projekt beschreibt sich selbst als: smart home und smarthome.

pyvesync läuft, mit Ersatz für die Dienste, von denen es abhängt. Ein Argusic-Agent hat es in 3 Minuten installiert und ist auf 5 Fehler gestoßen und hat jeden davon ohne Hilfe behoben. Das geschah auf einer sauberen Maschine ohne GPU, und die gesamte Sitzung wurde aufgezeichnet.

In the .venv, pyvesync 3.4.2 installs editable and its pytest suite passes 380/3; a real library run against a local schema-correct mock of the VeSync API logs in, retrieves devices, instantiates VeSyncOutlet15A, and turns it on and off.

Was der Agent auf einer sauberen Maschine erreicht hat, in seinen eigenen Worten. So wird gemessen

Von Argusic jedes Mal auf einer frischen Maschine gemessen. Jede Zahl verlinkt auf ihren Nachweis. Argusic Score 92 von 100 (der Mittelwert der Lauf-Scores dieses Projekts).

Auf einen Blick

Befund
Läuft mit Mocks
Argusic Score
92 / 100
Kosten des verifizierenden Laufs
0,18 USD (gemessen)
aufgezeichnete Läufe
1
zuletzt getestet
Sterne
248
Forks
146
offene Issues
74
Beobachter
19
Größe
10 MB
erstellt
letzter Push

Projektdaten von GitHub, oben auf dieser Seite verlinkt, aktualisiert . Testdaten von Argusic (CC BY 4.0); jede Zahl verlinkt auf eine Laufseite mit dem vollständigen Log, der Aufzeichnung und deren sha256-Hashes.

Was gemessen wurde

Aus dem Lauf, der diesen Befund entschieden hat. Jede Zeile ist ein aufgezeichneter Wert, keine Schätzung.

Durch jeden Fehlschlag verlorene Zeit beim Testen von pyvesync, aus dem aufgezeichneten Lauf gezeichnet
Jeder Balken ist ein Fehler, den der Agent aufgezeichnet hat, mit der Zeit, die er gekostet hat. Aus diesem Lauf gezeichnet, aus keiner anderen Quelle.

Was schiefging, in den Worten des Agents

Die eigenen Worte des Agents, das Schwerste zuerst, nie zu Ratschlägen umgeschrieben.

  • My first API mock compared the plain-text password while the library sends MD5(password) (RequestGetTokenModel.hash_password), so login failed with the library's real VeSyncLoginError - mock-schema mismatch6 Minuten
  • My device-list fixture lacked the required 'type' field, so mashumaro raised MissingField('type') in ResponseDeviceDetailsModel - mock-schema mismatch5 Minuten
  • Mock server process was SIGHUP-killed when launched with '&' in the non-interactive shell (connection refused on 127.0.0.1:8931), an environment/harness artifact, not a repo bug4 Minuten
  • My device-status endpoint path was wrong for the ESW15-USA outlet (library posts to /cloud/v1/deviceManaged/deviceStatus) - mock-schema mismatch4 Minuten
  • My harness script used dev.state.device_status and indexing, but the library exposes state status via dev.state.device_status/is_on and DeviceContainer is a set - harness-script mistakes I fixed via next(iter(...))2 Minuten
Installationszeit
3 Minuten
Von der kalten Maschine bis zum Ende
8 Minuten
Aufgetretene und behobene Fehler
5 aufgetreten, 5 ohne menschliche Hilfe behoben
Wie das Ergebnis belegt wurde
.venv/bin/python -m pytest exited 0 with '380 passed, 3 skipped'; e2e_check3.py against the mock printed login: True, get_devices: True, device 'Living Room Plug ESW15-USA VeSyncOutlet15A is_on=True', turn_on: True, turn_off: True, and the mock's request dump showed POST /cloud/v1/deviceManaged/deviceStatus with status 'on' then 'off'
Verbrauchte Modell-Tokens
869.712
Genau getesteter Commit
58eee3bdbfba
Container-Image
sha256:cdd920bce783

Was nicht gemessen wurde

Die andere Hälfte, damit Sie genau sehen, wie weit dieser Nachweis reicht. Eine Lücke wird als Lücke angezeigt und nie aufgefüllt.

Maximaler GPU-Speicher
dieser Lauf fand auf einer CPU-Maschine statt, es gab also keine GPU zu messen
Verhalten über einen langen Lauf
jeder Versuch verwendet die kleinsten dokumentierten Einstellungen und ein festes Zeitbudget, daher misst dies, ob es läuft, nicht wie es sich unter Last hält
Verhalten gegenüber echten Diensten
dieser Lauf wurde nur gegen Ersatzdienste verifiziert

Sitzung ansehen

Der gesamte Lauf, von einer sauberen Maschine aus, in der tatsächlichen Geschwindigkeit. Nichts ist geschnitten, nichts beschleunigt.

Eine Aufzeichnung von Versuch 1, gelaufen am , der Versuch, der den obigen Befund entschieden hat. Die Terminalaufzeichnung, aus der es erstellt wurde, ist der Nachweis, gespeichert mit einem sha256-Fingerabdruck; das Video ist ein Rendering davon. Vom Video-Host wird nichts geladen, bis Sie auf Abspielen drücken.

Das Ende der Aufzeichnung

Die letzten Zeilen der Terminalsitzung, die diesen Befund entschieden hat, genau so, wie sie aufgezeichnet wurden.

======================== 380 passed, 3 skipped in 6.61s ========================
Everything verified. Final state: `.venv` with `pyvesync` 3.4.2 installed editable, 380/3 test pass…
 exited 1 in 31525ms:
======== Running on http://127.0.0.1:8931 ========
(Press CTRL+C to quit)
exec
/bin/sh -lc 'pkill -f vesync_mock.py; sleep 1; ps aux | grep vesync_mock.py | grep -v grep; echo "m…
 exited 143 in 0ms:
All work complete and verified. Final report:
tokens used
869,712
All work complete and verified. Final report:

Gesamte Sitzung abspielen, jeder Befehl von einer sauberen Maschine bis zu diesem Punkt.

So wurde getestet

Ein Agent, ein Container, keine menschliche Hilfe. Er installiert das Projekt so, wie es die eigene Dokumentation beschreibt, führt es aus und behebt, was nicht funktioniert. Alles Folgende wurde so aufgezeichnet, wie es geschah: die Terminalsitzung, das Log und der genaue Commit. Die vollständige Methodik.

Stärken und Grenzen

Gemessene Fakten, keine Meinungen. Wie diese Inhalte entstehen.

Was gut lief

  • In 3 Minuten installiert.
  • Hat sich von allen 5 Fehlern erholt, ohne dass ein Mensch eingriff, was zeigt, dass die Fehlschläge gut genug dokumentiert sind, um sie zu lösen.
  • Lizenz MIT, laut Angabe des Hosts.

Was nicht lief oder unbekannt ist

  • Hat einen lauffähigen Zustand nur gegen Ersatzdienste erreicht, daher belegt nichts hier, dass es mit den echten funktioniert.
  • Bisher einmal gemessen. Ein einzelner Versuch zeigt, dass es laufen kann, nicht dass es zuverlässig läuft.

Ebenfalls getestet, im selben Bereich

Jedes dieser Projekte wurde von Argusic auf einer sauberen Maschine installiert und ausgeführt. Hier erscheint nichts, was nicht getestet wurde.

Laufverlauf

getestet vonVersuchErgebnisScoreKosten USDwann
Argusic Runner1/3Läuft mit Mocks92,000,18

Themen (von GitHub)

smart-homesmarthome

Badge einbetten

Markdown für die README des Projekts. Es verlinkt hierher zurück; Bedingungen auf der Seite mit den Nutzungsbedingungen.

[![Tested by Argusic](https://argusic.com/badge/pyvesync.svg)](https://argusic.com/subject/pyvesync)

Fragen

Läuft pyvesync?
pyvesync läuft, mit Mocks als Ersatz für externe Dienste. Argusic hat es auf einer sauberen Maschine in 3 Minuten installiert und gestartet, ist dabei auf 5 Fehler gestoßen und hat die Sitzung aufgezeichnet.
Wie hat Argusic pyvesync getestet?
Auf einer frischen Einwegmaschine, mit jedem Befehl aufgezeichnet und dem Repository fixiert auf Commit 58eee3bdbfba. Ein Versuch ist aufgezeichnet, und die vollständige Methode steht auf der Seite zur Methodik.
Was hat der Test von pyvesync gekostet?
Der Lauf, der diesen Befund ergab, kostete 0,18 USD: echte Rechen- und Modellkosten, kein Listenpreis pro Million Tokens. Der Betrag ist auf der Seite dieses Laufs aufgezeichnet.
Wie lange dauert die Installation von pyvesync?
3 Minuten in dem Lauf, der diesen Befund entschieden hat, von einer sauberen Maschine bis zum lauffähigen Zustand. Das ist ein gemessener Versuch, kein Durchschnitt.
Braucht pyvesync eine GPU?
Nicht zum Starten. Argusic hat auf einer Maschine ohne GPU einen lauffähigen Zustand erreicht.
Was geht bei der Installation von pyvesync schief?
Im aufgezeichneten Lauf gingen 5 Dinge kaputt, und 5 davon wurden ohne menschliche Hilfe behoben. Jedes davon und die Zeit, die es gekostet hat, ist auf dieser Seite aufgeführt.
Wo ist der Nachweis für pyvesync?
Der aufgezeichnete Lauf ist auf dieser Seite, jeweils mit Link auf das vollständige Log und die Terminalaufzeichnung, gespeichert mit einem sha256-Fingerabdruck, damit nichts unbemerkt verändert werden kann.

Discussion