Hier scheitert es leider schon an meinem Verständnis da mal -u, ein ander mal --user verlangt wird
Der Unterschied zwischen -u und --user ist mit drei Worten beschreiben: es gibt keinen. Sie bedeuten das gleiche, sie machen das gleiche, sie verhalten sich gleich. Die kurze Version -u ist die, die man vor 20 Jahren verwendete, da gab's nur die, bis dann einer auf die Idee kam, man könne doch zur Abwechslung etwas selbsterklärende Optionsbezeichner verwenden.
So bedeutet
--data das gleiche wie -d
--request das gleiche wie -X
--header das gleiche wie -h
und curl kennt noch viele Dutzende anderer Optionen.
Diese ausführlichen Optionsbezeichner können im Gegensatz zu den kurzen aus vielen Zeichen bestehen. Die kurzen nur aus einem einzigen Buchstaben, wobei Groß- und Kleinschreibung unterschieden werden. Damit curl nicht durcheinander kommt, denn in --request steht ja auch ein -r drin (und das macht was völlig anderes), werden die langen Bezeichner mit zwei Minuszeichen (--) angeführt.
Das ist inzwischen ein Standard bei vielen Programmen. Welche Optionen es gibt und wie die Bezeichner heißen, kann man im Manual nachschlagen, beispielsweise mit man curl (Blättern mit Leertaste, Abbruch mit q).
Beispielsweise kann man die Homebridge starten mit dem Befehl:
homebridge -I -Q -C -U /var/homebridge oder genauso gut mit:
homebridge --insecure --no-qrcode --color --user-storage-path /var/homebridge
und was bedeutet überhaupt -X
Ein Webserver kennt verschiedene Methoden. Alles, was man mit http:// anspricht, ist im Grunde ein Webserver. So ist also auch die Lametric einer, oder genauer: sie stellt einen bereit. Die Methoden, die man gegen Webserver anwenden kann, sind GET, POST PUT, DELETE und andere, wobei nicht jeder Webserver alle unterstützt. Letztendlich werden diese Methoden dazu benutzt, um Daten zwischen dem Browser (in diesem Falle: curl) und dem Server (in diesem Falle Lametric) auszutauschen. Mit dem -X (oder --request) wird curl mitgeteilt, welche Methode angewendet werden soll.
GET ist die Standardmethode, also kann man im curl-Befehl das -X GET auch weglassen. Dein Safari macht im Grunde immer ein GET, um eine Seite aufzurufen, aber wenn's dann ins eingemachte geht wie beispielsweise beim hin und her von Daten beim Online-Shopping oder hier im Forum beim Posten von Daten, dann macht der Safari auch POST und PUT, auch wenn man das weder unmittelbar sieht noch irgendwie mitbekommt.
Noch ein Punkt zu curl: Der einzige Parameter, der ohne einen Optionsbezeichner wie -h oder -u aufgerufen wird, ist die URL selbst. Wenn im curl-Befehl also etwas steht, was keinen Optionsbezeichner hat, dann ist es immer die Serveradresse, die curl benutzen soll. Daher hat weiter oben dein Befehl eine Fehlermeldung geworfen:
curl GET http://192.168.178.xx:8080/api/v2/device/wifi --user dev:4d71e9f8105e...
Curl glaubt nun, du willst einen Server namens GET verwenden. Und gibt dann zurück:
curl: (6) Could not resolve host: GET (gleichbedeutend mit: es konnte keine IP-Adresse für den Server GET gefunden werden).
Jedenfalls habe ich den Befehl zum ändern der Lautstärke im Terminal eingegeben und nur ein > bekommen was wohl nur bedeutet das nichts passiert ist...zumindest weiss ich nicht wie ich das interpretieren soll.
In nahezu 100% aller Fälle bedeutet das, dass ein Anführungszeichen (") oder ein Tick (') fehlt und das du jetzt bitte noch was eingeben sollst. Ich glaube nicht, dass ich diese Anzeige mehr als 150.000 mal in meinem Leben gesehen habe. Jeder sieht die, wenn er sehr krude Kommandos mit vielen Anführungszeichen auf der Shell eingibt und jeder sucht sich dann die Augen blind. Das kannst du 30 Jahre lang machen und bekommst trotzdem ein >.
Ich baue schwierige Befehle wie solche curl-Befehle mit einem Haufen JSON drin immer in Textedit zusammen. Erst nehme ich das JSON-Zeugs, formatiere es, so das ich halbwegs sehen kann, ob es korrekt ist (und schieb's auch gern nach JSONlint rein), dann bringe ich das in eine Zeile, dann schreibe ich -d' davor und ein ' dahinter und so bastel ich mir Stück für Stück den Befehl zusammen. Auf der Shell ist das nur was für Autisten oder Fans von hohem Frustlevel.
curl -X PUT -u 'dev:4d71e9f8105exx5d9exxxxxxab6' -H 'Content-Type: application/json' -d '{"volume" : 50}‘ http://192.168.178.53:8080/api/v2/device/audio
-d '{"volume" : 50}‘ <-- was soll das dahinten für ein Ding sein? Sind wir hier im Französichunterricht? Das muss kein `, sondern ein ' sein.