So, kleines Update dazu.
Nachdem hier in Dortmund das Autoupdate zugeschlagen hat und die Scripte (dank neuer Gluon-Version) nicht mehr funktionieren, habe ich ein wenig gebastelt und eine bessere Lösung gebaut.
Zunächst benötigt man wie oben angegeben die Pakete. Diesmal die folgenden:
opkg update
opkg install kmod-i2c-core kmod-i2c-gpio kmod-i2c-gpio-custom kmod-hwmon-sht21
Die werden wie oben angegeben mit
insmod i2c-gpio-custom bus0=0,8,9
echo sht21 0x40 > /sys/class/i2c-dev/i2c-0/device/new_device
geladen. Ich habe die beiden Zeilen in die /etc/rc.local geschrieben, damit die immer beim Start des Routers geladen werden.
Nach dem zweiten Kommando gibt es einen neuen Ordner: /sys/devices/platform/i2c-gpio.0/i2c-0/0-0040/hwmon/hwmon0
In diesem gibt es die beiden dateien „temp1_input“ und „humidity1_input“, in welchen die Temperatur in °C / 1000 und die relative Feuchte in %RH/1000 stehen. Also keine Umrechnerei mehr.
Dann habe ich mich mit LUA rumgeschlagen, um ein script zu bauen, welches eine Website erstellt, wo die beiden Werte drauf stehen.
#!/usr/bin/lua
local function main()
print("Content-Type: text/html")
print("")
print("<!DOCTYPE html>")
io.input('/sys/devices/platform/i2c-gpio.0/i2c-0/0-0040/hwmon/hwmon0/temp1_input')
temp = io.read()
print("<html><body>")
print(temp/1000 .. "C<br>")
io.input('/sys/devices/platform/i2c-gpio.0/i2c-0/0-0040/hwmon/hwmon0/humidity1_input')
hum = io.read()
print(hum/1000 .. " %RH<br>")
print("</html></body>")
end
main()
Das Script habe als temp.lua ich in /lib/gluon/status-page/www/cgi-bin/ gelegt und kann es nun mit http://freifunk/cgi-bin/temp.lua aufrufen und sehe dann dort wie gehabt die Angaben.