wir möchten gerne das Konzept eines “Hardware Abstraction Layers (HAL)” für OpenEMS einführen.
Dieser Post soll eine Anregung zur Diskussion sein, also Eure Vorschläge oder Fragen sind gerne willkommen!
Im Forum habe ich dazu bereits verschiedene Ideen und Ansätze gefunden, u. a. auch von @coolfire, @p.wimmer und @mishbieg.
Unten verlinke ich nochmal die verschiedene Beiträge zum Thema.
Das Ziel der Vereinheitlichung ist, eine API für Hardware zu schaffen. Dies soll unabhängig vom verwendeten Hardware sein, also mit RaspberryPi, RevPi oder auch mit anderen SoCs funktionieren.
Anbei ein grober Plan zur Implementierung:
Gerätespezifische APIs sollen in eigenen Modulen oder als Abhängigkeit eingebunden werden (gelbe Boxen).
Zugriff auf diese soll durch eine einheitliche Oberfläche erfolgen (grüne Boxen)
Spezifische Treiber können dann diese nutzen und Protokolle bzw. konkrete Geräte ansteuern. Bei Bedarf kann auf die gerätespezifische API zugegriffen werden.
Diese sollen durch OpenEMS angesteuert werden können.
Aus den Beiträgen im Forum konnte ich feststellen, dass der Bedarf nach dem RaspberryPi am größten ist.
Aus diesem Grund habe ich eine Pull-Request bei OpenEMS erstellt, die diese Bibliothek einbindet und somit den ersten Schritt auf dem Weg geht.