
Flipper Zero Python CLI Wrapper
Flipper Zero Python CLI-Wrapper

Diese Version bringt den Wrapper auf den aktuellen Stand der Flipper Zero CLI
(validiert auf echter Hardware, Firmware unlshd-089e):
info Modul: flipper.info.device_info() / power_info() /
power_debug_info() (die modernen info device / info power Befehle).power info → info power: flipper.power.info() funktioniert weiterhin und liest
jetzt im Hintergrund info power. Hinzugefügt: flipper.power.otg_on()/otg_off().date: verwenden Sie flipper.date.datetime(); das Parsen wurde für das aktuelle
Ausgabeformat korrigiert.KB als auch KiB geparst, read() gibt jetzt
den vollständigen mehrzeiligen Dateiinhalt zurück, und exFAT / Karten ohne Label werden korrekt
geparst (behebt #21).NECext,
Kaseikyo, RCA, Pioneer, … automatisch unterstützt (behebt #15). Neu:
flipper.ir.protocols().debug → sysctl debug, subghz tx/rx erhielt das erforderliche
device-Argument, bt hci_info unverändert.scan, dump,
emulate, field, apdu, raw, mfu) mit pro-UID Mifare Classic Schlüssel-Cache-Helfern
(import_nfc_keys, write_key_cache).ps (→ top), music_player, nfc detect.$ pip install pyflipper
unlshd-089e)from pyflipper import PyFlipper
# Lokaler serieller Port
flipper = PyFlipper(com="/dev/ttyACM0")
# ODER
# Remote serial2websocket Server
flipper = PyFlipper(ws="ws://192.168.1.5:1337")
# TCP
flipper = PyFlipper(tcp='192.168.89.222:22170')
# Info (liest auf aktueller Firmware im Hintergrund `info power`)
info = flipper.power.info()
# Ausschalten
flipper.power.off()
# Neustarten
flipper.power.reboot()
# Neustarten im DFU-Modus
flipper.power.reboot2dfu()
# 5V OTG-Pin am GPIO-Header umschalten
flipper.power.otg_on()
flipper.power.otg_off()
# Update von .fuf-Datei installieren
flipper.update.install(fuf_file="/ext/update.fuf")
# Flipper als .tar-Datei sichern
flipper.update.backup(dest_tar_file="/ext/backup.tar")
# Flipper aus einer Backup-.tar-Datei wiederherstellen
flipper.update.restore(bak_tar_file="/ext/backup.tar")
# Installierte Apps auflisten
apps = flipper.loader.list()
# App öffnen
flipper.loader.open(app_name="Clock")
# Flipper-Datum abrufen (datetime-Objekt)
date = flipper.date.datetime()
# Flipper-Zeitstempel abrufen
timestamp = flipper.date.timestamp()
# Geräteinfo-Dict abrufen (aktuelle Firmware `info device`, durch Punkte getrennte Schlüssel)
device_info = flipper.info.device_info()
# Power-Info-Dict abrufen (aktuelle Firmware `info power`)
power_info = flipper.info.power_info()
# Erweiterte Power/Gauge-Debug-Informationen
power_debug = flipper.info.power_debug_info()
# Legacy `device_info` Befehl (durch Unterstriche getrennte Schlüssel, weiterhin unterstützt)
legacy_info = flipper.device_info.info()
# Heap-Info-Dict abrufen
heap = flipper.free.info()
# free_blocks-String abrufen
free_blocks = flipper.free.blocks()
# Bluetooth-Info abrufen
bt_info = flipper.bt.info()
Firmware-Kompatibilität. Diese Bibliothek zielt nun auf die aktuelle Flipper Zero CLI (Firmware 1.x, verifiziert gegen Unleashed
unlshd-089e). Einige Legacy-Befehle wurden aus der offiziellen Firmware entfernt und sind daher nicht mehr verfügbar:ps(ersetzt durch die interaktivetop),music_playerundnfc detect(NFC ist jetzt eine interaktive Sub-Shell).power infowurde zuinfo powerverschoben,debugzusysctl debug, undstoragemeldet Größen jetzt inKiB– alles wird von den obigen Wrappern transparent behandelt.
# Dateisystem-Info des Storages abrufen
ext_info = flipper.storage.info(fs="/ext")
# Storage /ext Dict abrufen
ext_list = flipper.storage.list(path="/ext")
# Storage /ext Tree-Dict abrufen
ext_tree = flipper.storage.tree(path="/ext")
# Dateiinfo abrufen
file_info = flipper.storage.stat(file="/ext/foo/bar.txt")
# Verzeichnis erstellen
flipper.storage.mkdir(new_dir="/ext/foo")
# Datei lesen
plain_text = flipper.storage.read(file="/ext/foo/bar.txt")
# Datei löschen
flipper.storage.remove(file="/ext/foo/bar.txt")
# Datei kopieren
flipper.storage.copy(src="/ext/foo/source.txt", dest="/ext/bar/destination.txt")
# Datei umbenennen
flipper.storage.rename(file="/ext/foo/bar.txt", new_file="/ext/foo/rab.txt")
# MD5-Hash einer Datei
md5_hash = flipper.storage.md5(file="/ext/foo/bar.txt")
# Datei in einem Block schreiben
file = "/ext/bar.txt"
text = """There are many variations of passages of Lorem Ipsum available,
but the majority have suffered alteration in some form, by injected humour,
or randomised words which don't look even slightly believable.
If you are going to use a passage of Lorem Ipsum,
you need to be sure there isn't anything embarrassing hidden in the middle of text.
"""
flipper.storage.write.file(path=file, text=text)
# Datei mit einem Listener schreiben
file = "/ext/foo.txt"
text_one = """There are many variations of passages of Lorem Ipsum available,
but the majority have suffered alteration in some form, by injected humour,
or randomised words which don't look even slightly believable.
If you are going to use a passage of Lorem Ipsum,
you need to be sure there isn't anything embarrassing hidden in the middle of text.
"""
flipper.storage.write.start(file)
time.sleep(2)
flipper.storage.write.send(text_one)
text_two = """All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as
necessary, making this the first true generator on the Internet.
It uses a dictionary of over 200 Latin words, combined with a handful of
model sentence structures, to generate Lorem Ipsum which looks reasonable.
The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
"""
flipper.storage.write.send(text_two)
time.sleep(3)
# Nicht vergessen, zu stoppen
flipper.storage.write.stop()
# Generische LED setzen (r,b,g,bl)
flipper.led.set(led='r', value=255)
# Blaue LED ausschalten
flipper.led.blue(value=0)
# Grüne LED auf Wert setzen
flipper.led.green(value=175)
# Hintergrundbeleuchtung einschalten
flipper.led.backlight_on()
# Hintergrundbeleuchtung ausschalten
flipper.led.backlight_off()
# LED ausschalten
flipper.led.off()
# Vibro auf True oder False setzen
flipper.vibro.set(True)
# Vibro einschalten
flipper.vibro.on()
# Vibro ausschalten
flipper.vibro.off()