FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Jostar am 12 Juli 2023, 10:53:05

Titel: HTTPMOD: prinzipelles vorgehen zum Bauen der html-Antwort, Steuerung TL-SG108PE
Beitrag von: Jostar am 12 Juli 2023, 10:53:05
Hallo zusammen,
mein lokaler Switch kann über einen kleinen Webbrowser seine POE-Eingänge ein- und ausschalten. Den Status kann ich schon prima mit HTTPMOD auslesen:
defmod SWITCH3 HTTPMOD http://192.168.178.101/ 300
attr SWITCH3 get01Poll 1
attr SWITCH3 get01PollDelay 300
attr SWITCH3 get01URL http://192.168.178.101/PortSettingRpm.htm
attr SWITCH3 get02Name SystemInfoRpm
attr SWITCH3 reading91Name Port1_Status
attr SWITCH3 reading91OMap 0:Link Down, 1:Auto, 2:10Half, 3:10Full, 4:100Half, 5:100Full, 6:1000Full
attr SWITCH3 reading91Regex link_status\:\n?\"?\[([0-9]).*,0,0\]\"?\n?

Um nun den Statusauch willentlich zu setzen...
switch3-Screenshot.PNG
So klappt es leider noch nicht:
attr SWITCH3 set01Data {"set" :{"portid" :"1", "state" :"$val" }}
attr SWITCH3 set01Hint 0,1
attr SWITCH3 set01Name Port1_State
attr SWITCH3 set01URL http://192.168.178.101/PortSettingRpm.htm
attr SWITCH3 setHeader1 Content-Type: application/json
Der Zugriff via URL klappt:
MicrosoftTeams-image.png

Ziel im FHEM:
switch3-Screenshot2.PNG

Danke für jeden Hinweis und Grüße
Titel: Aw: HTTPMOD: prinzipelles vorgehen zum Bauen der html-Antwort, Steuerung TL-SG108PE
Beitrag von: StefanStrobel am 15 Juli 2023, 18:45:21
Hallo,

mit
attr SWITCH3 set01Data {"set" :{"portid" :"1", "state" :"$val" }}
übergibst Du die Daten im Body.
In Deinem Screenshot hängst Du sie aber als GET-Parameter an die URL an.
Das kannst Du per HTTPMOD auch machen. Siehe Replacements.

Gruss
   Stefan
Titel: Aw: HTTPMOD: prinzipelles vorgehen zum Bauen der html-Antwort, Steuerung TL-SG108PE
Beitrag von: Jostar am 15 Juli 2023, 23:07:01
Hey, danke für die Antwort. Ja, ich hatte es dann via GET gelöst und die ursprüngliche Frage oben umgeschrieben, falls doch noch jemand auf der Suche nach einer Lösung sein sollte.
set01IMap 0:Disable, 1:Enable
set01Name Port1_Status
set01URL http://192.168.178.101/port_setting.cgi?portid=1&state=$val&speed=5&apply=Apply
switch3.PNG
Die Übergabe im Body hat der Switch nicht haben wollen.

Grüße!