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>'
Und funktionieren die curl Befehle in der Console?
Hast Du auf der 192.168.178.9 eine Möglichkeit zu erkennen, ob Deine Aufrufe überhaupt ankommen? (z.B. Logfile)
@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.
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.
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]
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.
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.
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?
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.
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*