FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: heilerich am 21 Januar 2017, 23:27:46

Titel: HTTP switches
Beitrag von: heilerich am 21 Januar 2017, 23:27:46
Hallo Forum,

ich habe seit neustem Steckdosen die über einfache HTTP get request geschaltet werden können. Leider scheitere ich gerade daran diese in FHEM einzubinden. Ich finde einfach keine simple Methode, ein Gerät zu erstellen, welches einfach nur ein HTTP get absetzt.

Versucht habe ich es mit HTTPMOD

Zitat
define testDevice HTTPMOD none
attr testDevice userattr set01Name set01URL
attr testDevice set01Name power
attr testDevice set01URL http://ip/power?cmd=$val

Tue ich nun folgendes

Zitat
set testDevice power 1

erhalte ich nur "No set implemented for testDevice"

Ich muss zugeben, dass ich mich vorher noch nie mit HTTPMOD auseinandergesetzt habe und mich die Dokumentation ziemlich verwirrt, da es seitenweise nur um das Abrufen von Werten geht. Eine Funktion die ich hier überhaupt nicht benötige. Die obigen Befehle habe ich so einfach aus dem einzige Abschnitt über set commands entnommen. Aber sie funktionieren so einfach nicht ...

Bin ich nur zu blöd die Doku zu verstehen oder kann HTTPMOD diese einfache Aufgabe wirklich nicht bewältigen? Wenn ja was wäre die Alternative?

Vielen Dank für eure Hilfe :)
Titel: Antw:HTTP switches
Beitrag von: marvin78 am 22 Januar 2017, 07:25:17
Es gibt einen kompakten Abschitt zu set in der commandref zu HTTPMOD.

Jetzt ist die Frage, was du für die Dokumentation hälst. Es ist NICHT das WIKI.

lists von Devices sind immer sinnvoll, damit der Helfende benötigte Infos durchsuchen kann.
Titel: Antw:HTTP switches
Beitrag von: heilerich am 22 Januar 2017, 12:11:02
Genau den genannten Abschnitt aus der commandref habe ich kopiert und nur die optionalen Werte hint, min, max, header und data weggelassen, da ich ja einen GET und keinen POST request möchte.

Trotzdem funktioniert "set testDevice power 1" nicht. Ich bekomme nur den Fehler "No set implemented for testDevice" zurück.

Also irgendwas muss ich irgendetwas wichtiges übersehen haben. Oder das Beispiel in der commandref funktioniert nicht, wovon ich jetzt mal nicht ausgehen möchte.

Das Device, das dabei entsteht sieht folgendermaßen aus
Internals:
   CFGFN
   DEF        none
   Interval   300
   NAME       testDevice
   NR         115116
   STATE      ???
   TYPE       HTTPMOD
   timeout    2
   url        none
Attributes:
   set01Name  power
   set01URL   http://ip/power?cmd=$val
   userattr   set01Name set01URL