Serielle Schnittstelle auslesen

Begonnen von bjoernhoefer, 16 Juni 2013, 00:02:45

Vorheriges Thema - Nächstes Thema

bjoernhoefer

Hallo,

ich hoffe ich bin in dem Unterforum richtig...

Mein Ziel wäre es mit Hilfe des FHEM-Dienstes Daten über die serielle Schnittstelle (/dev/ttyUSB0) auszulesen - da ich mir selber nicht umbedingt einen Dämon oder ähnliches basteln möchte (Programmierkenntnisse soweit vorhanden - aber auch nicht zu viel *g*).

Der Grundgedanke ein wenig "abstrakter":
Ich bekommt von einen (oder dann auch mehreren) XBee Modul(en) alle 5 Minuten Daten zugestellt (Sleep-Mode). Diese Daten würde ich dann mit FHEM "empfangen" und dann über ein myUtils.pm-Skript auswerten bzw. in FHEM-Dummys "übersetzen". Somit könnte ich eine ganze Hand von Sensoren recht günstig verteilen. (z.B. Pool-Temperatur, Bodenfeuchtigkeit, Temperatur, Bewegungsmelder, etc.) - das es dafür auch HomeMatic/FS20/usw. Komponenten gibt, ist mir klar - die verwende ich auch schon mehrfach.

Mir ging es da eher um den DIY-Gedanken - da manche Sensoren teilweise besser zu platzieren sind, wenn man sie selber baut...

Mit dem Perl-XBee-Library hab ich schon recht gut ein paar Sachen machen können, jedoch wäre es super das ganze in FHEM auch noch darstellen zu können...

Bei Google hab ich leider nicht all zu viel FHEM-spezifisches gefunden, deswegen die Frage hier.


Vielen Dank für jeden Input (auch wenn er nicht positiv ist...)

rudolfkoenig

Vermutlich ist fuer sowas ECMD (http://fhem.de/commandref.html#ECMD) zustaendig.

Mit "user-level" notify/etc geht sowas nur sehr schlecht, da Oeffnen/Schliessen/Lesen/Parsen/Schreiben mehr Aufwand erfordert, und in einem FHEM-Modul zu loesen ist, fuer viele Konstallationen sind sogar 2 Module besser geeignet.

bjoernhoefer

Hallo,

Ich hab mir jetzt ein wenig ECMD angeschaut und aber nur die Möglichkeit gefunden damit zu senden bzw. Fhem "getimed" ab zu fragen.

Mir wäre es aber wichtig, das ich die Daten dann verarbeite, wenn mir ein Xbee Modul die Daten sendet - sozusagen ein notify - diesbezüglich hab ich nichts gefunden...

Hab ich da was übersehen, oder falsch interpretiert?

Danke für die schnelle Antwort.

Dr. Boris Neubert

Zitat von: bjoernhoefer schrieb am So, 16 Juni 2013 19:26Hallo,

Ich hab mir jetzt ein wenig ECMD angeschaut und aber nur die Möglichkeit gefunden damit zu senden bzw. Fhem "getimed" ab zu fragen.

Mir wäre es aber wichtig, das ich die Daten dann verarbeite, wenn mir ein Xbee Modul die Daten sendet - sozusagen ein notify - diesbezüglich hab ich nichts gefunden...

Das Modul arbeitet im Dialogprinzip. Du sendest ein Kommando und das Modul gibt die Antwort zurück. Ich bin aber nicht böse, wenn jemand noch ParseFn implementiert und den Dispatcher. Wäre dann die generische Allzweckwaffe.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

otto

#4
Hallo möcht das Modul zum reinen auslesen der Seriellen Schittstelle verwenden bekomm aber einige Fehler im TXT das erstellt wird

2015-06-19_17:35:39 Seriell UNKNOWNCODE 001
2015-06-19_17:35:47 Seriell UNKNOWNCODE 07:
Fre 19-Jun-15 17:23:12:   ZENTRALE ZUR�CKSETZEN

Der Braune Teil sollte nicht im Text stehen hab aber auch nicht viel in die fhem.cfg geschrieben evtl. das ein Fehler ?
Nur der schwarze Teil wird über die serielle geschrieben.

Hier meine fhem.cfg

define initialUsbCheck notify global:INITIALIZED usb create
define Seriell ECMD serial /dev/ttyUSB0@9600
define FileLog_Seriell FileLog ./log/Seriell.txt Seriell
attr FileLog_Seriell logtype text
attr FileLog_Seriell room TEXT


Gruß Otto

PS:muß man unbedingt 67_ECMDDevice.pm benutzen ?liegt es daran ?

otto

#5
wird hier nichts mehr gemacht ?
Hätte noch eine 2.Frage kann man das Modul dazu bewegen das Empfangene als Readings darzustellen ?
Oder gibt es ein anderes Modul das die Serielle bzw. USB Schnittstelle einfach mitlist(/dev/ttyUSB0@9600) ?


Gruß otto

TiPpFeHlEr

Oh,

genau das gleiche brauche ich auch.

mein Serieller Port lifert mir alle 5 sekunden, folgende werte mit

cat /dev/ttyUSB0
1437.395,52.826,52.230
1882.086,54.369,51.927
1077.775,52.410,53.640
5797.924,58.338,54.822
5067.799,52.639,54.315
267.933,59.715,56.699
613.947,53.725,54.773
3019.341,56.839,60.000
7347.425,52.598,57.138
8219.941,57.452,54.700
934.332,54.651,54.441
1813.218,59.673,57.077
51.910,56.255,54.916
699.466,58.155,63.893
3220.139,60.728,55.337
2112.219,52.733,53.237
5453.881,51.948,57.020
4173.150,55.409,58.571
3207.157,52.988,54.166
1144.268,54.795,57.080
3977.786,50.927,53.172
1995.437,53.145,52.653
5059.932,54.561,49.001
5385.693,52.516,50.727
104.796,57.892,54.890
2754.499,51.056,56.464
458.018,54.506,58.142
428.212,50.485,53.111
4052.397,54.809,53.999
91.857,56.518,57.675
1002.775,54.677,54.346
1345.240,52.014,49.898
7149.982,53.666,54.275
7349.596,53.453,50.851
3044.768,53.407,53.796
3160.994,51.432,52.358
469.727,54.885,49.718
3880.110,52.988,52.021
1431.820,56.963,65.628
2449.422,49.502,52.134
1861.478,56.738,56.962
4746.162,51.889,54.016
5600.064,52.840,57.622
1718.591,50.335,56.163
2289.781,48.485,54.087
1533.467,50.842,48.048
4105.096,52.137,52.518
6187.791,52.820,52.414
797.358,53.695,51.042
2538.557,51.501,50.308
2996.589,55.449,52.806
6956.109,52.789,49.919
1439.554,52.437,55.001
38.016,49.628,55.320
49.249,53.973,51.997
2418.605,49.407,53.779
2854.947,52.674,52.743
687.008,49.682,52.989
95.915,54.695,51.907
1687.996,55.663,55.281
1187.248,54.418,52.788
568.049,54.174,63.825
2638.791,56.129,56.283
5454.176,58.805,53.607
80.533,54.969,53.700
1219.251,53.334,57.091
1320.170,49.757,51.588
2610.625,54.926,52.212
6339.697,53.118,52.730
203.971,53.978,52.893
7018.020,49.967,55.695
1831.382,53.674,54.418
797.246,52.003,51.608
900.005,55.783,58.017
51.849,50.654,53.034
1731.643,61.426,59.496
1161.754,51.927,53.095



diese bräuchte ich in fhem..

wie stelle ich das nun an??

mfg maik