Open Source project that provides a simple and lightweight python framework for Internet of Things.
This project will need a Embedded Linux hardware with 1-n cores and at least 256MB RAM for deploy.
Open Source framework that provides:
- RF sensor management (TODO) - Waiting sensors arrival, expected: early September.
- Bluetooth devices management/interface (TODO)
- Network devices discovery (SSDP & bluetooth - On going) - Blocked on Bluetooth, need to buy device from US (Expected: Arrival early September)
- Messaging & Streaming (0MQ Based).
- IP Camera interface (TODO)
- REST API for remote management (On going)
- AngularJS + ionic Web GUI (TODO)
- Planning to use chromium runtime (kiosk) to provide the Web GUI via HDMI
Aimed python runtime: PyPy 2.7.x /cPython 2.7.x
If you want to join this project or just give some feedbacks, be welcome to get in touch!
#SSDP Discovery
Network discovery with SSDP is ready for use! (First release)
(iot)adminuser@linux:~/github_projects/iot/simple-iot-framework/protocols> python
Python 2.7.8 (default, Sep 30 2014, 15:34:38) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from protocols.discovery import SSDP
>>> d = SSDP(searchTarget='ssdp:all', maxWaitTime=3, upnp=1.0, verbose=True)
[06/30 15:10:51] SSDP Client INFO : Sending data for target 239.255.255.250:1900:
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
ST: ssdp:all
MX: 3
>>> d.start()
[06/30 15:11:03] SSDP Client WARNING : Error on connection: timed out
[06/30 15:11:03] SSDP Client INFO : Search done
>>> d.result
[<SSDPResponseParser(http://192.168.1.202:2869/upnphost/udhisapi.dll?content=uuid:30c0fe1b-528d-4870-a0c0-73dbc2c14a10, urn:dmc-samsung-com:
device:SyncServer:1, uuid:30c0fe1b-528d-4870-a0c0-73dbc2c14a10::urn:dmc-samsung-com:device:SyncServer:1, Microsoft-Windows-NT/5.1 UPnP/1.0 U
PnP-Device-Host/1.0, 3200, "http://schemas.upnp.org/upnp/1/0/"; ns=01)>]
>>> d.result.responses[0].st
'urn:dmc-samsung-com:device:SyncServer:1'
>>> d.result.responses[0].usn
'uuid:30c0fe1b-528d-4870-a0c0-73dbc2c14a10::urn:dmc-samsung-com:device:SyncServer:1'
>>> d.result.responses[0].server
'Microsoft-Windows-NT/5.1 UPnP/1.0 UPnP-Device-Host/1.0'
>>> d.result.responses[0].location
'http://192.168.1.202:2869/upnphost/udhisapi.dll?content=uuid:30c0fe1b-528d-4870-a0c0-73dbc2c14a10'
>>> d.result.serialize()
{"responses":[{"location":"http://192.168.1.202:2869/upnphost/udhisapi.dll?content=uuid:30c0fe1b-528d-4870-a0c0-73dbc2c14a10",
"server":"Microsoft-Windows-NT/5.1 UPnP/1.0 UPnP-Device-Host/1.0",
"st":"urn:dmc-samsung-com:device:SyncServer:1",
"usn":"uuid:30c0fe1b-528d-4870-a0c0-73dbc2c14a10::urn:dmc-samsung-com:device:SyncServer:1"}]}