Hauptmenü

curl Aufruf

Begonnen von roli, 27 Februar 2023, 12:22:42

Vorheriges Thema - Nächstes Thema

roli

Ich habe mittlerweile ein Problem innerhalb von FHEM ein http API zu verwenden. 
Genau gesagt versuche ich den  Mode meine  Sonnenbatterie zu verändern.   
Auf commandlinde geht dies ganz gut,  aber auf FHEM heraus irgendwie nicht ohne Probleme.

Meine bisherige FHEM Anweisung :

  # auf  Manuellen Mode schalten
$content = `curl -X PUT -d EM_OperatingMode=1 --header 'Auth-Token: $Auth_Token' http://sb-56902:80/api/v2/configurations`;
  if ( $content eq '{\"EM_OperatingMode\":\"1\"}' )
{
Log 1, "  #### Set Batterie OperationsMode  Manuell  fehlgeschlagen";
return;
}  


Im Logfile  steht dann:


2023.02.27 12:01:26 1: -------------   Setze auf  Mode 10
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100    44  100    25  100    19    112     85 --:--:-- --:--:-- --:--:--   119



Ich habe leider keine Ahnung  wo der  Text :   % Total ....    herkommt.     Dies hat nichts mit meiner FHEM Programmierung zu tun.

Sowas kommt auch nicht, wenn ich curl in PUtty aufrufe  -- tut alles wie es Soll - aber halt nicht in FHEM.  $content  müsste auch richtig zurück gekommen sein  -- aber wo kommt der Rest her ?

FHEM auf Debian Wheezy(RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp, GPIO based Relais-Schalter;i2c Bus
Integration von Sonnenbatterie Eco8;
Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

Otto123

Hi,

eine status Ausgabe von curl? Hast Du mal -s probiert? Also curl -sX ...

Gruß Otto
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

betateilchen

Warum eigentlich der Umweg mit curl und nicht mit den Bordmitteln, die FHEM in den HttpUtils zur Verfügung stellt?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roli

Hatte dies bisher von jemand bekommen und früherer api Version ging dies problemlos.
Ich dachte auch eher an HTTPMOD aber war bisher erfolglos . Anderer Post von heute.

Ich werde weiter testen müssen um dies hoffentlich irgendwie fehlerfrei zu schaffen.
Solche Dinge sind dann halt extrem zeitraubend und ich denke es gibt sicher jemand der
So einen PUT mit. HTTPMOD mit null Aufwand machen kann.



FHEM auf Debian Wheezy(RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp, GPIO based Relais-Schalter;i2c Bus
Integration von Sonnenbatterie Eco8;
Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

betateilchen

Von HTTPMOD hat hier niemand gesprochen...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roli

Der Hinweis von Otto   mit  "-sX" war goldrichtig  - vielen Dank !!

Werde erst mal bei den curl Aufrufen aus PERL bleiben, zumal die ganze Geschicht mit HTTPMOD  auch recht seltsam reagiert 
FHEM auf Debian Wheezy(RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp, GPIO based Relais-Schalter;i2c Bus
Integration von Sonnenbatterie Eco8;
Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

betateilchen

Hauptsache, umständlich... Viel Spaß  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roli

Zitat von: betateilchen am 28 Februar 2023, 16:06:21
Hauptsache, umständlich... Viel Spaß  8)

Ich denke nicht unbedingt umständlich - aber ich arbeite daran es sauberer zu machen, da es sonst
keiner versteht und pflegen kann.
Deshalb wollte ich eigentlich auch mit HTTPMOD  define machen.  Alles andere  ist wieder zu tief PERL  usw. 
Ich halte auch meinen PERL code so einfach wie möglich, damit nicht jeder gleich tiefes Programmierwissen braucht. 
FHEM auf Debian Wheezy(RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp, GPIO based Relais-Schalter;i2c Bus
Integration von Sonnenbatterie Eco8;
Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

betateilchen

Zitat von: roli am 28 Februar 2023, 16:21:48
Deshalb wollte ich eigentlich auch mit HTTPMOD  define machen.

Eine URL aufzurufen, kann FHEM von Haus aus und sogar ganz ohne irgendein device definieren zu müssen. Da musst Du nicht aus FHEM heraus ein curl im Betriebssystem ausführen, um das Ergebnis danach wieder in FHEM auszuwerten.

https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_BlockingGet
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roli

Zitat von: betateilchen am 28 Februar 2023, 18:20:27
Eine URL aufzurufen, kann FHEM von Haus aus und sogar ganz ohne irgendein device definieren zu müssen. Da musst Du nicht aus FHEM heraus ein curl im Betriebssystem ausführen, um das Ergebnis danach wieder in FHEM auszuwerten.

https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_BlockingGet

Werde ich sicher mal ins Auge fassen und testen.
Und ja ich brauche für meine Lösung einen Blocking get. Dies ist auch das Problem mit Standard HTTPMOD . Ist nicht Blocking und deshalb habe ich ewig getestet um herauszufinden weshalb sich nach einem set nicht geändert hatten.
Viele der Docus sind nicht für simple Fälle mit 100 options und reger,.... Ist super flexibel
Aber leider dann nicht immer gleich intuitiv. Gut dass ich immer Phasen mit viel Zeit habe um dann mit viel try and error die Funktionalität herauszufinden.
Trotzdem finde ich FHEM genial


FHEM auf Debian Wheezy(RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp, GPIO based Relais-Schalter;i2c Bus
Integration von Sonnenbatterie Eco8;
Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag