HomeKit Accessory Protocol (HAP) for OCaml
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

ocaml-hap: rewrite README example to match the real API

The block had several broken pieces: corrupted tokens like
[Hap.turn_on_out\nlet session;], a positional [accessory_info]
argument to [pair_setup] (the real API uses [~ip] / [~port]), missing
[~fs] for [turn_on_outlet], and undeclared [eio*] mdx libraries.

Rewrite as a single [run ()] that goes through discover -> pair_setup
-> pair_verify -> turn_on_outlet against the actual signatures, and
add [eio] / [eio.core] / [eio.unix] to the mdx stanza.

+31 -20
+30 -19
README.md
··· 26 26 ## Usage 27 27 28 28 ```ocaml 29 - Eio_main.run @@ fun env -> 30 - Eio.Switch.run @@ fun sw -> 31 - let net = Eio.Stdenv.net env 32 - let clock = Eio.Stdenv.clock env 33 - (* Discover HomeKit accessories on the network *) 34 - let accessories = Hap.discover ~sw ~net ~clock ~timeout:5.0 () 35 - (* Pair with an accessory (one-time setup) *) 36 - let pairing = Hap.pair_setup ~sw ~net ~clock ~pin:"031-45-154" 37 - accessory_info in 38 - 39 - (* Verify and establish encrypted session *) 40 - let session = Hap.pair_verify ~sw ~net ~clock pairing 41 - (* Control an outlet *) 42 - Hap.turn_on_out 43 - let session; 44 - Hap.turn_off_out 45 - let session; 46 - Hap.toggle_out 47 - let session 29 + let run () = 30 + Eio_main.run @@ fun env -> 31 + Eio.Switch.run @@ fun sw -> 32 + let net = Eio.Stdenv.net env in 33 + let clock = Eio.Stdenv.clock env in 34 + let fs = Eio.Stdenv.fs env in 35 + (* Discover HomeKit accessories on the network. *) 36 + match Hap.discover ~sw ~net ~clock ~timeout:5.0 () with 37 + | [] -> () 38 + | (a : Hap.accessory_info) :: _ -> 39 + (* Pair with an accessory (one-time setup). *) 40 + let pairing = 41 + match 42 + Hap.pair_setup ~net ~sw ~clock ~ip:a.ip ~port:a.port 43 + ~pin:"031-45-154" 44 + with 45 + | Ok p -> p 46 + | Error (`Msg m) -> failwith m 47 + in 48 + (* Verify and establish an encrypted session. *) 49 + let _session = 50 + match 51 + Hap.pair_verify ~net ~sw ~clock ~ip:a.ip ~port:a.port ~pairing 52 + with 53 + | Ok s -> s 54 + | Error (`Msg m) -> failwith m 55 + in 56 + (* Control an outlet. *) 57 + let _ = Hap.turn_on_outlet ~net ~sw ~clock ~fs a.device_id in 58 + () 48 59 ``` 49 60 50 61 ## API
+1 -1
dune
··· 4 4 5 5 (mdx 6 6 (files README.md) 7 - (libraries hap eio_main)) 7 + (libraries hap eio_main eio eio.core eio.unix))