diff --git a/package/gluon-announce/Makefile b/package/gluon-announce/Makefile
index 81c35dfc00aabe891d9079f08718d34b00fd415d..3f62c88950672c3dc438efec6ffb392e07b099ed 100644
--- a/package/gluon-announce/Makefile
+++ b/package/gluon-announce/Makefile
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/gluon-announce
   SECTION:=gluon
   CATEGORY:=Gluon
-  DEPENDS:=+gluon-core +luci-lib-json +ethtool
+  DEPENDS:=+gluon-core +luci-lib-json +lua-ethtool-stats
   TITLE:=Lua scripts announcing various information
 endef
 
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/announce/statistics.d/traffic b/package/gluon-mesh-batman-adv/files/lib/gluon/announce/statistics.d/traffic
index 378125e5e07d60a5126f84a6191ef5bfcb455b06..01f6b4abc0795e79ba81050ebe88f51d0e277a93 100644
--- a/package/gluon-mesh-batman-adv/files/lib/gluon/announce/statistics.d/traffic
+++ b/package/gluon-mesh-batman-adv/files/lib/gluon/announce/statistics.d/traffic
@@ -1,9 +1,6 @@
-local ethtool = util.exec('ethtool -S bat0')
+local ethtool = require 'ethtool_stats'
 
-local fields = {}
-for k, v in ethtool:gmatch('([%a_]+): ([0-9]+)') do
-	fields[k] = tonumber(v)
-end
+local fields = ethtool.interface_stats('bat0')
 
 local traffic = {}
 for _, class in ipairs({'rx', 'tx', 'forward', 'mgmt_rx', 'mgmt_tx'}) do