WebIOPi upcoming release / Question for the community

2,600 views
Skip to first unread message

Eric PTAK

unread,
Nov 5, 2015, 6:03:12 PM11/5/15
to web...@googlegroups.com
Hey Guys,

So I'm working hard on next WebIOPi release, (that's not a joke :D) But I have some question for you regarding the evolution of Raspbian and WebIOPi use :

1) Currently WebIOPi try to load I2C and SPI modules when necessary. With the update of raspi-config, it's more easy to enable I2C and SPI, and WebIOPi currently fails loading modules on RPi2.
Can I safely remove the module loading system or do I need to improve it ?

2) Javascript/HTML libraries allows to easily make simple UI buttons that are connected to a GPIO, but it's hard to make a pretty UI, and the library is actually very limited. So it's best to rely on the REST API then use jQuery/Bootstrap directly.
Can I safely remove the UI library (createButtons...) then improve and expose the underlying Javascript library to make REST calls (digitalWrite...) ?

3) WebIOPi Server can be currently used in several ways. You can start it from command line or you can integrate it in your own Python code. I kept the second for retro-compatibility but actually lead to some issues.
Does any one already instantiated WebIOPi Server in Python code or can I strip that ? You will still be able to integrate your own code in WebIOPi.

4) Any suggestion ? :)


-- Eric/trouch

Andreas Riegg

unread,
Nov 6, 2015, 4:50:02 AM11/6/15
to WebIOPi
Hi Eric,

regarding 1):

It would make WebIOPi a bit more robust if it has no dependency on loading some specific kernel driver modules by its own. Additionally, if it may be ported one day to another hardware the loading of the I2C and SPI modules directly will at minimum make changes to the module names necessary as the RPi ones are specific to the BCM2708 processor. So for I2C and SPI it would rely on the "comfort" that the platform provides to enable them. Maybe someone can provide up-to-date information in the installation manual to have this information ready to use for everybody without the need to google that. Changing/updating documentation is much easier than changing code :-)

The only "problem" that I see would be the 1-wire stuff as in this case also additional kernel modules have to be loaded (and WebIOPi also tries to load them if they miss). I don't think raspi-config provides support for this at the moment, but this also could be solved with additional documentation.

regarding 2):

I agree with removing this as we will see in the upcoming future a lot of tools that will allow to build web UI's more comfortably using some exposed REST calls or libraries. The only thing I would like to keep is some kind of generic/default Device Monitor like the current one as this helps a lot in testing and debugging :-)

regarding 3):

I use WebIOPi only via the command line.

Cheers,
Andreas

Eric PTAK

unread,
Nov 6, 2015, 11:08:14 AM11/6/15
to web...@googlegroups.com
Thanks, you confirm my thoughts ;)

--
You received this message because you are subscribed to the Google Groups "WebIOPi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to webiopi+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Toshi Bass

unread,
Nov 6, 2015, 2:50:15 PM11/6/15
to WebIOPi
Eric

Here's my perspective:

1)  RPI2 works fine for me, perhaps its because I modified raspi config, in that case I guess you don't need the module loading system.

2)  When your a complete noob, Webiopi is very difficult to get you head around (just look at the posts from noobs asking for help,) button = webiopi().createGPIOButton(25, "LED1"); is probably the easiest concept to get your head around, if your going to strip that away then it has to be replaced with something that people can easily understand, or basically they will look for alternatives, 2 to 3 years ago WebIOPi was best in its class, as a noob you needed plenty of time and patience to understand what the hell was going on and the poor documentation didn't help one bit, but there wasn't any reasonable alternatives. Now things are different take a look at blynk for one example out of many, you can build a UI in minutes and get instant results switching GPIO and importing sensor data. I don't know what you have planned for this impending release, but if you want WebIOPi to continue to be "in the running" then for sure this new release needs to be something pretty cool or I think the user base will diminish rapidly.

3) I don't load Webiopi server from Python. 


Toshi

Eric PTAK

unread,
Nov 6, 2015, 2:57:49 PM11/6/15
to web...@googlegroups.com
Thanks Toshi !

Per 2, for sure "we" have better plan (see the other mail you should have received as well as Andreas ;-))

Michel Lawaty

unread,
Nov 9, 2015, 8:13:47 AM11/9/15
to WebIOPi
I would like to add something to point 4) 

