Adapter for gang-flashing CB2S modules

A few weeks ago I needed to stock on smart power outlets for my lab. I ordered known WiFi-controlled outlets that have been known by me to contain esp8266, so that I could flash them with esphome. To my surprise, instead of a very well-known esp8266 module. They had some weird CB2S module from Tuya.

Well, shit happens. Seems that I’ve missed yet another round of cheap IoT modules. These have Beken BK7231N modules inside. And are somewhat supported by OpenSource software stack. So our options are: replace the module with an esp8266 one, like what this guy did or deal with it.

(more…)

Making ezShare WiFi SD work seamlessly with OpenWRT, docker and other black magic

Basically an SD card with WiFi. At one time there were even Transcend cards with OpenWRT on them, but they ran out quickly and I didn’t manage to get my hands on any of them. They were replaced by cards with an obscure chip from some weird lzeal. I managed to find a little to no documentation on them, except for a wild guess that there must be no embedded linux involved.

This stuff has very weird specifications. For instance, it doesn’t work in client mode – only in access point mode. There is no webdav and only a crappy web interface. In this post I decided to sum up the ways to make this thing at least more or less usable using common tools.

(more…)

Flashing Philips E14 Smart LED Bulbs with esphome

One day I needed to add an automated light near the stairs. Motion sensor was already in place, I only needed some bulbs I could turn on and off remotely and I was not feeling like doing any DIY that time. So I picked a few ZigBee bulbs with Е14 socket. What could possibly go wrong here?

The Chinese guy sent me WiFi bulbs instead of ZigBee. Xiaomi Philips. Those are hooked to Xiaomi cloud via Mi Home. For the most adventurous, token can be extracted from the Xiaomi Cloud to drive the bulbs directly from Home Assistant. That was precisely what I’ve done. However those bulbs didn’t work very stable. They were slow to turn on and off, lost WiFi connectivity occasionally and froze every few weeks.

Things weren’t much better with Xiaomi Cloud connected, save for the huge data roundtrip to China and back every time you need to turn on a freaking lamp. The problems weren’t too critical for me to fix the issue and they worked for over a year. However a few days ago when those didn’t turn on at night I understood my patience is finally over and it’s time to fix the issue for good.

(more…)

Useful scripts: Compiling big projects remotely

At the very start of the New Year I decided it’s big time to clean up all the trash from my ‘useful scripts’ folder. Wipe most, improve and document the most useful ones. (And check how the new syntax highlighting plugin works in wordpress and how the content shows up in Medium). I’ll start with the script I use to compile ‘heavy’ software on the ‘big’ server. (I’ll tell more about how I picked the hardware for the task later).

OpenWRT. Takes a while to build it with a bunch of packages enabled.
(more…)

Optimizing ESP8266/ESPHOME for battery power (and making an ice bath thermometer as well)

It’s been a long while I wanted to check for how long can an esp8266 with esphome last on a battery supply. Yet I didn’t have a reason to get it done. Time to fix that and add yet another battery optimization manual for ESP8266 to the internets.

And what’s the big reason? The story is simple. I decided to try ‘cold water immersion’ practice and make it a habbit.Yep, not the cold showers, but true hardcore ‘CWI’. I started back in summer when it was hot as hell and went all the way through to November. The weather gradually lowered the water temperature for me from ‘ah, cool and nice’ to ‘Awh shit this is cold!11’. Ideally that would become a habit.

However in November I had to pause that for a few weeks. And that meant the only thing: I had to start over again. And since the weather isn’t helping me any more, I’d have to take care and gradually decrease the temperature myself.

The first idea was to just order a dumb water thermometer. But why order when you have all the parts in stock and can just build one? And with cool features!

Hard as a rock, dumb as a brick (c)
(more…)

Distributing python apps for windows (and dealing with the pain)

Even though I’m mostly a linux user, I sometimes have to deal with windows (and, heck, well even mac sometimes). And not only to fire up steam and relax playing some game or wandering in VR worlds (unfortunately).

So this time I had to deal with distributing a python app that should be available for windows users as well. And windows, just as it usually happens, was a huge pain. At this moment on would ask – why not just use pip? And there goes the long read.

Потому что какую-то картинку воткнуть надо было…
(more…)

nRF24L01+: Fixing the “magic finger” problem

This time I was spending the holidays as usual away from the city, further improving my smarthome. This time I was installing a bunch of devices with nRF24L01+ radios. When I was running out of spare nRF24L01+ modules, I noticed that I was left with a bunch of weird modules that kind of work, but really crappy. They feature huge packet losses, but whenever you touch the PCB antenna, it goes away. I decided to look into the problem and document my findings.

(more…)