FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: the ratman am 06 Dezember 2020, 10:17:45

Titel: [erledigt] doif und curl - bin wieder mal zu unwissend
Beitrag von: the ratman am 06 Dezember 2020, 10:17:45
grüß euch ...

endlich komm ich dazu, an meiner 3d-drucker-steuerung weiter zu basteln. das dumme: ich hab's eigentlich fertig nach besten wissen und gewissen, aber es passiert einfach nix. warscheinlich ists eh wieder nur irgend eine lächerlichkeit, die ich übersehen hab.

so sieht mein doif aus (wieder mal wild zusammengesucht aus beiträgen in diesem forum):([$SELF:start] eq "")
{ system ("curl --location --request POST 'http://192.168.178.9/command' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'PRINT=[dremel3d45:jobname]'")}
DOELSEIF
([$SELF:pause] eq "")
{ system ("curl --location --request POST 'http://192.168.178.9/command' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'PAUSE=[dremel3d45:jobname]'")}
DOELSEIF
([$SELF:stop] eq "")
{ system ("curl --location --request POST 'http://192.168.178.9/command' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'CANCEL=[dremel3d45:jobname]'")}
der entsprechende zweig wird aufgerufen, ich kriege keine fehlermeldung (zumindest sehe ich nix).

so stehts in der "anleitung", die ich gefunden hab und die sonst recht korrekt ist:
ZitatPrint Start
curl --location --request POST 'http://<printer_ip>/command' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'PRINT=<gcode_file_name>'

Response example
{"error_code":200,"message":"success"}

Print Pause
curl --location --request POST 'http://<printer_ip>/command' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'PAUSE=<gcode_file_name>'

Response example
{"error_code":200,"message":"success"}

For resume you can send "Print Start" command

Print Cancel
curl --location --request POST 'http://<printer_ip>/command' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'CANCEL=<gcode_file_name>'
Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: amenomade am 06 Dezember 2020, 10:27:56
Und funktionieren die curl Befehle in der Console?
Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: marv99 am 06 Dezember 2020, 10:30:13
Hast Du auf der 192.168.178.9 eine Möglichkeit zu erkennen, ob Deine Aufrufe überhaupt ankommen? (z.B. Logfile)
Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: the ratman am 06 Dezember 2020, 11:41:07
@amenomade auslesen auf jeden fall, aber mir fällt grade auf: die befehle hab ich so nie probiert.
sollte man mal probieren - dass meint ich mit "lächerlichkeit" *lach*

@marv99 nein. theoretisch stoppt/pausiert/startet der drucker einfach. ich würde allerdings ein "error 200" als o.k.-meldung zurück kriegen müssen. die kann ich in fhem auslesen.

die frage bleibt aber mal : sollte das zumindest so funktionieren, wenn die befehle gehen? jetzt mal aus doif-sicht.
Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: amenomade am 06 Dezember 2020, 11:53:28
Zitat von: the ratman am 06 Dezember 2020, 11:41:07
die frage bleibt aber mal : sollte das zumindest so funktionieren, wenn die befehle gehen? jetzt mal aus doif-sicht.
Ja, mA sollte es funktionieren... so lange die system Befehle tatsächlich funktionieren.
Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: Otto123 am 06 Dezember 2020, 12:43:22
Zitat von: amenomade am 06 Dezember 2020, 11:53:28
Ja, mA sollte es funktionieren... so lange die system Befehle tatsächlich funktionieren.
Und das Problem bei DOIF ist, dass man quasi so gut wie alle Ausführsteile (Codes) praktisch nicht einfachmal so in der FHEM Kommandozeile testen kann :(
ZitatPRINT=[dremel3d45:jobname]
Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: amenomade am 06 Dezember 2020, 12:46:29
Wieso?

Ein curl Befehl kann man in der Console testen.

Und ein Perl-Befehl in einem DOIF kann man auch in der FHEM Kommandozeile testen.


Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: Otto123 am 06 Dezember 2020, 13:08:51
weil das hier DOIF Spezial ist: [dremel3d45:jobname] sowie die Hoffnung das hier ein Wert aufgelöst wird - und an der Stelle in der Kommandozeile nur bei set magic geht.
Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: Christoph Morrison am 06 Dezember 2020, 13:10:49
Was liefert der curl-Aufruf zurück, wenn du z.B. folgende Kombination benutzt:


([$SELF:start] eq "")
{ system ("curl --location --request POST 'http://192.168.178.9/command' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'PRINT=[dremel3d45:jobname]'"); return $!; }


Hast du curl überhaupt installiert?
Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: amenomade am 06 Dezember 2020, 13:27:49
Zitat von: Otto123 am 06 Dezember 2020, 13:08:51
weil das hier DOIF Spezial ist: [dremel3d45:jobname] sowie die Hoffnung das hier ein Wert aufgelöst wird - und an der Stelle in der Kommandozeile nur bei set magic geht.
Na gut, ok, hast Recht. Um es in der Fhem Kommandozeile zu testen, muss man [dremel3d45:jobname] durch den echten Wert ersetzen.

Jedenfalls muss erstmal der curl Befehl (in der Konsole oder wie auch immer) getestet werden. Ohne Rückmeldung vom TE diesbzgl. braucht man nicht weiter zu analysieren.
Titel: Antw:doif und curl - bin wieder mal zu unwissend
Beitrag von: the ratman am 06 Dezember 2020, 14:07:12
thx an euch.

ich muß jetzt mal warten, bis der drucker nix druckt, dass ich bei meinen spielchen versauen könnte.

wichtig ist mal, dass es wohl funzen würde, wenn die befehle an sich gehen. das nimmt ein großes eck an problemen raus für mich. mal gucken, was passiert, wenn ich mich mal weiter spiele.
wenn ichs versammle, schrei ich hier sowieso wieder laut um hilfe *g*