I bought an M5Paper e-ink development kit (product page), and I wanted to turn it into a Home Assistant remote control / mini-dashbaord. I really like e-ink (my phone is even an e-ink phone), but e-ink presents a lot of development challenges.
I immediately realized that developing for the M5Paper can be a bit challenging. Even using the drag and drop editor M5stack offers, it doesn’t easily support multiple displays, navigation, buttons with text etc.
I figured others might want to take advantage of what the M5Paper device has to offer for Home Assistant, so I’ve started developing some python libraries that wrap the M5Paper “UIFlow” framework. This will hopefully make it easier to develop a quick dashboard with buttons that can control your smart home.
Currently I have the following working:
- Create custom views (e.g. light remote, tv remote, music controller etc), with the ability to add buttons to the page (and any other elements supported by M5’s UIFlow framework).
- Main menu to handle navigation to custom views
- Custom square button styles (change the background color, text size, border color etc), to allow easily adding/editing multiple buttons of the same type
- Assign “actions” to the buttons like…
Publish an MQTT message to the specified topic
mqtt_pub=<topic>,<message>
Publish an MQTT message to the specified topic
show_view=<view_name>
I assign a button action to like mqtt_pub=command/lights/living_room,on. With Mosquito MQTT running in in Home Assistant, I use Node Red to subscribe to the topic “command/lights/+” and then parse the entity id (in this case living_room) and message to send the appropriate command.
I am far from having everything working the way I would like, and I’m running into challenges, which is why I wanted to see if there is actually interest in something like this. Would you use it? Is anyone interested in helping with development? I’ll try to get the code up on Github soon, so people can take a look and help expand it further . It’s not amazing code, and it’s fairly hacked together, but I think it has some potential.