Thank you for this framework Eric, and thank you Andreas and Toshi for your extensive support in the forum and by writing drivers...
Hope that's ok for you guys.
I am using webiopi heavily for test automation and I am absolutely dependent on the REST support. So here some wishes regarding REST Interface, drivers and project:

  • Maintaining the source code on a platform on github, so pull requests are possible and more people could actively develop the framework
  • Integrating the drivers which are in the forum threads like MCP3424 and AD52xx (by Andreas Riegg) into the next release
  • More documentation
  • Wildcards for REST API for self defined URI routes e.g.:
[ROUTES]
/buttons/play =  /devices/gpio3/0/value
/buttons/stop =  /devices/gpio3/2/value
...


Would be great to have the option to use a wildcard for querying the resource e.g.:
http://webiopi:8080/buttons/*

e
.g.
--> {"play":"GPIO", "stop":"GPIO"}


Eric PTAK

unread,
Nov 9, 2015, 12:08:57 PM11/9/15
to web...@googlegroups.com
Thanks for feedback Michel !
I agree that REST api needs to be improved.
About github, my experience with Google Code and SourceForge tells me to not rely on that kind of platforms anymore.
WebIOPi downloads file have always been a sources tarball, and I don't want to care with pull request.
WebIOPi is open, so you can modify it, check it...
Providing patchs remains the best option for me at the moment. Pull request will not ease or speed up process.

--
Message has been deleted

Michel Lawaty

unread,
Nov 10, 2015, 8:01:22 AM11/10/15
to WebIOPi
Hi Eric,
thanks for your answer. But I still don't see, how you manage and organize all these different patches flying around in the forum?
Wouldn't it be great to have a structured list with dedicated authors, diff views, comments etc. ?
Even issues could be directly linked to pull requests.
But I totally respect your opinion, I just thought this would be much more easier.
I found also many forks and copies of webiopi in the internet...and somehow it would be great to focus all development power on one project. 
This would speed up the development and more and more chips would be supported.

Just my thoughts. Thanks

Michel

Adam S

unread,
Nov 10, 2015, 11:15:10 AM11/10/15
to WebIOPi
1) Everything here seems to be working for me haha so not sure what you have in mind.  I'm sure most people (including me) would like to see modules like I2C and SPI remain. 

2) I agree with what Toshi said.  Currently you offer limited ez mode with LOTS of customization potential.  Some other packages offer full drag and drop EZ mode but very little past what is available.  If you can somehow squeeze in some more ez mode but keep your customization level the same I think you will be in a good place.

3) I've never used WebIOPI this way, so it would not affect me at all.

4) There are a few regulars here that often solve issues for people coming asking for help, but I think a more regular voice from devs will get the community growing.  Another suggestion is more frequent updates.  For instance the Raspberry Pi 2 is still not officially supported.  For a free product I have no complaints, and every time I set out to do something I have been able to achieve it with WebIOPI.

Eric PTAK

unread,
Nov 10, 2015, 5:51:45 PM11/10/15
to web...@googlegroups.com
Michel, I admit it's difficult to track all patches and proposal.
I agree that GIThub could help for that. But the integration in official distro still requires a lot of work, and GIThub will not help for that.
Let me think more about that...

Adam, thanks for your feedback. Per 4, I'm back now ;)
But I totally trust in Toshi, Andreas, and some other guys to help people here, so I can focus on improving the product.
I was tired at some point, and disappointed with some things. It was necessary for me to get off a while...
Now that I have credits for the IoT/Makers/DIY communities, things will changes.


--
Message has been deleted

Redstone Wahn

unread,
Jan 2, 2016, 7:33:14 PM1/2/16
to WebIOPi
Hello there!

2) I'm a noob/newbie in javascript/ raspberrypi/ webiopi. Well, I wanted to embed the current state (like high/low or on/off) of the gpio's #17, 18, 22, 23 on on a local .html website. That website is my browser home page (Raspberry Pi local IP in LAN). The documentation doesn't say how to display a gpio state (read-only, not a button) and you can't use the library on a external website (no configurable ip)...

I think there should be an easy way to just display the state of a gpio of the ip raspberrypi, port 8000, gpio 23 with an update rate of 1500ms. There are apps for android that do that (https://play.google.com/store/apps/details?id=appinventor.ai_VE7GVS.RPI_Automation_Pro). It would be nice as a finished javascript code snippet.
(not native speaker, btw makes it even harder to get my head around webiopi)


Am Freitag, 6. November 2015 00:03:12 UTC+1 schrieb trouch:

UBogdan

unread,
Feb 7, 2016, 9:42:43 AM2/7/16
to WebIOPi
Hi,

Regarding point 2, as a webiopi noob, I can confirm that removing the Javascript libraries right now would totally kill my project. It might be a good idea to create an "Update the looks of your web server using jQuery/Bootstrap" tutorial, and maybe remove them when the community is used to this.

Besides, for some applications you might need an easy-to-build UI instead of a pretty one.

Odys Lam

unread,
Mar 6, 2016, 11:37:26 AM3/6/16
to WebIOPi
Just to be clear, by removing the js library, will i be able to call functions from my python script?
Because what i love about webiopi is that I can create whatever i want with python, as it's really easy and straightforward thanks to tons of libraries and then i simply call the right function via js. I think that's the most important thing about webiopi, it combines the robust and easy to use python libraries with a web interface that depends solely on the user and his js knowledge (mine is pretty limited, but it does the job)

Cheers ! 

Carlos E. Hernandez I.

unread,
Mar 26, 2016, 5:49:46 PM3/26/16
to WebIOPi
Enable Interrupts :D

Adam S

unread,
Mar 28, 2016, 8:29:06 AM3/28/16
to WebIOPi
WebIOPi is pretty much dead.  Eric is now working on a project called Cayenne from MyDevices which uses WebIOPi as the back end.  I heard rumors a while back on here that there will be a WebIOPi update released but I wouldn't hold my breath, hasn't been any new information on WebIOPi for a few months now.  I'll see if I can get some info for you.

Richard de Ree

unread,
Apr 19, 2016, 12:46:10 AM4/19/16
to WebIOPi


Op vrijdag 6 november 2015 00:03:12 UTC+1 schreef trouch:

Richard de Ree

unread,
Apr 19, 2016, 12:54:34 AM4/19/16
to WebIOPi
1) I've no idea what ic2/spi is 
2)  I think for the most people JS library is the most important thing to work with webiopi.  When you change that, the very most people will stick with the older versions because a new version seems not to work anymore. (or are you intend to keep it keep it somehow compatible?)   
I know how hard (and boring) it is to make documentation, but the best improvement webiopi can have is a better documentation. 
3) no

p.s.
thank you for your effort to make and maintain this project 


Op vrijdag 6 november 2015 00:03:12 UTC+1 schreef trouch:
Hey Guys,

richdyer2000

unread,
May 2, 2016, 9:50:31 AM5/2/16
to WebIOPi
Hi Eric,

For 2)

I use Python for all the hard work, standard HTML/CSS and the absolute minimum of the JS library required to pass variables between Python and HTML elements - see attached. 

My experience was that the libraries were great for getting started and initial testing. From what I've seen on google searches, it looks like a lot of people are happy sticking with the libraries for their project. However, without HTML and JS experience, I found building a custom interface was very difficult. Due to a lack of alternative examples, the custom libraries even exacerbated the problem. For example, this.....

$("#inputOn").val(hours[0]);

....which duplicates the following standard Java Script....

document.getElementById("inputOn").value = hours[0];

....actually made it harder for me to work out how to set the status of a check box....

document.getElementById("AutoShutter").checked = true;

I wouldn't necessarily get rid of the libraries though. If you offer some alternative examples where they are used to an absolute minimum, then I think it'd help any noobs wanting to do their own custom interface. 

Cheers

Rich 
index.html
ShutterScript.py

Phillip Wagi

unread,
May 13, 2016, 12:32:15 AM5/13/16
to WebIOPi
Hello trouch

I see people have same questions or having same problem which they send in this forum.

Would it be possible to setup a small forum software on ur regular homepage?

It would be more friendly imo

regards

Jim Julian

unread,
May 13, 2016, 2:07:32 PM5/13/16
to WebIOPi
Hello,

   I've been trying to get we4biopi going but I hhave had the same issue as the guy on the issues page.
Plus the link to google docs is dead. The index.html shows no data on the gpio. In the issues page, a replacement file is given. The revised version of the file gpio.php is not accessible from the issues page. Has the issue been resolved or do I need the replacement file?

Thank you,
Jim Julian

On Thursday, November 5, 2015 at 6:03:12 PM UTC-5, trouch wrote:
Message has been deleted

Phillip Wagi

unread,
May 14, 2016, 11:50:12 PM5/14/16
to WebIOPi
i would like a cleaner tutorial. I use webiopi because i am noob and i like it it works without reloading page ^^

I would like to have more functions easy to use for people for example: turn a servo in specific direction and with specific speed while a button is pressed and things like that

