social.dk-libre.fr is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
Turns out #HomeAssistant #Bluetooth integration prevents #Hue bulbs from being discovered by the Hue bridge. Looks like the bridge utilizes BLE first to discover new bulbs even when the connection should be made through #ZigBee.
Had issues adding a new bulb. Tried to reset it with the Dimmer Switch and reset another one instead, one meter away. Surprised that the old one also wasn’t able to be discovered. Powered down Home Assistant and both bulbs were discovered right away.
#SmartHome
At this weekend I finally established another network in my home — a ZigBee network. A looong time ago (in 2010 year) I touched the ZigBee networking in my university (ITMO, previously IFMO, in Saint-Petersburg) — these times it was a new technology, not used widely. And as a student I have some fun time playing with ZigBee main router, supplemental router and end-devices. You can view old photos and screenshots of old software on a my extremely old blog: http://h0rr0rr-drag0n.blogspot.com/2010/04/cc2530zdk.html (and read a blogpost, if you understand Russian).
It is kindly fascinating, that now, after 15 years, I can just buy some ZigBee-powered devices from AliExpress (using Black Friday discounts) and connect them to the network inside my house right in the way I did it in the university 15 years ago!
Sadly, although I bought native supported main router device, based on the EFR32MG2 with some software from Ember (EZSP v8) inside, the OpenHAB doesn't support this device natively — it supports it, but since my server is running NetBSD, I got problems with some bundled with OpenHAB things. Looks like some native libraries (rxtx-java) don't have bundled NetBSD versions. And the same library in the repository built for Java 8, not for Java 17.
So, I decided to use Zigbee2MQTT, not to build the necessary Java library myself. It was kinda scary — use program, which connects my ZigBee network via ZigBee USB-dongle to the MQTT server — which is written on JavaScript
. Not on the C (as I can totally understand, for a such low-level program, operating with embedded devices) or at least on the C++/Perl/Python/whatever. But, looks like it works good enough, if I don't try to pair the device in wrong mode (my window sensors has two modes to pair them with network: first "common" mode causes zigbee2mqtt to silently crash and the second "compatible" mode works without problems).
And I could understand now, why people has so much problems with smart home security. Installed MQTT server mosquitto — it allows unauthenticated connections by default. Installed zigbee2mqtt — it allow connections to frontend without any password by default
At least these two services don't each much memory: 1.2 Mb for Mosquitto and 75.6 Mb for ZigBee2MQTT.
For now, my ZigBee sensors works pretty well and robust, like these devices from university 15 years ago 
#Zigbee #HomeAutomation without
#HomeAssistant, instead all defined in
#nix / #NixOS, this is neat! 😲
Migrated my ZigBee2MQTT to FreeBSD 14.3, of course, running inside a Jail (and with IPv6!) 🙂
All running perfectly fine and as stable as you'd expect from FreeBSD
Plus the rc.d script is so minimalistic and simple, that I don''t get it, why anyone would prefer intransparent systemd to that !
Another part of my home-infrastructure migrated over!
Okay, so let me tell you about my doorbell, from a #networking perspective.
When you push the button by the door, it sends a message over the #zigbee wireless mesh network in my house. It probably goes through a few hops, getting relayed along the way by the various Zigbee light switches and "smart outlets" I have.
Once it makes it to my utility closet, it's received by a Zigbee-to-USB dongle, through a USB hub (a simple tree network) plugged into an SFF PC. From there, it gets fed into zigbee2mqtt, which, as the name implies, publishes it to my local #mqtt broker.
The mqtt broker is in the small #kubernetes cluster of #raspberrypi nodes I run in my utility closet. To get in (via a couple of #ethernet switch hops), it goes through #metallb, which is basically a proxy-ARP type service that advertises the IP address for the mqtt endpoint to the rest of my network, then passes the traffic to the appropriate container via a #linux veth device.
I have #HomeAssistant, running in the same Kubernetes cluster, subscribed to these events. Within Kubernetes, the message goes through the CNI plugin that I use, #flannel. If the message has to pass between hosts, Flannel encapsulates it in VXLAN, so that it can be directed to the correct veth on the destination host.
Because I like #NodeRed for automation tasks more than HomeAssistant, your press of the doorbell takes another hop within the Kubernetes cluster (via a REST call) so that NodeRed can decide whether it's within the time of day I want the doorbell to ring, etc. If we're all good, NodeRed publishes an mqtt message (more VXLANs, veths, etc.)
(Oh and it also sends a notification to my phone, which means another trip through the HomeAssistant container, and leaving my home network involves another soup of acronyms including VLANs, PoE, QoS, PPPoE, NAT or IPv6, DoH, and GPON. And maybe it goes over 5G depending on where my phone is.)
Of course something's got to actually make the "ding dong" sound, and that's another Raspberry Pi that sits on top of my grandmother clock. So to get *there* the message hops through a couple Ethernet switches and my home WiFi, where it gets received by a little custom daemon I wrote that plays the sound via an attached #HiFiBerry board. Oh but wait! We're not quite done with networking, because the sound gets played through PulseAudio, which is done through a UNIX domain socket.
SO ANYWAY, that's why my doorbell rarely works and why you've been standing outside in the snow for five minutes.