[erledigt] doif und curl - bin wieder mal zu unwissend

Begonnen von the ratman, 06 Dezember 2020, 10:17:45

Vorheriges Thema - Nächstes Thema

the ratman

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>'
→do↑p!dnʇs↓shit←

amenomade

Und funktionieren die curl Befehle in der Console?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

marv99

Hast Du auf der 192.168.178.9 eine Möglichkeit zu erkennen, ob Deine Aufrufe überhaupt ankommen? (z.B. Logfile)

the ratman

@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.
→do↑p!dnʇs↓shit←

amenomade

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.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

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]
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

amenomade

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.


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

#7
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.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Christoph Morrison

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?

amenomade

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.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

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*
→do↑p!dnʇs↓shit←