Habe da mal was gebastelt - ein Tablett mit Android und der App Tasker, ein Wallplug von Fibaro und ein virtuelles Device in der HC2.
- das VD (Aussehen siehe angehängte Datei “BattMobiles”) enthällt erst mal nur zwei Labels. Eines zum Anzeigen des aktuellen Akkustandes und eins zeigt an wenn das PAD geladen wird. In der primären Schleife wird das ganze dann verarbeitet:
selfId = fibaro:getSelfId()
-- wert der aus ui.label1.value gelesen wird
local wert = 0
-- ab wann soll der Akku geladen werden
local low = 20
-- bis zu welchem Wert soll der Akku geladen werden
local high = 90
-- ID des WallPlugs der das Ladegerät des PAD's schaltet
local plugBad = 314
-- check ob geladen werden muss
-- Inhalt des Label1 lesen
wert = tonumber(fibaro:getValue(selfId, "ui.Label1.value"));
fibaro:debug("Battiestand: "..wert)
-- Akku fast leer?
if wert < low then
-- und WallPlug noch nicht angeschatlet
if (tonumber(fibaro:getValue(plugBad, "value")) == 0 )then
-- Anzeige "wird geladen"
fibaro:call(selfId, "setProperty", "ui.Label2.value", "...laden")
fibaro:call(plugBad, "turnOn")
fibaro:debug("Laden")
end
-- Akku hat Sollstand erreicht
elseif wert >= high then
if (tonumber(fibaro:getValue(plugBad, "value")) == 1 )then
fibaro:call(selfId, "setProperty", "ui.Label2.value", "")
fibaro:call(plugBad, "turnOff")
fibaro:debug("Laden beenden")
end
end
-- setzen des passenden Icons
if wert < 10 then
fibaro:call(selfId, "setProperty", "currentIcon", 1047)
elseif wert < 30 then
fibaro:call(selfId, "setProperty", "currentIcon", 1048)
elseif wert < 50 then
fibaro:call(selfId, "setProperty", "currentIcon", 1049)
elseif wert < 70 then
fibaro:call(selfId, "setProperty", "currentIcon", 1050)
elseif wert < 90 then
fibaro:call(selfId, "setProperty", "currentIcon", 1051)
else
fibaro:call(selfId, "setProperty", "currentIcon", 1052)
end
einen Teil der verwendeten Icons habe ich mal angehängt.
- Tasker auf dem PAD einrichten und einen Task (z.B. “AkkuStand”) erstellen:
Dort ein HTTP GET als Aufgabe anlegen mit folgendem Inhalt:
Server:port = http://<Benutzername>:<Passwort>@<DeineHC2>/api/callAction?deviceID=<DeviceIDdesVirtuellenDevice>&name=setProperty&arg1=ui.Label1.value&arg2=%BATT
dabei bedeuten:
<Benutzername> der Benutzername der auf das VD in der HC2 Zugriff hat und <Passwort> das entsprechende Passwort dazu
<DeineHC2> der Netzwerkname oder die IP Adresse des Fibaro Home Centers
<DeviceIDdesVirtuellenDevice> die ID des oben beschriebenen virtuellen Devices
Das kann man dann schon mal testen in dem man den Task links unten mit dem Pfeilsymbol startet. Dann sollte im VD auch schon der aktuelle Akkustand angezeigt werden
In Tasker dann noch ein Profil anlegen vom Typ Zeit und dort einstellen das von 0:00 bis 23:xx alle (ich habe es auf 30 Minuten) x Minuten der Task AkkuStand aufgerufen wird.