Shelly Commen breiter nutzbar machen

Hallo zusammen,

ich habe die letzten zwei Nachmittage damit verbracht, einen (A)SymmetriccMeter auf Basis eines Shelly EM3 zu implementieren. Das hat als mein erstes OpenEms Projekt auch gut funktioniert. Jetzt habe ich allerdings ein Problem, das ich hier gerne diskutieren würde.

Ich habe mein device unter io.openems.meter.shelly.EM3 angelegt, weil ich der Ansicht war, dass es unter io.shelly nichts zu suchen hat.
Da ich aber gerne die Klasse ShellyApi aus io.shelly.common benutzen würde, habe ich die als export festgelegt, was für mein device (von in paar warnings abgesehen :wink: ) auch gut funktioniert hat. So tauchen aber leider die alten Shelly devices nicht mehr in der Configuration Web console auf und sind daher nicht mehr nutzbar (warum auch immer). Da meine jetzige Lösung aber sowieso etwas unsauber ist, sehe ich zwei Möglichkeiten, das Problem zu beheben:

  1. Einen generischeren Shelly Zweig zu schaffen, also etwa io.openems.shelly, in dem sich dann common und alle Shelly devices befinden
  2. Shelly.common herauszulösen und als eigene library laufen lassen. Dann können die devices in unterschiedlichen Gruppen liegen.

Ich habe versucht über refactor den ganzen Shelly Bereich umzubenennen (Lösung 1), aber damit habe ich die Build-Struktur zerstört. Leider kenne ich mich mit OSGi nicht aus, so dass ich keine Ahnung habe, was ich tun muss, um ein Projekt umzubenennen.

Was schlagt Ihr vor, wie ich damit umgehen soll ? Ich halte Lösung 1 für gut, brächte dann aber eine Anleitung, wie das zu erreichen ist. Insbesondere frage ich mich natürlich, ob man die id der bestehenden devices beibehalten kann, oder ob die dann umbenannt werden müssten.

Sorry für den langen post und danke fürs bis hierher lesen :slight_smile:

Ks4Z