JSONMOD, Parameter nach Fragezeichen übergeben?

Begonnen von Dirk070, 09 August 2022, 21:02:42

Vorheriges Thema - Nächstes Thema

Dirk070

Hallo zusammen,

soweit ich es verstanden habe, ist die URL in JSONMOD fix.
Ein Workaround wurde über Modify und secret beschrieben.
https://forum.fhem.de/index.php/topic,121498.msg1161976.html#msg1161976

Ich habe eine URL, die mit Parametern (nach dem Fragezeichen) aufgerufen wird.
http://IP:8080/api/db_data?startDate=2022-08-01&timespan=MONTH

Das startDate würde ich gerne dynamisch mitgeben können. Geht das auch (nur) über den Workaround oder übersehe ich eine Möglichkeit?

Vielen Dank vorab und schöne Grüße
Dirk

betateilchen

Warum fragst Du das nicht im für JsonMod richtigen Unterforum?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

yersinia

Zitat von: betateilchen am 09 August 2022, 22:28:22Warum fragst Du das nicht im für JsonMod richtigen Unterforum?
+1
@TE: Bitte nach Automatisierung verschieben!

Zitat von: Dirk070 am 09 August 2022, 21:02:42
https://forum.fhem.de/index.php/topic,121498.msg1161976.html#msg1161976

Ich habe eine URL, die mit Parametern (nach dem Fragezeichen) aufgerufen wird.
http://IP:8080/api/db_data?startDate=2022-08-01&timespan=MONTH

Das startDate würde ich gerne dynamisch mitgeben können. Geht das auch (nur) über den Workaround oder übersehe ich eine Möglichkeit?
Es geht aktuell imho nur darüber. Ersetze das Startdatum im Link durch einen Platzhalter und setze diesen über secret. Ungefähr so:
http://IP:8080/api/db_data?startDate=[MYDATE]&timespan=MONTH
und dann
set MyJsonModDevice secret MYDATE 2022-08-01
^- dies kannst du dann aktiv setzen über at, doif whatever

Btw, was oft unrtergeht ist dieser Kommentar (Hervorhebung von mir):
Zitat von: herrmannj am 11 Juni 2021, 09:31:49secret ist auch für keys/passwd usw gedacht, man kanns aber in der Art "missbrauchen". Es kann mehrere benannte secrets geben - das eine schließt das andere also auch nicht aus
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Dirk070

Verschoben. Die Fragen und Threads zu JSONMOD, die ich gefunden hatte, waren im Anfängerforum, daher hatte ich dort gepostet. Nunja.

Danke für die Tipps yersinia. :)

Das mehrere Secrets angegeben werden können, hatte ich gelesen. Einen Parameter als Passwort zu definieren hat mir widerstrebt:
"To prevent the leakage of sensitive information, like credentials or api keys, they can be stored separate and thus are not shown neither in the config file nor in listings."

Wenn es keinen anderen Weg gibt, werde ich diesen aber gehen oder eben doch über den Modify.

betateilchen

Zitat von: Dirk070 am 10 August 2022, 18:49:16
Einen Parameter als Passwort zu definieren hat mir widerstrebt:

Du definierst doch nicht den Parameter in der URL, sondern nur einen Namen des Parameters.
Der Wert des Parameters wird an einer völlig anderen Stelle gespeichert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk070

herrmannj hat es beschrieben:
man kann set <name> secret <identifier> <value> dafür nehmen. Anstelle von <identifier> halt IP und in der URL dann ..[IP].. einfügen. Will man die IP wechseln dann per "secret" setzen.

Also ja, es wird ein Platzhalter in die URL gesetzt. Der Wert wird dann per set <name> secret <identifier> <value> gesetzt.
herrmannj hat ebenfalls geschrieben: secret ist auch für keys/passwd usw gedacht, man kanns aber in der Art "missbrauchen"

Deshalb hatte ich "Paramter als Passwort" geschrieben.
Den Parameter, den ich variabel setzen muss, setze ich somit als secret und das empfand ich als nicht optimal.

Ich werde die beiden Optionen mal ausprobieren.