Eine weitere nützliche Feature des Cubietrucks ist die Möglichkeit, einen Akku anzuschliessen. Damit kann man bei einem Stromausfall eine gewisse Zeit überbrücken und ggf. das System sauber herunterzufahren (und bei Bedarf vorher auch bestimmte Aktionen auszuführen). Aber auch bei einer oder anderen Bastelaktion erweist sich oft als sehr praktisch, den Strom mal kurz unterbrechen zu können, ohne vorher alles herunterfahren zu müssen.
Die Installation ist recht einfach. Es wird ein LiPo oder LiIon Akku benötigt, je größer desto besser ;) (Ich habe einen mit 3250 mAh genommen. Damit läuft mein System über 2 Stunden autark, incl. 2,5 Zoll Festplatte.) An den AKku muss ein Kabel mit einem passendem Stecker angelötet werden (gibts günstig "in der Bucht"). Das ganze wird an den Cubietruck angeschlossen (Wichtig: vorher herunterfahren und von der Stromversorgung trennen!).
Vor dem Anschliessen ist es sinnvoll, dem Board die tatsächliche Akkukapazität mitzuteilen. Diese Einstellung sthet dem System in der Datei /sys/class/power_supply/battery/energy_full_design
zur Verfügung. Man kann sie dort jedoch nicht direkt eintragen, sie wird beim Booten durch /boot/script.bin definiert. Die Datei muss nicht genau so heißen, den genauen Namen erfährt man aus /boot/uEnv.ct (kann je nach eingesetzten Betriebsystem(version) etwas anders sein). Der zuständige Eintrag kann z.B. so aussehen: script=/boot/ct-hdmi.bin
. Die Schript-Datei ist jedoch binär. Damit sie bearbeitet werden kann, muss sie vorher mittels bin2fex-Utility in lesbare Form umgesetzt werden und nach der Bearbeitung auch wieder zurück (bin2fex -> script.fex -> edit -> fex2bin -> script.bin). Der anzupassender Parameter heißt pmu_battery_cap
. Die Angaben haben in mAh zu erfolgen.
Folgende Graphik zeigt ca. 1,5 Stunden Laufzeit des Boards auf dem Akku (von 100 auf ca. 40 %) mit anschliessendem Wiederaufladen.
Wenn die Stromunterbrechung zu lange dauern sollte, ist es sinnvoll das System herunterzufahren, bevor der Akku leer wird. Dafür benutze ich folgendes Script (check_usv.sh):
#!/bin/sh
BATPRESENT=`cat /sys/class/power_supply/battery/present`
BATLEVEL=`cat /sys/class/power_supply/battery/capacity`
BATONLINE=`cat /sys/class/power_supply/battery/online`
DATE=`date +"%F_%R"`
if [ $BATPRESENT -eq 0 ]
then
# Batterie nicht vorhanden
exit
fi
if [ $BATONLINE -eq 0 ]
then
# Batterie wird nicht entladen
exit
fi
if [ $BATONLINE -eq 1 ] && [ $BATLEVEL -le 30 ]
then
echo -e "$DATE: Batterieladezustand niedrig: $BATLEVEL" >> /var/log/battery.log
echo -e "$DATE: Cubietruck wird heruntergefahren" >> /var/log/battery.log
halt
exit
fi
Das Script wird per Cront alle 5 Minuten ausgeführt. Dafür ist ein Eintrag am Ende der Crontab (crontab -e
) einzufügen: */5 * * * * sudo /home//check_usv.sh
. Die Script-Datei kann irgendwo liegen, der Pfad in der Crontab muss natürlich stimmen.
WARNUNG: Die Lithium-Akkus (vor allem LiPos) können gefährlich sein und im ungünstigsten Fall sogar Feuer fangen. Betreiben Sie diese nicht in der nähe von brenbaren Materialien und kontrollieren Sie diese von Zeit zu Zeit. Aufgeblähte Akkus müssen sofort vom Strom getrennt und fachgerecht entsorgt werden!
(Direkt auf dem Holzbrett lag mein Akku nur für die Photos. Ansonsten steckt dieser in einer Blechbox).
Kommentare (5)
Im FHEM Forum hatte keiner dies Idee
Die Plots sind Standard-FHEM-Dateien:
http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/www/gplot/SM_power_ac.gplot
http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/www/gplot/SM_power_battery.gplot
Hast Du ei Attribut event-on-update-reading? Wenn ja, sind da auch die entsprechenden Readings aufgeführt?
Meine Einstellung:
attr sysmon event-on-update-reading
cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,fs_.*,stat_cpu_percent,power_ac_stat,power_battery_stat,cpu._freq
kannst Du bitte auch mal die .gplot files posten. Ich bekomme keine Anzeige hin.
Meinst Du die Plots?
Die Daten kommen von SYSMON-Modul (s. http://fhem.de/commandref_DE.html#SYSMON), Plots sind so definiert (steht eigentlich auch im Commandref).
# Anzeige Stromversorgung AC
define wl_sysmon_power_ac SVG FileLog_sysmon:SM_power_ac:CURRENT
attr wl_sysmon_power_ac group system
attr wl_sysmon_power_ac label "Stromversorgung (ac) Spannung: $data{min1} - $data{max1} V, Strom: $data{min2} - $data{max2} mA"
attr wl_sysmon_power_ac nrAxis 2,1
attr wl_sysmon_power_ac room Technik
# Anzeige Stromversorgung Battery
define wl_sysmon_power_bat SVG FileLog_sysmon:SM_power_battery:CURRENT
attr wl_sysmon_power_bat group system
attr wl_sysmon_power_bat label "Stromversorgung (bat) Spannung: $data{min1} - $data{max1} V, Strom: $data{min2} - $data{max2} mA"
attr wl_sysmon_power_bat nrAxis 2,2
attr wl_sysmon_power_bat room Technik
Danke