{ "info": { "author": "Ren\u00e9 Schmit", "author_email": "rene.schmit@plaakert.lu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools" ], "description": "Remark:\n=======\n\nPlease be patient, documentation will be worked on. For the moment,\nrefer to the\n`Tutorial `__\n\nIntroduction\n============\n\nEspynoza is a Python framework for writing, configuring and managing\napplications on ESP8266 microcontroller boards.\n\nEspynoza supports remote uploading of files/sources via USB cable, or\nvia Wifi/??MQTT?? once the basic software is installed on the target\nboard. Multiple MQTT servers as well as distinct Wifi Access Points may\nbe configured.\n\nAll user actions are made through a command-line interface,\n*Espynoza.py* (use --help for details). Configuration is made via Python\nfiles (basically variable assignments). Configuration files exist on the\nglobal level, as well as for the individual target devices.\n\nThe framework, running on the target device, handles the initial setup\nof the Wifi network connection and then establishes a connection with\nthe specified MQTT broker. The host server may then send commands to the\ntarget device, using standard Python syntax, and will receive data\nproduced on the target. The frameworks main loop calls (user-definable)\nhandlers to perform actions such as setting outputs and reading sensor\ndata. A watchdog will reboot the target if the board hangs.\n\nRight now, some simple sample handlers are provided with Espynoza, more\nwill follow soon. The aim is to create a library that will allow the\nuser to build a system by writing a configuration file for simple cases,\nbut that may be extended by writing small code fragments in Python for\nmore special cases.\n\nSpecial care has been been taken to use as little memory as possible on\nthe target devices. Python files may be compiled on the host system\nbefore being uploaded to avoid out of memory conditions during system\nstartup. Only the files needed for the targets configuration are loaded\ninto RAM.\n\n(BTW, in case you wonder why some things are designed the way they are:\nI plan to write a web/database-based application to make using Espynoza\neasier. But first things first...)\n\nVersion\n-------\n\nCurrent version is *0.2*,. This version should be considered alpha\nquality, even though the code should work if Espynoza and all needed\nlibraries and tools are installed correctly. Right now, the number of\navailable handlers is limited to simple digital and analog IO, as well\nas some I2C or similar serial communication protocol devices. More will\nfollow as soon as the basic code is stable.\n\nDownload and Install\n====================\n\nRequirements\n------------\n\n- Hardware\n- Host computer\n\n - PC running Linux (maybe other OS)\n - or a Raspberry Pi running Linux (Ubuntu Jessie works)\n - Python >= 3.6 (3.6 minimum, as format strings are used)\n\n- Target\n\n - ESP6288\n - (more to come)\n\n- Software packages\n- git\n- MicroPython\n- Mosquitto (and paho-mqtt)\n- ampy (from Adafruit)\n- esptool.py\n- (esp-open-sdk -- optional, needed to build custom runtimes, no\n support yet)\n\nInstall\n-------\n\n*Remark*: the following instructions worked for me, your mileage may\nvary. Please drop me a note if you have problems, I will try to help,\nand amend these instructions.\n\nInstall using pip\n-----------------\n\nThis is the easy way to install Espynoza. It will not only install\nEspynoza, but also the other necessary packages (except one, see below).\n\n::\n\n sudo pip3 install Espynoza\n\n*You absolutely need python3.6 or later, as format-strings are used*\n\nAdditionnally, we need to install the Micropython package:\n\n**MicroPython**: the MicroPython language files, and its compiler.\nInstall this using Github, and build the compiler yourself (the\npre-build one provided for download is notoriously out of date, and your\ncode might not work with it):\n\n::\n\n git clone https://github.com/micropython/micropython.git\n cd micropython/mpy-cross\n make\n\nThis will create the mpy-cross compiler executable. Open the file\n*EspyConfig.py* in the Espynoza root directory. There you will find the\nfollowing line:\n\n::\n\n C_MpyCross = './bin/mpy-cross'\n\nYou may either change this to point to your brand-new compiler, or\ncreate the bin sub-directory and create a symbolic link to the compiler\nin this directory (or use your own strategy, Espynoza is designed to be\nflexible).\n\nTo start working, go to a directory of your choice, and execute\n\n::\n\n espynoza --setup myinstallation\n\nThis will create a directory *myinstallation*, and copy/create some\nfiles into in. Of course, you may name this directory whatever you like,\nand you may create more than one such directory, for instance if you\nwant to maintain several distinct IoT setups.\n\n**Mosquitto**: the MQTT broker used as a communication hub for Espynoza\n(and potentially many more sub-systems of your IoT installation.)\n\nIf you use Debian or Ubuntu, the following should work:\n\n::\n\n sudo su\n apt-get update\n apt-get upgrade\n apt-get install mosquitto mosquitto-clients\n\nPlease refer to the mosquitto documentation for configuration and usage.\nThe out-of-the-box config should be OK if you are happy without security\nsettings...\n\nInstalling Espynoza from Github\n-------------------------------\n\n**Espinoza**: clone Espynoza from GitHub using this command:\n\n::\n\n git clone https://github.com/finalstate/Espynoza.git\n\nThis will create a directory called Espynoza containig the Espynoza.py\ncli tool, a basic configuration file and a number of sub-directories.\n\nMoreover you will need to install the following packages to use\nEspynoza. Install them in some convenient place on your disk, not into\nthe Espinoza directory.\n\n**MicroPython**: see above\n\n**Mosquitto**: see above\n\nThe next tools are normally installed automatically if using pip, here\nwe need to do it manually if they are not yet installed **esptool**:\nThis tool is used to flash the target flash memory, and to upload the\nMicroPython firmware\n\n::\n\n sudo pip3 install esptool\n\n**ampy**: This library is used to initially upload Python files to the\ntarget board. Install like this:\n\n::\n\n sudo pip3 install adafruit-ampy\n\n**paho-mqtt**: a Python library for using MQTT. Again, we install using\npip:\n\n::\n\n sudo pip3 install paho-mqtt\n\nTutorial\n========\n\n`Here `__\nis a simple tutorial to get you started with Espynoza. First, we will\nset up some basic hardware, and then install the software on it to get a\nfeeling for how Espinoza works and what it can do for us.\n\nTroubleshooting\n---------------\n\nTo be completed\n\nArchitecture overview\n=====================\n\n*(to be written once things settle down somewhat)*\n\nFile organization\n-----------------\n\nReference\n=========\n\nContributing, bug reports, comments, ideas e.t.c.\n=================================================\n\nContact me at finalstate@cassy.lu\n\nKnown issues\n============\n\n- out of order file chunk transfers\n- dir name ESP is sub-optimal\n\nUpcoming\n========\n\n(help welcome :-) )\n\nTop priority:\n\n- cli commands: rename board, move target to another broker\n\nMore to come:\n\n- DHCP address for target\n\n- custom firmware building support\n- https support for mqtt connections\n- tested/enhanced espylisten command (currently VERY alpha)\n\n- ESP32 support (if and when MicroPython supports the stuff needed)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/finalstate/Espynoza", "keywords": "IoT esp8266 MicroPython runtime uploader MQTT OverTheAir", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Espynoza", "package_url": "https://pypi.org/project/Espynoza/", "platform": "", "project_url": "https://pypi.org/project/Espynoza/", "project_urls": { "Homepage": "https://github.com/finalstate/Espynoza" }, "release_url": "https://pypi.org/project/Espynoza/0.2.5/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Runtime and upload utilities for MicroPython/ESP8266 boards", "version": "0.2.5" }, "last_serial": 3879351, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "846268c10a10e957e5f71ad05fa319fb", "sha256": "56a150efe92a112c087c0d5252eed15d94a64fa19bff76db81b96039d95c8549" }, "downloads": -1, "filename": "Espynoza-0.1.tar.gz", "has_sig": false, "md5_digest": "846268c10a10e957e5f71ad05fa319fb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28137, "upload_time": "2018-01-13T10:44:40", "url": "https://files.pythonhosted.org/packages/00/6b/faac69e3e8bd542228c4a1dc8cb121fdc60322fbf9ea1e46816d68004522/Espynoza-0.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f41dde4b0d53abde0eab799d15d8d29c", "sha256": "6053881197fe0378eed11bf10f658a4bbe0c66572f909b7562f9a46e2295ec06" }, "downloads": -1, "filename": "Espynoza-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f41dde4b0d53abde0eab799d15d8d29c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 23986, "upload_time": "2018-01-27T14:10:31", "url": "https://files.pythonhosted.org/packages/c6/81/8050da1b43fad8ecc4454f7d6a855a65abb2fd9e7be1b6ee9d3a0830fffe/Espynoza-0.2.0.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "9e434140d3da84ebbc350890d2e462ee", "sha256": "087405e39c00f4f403f57bf7331bebf04806b188c51f4b7c7bc922602c1cea9e" }, "downloads": -1, "filename": "Espynoza-0.2.2.tar.gz", "has_sig": false, "md5_digest": "9e434140d3da84ebbc350890d2e462ee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 23886, "upload_time": "2018-01-30T09:56:35", "url": "https://files.pythonhosted.org/packages/d8/d3/fdc2e485d7e01bb75e6f7f19b7f5b6d6f1c0c6fd1b11b0417c63145995b3/Espynoza-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "bb198d1e31e50d6a42d4892ed065e6c2", "sha256": "cbdeb159705ebe57ef8a3e54002ccac515eae58136d2602ec1d91173ca146a6f" }, "downloads": -1, "filename": "Espynoza-0.2.3.tar.gz", "has_sig": false, "md5_digest": "bb198d1e31e50d6a42d4892ed065e6c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 23876, "upload_time": "2018-01-30T10:03:02", "url": "https://files.pythonhosted.org/packages/7b/da/6c4402a8ea6619f054144292a7dd43da0c0eb8f8a5ad19fe02a00196a602/Espynoza-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "d86e5ac47064dc38f63cfc3c1a23b9f8", "sha256": "d3dae996c94be4084acbaa21f2816d01365d2c0d3335abaafb1cd1513f19af16" }, "downloads": -1, "filename": "Espynoza-0.2.4.tar.gz", "has_sig": false, "md5_digest": "d86e5ac47064dc38f63cfc3c1a23b9f8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 24256, "upload_time": "2018-02-06T16:25:33", "url": "https://files.pythonhosted.org/packages/e3/8b/5e420fb9a24394a8082175701c310bb884c143deee7301b10ecbc96e33ff/Espynoza-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "bfb7ba5b5bdc4d9ffce10885b70f31e2", "sha256": "b59733e965dd513c3867ed570829ba9b10f2d04e35c3b73974877c7e42193b51" }, "downloads": -1, "filename": "Espynoza-0.2.5.tar.gz", "has_sig": false, "md5_digest": "bfb7ba5b5bdc4d9ffce10885b70f31e2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28347, "upload_time": "2018-05-19T16:46:11", "url": "https://files.pythonhosted.org/packages/6a/41/518be20b35a8c886bb6d91f39be8776f17c4cd8718d59e854eacbc0edf90/Espynoza-0.2.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bfb7ba5b5bdc4d9ffce10885b70f31e2", "sha256": "b59733e965dd513c3867ed570829ba9b10f2d04e35c3b73974877c7e42193b51" }, "downloads": -1, "filename": "Espynoza-0.2.5.tar.gz", "has_sig": false, "md5_digest": "bfb7ba5b5bdc4d9ffce10885b70f31e2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28347, "upload_time": "2018-05-19T16:46:11", "url": "https://files.pythonhosted.org/packages/6a/41/518be20b35a8c886bb6d91f39be8776f17c4cd8718d59e854eacbc0edf90/Espynoza-0.2.5.tar.gz" } ] }