[Gelöst] NULL per HTTPMOD versenden

Begonnen von chris_kmn, 03 November 2021, 16:41:50

Vorheriges Thema - Nächstes Thema

chris_kmn

Hallo zusammen,

ich hänge nun schon seit einigen Stunden an folgendem Problem:

Für eine Wallbox-Steuerung müsste ich per HTTPMOD einen NULL Wert versenden. Mit curl würde man es so machen:

curl -H "Content-Type: application/json" -X PUT -d "null" http://192.168.0.82/evse/stop_charging

Kennt jemand einen Weg wie man das in einem set01...-Befehl umgesetzt bekommt ?

Einer meiner vielen erfolglosen Versuche sieht so aus:


attr WARP2_CP set03Data {"null"}
attr WARP2_CP set03Header Content-Type: application/json
attr WARP2_CP set03Method PUT
attr WARP2_CP set03Name stop_charging
attr WARP2_CP set03NoArg true
attr WARP2_CP set03URL http://192.168.0.82/evse/stop_charging


Vielen Dank vorab,

  Chris

bartman121

#1
Hmmm

Als erstes die Empfehlung das ganze mit einem sinnvollen api-client zu testen....

https://insomnia.rest/

Gibt's denn überhaupt eine Api-Dokunentation?

Dein curl-aufruf ist komisch ....

Warum der Header wenn du dann als Data/Request Body einen normalen String schickst?...

Also in insomnia würde man im Body einfach nichts eintragen

Funktioniert der curl Aufruf überhaupt? Was gibt es da als Response?

Hast du bei httpmod einfach Mal versucht das Data-Attribut nicht zu setzen,genauso das noarg Attribut würde ich Mal weglassen... Aber so tief stecke ich in httpmod nicht drin

chris_kmn

Die API ist hier beschrieben:

https://www.warp-charger.com/api.html

Dort ist der curl Aufruf so beschrieben und es funktioniert auch wunderbar, wenn ich ihn z.B. in den myUtils mittels qx absetze.

Die API soll laut Beschreibung PUT, POST und PATCH gleich behandeln. Der Header ist ebenfalls laut API vorgegeben.

Insomnia schaue ich mir mal an. Ist ein guter Tip. Merci :)

chris_kmn

Also ich habe mir das Ganze mal mit Insomnia angeschaut und letztlich konnte ich damit
bestätigen, dass die API meine Wallbox wie spezifiziert funktioniert.

Meine Frage hier ging ja vor allem in die Richtung, wie ich mit dem HTTPMOD Modul einen PUT (oder POST oder PATCH) auslösen kann mit einem Body mit NULL als wert.

Bei Insomnia kann ich im Body  -  null - eintragen und damit funktioniert der PUT genau wie mit  curl -d "null".

Im Prinzip müsste man mit set01Data einen Null-Wert versenden. Ich weiß aber nicht, dass es Null Werte bei FHEM oder Perl überhaupt gibt.

chris_kmn

Wer genug probiert...

Es war wohl zu einfach  :-[  Wenn ich einfach nur null angebe ohne Klammer und alles, dann funktiniert es :-(

attr WARP2_CP set04Data null
attr WARP2_CP set04Header Content-Type: application/json
attr WARP2_CP set04Method PUT
attr WARP2_CP set04Name start_charging
attr WARP2_CP set04NoArg 1
attr WARP2_CP set04NoData 0
attr WARP2_CP set04URL http://192.168.0.82/evse/start_charging