Hallo Forum,
ich weiss nicht, ob ich das nun im raspberry-Bereich oder im Codeschnipsel-Bereich posten soll.
Bitte ggf. verschieben.
Ich habe folgende Frage...
Ich habe FHEM auf einem Raspberry PI laufen.
Über FHEM möchte ich nun auch meinen Beamer (BenQ W1070) per RS232 steuern.
Dazu habe ich folgende Infos zusammengetragen:
1) RS232 Commandref hier: Link (//www.benq.de/support/downloads/download.cfm?file=projector/benq_rs232_commands.pdf)
2) verschiedene RS232 Geräte und Adapter:
a) Lantronix XPORT (//www.lantronix.com/device-networking/embedded-device-servers/xport.html)
b) RS232 USB Adapter hier (//www.amazon.de/Digitus-DA-70156-USB-Seriell-Adapter/dp/B0030IT780)
c) RS232 GPIO Board für den Raspberry hier (//www.amazon.de/Erweiterungsplatine-Raspberry-Board-1RS232-Standard/dp/B00CBDQ9L8/)
Bestellt habe ich alles drei.
Vorteil des Lantronix ist halt, dass dieser eine eigene Weboberfläche hat, und per TCP/IP anzusprechen geht.
Von der Einbindung her stelle ich mir das Ding ähnlich dem HMLan Adapter vor.
Das GPIO Board solle auch irgendwie laufen denke ich, und der USB Adapter sollte im RasPi auch gehen.
Meine Frage ist aber jetzt...
Ich kenne mich mit Perl nicht aus, und bräuchte jemaden der vielleicht ein Modul schreiben kann um die Befehle die in der BenQ Commandref stehen über seriell an den Beamer zu schicken.
Ich würde gerne in einer Config Datei bestimmte Funktionen EINschalten und AUSschalten.
Also beispielsweise möchte ich den Lampenmodus sehen, ich möchte die Lampenstunden sehen, ich möchte das Ding ein und ausschalten... Aber wenn jemand keinen Wert darauf legt dass die Lampenstunden angezeigt werden, kann man das deaktivieren indem man in der Config Datei den Bereich per # auskommentiert.
Man könnte auch ein solches Modul recht allgemein halten und verschiedene Devices.cmdref einlesen. Beispielsweise eine Epson.cmdref, Sony.cmdref oder eben eine BenQ.cmdref
So kann man diese ASCII Commands in diese Datei einfügen, und schon hat man das relativ offen für andere Defices.
Kann man sowas machen?
Gibts sowas schon? (ich habe per Suche leider nichts gefunden)
Hat jemand eine andere Idee?
Welchen der RS232 Wege a,b,c soll ich Eurer Meinung nach gehen?
Vielen Dank für Eure Antworten.
Beste Grüße
der Merlin
Hallo Merlin,
aus meiner Sicht sind die Lösungen b) und c) gleichwertig, der einzige Unterschied ist, wie die serielle Schnittstelle heißt.
Ich habe gerade dasselbe Thema, ich möchte ein Modul für meinen Photovoltaik-Zähler schreiben (oder zumindest das, was ich dafür halte).
Hierzu kann ich entweder so etwas
BEGIN
{
$OS_win = ($^O eq "MSWin32") ? 1 : 0;
Log 1, "Perl version: $]";
Log 1, "OS version: $^O";
# this must be in a BEGIN in order for the 'use' to be conditional
if ($OS_win)
{
Log 1, "Loading Windows modules";
eval "use Win32::SerialPort";
die "$@\n" if ($@);
}
else
{
Log 1, "Loading Unix modules";
eval "use Device::SerialPort";
die "$@\n" if ($@);
}
} # end BEGIN
(sprich Ansteuerung der seriellen Schnittstelle unter Perl) verwenden, das sollte dann mit der seriellen Schnittstelle (inkl. USB) funktionieren. Oder ich nehme das Moduld DevIo.pm (//sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/DevIo.pm), das sollte auch die serielle Schnittstelle über Ethernet (sprich Möglichkeit a) können. Mit der Weboberfläche weist Du dem XPort nur eine Ethernet Adresse zu, der macht dann aus einem Datenstrom über TCP/IP einen Datenstrom an der seriellen Schnittstelle. Charme der Möglichkeit a) ist, dass Du den Beamer von überall im Netzwerk ansteuern kann, weil der XPort überall sitzen kann. Das geht mit b) und c) nicht, da muss der RaspberryPi in der Nähe des Beamers stehen.
Mein Ratschlag: fang mit kleinen Schritten (sprich serielle Schnittstelle) an und wenn Du danach nicht ganz frustriert bist, erweitere auf die Ethernet Schnittstelle.
Gruß PeMue
Hi PeMue,
danke für die Rückmeldung.
Ich habe auch schon irgendwo gelesen, dass man das DevIO.pm nehmen kann, bzw. dieses dann irgendwie abwandeln kann.
Nur leider weiss ich noch so wirklich GARNICHT was ich machen muss.
Ich habe mir jetzt mal etwas Lesestoff bestellt.
Schließlich habe ich vor mit FHEM so ziemlich alles was ich steuern kann irgendwie zu "verFHEMen".
Da werde ich definitiv lernen müssen wie das so mit Perl funktioniert.
Der XPORT ist nun schon mal angekommen.
Auch die Platine für den RasPi. Jetzt fehlt nur noch der Serial-2-USB Adapter.
Ich denke ich werde so anfangen, dass ich die Platine auf den RasPi stecke und den USB Adapter an meinen PC.
Dann schau ich mal was ich zwischen RasPi und PC hin und herschicken kann. Das wird auch noch lustig, weil ich nicht weiss wie ich vom RasPi die RS232 öffnen muss.
Dann teste ich mal was ich zwischen PC und Beamer so hinbekomme, und dann "portiere" ich das mal auf den RasPi.
Und wenn ich das habe versuche ich irgendwann vom XPORT auf den PC zu schicken.
Wenn ich das habe, dann habe ich auch quasi das was ich brauche um mit dem Beamer zu reden.
Allerdings muss ich noch eine kleine Schaltung basteln damit ich den XPORT mit 3,3V speisen kann die ich hoffentlich vom USB Port mit 5V vom Beamer bekomme.
Der Beamer hat einen Service USB Port der für sonst nichts genutzt werden kann. Er hat aber auch einen 12V Trigger. Nur weiss ich noch nicht ob beide im normalen OFF des Beamers dauerhaft 5V bzw. 12V liefern.
Sollte keiner der beiden Ports Dauerspannung liefern die ich mit rund 300mA belasten kann, dann werde ich normales RS232 des RasPi machen und den XPORT für was anderes nutzen, denn sonst brauche ich oben an der Decke noch eine Steckdose um dort ein Netzteil für den XPORT anzubringen. Das wollte ich eigentlich vermeiden.
Aber mal grundsätzlich....
Gibt es ein HowTo wie FHEM Module aufzubauen sind?
Wie integriere ich denn in FHEM ein Modul das ein TCP/IP Device auf Port 10001 anspricht und dort dann auf dem Device ein ASCII Befehl absetzt?
Was ich (glaube ich jedenfalls) schon verstanden habe ist, dass das 00_HMLAN.pm auf das DevIo.pm zurückgreift.
Wenn ich jetzt also das DevIo.pm anschaue sehe die interessanten Bereiche denke ich.
Einmal halt für TCP/IP Geräte und unten dann auch für Serial Devices.
Ich denke ich werde ewig brauchen um das hinzubekommen. :-(
Ich hätte in der Schule einfach besser aufpassen sollen und dann auch weiter auf die Schule gehen sollen und am Besten auch studieren.
FU...!
Jetzt wo ich das alles so schreibe wird mir schon fast schlecht.
*deprimierte* Grüße
der Merlin
Hey Merlin,
nicht schon vorher aufgeben! Ich würde als erstes das USB Teil in den Raspberry Pi stecken und mal mit dem Beamer per Kabel verbinden. Nimm dann mal mein angefangenes, abgekupfertes noch nicht Modul 99_serial.pm (siehe Anhang, ins Verzeichnis ./fhem/FHEM kopieren) und schau mit dmesg | grep ttyUSB auf der Konsole wo die serielle Schnittstelle hängt (müsste /dev/ttyUSB0 sein). Dann in der fhem Konsole
{serial_comm(<baud>,"/var/ttyUSB0", <befehl>)}
eingeben, wobei <baud> die eingestellte Baudrate des Beamers sein sollte und <befehl> z.B. <CR*pow=?#<CR>. Ich weiß aber gerade nicht, wie man hier <CR> codiert, aber das ist der Teil, der Dir überlassen bleibt. Danach sollte das zurückkommen, was der Beamer zu dem Befehl sagt (momentan max. 13 Zeichen) ...
Im zweiten Teil meines Fernkurses kommt dann die Freischaltung der seriellen Schnittstelle auf dem Raspberry Pi und dasselbe mit dem Board auf dem RaspberryPi. Ggf. kommt dann noch die Terminalsoftware minicom dazu.
Irgendwo habe ich auch einen Post gelesen, wie ein fhem Modul aufgebaut sein sollte. Das wird dann der dritte Teil ...
Alternativ kannst Du an die serielle Schnittstelle auch einen PC mit Terminalprogramm dranhängen und schauen, was der Raspberry Pi so von sich gibt ...
In der Hoffnung, Dich etwas "entdeprimiert" zu haben
grüßt PeMue
Hey PeMue!
Danke Dir!
habe es gerade gesehen.
Ich werde es heute Abend gleich mal ausprobieren.
Ich finde es super, dass Du da was gemacht hast.
Ich halte Dich auf dem Laufenden.
Gruß
der Merlin
Hallo PeMue!
Sorry, dass ich mich erst jetzt melde. Ich hatte erst noch einen neuen RS232 zu USB Adaper bestellen müssen. Jetzt habe ich zwei um es etwas einfacher zu machen.
Ich habe die 99_serial.pm in das Verzeichnis wo die Module liegen kopiert.
Dann habe ich erst ein reload 99_serial gemacht und dann mit der Befehlszeile die Du mir vorgeschlagen hattest ausprobiert. Das funktionierte leider nicht.
Unknown command {serial_comm(115200,"/var/ttyUSB0",, try help
Aber ich bin bereits sicher dass es /dev/ttyUSB0 ist und ich bin auch sicher, dass es 115200 Baud sind.
Ich habe selbst noch etwas weitergelesen und ausprobiert.
Wie es scheint gibt es doch schon ein Modul das ich vielleicht verwenden könnte. Allerdings würde ich trotzdem gerne Deinen Fernkurs "buchen".
Ich habe folgendes Modul gefunden: 66_ECMD.pm
Wenn ich mich per telnet auf den Port 7072 von FHEM verbinde kann ich nämlich schon was rausschicken.
Sieht dann so aus:
fhem> define BEAMER ECMD serial /dev/ttyUSB0@115200
fhem> get BEAMER raw TESTTEXT
Error: timeout reading answer for get raw
Dass hier der Timeout kommt ist aber klar, da ich auf der anderen Seite nur ein Hyperterminal laufen hatte, das keine Antwort schickt.
Zu ECMD hatte ich das hier gefunden:
http://fhem.de/commandref.html#ECMD (//fhem.de/commandref.html#ECMD)
Und das was ich glaube zu brauchen ist dann das hier
Get
get <name> raw <command>
Sends the command <command> to the physical ECMD device <name> and reads the response.
Wenn ich das jedenfalls alles per telnet mache, dann bekomme ich in meinem Hyperterminal auf meinem PC dann auch die Ausgabe die ich als raw Kommando schicke.
TESTTEXT<\n><6><14><\f>??<\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0><\0>
FAZIT:
Die grundsätzliche Funktion ist schonmal gegeben. Ich kann was senden.
Aber um ehrlich zu sein weiss ich noch nicht, ob ich auf diesem Weg weitergehen soll.
Mein Ziel habe ich vor Augen, aber ich weiss nicht ob der Weg den ich jetzt per ECMD gehen könnte am Schluss dann auch das ist was ich wollte.
Nochmal zum Ziel:
- Icon in FHEM, gerne auch ein eigener Raum der Beamer heisst
- Befehle die ich unbedingt ausführen möchte: (ALLERDINGS MACHT MIR DAS # ZEICHEN HIER EIN WENIG SORGE! )
POWER
Write Power On <CR>*pow=on#<CR>
Write Power off <CR>*pow=off#<CR>
Read Power Status <CR>*pow=?#<CR>
SOURCE SELECTION
Write HDMI <CR>*sour=hdmi#<CR>
Write HDMI 2 <CR>*sour=hdmi2#<CR>
Read Current source <CR>*sour=?#<CR>
Write Mute On <CR>*mute=on#<CR>
Read Mute Status <CR>*mute=?#<CR>
PICTURE MODE
Write Bright <CR>*appmod=bright#<CR>
Write Living Room <CR>*appmod=livingroom#<CR>
Write Cinema <CR>*appmod=cine#<CR>
Write Standard <CR>*appmod=std#<CR>
Write User1 <CR>*appmod=user1#<CR>
Read Picture Mode <CR>*appmod=?#<CR>
PICTURE SETTING
Write Contrast + <CR>*con=+#<CR>
Write Contrast - <CR>*con=-#<CR>
Read Contrast value <CR>*con=?#<CR>
Write Brightness + <CR>*bri=+#<CR>
Write Brightness - <CR>*bri=-#<CR>
Read Brightness value <CR>*bri=?#<CR>
Read Color value <CR>*color=?#<CR>
Read Sharpness value <CR>*sharp=?#<CR>
Write Color Temperature-Warmer <CR>*ct=warmer#<CR>
Write Color Temperature-Warm <CR>*ct=warm#<CR>
Write Color Temperature-Normal <CR>*ct=normal#<CR>
Write Color Temperature-Cool <CR>*ct=cool#<CR>
Write Color Temperature-Cooler <CR>*ct=cooler#<CR>
Read Color Temperature Status <CR>*ct=?#<CR>
Write Aspect Auto <CR>*asp=AUTO#<CR>
Read Aspect Status <CR>*asp=?#<CR>
LAMP CONTROL
Read Lamp Hour <CR>*ltim=?#<CR>
Write Normal mode <CR>*lampm=lnor#<CR>7
Write Eco mode <CR>*lampm=eco#<CR>
Write Smart Eco mode <CR>*lampm=seco#<CR>
Read Lamp Mode Status <CR>*lampm=?#<CR>
MISCELLANEOUS
Write 3D Sync Off <CR>*3d=off#<CR>
Write 3D Sync Top Bottom <CR>*3d=tb#<CR>
Write 3D Sync Frame Sequential <CR>*3d=fs#<CR>
Read 3D Sync Status <CR>*3d=?#<CR>
Aber nochmal zurück zu Deinem Modul...
Was habe ich falsch gemacht, dass das das Command nicht funktioniert hat?
Du hattest ja geschrieben, dass ich das in der FHEM Console machen sollte und nicht im Terminal per telnet oder?
Gruß
der Merlin
Hallo Merlin,
ich benutze 66_ECMD und 67_ECMDDevice zum steuern einiger Relaiskarten mit serieller Schnittstelle.
Deine Befehle kannst du in eine classdef schreiben und dann aus Fhem aufrufen.
Beispiel:
set out params port
set Init cmd {chr(1).chr(1).chr(1).chr(1)}
set Init postproc {ord(substr($_,2,1))}
set out cmd {chr(3).chr(1).chr(%port).chr( 3 ^ 1 ^ %port)}
set out postproc {ord(substr($_,2,1))}
set on cmd {chr(3).chr(1).chr(255).chr( 3 ^ 1 ^ 255)}
set on postproc {ord(substr($_,2,1))}
set off cmd {chr(3).chr(1).chr(0).chr( 3 ^ 1 ^ 0)}
set off postproc {ord(substr($_,2,1))}
get state cmd {chr(2).chr(1).chr(0).chr( 2 ^ 1 ^ 0)}
get state postproc {ord(substr($_,2,1))}
Hoffe das hilft dir ein wenig.
Hallo Merlin,
sorry, ich habe eine Weile nicht mitgelesen.
ZitatDann habe ich erst ein reload 99_serial gemacht ...
Hm, das sollte eher
reload 99_serial
.pmheißen. Dann sollte auch der Aufruf der Funktion aus der Konsole auch funktionieren.
ZitatAllerdings würde ich trotzdem gerne Deinen Fernkurs "buchen".
Kein Problem, wenn ich auch dabei was lerne ...
ZitatDu hattest ja geschrieben, dass ich das in der FHEM Console machen sollte und nicht im Terminal per telnet oder?
Per fhem Konsole ...
Bin jetzt ein paar Tage weg, aber dann lese ich wieder mit.
Gruß PeMue
Hallo PeMue,
vielleicht kannst Du mir ein wenig auf die Sprünge helfen. Ich habe meine Aufgabenstellung schon andernorts hier im Forum so beschrieben
ZitatHallo 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 habe ich gelesen, dass Du DevIO.pm benutzt. Leider ist das Modul in der Commandref nicht beschrieben. Kannst Du mir vielleicht angeben, wie Du das eingebunden hast?
Weiterhin schreibst Du von 99_serial.pm. Ist das Moul schon fertig und wie wendet man es an?
Ich möchte, genau wie Du (wie oben beschrieben), meinen Wechselrichter auslesen und die Daten in FHEM ablegen und verarbeiten. Läuft das schon bei Dir?
Die serielle Schnittstelle im RasPi funktioniert schon (musste Rx und Tx am Stecker tauschen).
Der Datenlogger arbeitet mit 3200 Bd 8N2. Das Startbyte ist CA hex. dann folgen 5 Bytes für AC-Power, Solar-U, Netz-U, WR-Temp. und WR-Nr. gefolgt von einer Checksumme. Danach wird 18 x 1A hex empfangen, was das Anforderungsbyte an den WR ist, damit er Daten sendet. Das wird zwar zum WR gesendet aber auch vom Datenlogger zum PC (RaspPi) warum auch immer.
Fast alle Datenbytes beinhalten nicht den wirklichen Wert, sondern müssen nachberechnet werden z.B. 2.Byte 018 hex = 24 dec *110/8 = 330 W AC.
Ich beschreibe das alles so genau, um zu zeigen, dass das alles nicht so ganz trivial ist. So muss auch für den Einlesestart 1A hex gefolgt von CA hex ermittelt werden, weil es ja auch sein kann, dass ein Messwert CA hex ist.
Übrigens wäre ich auch an Deinem "Fernkurs" sehr interessiert.
Ich würde mich freuen, wenn Du mir ein wenig helfen könntest. Viele Grüße und schönes Wochenende
Harald
PS: Übrigens suche ich noch ein Terminalprogramm für den RasPi, das mit 3200 Bd zurecht kommt und die empfangenen Werte in Hex, Dec und möglichst auch binär darstellen kann. Ich habe HTerm gefunden, das unter Win7 funktioniert, unter Linux Schwierigkeiten mit 3200 Bd hat und auf dem RasPi nicht läuft (zumindest bei mir z.Z.)
Hallo Harald,
Zitat von: Harald am 09 August 2014, 12:22:31
Kannst Du mir vielleicht angeben, wie Du das eingebunden hast?
Ich habe für mich nur mal probiert, wie die serielle Kommunikation so funktioniert. In C wäre das alles kein Problem, aber mit Perl habe ich es momentan nicht so. Abgeschrieben habe ich die Sache von hier http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/70_NT5000.pm.
Zitat von: Harald am 09 August 2014, 12:22:31
Weiterhin schreibst Du von 99_serial.pm. Ist das Modul schon fertig und wie wendet man es an?
Das ist kein Modul sondern nur ein grober Konstrukt, der serielle Funktionen zur Verfügung stellt. Wenn Du willst, lasse ich Dir meinen "Abstrakt" per PM zukommen.
Zitat von: Harald am 09 August 2014, 12:22:31
Ich möchte, genau wie Du (wie oben beschrieben), meinen Wechselrichter auslesen und die Daten in FHEM ablegen und verarbeiten. Läuft das schon bei Dir?
Ich habe mich mittlerweile für Solarview entschieden und schreibe einen "Umsetzer" in C.
Zitat von: Harald am 09 August 2014, 12:22:31
Die serielle Schnittstelle im RasPi funktioniert schon (musste Rx und Tx am Stecker tauschen).
Das ist normal, denn der Tx am Raspberry Pi geht auf den Rx am Wechselrichter und umgekehrt.
Zitat von: Harald am 09 August 2014, 12:22:31
Der Datenlogger arbeitet mit 3200 Bd 8N2.
Das scheint relativ unüblich zu sein, ich weiß nicht, ob der Raspberry Pi das standardmäßig kann.
Ich kenne nur 2400 bzw. 4800 bd.
Zitat von: Harald am 09 August 2014, 12:22:31
Übrigens wäre ich auch an Deinem "Fernkurs" sehr interessiert.
Hm, wie gesagt, wenn ich dabei auch was lerne, gerne. Nur ist gerade bei mir viel los ...
Ich verwende minicom auf dem Raspberry Pi und HTerm oder Terminal v1.9b für Windows, alle können sie keine 3200 bd. Kann Dein Wechselrichter auch langsamer (z.B. 2400 bd)?
Welcher Typ ist denn das? Wird dieser ggf. von Solarview schon ausgelesen? Wenn ja, wäre das die schnellste Lösung.
Gruß PeMue
Hallo PeMue,
erstmal herzlichen Dank für Deine Antwort. So, aber nun zu den einzelnen Punkten:
Ich habe mir 70_NT5000.pm in /opt/fhem/FHEM kopiert und FHEM neu gestartet. Leider erscheint aber die Beschreibung nicht in der Commandref. Der HTML-Code ist im Modul aber vorhanden. Mal sehen, wie ich das hinbekomme. Vielleicht kann ich das ja für meinen WR abwandeln. Wenn das möglich ist, benötige ich Deine 99_serial.pm nicht. Wenn doch, melde ich mich nochmal. Vielen Dank für's Angebot.
Das mit dem Programmieren ist bei mir ähnlich, schon lange her und beschränkte sich auf Basic und Assembler (6502). Deshalb suche ich auch eine Möglichkeit, vorhandenes zu verwenden und ggf. mit meinen geringen Kenntnissen in perl und vielleicht der Hilfe des Forums, etwas für mich passendes zu erhalten.
Hm, SolarView habe ich mir angesehen. Das ist, glaube ich, nicht ganz das richtige für mich. Da wird über LAN gearbeitet, was ich an meinem WR nicht zur Verfügung habe und ein Interface LAN/RS232 kostet schon einige €.
Was Tx/Rx anbetrifft, ist mir das eigentlich klar. Ich bin aber in die Falle getappt, weil mit den vorhandenen Kabeln die Datenübertragung an 3 PC's mit und ohne USB/RS232-Adapter klappte und am Pi nicht. Nach Durchmessen der Leitungen und Umlöten klappte es natürlich ;)
Leider kann der WR, ein Fronius Midi Plus (Bj. 2001 :o ) nur die 3200 Bd. Grundsätzlich sollte das funktionieren, da das ein ganzzahliger Teil von 1.8432 MHz ist.
1,8432 MHz / 16 = 115200 Bd. / 36 = 3200 Bd.
Ich habe in HTerm 0.8.1 die *.cfg geändert und die 3200 in die entsprechende Zeile eingefügt. Das klappt prima. In der Version 0.6.5 kann man mit C&P die 3200 in das Bd.-Feld übertragen. Das wird dann auch übernommen und funktioniert. In der Linuxversion 0.8.1 kommt die Meldung , dass das eine ungültige Bd.-Rate sei und verweigert die Arbeit. Eine 0.6.5 für Linux habe ich nicht gefunden. Minicom akzeptiert die Bd.-Rate, zeigt aber keine richtigen Werte (Asc oder Hex o.a.) an. Vielleicht klappt das ja, wenn man die Umwandlungstabelle anpasst.
GtkTerm unter Linux-Mint meckert die 3200 Bd. auch an, arbeitet aber damit. Die Anzeige von Bin geht da zwar nicht, Hex und Asc aber schon.
Leider hat sich der Entwickler von HTerm wohl zurückgezogen. Er hat zwischen 2005 und Anfang 2010 in Microcontroller.net das Programm vorgestellt und weiter entwickelt. Ich habe schon versucht, ihn zu kontaktieren aber bis jetzt ohne Rückmeldung.
Nochmal besten Dank für Deine Ausführungen, viele Grüße und schönen Sonntag noch
Harald
Hallo Harald,
Zitat von: Harald am 10 August 2014, 18:35:41
Hm, SolarView habe ich mir angesehen. Das ist, glaube ich, nicht ganz das richtige für mich. Da wird über LAN gearbeitet, was ich an meinem WR nicht zur Verfügung habe und ein Interface LAN/RS232 kostet schon einige €.
stimmt nicht ganz. Ich arbeite mit einem S0->USB Wandler, es gibt andere Wechselrichter, die mit einem RS485->USB Wandler arbeiten. LAN ist also nicht Pflicht.
Gruß PeMue
Hallo PeMue,
ich habe mir einiges angesehen, aber noch nichts passendes für mich gefunden. Ich würde gerne auf Dein Angebot bez. 99_serial.pm zurück kommen. Hast Du auch eine kleine Anleitung, wie ich das verwenden kann?
Du schreibst, dass Du von 70_NT5000 auf SolarView umgestiegen bist. Hat es mit NT_5000 garnicht geklappt oder ist es mit SolarView nur eleganter und einfacher? Falls NT_5000 grundsätzlich bei Dir geklappt hat, könntest Du mir verraten, wie Du das bewerkstelligt hast? Vielleicht finde ich dann einen Weg, meinen WR mit dem Pi auszulesen. Ich habe übrigens nochmal nachgesehen. In meinem WR kann ich evtl. die Bd.-Rate beeinflussen, aber nicht in dem Datenlogger, der zwischen WR und PC hängt :(
VIele Grüße
Harald
Hallo PeMue,
noch einen Nachtrag: Ich habe mir das "Modülchen" 99_serial.pm von hier herunter geladen und in /fhem/FHEM kopiert. Wenn ich in fhem {serial_comm(3200,"/var/ttyAMA0,)} oder auch {serial_comm(3200,"/dev/ttyAMA0,)} eingebe, erhalte ich die Meldung:
Undefined subroutine &main::serial_comm called at (eval 1970) line 1.
Das selbe passiert mit oder ohne zu sendenden Befehl und auch mit anderen Bd.-Raten.
Ist das evtl. das falsch "Modülchen" oder ist der Aufrucf verkehrt?
Viele Grüße
Harald
nimm doch mal dashttp://forum.fhem.de/Themes/default/images/bbc/bold.gif
{serial_comm(3200,"/dev/ttyAMA0")}
Ansonsten muss ich mal an meinem Rechner probieren.
Gruß PeMue
PS: Da schon von einem Modul zu sprechen ist seeehr gewagt ;)
Jaja, Du hast recht ;) deshalb ja auch "Modülchen" 8)
Was soll sich eigentlich tun, wenn ich das eingebe? Sollten dann Daten ausgegeben werden? Das " fehlt nur hier, in FHEM war es drin.
Kann es sein, dass sich ein falscher Link vorgedrängelt hat? Ich sehe nämlich nur ein weißes Icon mit schwarzem B.
Ich versuche gerade NT5000 zu verwenden. Die Schnittstelle öffnen kann ich schon allerdings mit der Meldung, der WR sei offline. Das liegt warscheinlich daran, dass das Protokoll anders ist, als bei mir. Hast Du da evtl. infos darüber, wie der Datenverkehr beim NT5000 ist?
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.
Hallo,
ich habe bei mir das gleiche vor und habe nach langen einarbeiten in linux endlich eine es geschaft meinen Beamer mit Befehlen zu füttern.
Ich nutze z.B:
AUS:
{serial_comm(19200,"/dev/ttyUSB0","\xBE\xEF\x03\x06\x00\x2A\xD3\x01\x00\x00\x60\x00\x00")}
AN:
{serial_comm(19200,"/dev/ttyUSB0","\xBE\xEF\x03\x06\x00\xBA\xD2\x01\x00\x00\x60\x01\x00")}
das Senden übernimmt 99_Serial.pm
was mir noch fehlt ist das ich die Antwort vom Beamer auslesen kann, kann mir da einer helfen??
Es sollte sowas kommen 00 00 oder 01 00