HUEDevice ist wohl noch nicht drin...
...also in dem was auf GitHub liegt.
Ob es irgendwo im Thread-Verlauf schon (mal) ergänzt wurde: keine Ahnung

Du könntest folgendes versuchen:
##############################################
# ZWave Devices
##############################################
elsif($BatteryType[0] eq "battery" && InternalVal($Device, "TYPE", "undef") eq "ZWave")
{
if(ReadingsVal($Device, "battery", "na") eq "low")
{
$ActBatLevel = 0;
}
else
{
$ActBatLevel = ReadingsNum($Device, "battery", "0");
}
durch das hier zu ersetzen/ergänzen:
##############################################
# ZWave Devices
##############################################
elsif($BatteryType[0] eq "battery" && (InternalVal($Device, "TYPE", "undef") eq "ZWave" || InternalVal($Device, "TYPE", "undef") eq "HUEDevice"))
Der Rest sollte ja ähnlich der ZWave sein, so ich das dem list richtig entnommen habe.
Es kann halt höchstens sein, dass die für ZWave angenommenen "Low-Level" (und damit Nachrichtenversand) halt nicht für die ZigBee Geräte passen.
Dann müsste man den ganzen Zweig kopieren und eben als neuen Typ anfügen...
Aber das mit dem Level bei Geräten, die Prozent o.ä. melden (und kein low etc.) ist eh schwierig festzulegen.
Für ZWave habe ich das nur "empirisch" mit meinen Rauchmeldern/"Augen" ermittelt...
Poste doch mal ein list der Homematic-Devices.
EDIT: bzgl. Alias statt Name. Evtl. hier
###############################
# Here you can change the variables to fit your installation.
#
my $text_now = "Die Batterien von $Device müssen JETZT gewechselt werden!"; #Text for changing battery now
my $text_soon = "Die Batterien von $Device sollten bald gewechselt werden!"; #Text for changing battery soon
mal das einbauen:
###############################
# Here you can change the variables to fit your installation.
#
my $SendName = $Device;
if(AttrVal($Device, "alias", "n.a.") ne "n.a.")
{
$SendName = AttrVal($Device, "alias", "n.a.");
}
my $text_now = "Die Batterien von $SendName müssen JETZT gewechselt werden!"; #Text for changing battery now
my $text_soon = "Die Batterien von $SendName sollten bald gewechselt werden!"; #Text for changing battery soon
Bei ReadingsGroup gibt es das Mapping-Attribut, vielleicht hilft das. Evtl. brauchst du aber da auch eine Sub, die eben schaut, ob es einen alias gibt und dann den "setzt" und ansonsten Name (oder was eben aktuell in der RG steht) zurück gibt...
Gruß, Joachim