Temperatur von Arduino in FHEM verwenden

Begonnen von 4real999, 07 November 2021, 14:31:46

Vorheriges Thema - Nächstes Thema

4real999

Hallo zusammen,

habe einen Arduino Nano mit Adafruit und Temperatur Sensor ausgestattet und per USB an einen Raspi gehangen.
Die Temperatur bekomme ich hier auch irgendwie eingelesen nur leider lässt sich diese nicht weiterverarbeiten, da der Log wie folgt aussieht:


2021-11-07_14:27:27 myARDUINO UNKNOWNCODE Temperature 25.29


Den Arduino habe ich als JEELINK angelegt:

define myARDUINO JeeLink /dev/ttyUSB0@115200
attr myARDUINO event-on-change-reading .*
attr myARDUINO flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
attr myARDUINO room Arduino

define FileLog_myARDUINO1 FileLog ./log/myARDUINO1-%Y.log myARDUINO
attr FileLog_myARDUINO1 logtype text
attr FileLog_myARDUINO1 room Log


Setze ich hier besser am Log an oder an der definition des Arduinos?

Hoffe, dass mir jemand weiterhelfen kann und sage schon einmal vorab vielen Dank!

Vg
real


Beta-User

Vielleicht schreibst du mal, was denn so aus an den USB-Ausgang geschrieben wird...?

Soweit mir das keyValueProtocol in Erinnerung geblieben ist, muss der String mit "OK: " beginnen. Ansonsten hilft vielleicht ein Blick in den Quellcode.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

4real999

der schreibt bringt ja letztlich über den seriellen port die Temperatur ins FHEM, was dann im log wie folgt aussieht "2021-11-07_14:27:27 myARDUINO UNKNOWNCODE Temperature 25.29"
Leider kann ich das in keiner Form weiterverwenden.
Muss ich da über den Arduino gehen und ggf. Quellcode etc. verändern oder kann ich mir den Wert in irgendeiner Form aus dem FHEM Log rausholen?

Beta-User

Zitat von: 4real999 am 12 November 2021, 19:49:01
der schreibt bringt ja letztlich über den seriellen port die Temperatur ins FHEM, was dann im log wie folgt aussieht "2021-11-07_14:27:27 myARDUINO UNKNOWNCODE Temperature 25.29"
Leider kann ich das in keiner Form weiterverwenden.
Muss ich da über den Arduino gehen und ggf. Quellcode etc. verändern oder kann ich mir den Wert in irgendeiner Form aus dem FHEM Log rausholen?

Es ist ineffizient, erst fhem.pl alle möglichen Client-Module checken zu lassen, dann was ins Log zu schreiben und dann erst einen Eventhandler darauf anzusetzen, die Werte wieder aus dem Log zu holen. Das geht zwar, ist aber eben "von hinten durch die Brust...".

Besser den Sketch so ändern, dass das keyValueProtocol was damit anfangen kann. Wenn ich das richtig sehe, müßte der Sketch sowas an die serial schreiben:
OK VALUES temperature:25.29

Bitte in die commandref zu keyValueProtocol schauen, da ist ein kleines Beispiel, auch für den Fall, dass mehrere Werte übermittelt werden können (ist effizienter wie mehrere Übermittlungen).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files