Modul zum Erfassen von Daten per RS232

Begonnen von Harald, 06 August 2014, 10:11:21

Vorheriges Thema - Nächstes Thema

Harald

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
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

leuchte1


locutus

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

betateilchen

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.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

locutus

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.

Icinger

Ich steuer ein Chromoflex-Modul über RS232 und ECMD auf einem Cubietruck.....

Warum sollte dann das Fronius nicht funktionieren?
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

locutus

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!

Icinger

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

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

Danach brauchst du nur mehr ein od. mehrere ECMDDevices definen, die du dann ganz einfach ansprechen/auslesen kannst.
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho


Harald

#9
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?
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Icinger

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
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
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

krikan


Harald

Besten Dank ihr beiden,

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

Nochmals danke und viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

NeuFehm

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.
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul

Harald

#14
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.
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus