Hallo, ich habe eine kleine HW bekommen die paar digitale Ausgänge und Eingänge hat. Ein Webserver ist vorhanden und alles funktioniert wenn man mit dem Browser arbeitet. Ich möchte jetzt gerne ohne Browser einzelne Ausgänge setzen und abfragen. Dazu benutze ich CURL. Da ich eigentlich keine Ahnung von CURL, HTTP, CGI etc. habe, konnte ich nach langem suchen im WEB und durch viel ausprobieren Ausgänge setzen und rückzusetzen. also z.B. curl -d "pin=2&val=1" http://192.168.11.100/dout.cgi Man kann damit Batchfiles erstellen und mit einem Mausklick den entsprechenden Ausgang setzen oder rücksetzen. Mein Problem ist jetzt, wie kann ich Eingänge abfragen und das zurückgelieferte Ergebnis weiterverarbeiten ? Könnte mir da bitte jemand Hilfestellung geben? (!!Ja, ich habe schon im WEB gesucht und damit sehr viel Zeit verbracht, bin aber für meine Verständnis nicht fündig geworden!!) Danke
Wenn du mit dem Browser den Status angezeigt bekommst (und nur dann) geht es auch mit CURL. Im Prinzip kannst du mit CURL den selben Output abholen, wie du mit "Zeige Quelltext" im Browser vorgesetzt bekommst. Dann noch ein wenig nachbearbeiten und fertig. Ob das aber auf der Kommandozeile mit Batch-Verarbeitung etwas wird, glaube ich eher nicht. Da musst du wohle einfache eine Programmiersprache benützen.
StinkyWinky schrieb: > Wenn du mit dem Browser den Status angezeigt bekommst (und nur dann) > geht es auch mit CURL. Ja, das glaube ich auch. Frage ist aber, wie muss der CURL Einzeiler dazu aussehen?
Ich habe das in C programmiert. Dort genügt ein Einzeiler definitiv nicht. Wie das auf der Kommandozeile gehen würde, kann ich nur vermuten: Die Seite in eine Datei herunterladen: curl -o savedpage.txt http://192.168.11.100/ Dann die Datei mittels geeignetem Skript parsen, und das Resultat zu weiteren Verwendung bereitstellen.
Schaue Dir mal awk an, damit kannst Du die Ausgabe von Curl parsen und verarbeiten. Gibt es unter Linux, sollte es auch für Windows geben (OS hattest Du nicht angegeben). Awk arbeitet Zeilenweise mit Dateien oder stdin als Input.
StinkyWinky schrieb: > Wenn du mit dem Browser den Status angezeigt bekommst (und nur dann) > geht es auch mit CURL. > Im Prinzip kannst du mit CURL den selben Output abholen, wie du mit > "Zeige Quelltext" im Browser vorgesetzt bekommst. Dann noch ein wenig > nachbearbeiten und fertig. Meiner Meinung nach ist cURL dafür der falsche Weg. Es führen zwar viele Wege zum Ziel, ich würde in der Programmiersprache meiner Wahl die Seite einfach mit der Webdownload-Funktion, z.B. aus dem .NET-Framework herunterladen. Danach die Datei nach den gewünschten Daten durchsuchen (parsen) und schon hast du das gewünschte Ergebnis. In VB.NET dürften das so um die 30 Zeilen Code sein. > Ob das aber auf der Kommandozeile mit Batch-Verarbeitung etwas wird, > glaube ich eher nicht. Da musst du wohle einfache eine > Programmiersprache benützen. Sehe ich genauso. Das herunterladen ist nicht das Problem, allerdings die Suche und Aufbereitung der Daten. Da hätte ich jetzt keine Idee, wie das auf Kommandozeilen-Ebene laufen soll.
Ich bedanke mich sehr für die verschiedenen Hinweise. Da es auf den ersten Blick recht einfach ist mit CURL per Mausklick ein Pin (Relais) ein und auszuschalten, dachte ich naiver weise das gilt auch irgendwie für's Auslesen (OS ist WIN8.1) Eure Hinweise und Information geben mir aber wieder Input zum Weiter- suchen. Schön wäre halt, wenn man irgendwie ein Beispiel hätte, an dem man sich "festhalten " könnte. Als unbedarfter Einsteiger ist es sonst schwierig. Aber nochmals vielen Dank für die Hinweise, ich denke das hilft schon mal.
Jens P. schrieb: > Meiner Meinung nach ist cURL dafür der falsche Weg. Das kommt auf die Seite an. Wenn man mit einem nachgeschalteten Skript-Fünfzeiler die Daten bequem per Patternmatching aus der Seite rausfischen kann, dann geht das schnell und bequem mit curl. curl ist auch nichts anderes als eine > Webdownload-Funktion. Kommt vom Webserver hingegen ein moderner Wust aus minimaler HTML-Seite und ein paar tausend Zeilen JavaScript, dann reicht ein Download der Seite nicht, egal mit welcher Programmiersprache. Dann braucht man notfalls eine Browser-Komponente mit JavaScript-Unterstützung und muss, nachdem die Seite im Speicher fertig gerendert ist, das DOM nach den Daten durchsuchen. Das ist dann der Punkt, wo man dem Hersteller der Hardware sagen sollte, dass er mal auf sein Leben klarkommen soll und eine vernünftige Schnittstelle anbieten sollte. curl schrieb: > Da es auf den ersten Blick recht einfach ist mit CURL per Mausklick > ein Pin (Relais) ein und auszuschalten, dachte ich naiver weise > das gilt auch irgendwie für's Auslesen (OS ist WIN8.1) Das hat nichts mit dem OS zu tun, sondern wie der Hersteller der Hardware seinen eingebauten Webserver und seine Webseiten gestaltet hat. > Schön wäre halt, wenn man irgendwie ein Beispiel hätte, an dem man > sich "festhalten " könnte. Das können wir dir nicht liefern, weil wir nicht wissen wie der Hersteller deiner Hardware seine Webseiten und Web-Schnittstellen aufgebaut hat. He, wir wissen nicht mal, wer der Hersteller ist. > Als unbedarfter Einsteiger ist es sonst > schwierig. Frag den Hersteller nach vollständigen Beispielen.
1 | FOR /F "usebackq" %%i IN (`wget -O - www.blubdidup.com ^| sed -n "s/.*://" `) DO ECHO %%i |
Jack schrieb: > Das hat nichts mit dem OS zu tun, sondern wie der Hersteller der > Hardware seinen eingebauten Webserver und seine Webseiten gestaltet hat. > Das wusste ich, nur wurde in einem vorherigen Beitrag nach dem OS gefragt. > > Das können wir dir nicht liefern, weil wir nicht wissen wie der > Hersteller deiner Hardware seine Webseiten und Web-Schnittstellen > aufgebaut hat. He, wir wissen nicht mal, wer der Hersteller ist. > Das verstehe ich. Wollte auch keine perfekt Lösung sondern nur ein Lösungsansatz, sozusagen nur eine prinzipielle Lösung. Aber bitte. Hier ist der download link. Im Verzeichnis WIZ550web_Webpages\0_Basic_Demopages ist der HTML Code (index.html)den ich benutze. http://wizwiki.net/wiki/lib/exe/fetch.php?tok=1e395e&media=https%3A%2F%2Fgithub.com%2FWiznet%2FWIZ550web%2Farchive%2Fv1.1.1.zip Jetzt müsste alles bekannt sein, oder ? > > Frag den Hersteller nach vollständigen Beispielen. Der Herstellung sagt leider gar nichts dazu. Musste mir den ersten Teil (setzen von Ausgängen) auch selbst erarbeiten.
--- schrieb: > FOR /F "usebackq" %%i IN (`wget -O - www.blubdidup.com ^| sed -n > "s/.*://" `) DO ECHO %%i Sagt mir leider nichts. Wäre für eine Erklärung sehr dankbar!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.