[gelöst] Korrekter Perl Befehl "http://<IP>/fhem?cmd={ ... }&fwcsrf=xxxxxxxxx" ?

Begonnen von supernova1963, 19 November 2017, 09:00:42

Vorheriges Thema - Nächstes Thema

supernova1963

Hallo zusammen,

ich suche verzweifelt nach der korrekten Syntax zur Ausführung dieses HTTP - Links.
Über MyUtils funktioniert folgende Befehlskette:
{fhem ("set harmony_34915526 command Number1; set harmony_34915526 command Number8; set harmony_34915526 command Number1") };

Jetzt möchte ich diesen Befehl über einen HTTP - Link ausführen.
<a href=\"/fhem?cmd={fhem ("set harmony_34915526 command Number1; set harmony_34915526 command Number8; set harmony_34915526 command Number1") }\">Das Erste</a>
ausführen.
Es ist kein Thema des fehlenden csrf-Token. Ich vermute es ist ein Thema des "Escapen" von Sonderzeichen. Obwohl ich schon viel darüber gelesen habe, verunsichert mich alles rund um ',",\",\',%20, usw.
Das Ergebnis lautet:
ZitatUnknown command {fhem("setreading, try help.
Unknown command "setreading, try help.
Was mache ich falsch bzw. Wie lautet die korrekte Syntax für meine Vorhaben?

Vielen Dank,

Gernot




marvin78

Warum willst du für diese Befehle denn auf Perl Ebene wechseln? Ich sehe nicht, dass das nötig ist. Bleibe auf FHEM Ebene, lasse unnötige Leerzeichen weg, nutze korrektes URL encoding und es sollte kein Problem sein.


Falls es doch mal nötig sein sollte, würde ich per http immer einen dummy schalten der dann ein notify mit dem nötigen Perl Befehl auslöst.

supernova1963

Hallo marvin787,

Danke für deinen Hinweis. Folgender Befehl:

<a href="/fhem?cmd=set%20harmony_34915526%20command Number1;set%20harmony_34915526%20command%20Number8;set harmony_34915526%20command%20Number1">Das Erste</a>

hat ohne Fehlermeldung funktioniert.
Manchmal ist das Gute garnicht so schwer,

Gernot