Oh yeah, das ist ja gruselig...
Eigentlich sollte man die Jungs da bei go-e fragen, ob die nicht eine etwas weniger gesprächige firmware liefern können, alle 5 Sekunden die WiFi-SSID, das braucht m.E. kein Mensch... Sowas will man doch nur wissen, wenn es sich ändert, und meinetwegen beim Starten der Box oder was auch immer das ist

.
Na ja, wie dem auch sei, anbei der Versuch, das, was json2NameValue() mit Hilfe von jsonMap macht, sowie einen Teil der (bisherigen) userReadings in Code zu verlagern - das kommt "ganz normal" in das Modulverzeichnis (typ. opt/fhem/FHEM).
Kann aber sein, dass da ggf. eine ganze Anzahl Denkfehler drin sind, aber zumindest einen kurzen Test hat es überstanden, das passende Device sieht so aus:
defmod go_echarger MQTT2_DEVICE go-echarger
attr go_echarger IODev m2server
attr go_echarger readingList go-eCharger/002227/status:.* { FHEM::attrT_go_e_Utils::j2rN_extended("go_echarger",$EVENT) }
attr go_echarger room MQTT2_DEVICE
Tendenziell würde ich jetzt ein weiteres Reading anlegen, das den Zeitpunkt der letzten vollständigen Aktualisierung enthält und erst mal alle "Neben-Readings" verwerfen, die jünger sind wie z.B. eine Stunde. Nach Ablauf der Zeit dann einen vollst. Check, ob es Änderungen gab und alles verwerfen, was nicht geändert war (oder von vorneherein gar keinen Wert enthält...) und das "Zeit-Reading" neu setzen.
Für die relativen Vergleiche der Hauptreadings sind ein paar Funktionen vorbereitet, aber die eigentliche Prüfschleife dazu müßte man erst noch bauen. Vielleicht findet sich auch ein Mitstreiter dafür, aus der Ferne ist das nicht so einfach, und über einige interne Abhängigkeiten und Effizienzfragen müßte man auch noch brüten, und die commandref überlasse ich dann definitiv euch...