Hallo,
ich komme eher aus der Microcontrollerecke und habe da schon einige Bastelprojekte umgesetzt.
Aus diesem Grund möchte ich gerne meinen Microcontroller (ARM STM) per USB an den Raspi an schließen auf dem Fhem läuft.
Am Controller selbst hängen verschiedene Sensoren und Funkmodule.
Die Sensordaten möchte ich dann über die USB Schnittstelle (RS232 Adapter) zum Pi schicken.
Meine Frage an euch ist nun, wie muss ich die Sensordaten "verpacken", dass sie in Fhem einlesbar sind.
Gibt es ein Modul welches "User-Strings" in Fhem anzeigt?
evtl. mysensors?
Habt ihr eine Idee oder anderen Lösungsansatz?
p.s. Natürlich könnte ich den Temperatursensor/Luftsensor, Zigbee, NRF24 auch direkt an den Pi anschließen, aber da fehlen mir die Kenntnisse. Am Controller läuft alles schon und mir fehlt nur noch die Übergabe an Fhem.
Grüße
schau dir mal 36_KeyValueProtocol.pm an.
damit kannst du über ein sehr einfaches format beliebige daten übertragen und daraus readings erzeugen.
gruss
andre
Vielen Dank für die Info, ich werde es mir anschauen :)
kurze Rückmeldung:
funktioniert gut mit dem KeyValueProtocol und war erstaunlich einfach ;D
aber um es richtig zu machen, habe ich noch eine Frage:
Wie muss ich mein Device benennen?
Ich habe es einfach als Jeelink benannt, obwohl das Protokoll/Modul gar nicht verwendet wird.
define STM32 JeeLink /dev/serial/by-id/usb ...
define KeyValueProtocol_STM32 KeyValueProtocol STM 654321
attr KeyValueProtocol_STM32 IODev STM32
Die Funktion reicht mir erst einmal zum basteln und einbinden für die nächste Zeit, aber was mache ich wenn ich auch mal Daten senden will?
Gibt es sowas wie eine "send('test')" Routine?
doch natürlich verwendetst du das JeelinkModul :)
define STM32 JeeLink /dev/serial/by-id/usb ..
dein device heisst STM32 und ist vom typ JeeLink. das ist das device in fhem das zum physikalischen gerät also dem Jeelink gehört.
dieses physikalische device kann dann mehrere logische devices mit daten versorgen. in deinem fall ist das KeyValueProtocol_STM32. je nach dem welche daten dein sketch sendet können in fhem alle readings in das KeyValueProtocol_STM32 device laufen oder du kannst es auf mehrere logische devices mit jeweils eigener id aufteilen.
das wäre dann analog zu einem jeelink der mehrere PCA301 dosen oder mehrere temperatur sensoren empfängt und jeweils an das zugehörige logische device weiterleitet.
im KeyValueProtocol modul ist das senden zur zeit noch nicht vorgesehen. es ist aber kein problem das einzubauen.
bis dahin kannst du mit set STM32 raw daten direkt über das jaeelink device schicken.
gruss
andre
super! :D
Danke für die ausführliche Erklärung, das war noch ein fehlendes Puzzleteil in meinem Verständnis.
In den Tutorials bin ich bisher nirendwo darauf gestoßen, wie das Hardware Device mit dem logisches Device zusammenhängt und dann die Daten über die IDs weiter verteilt werden.
Das mit den RAW Daten senden werde ich testen, sollte nach meinen Gedankengängen her auch den Zweck erfüllen.
Aber wie gesagt, bin ich schon sehr glücklich Daten einlesen zu können und bestimmt noch einige Zeit beschäftigt bis alle Sensoren und RF Module von meinem STM Controller eingelesen und dann in Fhem verarbeitet sind.