Smarthome firmware pysmartnode
Posted: Tue Jul 10, 2018 3:38 pm
I'd like to share my recently published "firmware" for easy smarthome deployment called pysmartnode, https://github.com/kevinkk525/pysmartnode. It's similar to ESPeasy in its usage target but a lot better as you can actually very easily create your own components in micropython and not C++. I have been working on this for over half a year now and hope that someone will find it useful.
The pysmartnode framework completely takes care of being connected to the mqtt broker, publishing basic device information, last will, sending logs over mqtt, optionally receive a configuration over mqtt and much more. It's configurable and lets you concentrate on programming your own scripts/modules/components.
On esp32 with psram you can just copy the files using ftp. Without psram you should at least generate bytecode first.
It's tested only on esp32 loboris fork but I don't see why it shouldn't run on the official esp32 firmware too.
Sadly I packed too many features into the core files with the last updates to version 3.8.1 and now it is only usable on esp8266 if you disable the filesystem. Have to fix that soon, sorry for that. (You disable the filesystem in the _boot.py)
With a configuration as simple as this in a file called "components.py" you load a component that publishes the free ram every 60s:
There are more standard components like a buzzer (with configurable sounds), led blinking, bell listener, temperature sensors, easyGPIO (to control all gpios by mqtt), a pms5003 air quality sensor and a few more which are all as easily configured as the example.
You can add your own sensors using a simple template and get it running in "no time".
I'd be glad if you try it and give me some feedback. Even if the feedback is like "this is crap, because ...". That would be helpful too.
The pysmartnode framework completely takes care of being connected to the mqtt broker, publishing basic device information, last will, sending logs over mqtt, optionally receive a configuration over mqtt and much more. It's configurable and lets you concentrate on programming your own scripts/modules/components.
On esp32 with psram you can just copy the files using ftp. Without psram you should at least generate bytecode first.
It's tested only on esp32 loboris fork but I don't see why it shouldn't run on the official esp32 firmware too.
Sadly I packed too many features into the core files with the last updates to version 3.8.1 and now it is only usable on esp8266 if you disable the filesystem. Have to fix that soon, sorry for that. (You disable the filesystem in the _boot.py)
With a configuration as simple as this in a file called "components.py" you load a component that publishes the free ram every 60s:
Code: Select all
COMPONENTS = {
"_order": ["ram"],
"ram": {
"package": ".machine.ram",
"component": "ram",
"constructor_args": {
"interval": 60
}
}
}
You can add your own sensors using a simple template and get it running in "no time".
I'd be glad if you try it and give me some feedback. Even if the feedback is like "this is crap, because ...". That would be helpful too.