make python function to Node-RED node
Project description
NodeRED.py
make python function to Node-RED node
🎛️ requirements
- node.js 18.16.1 or higher(latest stable)
- nodered.py 0.2.6 or higher, automatically download from internet if no node.js installed
- python 3.7 or higher
- tested on
OS | Tested | Pass |
---|---|---|
Mac 13(Ventura) | ✅ | ✅ |
Windows 10 | ✅ | ✅ |
Linux(WSL) | 🚫 |
🌐 install
- using pip
python -m pip install nodered.py
- using git(dev)
python -m pip install git+https://github.com/oyajiDev/NodeRED.py.git
🛠 usage
Node-RED initialize
from noderedpy import REDBuilder, RED, Auth
# using builder
red = REDBuilder()\
.set_user_dir("{user_dir}")\
.set_node_red_dir("{node_red_dir}")\
.set_admin_root("{admin_root}")\
.set_node_root("{node_root}")\
.set_port(port).build()
# using RED directly
red = RED(
"{user_dir}", "{node_red_dir}",
"{admin_root}", "{node_root}", port, "{default_flow}",
remote_access, default_category_visible
)
# change editor theme settings
red.editor_theme.palette.editable = False
red.editor_theme.projects.enabled = False
# add auths
red.node_auths.append(
Auth(username = "node-red-py", password = "p@ssword")
)
register Node
register as decorator
- See noredpy.decorator.register function for details
from noderedpy import Node
from noderedpy.decorator import register
@register("test")
def test(node:Node, props:dict, msg:dict) -> dict:
# user codes here
return msg
register from Node-RED object
- See noredpy.decorator.register function for details
api = API()
red.register("test", api.test)
- See noderedpy._property for details of "Property"
- See example for details.
register route
route(get, post)
- register as decorator
from noderedpy.decorator import route
# get
@route("{route_url}", "get")
def route1(params:dict) -> dict:
return {}
# post
@route("{route_url}", "post")
def route1(datas:dict) -> dict:
return {}
- register from Node-RED object
# get
red.route(lambda params: {}, "{route_url}", "get")
# post
red.route(lambda datas: {}, "{route_url}", "post")
static
red.static("/static", "{static_directory_or_file_path}")
start Node-RED
red.start({debug:bool}, {callback:MethodType})
Todos
✅ type support for "list" and "dict"
Roadmap To 2.0
✅ remove aiohttp server
🟩 flexible property ui
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nodered_py-0.2.10.tar.gz
(313.7 kB
view hashes)
Built Distribution
nodered_py-0.2.10-py3-none-any.whl
(311.9 kB
view hashes)
Close
Hashes for nodered_py-0.2.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd66dffd205353363b65c47e86601d3b6596c993135a48de453c616213313738 |
|
MD5 | a260b449a156ac1a32283cb88419a937 |
|
BLAKE2b-256 | 1243408d358e14dee736dfe7f1c9ee7d3ffc4af30a52a7278cfc2de4763fd589 |