May I introduce you to AllJoyn [0]? Proximal (broadcast domain) IoT. It's baked in to Windows 10, LiFX bulbs, a bunch of TVs... [1] It's being folded into OCF now, but the open source will live on. Don't need a gateway, don't need a server.
I've looked into AllJoyn, but honestly it has a very outdated and over-complicated design. It's also not really suited to running in low-power devices due to its roots in DBus. IoTivity might be better but I doubt it will get much support even when they do finish it - Apple and Google have such a huge advantage in this space from owning mobile OSes (and Google Home) that I can't see anyone else gaining much traction.
I think Weave will probably win this battle. It is tied to Google, but less so than Homekit is to Apple and it doesn't have the insane MFi requirements. Also the (draft) design seems quite nice. They just need to hurry up and finish it.
I'm hoping someone will make the AllJoyn protocol accessible for a weekend project. As it is right now I can't make heads or tails of what I need to onboard a simple LIFX bulb. It seems like I have to spin up a whole Java enterprise-ish project when all I want to do is send some packets to it's virtual access point with my wifi creds in them.
Do you know if there's any documentation on the low-level protocol that doesn't involve using the big SDK? I'd love to just write a python (or similar) script to do this grunt work.
Morten Nielsen [0] has written quite a few small packages around AllJoyn on Windows [1]. There is a JavaScript binding [2] which also might help. There was a Node binding [3] but it doesn't look like it's under active development. ASA stopped shipping SDKs some time ago because the juice just wasn't worth the squeeze.
[0] https://alljoyn.org
[1] https://allseenalliance.org/certification/certified-products...
ETA: Disclosure: worked for Qualcomm/AllSeen Alliance for years on AllJoyn