Stand: aus dem mitgeschnittenen btsnoop_hci.log abgeleitet.
- Reines Auslesen scheint auch ohne Bonding zu funktionieren.
- Schreibbefehle duerften Bonding voraussetzen.
- In den Mitschnitten wurde Pairing explizit gestartet und dann am Geraet mit der Bluetooth-Taste bestaetigt.
- Das lokale Skript hat deshalb jetzt einen
pair-Befehl und einen globalen Schalter--pair. - Die Mitschnitte zeigen zusaetzlich
EF03alsPairingNotifyund diese Sequenz:
write aa03a20003a8ee
warte auf EF03-notify aa03a20002a7ee
write aa03a20001a6ee
- Erst danach geht das Geraet in den normalen Steuer-/Statusbetrieb ueber.
- Die spaeteren Steuer-Mitschnitte zeigen keine zusaetzlichen Freischalt-Kommandos vor
fan/timer; die beobachtetenef01-Writes selbst scheinen also korrekt zu sein.
- Write:
0000ef01-0000-1000-8000-00805f9b34fb - Live data notify:
0000ef02-0000-1000-8000-00805f9b34fb - Ack/status helper notify:
0000ef03-0000-1000-8000-00805f9b34fb - Historic/raw notify:
0000ef04-0000-1000-8000-00805f9b34fb
Alle beobachteten Schreibbefehle verwenden dieses Format:
aa <len> <opcode> <arg1> <arg2> <checksum> ee
lenwar in den beobachteten Schreibbefehlen immer0x03checksum = (len + opcode + arg1 + arg2) & 0xff
Beispiel:
aa 03 02 00 01 06 ee
af 00 01: Verbindungs-/Initialisierungsschritta2 00 03: Live-Daten anforderna2 00 01: Folgeabfrage nachef03-Antwort, noch nicht vollstaendig eingeordnet01 00 00: Power off01 00 01: Power on02 00 00: Fan low02 00 01: Fan medium02 00 02: Fan high02 00 03: Fan turbo03 00 00: UV-C off03 00 01: UV-C on04 00 00: Timer off04 00 02: Timer 2h04 00 04: Timer 4h04 00 08: Timer 8h05 00 00: Auto off05 00 01: Auto on06 00 00: Night off06 00 01: Night on08 00 00: Buzzer off08 00 01: Buzzer on
Wichtig: Beim Wechsel von auto auf eine feste Fan-Stufe zeigen die Mitschnitte zuerst 05 00 00 und danach den eigentlichen 02 ...-Befehl.
Der Buzzer-Befehl wurde durch Ausprobieren gefunden. Da 07 fehlt, wird hier eine weitere Funktion erwartet, es konnte jedoch keine festgestellt werden.
Beispiel:
aa0da02100008b000a00cb10e0045375ee
Aktuell belegt:
- Byte 4: Fan-Stufe (
0..3) - Byte 5: Timer (
0,2,4,8) - Byte 6: Flags fuer Power/UV/Timer/Buzzer/Auto/Night
- Bytes 8-9: Feinstaubwert als
raw / 10, Beispiel0x000a -> 1.0 - Byte 10: Temperatur als
raw / 10, Beispiel0xcb -> 20.3 - Bytes 12-13: Filter-Rohwert, beobachtet als etwa
raw / 4320 * 100
Bit-Zuordnung
- Bit 0: Power
- Bit 1: UV-C
- Bit 2: Timer aktiv
- Bit 3: Buzzer
- Bit 5: Auto
- Bit 6: Night