Die Schnittstelle funktioniert und liefert Daten.
define gmz ECMD serial /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0@9600
Wie kann ich jetzt die Daten sinnvoll für eine Anzeige bzw. plot aufbereiten?
Folgende Einträge sind im Log. (siehe Anhang)
Soll sollte eigentlich die Ausgabe aussehen.
CPS, #####, CPM, #####, uSv/hr, ###.##, <Modus> bzw. Bildanhang.
Ich weis wirklich nicht wie und wo ich hier ansetzten soll.
Die Antwort dazu hast Du schon hier bekommen: https://forum.fhem.de/index.php/topic,52894.msg446961.html#msg446961
Auch wenn Du noch mehr Threads zu diesem Thema aufmachst, musst Du selbst schon ein wenig mitdenken und die Doku lesen/verstehen.
Sorry aber ich Blicke hier leider nicht so richtig durch sonst wäre ich nicht noch immer bei diesem Thema.
Du bist noch bei dem Thema, weil Du Dich nicht einarbeiten möchtest und darauf spekulierst, dass Dir das jemand abnimmt und eine fertige Lösung präsentiert.
Sag uns wo Du Probleme hast.
Sorry aber das Forum ist "Hilfe zur Selbsthilfe". Wenn es den Thread neu öffnest, denken aber alle, die hier Ihre private zeit opfern, das sie vera..... werden. Sorry es so hart zu sagen.
Und wie ich häufig schreibe:
Ohne Input kein Output
Vera..... kam ich mir vor mit den Antworten auf meine Fragen.
Darum habe ich es nochmals versucht beschränkt auf die bisherigen offenen Punkte.
Darum habe ich den Datenoutput eines Schnittstellentesters und die des FHEM logs bei gepackt.
Da ich noch nie an einer Schnittstelle etwas zu konfigurieren hatte, weis ich mit den diversen geistreichen Ratschlägen immer noch nicht wo ich ansetzten muß.
Ist für jemanden der FHEM in und auswendig kennt wahrscheinlich nicht nachvollziehbar, was ich anhand der diversen Ratschlägen.
Und auf gar keinen Fall habe ich hier vor jemanden zu vera.....
Ganz im Gegenteil.
a) Hast Du, wie dort vorgeschlagen, Dir die anderen dort genannten Module angeschaut?
oder
b) Du schriebst: "Die Schnittstelle funktioniert und liefert Daten."
Es funktioniert also innerhalb FHEM?
Weiß jetzt wirklich nicht, was genau bei Dir jetzt funktioniert oder nicht.
Wie schon beschrieben hängt das Gerät mit einem TTL-USB Konverter am PI.
Damit der PI Daten bekommt habe ich die Schnittstelle die folgt konfiguriert.
Zitatdefine gmz ECMD serial /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0@9600
Somit bekommt der Pi die Daten.
Damit ich aber mit den Daten etwas anfangen kann Bedarf es noch einer Konfiguration der Datenschnittstelle im Pi.
Wie die Daten aussehen die der Pi bekommt und noch nicht verarbeiten kann ist in dem Log File ersichtlich.
Und da stehe ich an mit meinen Kenntnissen.
Du has Dir die Doku dazu durchgelesen?
http://fhem.de/commandref.html#ECMD (http://fhem.de/commandref.html#ECMD)
kann Dir da nicht helfen ...
Ja die Doku zu EMCD habe ich mir gelesen.
Nur blicke ich dabei nicht durch was es mit der class auf sich hat.
Was gehört in die Datei classdef überhaupt eingetragen in meinem Fall.
Die bisherigen Schritte:
define gmz ECMD serial /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0@9600
set gmz classdef gmz /media/hdd/fhem/classdef/gmz.classdef
define gmz classdef /media/hdd/fhem/classdef/gmz.classdef
set gmz reopen
get gmz raw { "r\n" }
Der Inhalt der LOG Datei:
2016-05-13_12:58:18 gmz UNKNOWNCODE C
2016-05-13_12:58:18 gmz UNKNOWNCODE PS, 0, CPM, 11,
2016-05-13_12:58:19 gmz UNKNOWNCODE uSv/hr, 0.06,
2016-05-13_12:58:19 gmz UNKNOWNCODE SLOW
2016-05-13_12:58:19 gmz UNKNOWNCODE C
2016-05-13_12:58:19 gmz UNKNOWNCODE PS, 2, CPM, 13
2016-05-13_12:58:20 gmz UNKNOWNCODE , uSv/hr, 0.07,
2016-05-13_12:58:20 gmz UNKNOWNCODE SLOW
2016-05-13_12:58:20 gmz UNKNOWNCODE C
2016-05-13_12:58:20 gmz UNKNOWNCODE PS, 0, CPM, 13
2016-05-13_12:58:20 gmz UNKNOWNCODE , uSv/hr, 0.07
2016-05-13_12:58:21 gmz UNKNOWNCODE , SLOW
2016-05-13_12:58:21 gmz UNKNOWNCODE CP
2016-05-13_12:58:21 gmz UNKNOWNCODE S, 0, CPM, 12,
2016-05-13_12:58:21 gmz UNKNOWNCODE uSv/hr, 0.06,
2016-05-13_12:58:22 gmz UNKNOWNCODE SLOW
2016-05-13_12:58:22 gmz UNKNOWNCODE CP
2016-05-13_12:58:22 gmz UNKNOWNCODE S, 0, C
2016-05-13_12:58:22 gmz UNKNOWNCODE PM, 12, uSv/hr, 0.06, SLOW
2016-05-13_12:58:23 gmz UNKNOWNCODE
2016-05-13_12:58:23 gmz UNKNOWNCODE C
2016-05-13_12:58:23 gmz UNKNOWNCODE PS, 0,
2016-05-13_12:58:23 gmz UNKNOWNCODE CPM, 12
2016-05-13_12:58:23 gmz UNKNOWNCODE , uSv/h
2016-05-13_12:58:23 gmz UNKNOWNCODE r, 0.06
2016-05-13_12:58:23 gmz UNKNOWNCODE , SLOW
Nur wie werden hier zyklisch Daten eingetragen?
Und wie splitte ich das in vier Zeilen mit den dazugehörigen Werten?
Zitat von: Burny4600 am 13 Mai 2016, 12:54:59
Ja die Doku zu EMCD habe ich mir gelesen.
Aber anscheinend nicht gründlich genug.
Zitat von: Burny4600 am 13 Mai 2016, 12:54:59
Was gehört in die Datei classdef überhaupt eingetragen in meinem Fall.
Wie in der Command ref beschrieben für "A spontaneous data transmission from the physical device":
reading <reading> match "<regex>"
reading <reading> postproc { <perl special> }
Beispiel 3 aus der command ref scheint für Deinen Fall gar nicht verkehrt: Du musst nur netcat durch Deine Hardware ersetzen und natürlich <regex>/<perl special> anpassen.
Ich weis nicht wo du das im Command ref gefunden hast.
Ich finde es leider nicht.
http://fhem.de/commandref.html#ECMD
http://fhem.de/commandref.html#ECMDDevice
Unglaublich.
Diese Links kenne ich schon.
ZitatDu musst nur netcat durch Deine Hardware ersetzen und natürlich <regex>/<perl special> anpassen
Trotzdem versteh ich nicht wie ich das Bespiel 3 für mein Gerät übernehmen kann.
Dann setzte doch erstmal das Beispiel um, dass genau so funktioniert wie es dort angegeben ist und lerne.
Regexp und Perl Grundlagen benötigt man natürlich, aber das ist ja klar und nichts neues.
Warum überhaupt netcat ersetzten.
Das ist doch ein Bespiel für eine Netzwerkverbindung und nicht wie in meinem Fall für einen TTL-USB Anschluss.
Da du die command ref nicht verstehst würde dir das Beispiel helfen die Arbeitsweise des Moduls zu verstehen. netcat durch die usb hardware zu ersetzen ist dann ein Klacks.
Jetzt weiß ich auch wieder wieso in den Kollegen ignoriere. Nur fordern aber nicht selbst genug Leistung bringen wollen.
Grüße
Die erste Antwort hatte mit Tapatalk geschrieben, dort werden Beiträge auch von ignorierten Usern angezeigt ;)
Diese Classdef- Geschichten muss man mal gemacht haben - das erschließt sich nicht nebenbei. Hier wäre mal ein Beispiel (http://www.fhemwiki.de/wiki/AVR-NET-IO#Funktionen_in_Verbindung_mit_FHEM).
@CoolTux
Deine tollen Bemerkungen sind wirklich hilfreich Hr. Oberlehrer.
Es ist besser du sparst dir deine Kommentare.
Ich bin mit Linux und Perl noch am Anfang, da helfen mir deine Bemerkungen wirklich nicht weiter.
Soweit ich das aus meinen Logs das verstehe liegt es nur an der classdef die ich noch richtig definieren muss.
Leider passen die Beispiele aus dem Wiki nicht ganz, da sein Device selbständig sendet, zumindest habe ich das so verstanden. Und genau das kann man mit netcat gut testen/simulieren.
@dev0
Du hast recht. Dieses Modul sendet eigenständig.
Burny4600, Du brauchst CoolTux gar nicht so anzugehen, er hat nämlich recht: so wie Du Dich hier im Forum aufführst musst Du mit solchen Kommentaren rechnen. Wir sind nicht Deine persönlichen Assistenten, die Dir Deinen Code schreiben, das musst Du endlich mal verstehen. Ich habe mir gestern mind. 1 Stunde Zeit für DEIN Problem genommen um mir ECMD anzusehen - ich kannte das Modul vorher auch nicht. Dann kann man auch erwarten, dass Du Dich ebenfalls eindenkst und nicht direkt schreibst: "Was muss ich das jetzt eingeben". So nicht!
Aber zurück zum Thema:
- Das ECMD Device hast Du definiert
- Du benötigst jetzt noch die Klassendefinition und ein ECMDDevice.
Da Dein Device die Daten selbständig schickt (spontaneous data transmission) benötigst Du die statements "reading <reading> match "<regex>"" und "reading <reading> postproc { <perl special> }" in der Klassendefinition. Ist so in der command ref beschrieben (Example 3). Da Du mehrere Daten/Readings in einer Zeile empfängst ist es mMn das einfachste die Daten erst in ein Reading einzulesen und dann später in einem 2. Schritt über userReadings zu splitten.
Um die Daten aus dem empfangenen String (CPS, 0, CPM, 1, ...) zu extrahieren (mit <perl special>) solltest Du mit regexp umgehen können. Wenn Du mit regexp noch nicht so vertraut bist, dann musst Du das lernen, das benötigst Du im Umgang mit FHEM immer wieder und wurde Dir auch schon öfters gesagt.
Dokumentation dazu findest Du u.a. hier:
https://wiki.selfhtml.org/wiki/Perl/Regul%C3%A4re_Ausdr%C3%BCcke (https://wiki.selfhtml.org/wiki/Perl/Regul%C3%A4re_Ausdr%C3%BCcke)
http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators (http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators)
Tester für regexp findest u.a. hier:
http://www.regexe.com/ (http://www.regexe.com/)
https://regex101.com/ (https://regex101.com/)
Wenn sich konkrete Fragen ergeben, dann frag.
@dev0
Gut das kann man sehen wie man will.
Aus meiner Sicht habe ich nur dumme Sprüche erhalten, anstatt klare Hinweise um weiter zu kommen.
Kann sein das ich mich manchmal ein wenig umständilich ausgedrückt habe, dennoch erwarte ich keine dummen Ansagen.
Mein Ding ist mehr die Hardware und nicht die Software.
Mit der Software im speziellen Linux, Fhem und Perl habe ich leider noch viel nachzuholen.
Für jemanden der damit vertraut ist, ist es auch nicht schwer sich darin rein zu denken und stößt vielleicht auf Missverständnisse wenn ich mit meinen Fragen daher komme.
Dennoch erhoffe ich mir klare Hinweise wo ich auch ansetzten kann, und keine globalen Begriffe mit dennen ich noch nichts anfagen kann.
So zb: ein Link mit betreffendem Textinhalt.
Wenn ich etwas geschaft habe, mit dem ich mich schwer getan habe stelle ich ein HowToDo zusammen, dass es auch jemand versteht der absolut keine Ahnung hat. Sollten dennoch Fragen auftauchen, behandle ich die jenige Person nicht von oben herab mit dummen Komentaren mit dem demjenigen nicht weiter geholfen ist.
Ich muss leider feststellen, wenn man sich in manchen Foren so umschaut, das es zunehmends Personen gibt die anscheinend gar nicht interessiert sind in Foren ihr wissen weiter zu geben. Das hat aber nichts mmit meiner Person zu tun, sonst würde es vielen anderen nicht auch so ergehen wie mir wenn man sich in neue Bereiche begibt.
Mein bestreben ist es jedenfalls anderen zu helfen wenn ich kann, und wenn ich nicht will lasse ich keine dummen Sprüche ab. Das hat etwas mit Respekt zu tun und nicht mit Klug- oder Weisheit.
Jedenfalls Danke für deine Tipps die du mir hier noch gegeben hast.
Ich hoffe ich kann das mit meinen Grundlagenbüchern jetzt umsetzten.
Jedenfalls ist das Ganze jetzt für mich ein gutes Übungsobjekt mit diesen Informationen von Dir.
Du hast viele wertvolle Tips im anderen Thread erhalten. Unter anderem wurden Dir 2 Module empfohlen die ein ähnliches Funktionsprinzip haben wie das was Du benötigst. Es wurde Dir gesagt das Du daraus ein eigenes Modul machen kannst.
Die Grundlagen über den Aufbau eines Modules findest Du im Developer Wiki.
Und ich persönlich darf es mir erlauben Dir sowas vor zu halten, ich selbst habe vor genau einem dreiviertel Jahr angefangen mit Perl und FHEM. Grund bei mir war das ich Androidgeräte steuern wollte aber mirt dem vorhandenen unzufrieden war. Ich habe einen Monat lang Perl gebüffelt, danach mir 3 Wochen das Developer Guide angesehen und vor allem habe ich Stunden damit verbracht andere Module mir an zu sehen und den Code zu verstehen.
Erst nach zweieinhalb Monaten habe ich mich mit vorhandenen Code und Fehlern an das Forum gewendet. Ich habe auch meinen Code zu erst in einer 99myUtils Datei geschrieben und damit probiert. Später habe ich mir noch einen Mentor gesucht.
Unsere Grundlagen und Ambitionen scheinen also gleich gewesen zu sein.
Grüße
@Burny4600
ich kann gut nachvollziehen wie du dich fühlst. Ich habe hier auch schon manch Strauss mit dem einen oder anderen Protagonisten ausgefochten.
Dabei ist mir auch immer wieder diese erhobene Zeigefinger Attitüde aufgestossen. Ich denke mittlerweile dass viele einfach nicht nachvollziehen können dass man als Einsteiger oft den Wald vor lauter Bäumen nicht sieht. Da nützt dann auch kein Hinweis wie: "hast du dir das Modul xxyy mal angeschaut?" oder ähnliches.
Auch wird dann gerne mal unterstellt dass man ja offensichtlich nicht bereit sei sich mit dem Thema auseinander zu setzen und stattdessen auf eine mündchensparate Lösung durch ein Forum Mitglied hoffe.
Andere fordern dann auch gerne mal den Fhem-Führerschein der erst berechtigt Fragen im ANFÄNGER Forum zu stellen :-)
Ich denke es ist klar dass fhem keine Fertiglösung ist und ein gehörig Mass an Einarbeitung erfordert.
Mittlerweile versuche ich mich weitestgehend selber durchzubeißen, und da, wo ich kann zu helfen und sei es nur wie in diesem Fall mit moralischer Unterstützung
:-)
@CoolTux
Alles recht und schön, aber es gibt Dir noch lange nicht das Recht herablassend dumme Bemerkungen zu machen.
Es ist eine Karaktersache, wie man sich jemanden gegenüber äussert.
Und noch eines auf dem Weg. Man soll nie von sich auf Andere schließen.
Wenn sich ein jeder so leicht ,,damit auseinandersetzten könnte", dann gäbe es lauter Wunderwuzzis und keine Foren.
Also ich würde gerade Dir anraten künftig ein wenig auf deine Ausdrucksweise zu achten.
Und wenn du nicht helfen willst, musst du ja nicht.
Alle Ratschläge von dir waren auch nicht richtig, möchte ich hier einmal am Rande bemerken, wenn du schon mit den Aufzählungen von allen möglichen Ratschlägen machst.
Mit solch einer Art vermisst du so manchen überhaupt etwas neues anzufangen.
Ich hoffe du bist mit deinen Kollegen im Job ein wenig umgänglicher.
Künftig hoffe ich von Dir keine dummen Bemerkungen zu hören.
Hallo,
ich habe hier mal ein Beispiel für emcd was auch läuft (https://forum.fhem.de/index.php/topic,42793.msg351541.html#msg351541)
Anpassung müssen natürlich gemacht werden.
pejonp