Plugwise Smile P1 – LuCI unlocken (uhttpd)

openwrt luci logo

Wat is LuCI?
De eerste reden voor dit project was het ontbreken van een vrije, schone, uitbreidbaar en gemakkelijk te onderhouden web user interface voor embedded apparaten. Terwijl de meeste vergelijkbare configuratie interfaces maken veel gebruik van de Shell-scripting taal LUCI maakt gebruik van de Lua-programmeertaal en splitst de interface in logische onderdelen zoals modellen en opvattingen, maakt gebruik van object-georiënteerde bibliotheken en templates. Dat zorgt voor een hogere performance, kleinere grootte van de installatie, sneller runtimes en wat nog belangrijker is: een betere onderhoudbaarheid.

LuCi zit standaard ingebakken in Openwrt en is dus een GUI om de “uci” configuratie.

LuCI unlocken?
Zoals de smile P1 standaard is ingesteld, is deze interface niet te bereiken (deze luistert op poort “80”), terwijl de standaard “smile” HTML pagina toch te zien is via de webbrowser…ik vermoed dat de NGINX server deze poort overruled…

Om poort “80” van LuCI te veranderen in “8080”, volg je deze commando’s:
1) uci show uhttpd (dit laat de configuratie instellingen zien van “uhttpd” (bestand = “/etc/config/uhttpd”)
Je ziet dat de uhttpd “luister poort” staat ingesteld op “80”.
2) uci set uhttpd.main.listen_http=0.0.0.0:8080 (daarmee stel je de poort in op 8080)
3) uci commit uhttpd (de opdracht om het configuratiebestand “uhttpd” te verwerken, wijzigingen die je aanbrengt worden namelijk eerst tijdelijk opgeslagen)
4) /etc/init.d/uhttpd restart (de opdracht om uhttp opnieuw te initialiseren, op deze manier is er geen reboot nodig)

Meer info over uci is hier te vinden

smile ssh uhttpd poort

Om LuCI te benaderen, open je een webbrowser en tik het IP van de smile in gevolgd door “:8080”, log in met dezelfde naam en wachtwoord gegevens die je gebruikt met de SSH verbinding!

openwrt luci inloggen

Na het inloggen kom je in LuCI, maar het geeft op sommige pagina’s foutmeldingen etc, mijn gevoel zegt dat LuCI of de Smile niet goed op elkaar zijn afgestemd…jammer…

Een paar screens (smile v1.1.9):

openwrt luci interface 01

openwrt luci interface 02

openwrt luci interface 03


Firmware 1.2.8+

Plugwise heeft in firmware v1.2.8, UHTTPD verwijderd (/etc/init.d/uhttpd), luci staat er nog wel op, helaas is de NGINX webserver niet gecompiled met CGI (welke luci nodig heeft) en kan niet met CGI scripts overweg.

plugwise smile v1.2.8 geen uhttpd

Je kan zien waarmee NGINX gecompileerd is met het commando hieronder:
Linux commando: nginx -V

Hiertussen zie je staan: –without-http_fastcgi_module, deze versie van NGINX heeft geen ondersteuning voor CGI.

Welke poort(en) is/zijn bezet?
Je kan met het volgende commando zien welke poorten van het netwerk in gebruik zijn:
Linux commando: netstat -nat

Hier zie je:
– Poort 22: SSH
– Poort 80: HTTP
In dit geval is poort 8080 nog niet gebruikt, deze kunnen we dus gebruiken voor uhttpd!

Voor de v1.2.8+ versie kun je weer UHTTPD installeren, dit doe je met “opkg”, meer info hier.
Eerst moet je de “download lijst” bijwerken, zo krijg je valide paketten binnen met de recentste versies!
Linux commando: opkg update

Daarna kunnen we UHTTPD weer installeren.
Linux commando: opkg install uhttpd

Na de installatie kun je de stappen hieborven bij v1.1.9 hier weer vervolgen.

Als je nu weer kijkt met: netstat -nat , dan zie je dat er nu ook op poort 8080 geluisterd wordt!

Hier zie je:
– Poort 22: SSH
– Poort 80: HTTP
– Poort 8080: HTTP

In deze interface zijn vele verbeteringen te zien:

luci smile 1.2.8 01

luci smile 1.2.8 02

uhttpd bij het opstarten
uhttpd wordt na installatie niet standaard opgestart als de smile opnieuw gestart wordt (reboot), dit is met een Linux commando in te stellen, maar ook heel eenvoudig in luci.
In luci ga naar “system” –> “startup” en zet “uhttpd” op “enabled” bij het opstarten:

luci uhttpd opstarten