FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Harald am 06 August 2014, 10:11:21

Titel: Modul zum Erfassen von Daten per RS232
Beitrag von: Harald am 06 August 2014, 10:11:21
Hallo zusammen,

trotz Suche im Forum und im Wiki hatte ich keinen Erfolg. Vielleicht habe ich auch die falschen Stichwörter verwendet >:(

Ich benutze einen RasPi mit GPIO-Erweiterungsplatine, die eine RS232-Schnittstelle besitzt, die auch aktiviert ist.
Weiterhin benutze ich in meiner Solaranlage einen Wechselrichter Fronius midi plus und einen zugehörigen Datenlogger mit RS232. Von Fronius wurde damals (2001) ein Windowsprogramm mitgeliefert, welches die anfallenden Daten erfasst und auf dem PC anzeigt. Nun würde ich gerne die anfallenden Daten über den RasPi empfangen, diese in FHEM einspeisen und auswerten. Die Beschreibung des Datenübertragungsprotokolls liegen mir vor.

Hier im Forum gibt es einige Ansätze, Solardaten zu visiualisieren, aber leider habe ich nichts gefunden, was ich auf meine Hardware anpassen könnte.

Kann mir jemand einen Tipp geben, wie ich meine Vorstellungen realisieren kann?

Über entsprechende Hinweise und Hilfen würde ich mich sehr freuen. Vielen Dank im Voraus und viele Grüße

Harald
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: leuchte1 am 06 August 2014, 11:32:50
Hallo Harald,

sollte mit ECMD funktionieren, http://fhem.de/commandref.html#ECMD

Gruss
Stefan
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: locutus am 06 August 2014, 16:05:33
Zitat von: leuchte1 am 06 August 2014, 11:32:50
sollte mit ECMD funktionieren
Falsch! ECMD dient zur Kommunikation mit den AVR-NET-IO.

@Harald
bitte schau dir den Beitrag an: http://forum.fhem.de/index.php?topic=14531.0
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: betateilchen am 06 August 2014, 17:34:58
Zitat von: locutus am 06 August 2014, 16:05:33
Falsch! ECMD dient zur Kommunikation mit den AVR-NET-IO.

Hm... so eindimensional würde ich das nicht behaupten wollen.

Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: locutus am 06 August 2014, 18:42:02
Einverstanden, aber den Sprung in die nächste Dimension werde ich an dieser Stelle nicht wagen. Sobald das Stichwort Ethersex fällt, wird das Chaos noch perfekter.
Haralds Thema sind RS232 und RasPi.
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: Icinger am 06 August 2014, 21:32:36
Ich steuer ein Chromoflex-Modul über RS232 und ECMD auf einem Cubietruck.....

Warum sollte dann das Fronius nicht funktionieren?
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: locutus am 06 August 2014, 23:09:04
Und das Ganze ohne AVR und Ethersex? Dann klärt mich bitte auf, denn anscheinend habe ich irgendwas nicht verstanden:
ZitatEthersex Command or short ECMD is a simple, text-based protocol to communicate with a device running Ethersex.
Ich bitte um eine kurze Beschreibung der Arbeitsschritte!
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: Icinger am 07 August 2014, 08:34:26
Grundsätzlich kannst du mit zB
define Chromoflex ECMD serial /dev/ttyChromo@115200
Achtung! Ich habe meine USB<>Seriel-Adapter auf einen fixen Namen umgebogen, da sie sonst immer "zufällig" im System gereit gewesen sind (per udev-Regel)
eine serielle Schnittstelle öffnen.

Du musst dir dann nur eine Klassendefinition erstellen für das Gerät, in dem genau beschrieben wird, was gesendet/empfangen wird.
Siehe http://fhem.de/commandref.html#ECMDClassdef (http://fhem.de/commandref.html#ECMDClassdef)

An meine Classdef komm ich momentan nicht ran, weil ich im Büro sitze, kann ich auf Wunsch heute Abend nachreichen.

Infos dazu findest du zB hier:
http://forum.fhem.de/index.php/topic,21636.0.html (http://forum.fhem.de/index.php/topic,21636.0.html)

Danach brauchst du nur mehr ein od. mehrere ECMDDevices definen, die du dann ganz einfach ansprechen/auslesen kannst.
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: locutus am 07 August 2014, 10:17:43
Mea culpa, danke sehr! Siehe auch: http://forum.fhem.de/index.php/topic,25642.0.html
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: Harald am 13 August 2014, 11:24:22
Hallo zusammen,

kann mir jemand sagen, wie man beim definieren einer seriellen Schnittstelle in FHEM die Datenbitanzahl, Parity und Anzahl der Stoppbitts angibt?

Beispiel:

define Solar NT5000 serial /dev/ttyAMA0@3200@8@N@2 soll die serielle Schnittstelle des RasPi auf 3200 Bd, 8 Datenbits, keine Parity-Prüfung und 2 Stoppbits setzen.

Ist das so richtig? Leider habe ich mittels der Suche keine Hinweise gefunden. Oder wird das vom eingesetzten Modul bestimmt?
Wie müsste dann die Inititialisierung der Schnittstelle im Modul erfolgen?

Fragen über Fragen! Aber vielleicht kann mir ja jemand helfen. Vielen Dank schonmal und viele Grüße

Harald
PS: Wenn ich die Ergebnisse meines Probierens richtig verstehe, liegt das wohl an verwendeten Modul. Benutze ich NT5000, wird das nicht akzeptiert, bei ECMD wohl. Ich verstehe das so, dass define ".... " an das Modul übergeben wird und von dort dann ggf. die Meldung initiziert wird, wenn etwas nicht ok ist - richtig?
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: Icinger am 13 August 2014, 12:38:38
Hallo Harald,

auch ECMD kann per se keine Parity, Datenbits usw setzen, sondern nur die Gewschwindigkeit.

Grundsätzlich läuft es so ab, dass dein define an das Modul übergeben wird, das Modul dann die Argumente aufsplittet und weitervrarbeitet.

Im Fall von Schnittstellen wird dann die Schnittstelle über das DevIO geöffnet und überwacht.

DevIO bietet leider nicht die Möglichkeit, Parameter zu übergeben (ausser der Baudrate).
Ich habe mit meinem Voltcraft-Stromzähler das selbe Problem.

Es gibt allerdings hier --> http://forum.fhem.de/index.php/topic,15506.0.html (http://forum.fhem.de/index.php/topic,15506.0.html)
einen Vorschlag, wie die DevIO ganz leicht angepasst werden könnte.
Wurde damals leider abgewiesen, obwohl aus meiner Sicht keine Probleme für bestehende Module entstehen könnten.
Die andere Möglichkeit wäre, alle Module, die so etwas betreffen würde, einzeln zu ändern.

Ich persönlich habe die DevIO nach obigem Thread angepasst und es funktioniert bei mir reibungslos (einziger Nachteil: wenn eine neue Version von DevIO released wird, muss ich die Änderungen neu machen, kommt aber kaum vor).

lg, Ici
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: krikan am 13 August 2014, 13:01:37
Rudi hat hier zur Umsetzung einen Code http://forum.fhem.de/index.php/topic,23961.msg173970.html#msg173970 gepostet.
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: Harald am 13 August 2014, 15:14:13
Besten Dank ihr beiden,

das sind ja sehr interessante Infos. Da werde ich hoffentlich etwas weiter kommen.

Nochmals danke und viele Grüße

Harald
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: NeuFehm am 14 August 2014, 07:46:40
Ein Tipp. Ich habe zunächst meine Kommunikation mit PHP oder/und PERL getestet. Also Schnittstelle ansprechen, Befehle absenden, Ergebnis erlauschen. Erst wenn das funktioniert würde ich mich an fhem machen und das erlangte Wissen integrieren. Stimmt die Kommunikation, kann Dir hier fast jeder helfen und Dir das Modul nennen, welches am besten geeignet ist.
Titel: Antw:Modul zum Erfassen von Daten per RS232
Beitrag von: Harald am 14 August 2014, 10:03:01
Hallo NeuFhem,

danke für den Tipp. So wollte ich auch vorgehen. Aber PHP spreche ich nicht und PERL nur ganz rudimentär. Mit dem Ansprechen der Schnittstelle beginnt es ja schon. Wie Du oben vielleicht gelesen hast, erwartet sie nicht alltägliche Parameter, die nicht ohne weiteres von FHEM akzeptiert werden. Aber da hab' ich schon was gefunden. es gibt einen Vorschlag, die IODev so zu ändern, dass auch Bitzahl, Stopbits, Parity usw. gesetzt werden können.

Wenn ich so weit bin, dass ich den kontinuierlichen Datenstrom in FHEM einlesen kann, werde ich es hoffentlich auch schaffen, die Nutzdaten (5 Bytes aus 19) zu ermitteln und dann entsprechen zu verarbeiten.

VIele Grüße

Harald
ps: Wenn das von mir gefundene richtig ist, kann der RaspPi die 3200 Bd. nicht, da der Wert nicht mit einkompiliert ist. Damit ist mein Projekt gestorben.