I love it because it allows me to do something where i gived it up before i know webiopi. But the problem is the tutorials does not explain much about the background and what is doing what. I still have no idea about the background because nowhere is a good explain for people who are new to all this.

i would also love to have a better structured website with integrated forum which has his own structure with childforums etc.

as many people say, i think it would be the best to make it more and more easier and on the other side keep the customizations abilities

regards

Topodoco

unread,
May 20, 2016, 4:48:34 PM5/20/16
to WebIOPi
Salut Eric, et merci pour ton travail !
Je débute, mais Webiopi m'a déjà bien simplifié mon projet.
Pour la question 1, je ne m'en sert pas (pas encore ??) mais oui l'outil fournit avec la dernière version de Raspbian semble très complet et simple d'utilisation.

2) Pour mon interface Web, j'ai créé quelques boutons me permettant de piloter les GPIO, c'est assez simple, et sympa. Par contre, il est vrai que j'aurai aimé créer des boutons avec des images, un bouton marche vert, un arrêt rouge... enfin ça c'était dans l'idée de base du projet... Donc oui il y a des idées d'améliorations, de la à supprimer les fonctions actuelles... ça risque de forcer les utilisateurs à réécrire leur interface Web...

3) Je n'ai vraiment pas assez d'expérience pour répondre... je ne comprend même pas de quoi tu parles exactement... donc je vais laisser les autres, plus expérimentés donner leur avis.

4) Bah comme ça, des idées oui, mais peut-être simplement que je n'ai pas trouvé quelque chose qui existe déjà... La possibilité de gérer des images sur l'interface WEB (un bouton, plutôt qu'un simple texte ?), une aide un peu plus simple à trouver, plus d'exemples, des guides pour débutants (il y a un guide Webiopi mis à part les quelques exemples du site officiel ?), Une version française, c'est sur, je ne serais pas contre... mais l'anglaise est sans doute plus simple pour toi... plus internationale...

Dans tous les cas, merci encore pour ton travail, qui aide beaucoup !

Ralf

unread,
Nov 26, 2016, 6:04:41 PM11/26/16
to WebIOPi
Hello Eric,

I started a project to control my jalousies by the RasPi using WebIOPi and the I2C interface.
To use the RasPi 7 inch Touchscreen together with I2C, I had to go from RasPi1 (revB) to RasPi2 or RasPi3.
With the change to these newer variants, I encountered big problems with WebIOPi, as several patches were required to be installed to get WebIOPi installed ("sudo ./setup.sh) without errors.
After solving that, currently with RasPi3 and Raspian Jessie, my script works when started within the command line interface, then the "webiopi.loop()" is called.
But as soon as I enable the WebIOPi start during boot ("sudo systemctl enable webiopi" or "sudo update-rc.d webiopi defaults" or inserting the command line string into "etc/rc.local",
the "webiopi.loop()" is only called once during start ?!?
So my wish for a new release would be to create an update of WebIOPi 0.7.1 with main focus to support RasPi2 and RasPi3 and ensure proper function also with Raspian Jessie,
to avoid any patch would be necessary to install or to run properly.

Robin Chang

unread,
Dec 24, 2016, 5:15:48 PM12/24/16
to WebIOPi
Ralf, trouch no longer maintains the WebIOPi framework - he's now working at a company making a cloud-only IoT framework. However, Thor Watanabe has forked WebIOPi and made it compatible with the RPi 2 & 3, which you can get from here.

As for the webiopi.loop() only running once, I've experienced this issue myself. Try disabling COAP and multicast in /etc/webiopi/config, as WebIOPi's implementation of COAP apparently doesn't work on the newer Pis, and interferes with the WebIOPi background service. I'll ask Thor to see if he could look into this in his next release.

Le Kev

unread,
May 18, 2017, 2:10:27 PM5/18/17
to WebIOPi
Thank you for the info, Robin

Alexandr Geller

unread,
Mar 23, 2018, 9:17:58 AM3/23/18
to WebIOPi
hi.
it will be very helpful if installation script  will check the raspberry version an if necessary apply the patch.
i found this scripts
https://www.raspberrypi-spy.co.uk/2012/09/getting-your-raspberry-pi-revision-number-using-python/
https://www.raspberrypi-spy.co.uk/2012/09/checking-your-raspberry-pi-board-version/

because i was fighting two days until i realize i need apply patch , just fogote i have the B version.
p.s.thank for you work

Reply all
Reply to author
Forward
0 new messages