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.

 

Cubietruck Akku 02 k

 

Cubietruck Akku 01 k

 

Folgende Graphik zeigt ca. 1,5 Stunden Laufzeit des Boards auf dem Akku (von 100 auf ca. 40 %) mit anschliessendem Wiederaufladen.

Cubietruck Akku Plot 01

 

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)

Cancel or

  • Klaus
    Danke für Deine Hilfe, es war der event-on-update-reading für die power*
    Im FHEM Forum hatte keiner dies Idee
  • Alexander Schulz
    Hi!
    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
  • Klaus
    Hallo,

    kannst Du bitte auch mal die .gplot files posten. Ich bekomme keine Anzeige hin.
  • Alexander Schulz
    @Klaus
    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
  • Klaus
    Kannst Du mal Deine Auswertung der Werte in FHEM posten ?
    Danke