FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: nine42 am 17 Februar 2014, 19:58:09

Titel: Probleme mit dem neuen Modul HTTPMOD
Beitrag von: nine42 am 17 Februar 2014, 19:58:09
... und wie es oft so ist:
Nachdem ich dies (s.u.) geschrieben habe, "läuft das define los", d.h. es greift sich wie erwartet die Werte und stellt sie ordentlich im reading dar. Hat nur etwas gedauert - lief nicht gleich los (-> o.k. das ist etwas verwirrend).
Ich lass' den Beitrag dennoch stehen, vielleicht dient er ja als Beispiel, was man mit HTTPMOD machen kann und wie ;-)

sorry

------------------------------------------


Hallo,

... gibt ja noch nicht viel Dokumentation bzw. Forenbeiträge - dennoch: Ich versuch' mich gerade mit dem neuen Modul HTTPMOD.
Meine Anwendung ist die Darstellung von WebCam-Bildern in einem floorplan.
Das hab' ich bislang mit einem iframe gemacht, deren Inhalt sich aber dem Zugriff über css entzieht.
Konkret geht es um´s Skalieren, was zwar mit dem iframe machbar ist, sich aber über den floorplan legt, so dass man recht unschön mit z-index arbeiten muss ...

Also meine Idee:
Ich hole mir direkt aus dem HTTP-GET-request das Bild und stelle es als image dar. Das lässt sich dann in Größe beliebig mit css bearbeiten.

Klar, ich kann den Response direkt mit perl bearbeiten - aber da gibt es ja das neue, generische HTTPMOD-Modul - und das sieht lt. Beschreibung ja wirklich ganz super aus ;-)

Der Aufruf des Webcam-Snapshots erfolgt über
https://xyz.no-ip.biz:8082/cgi-bin/CGIProxy.fcgi?usr%3Duser%26pwd%3Dpassword%26cmd%3DsnapPicture

Der Response enthält in den Nutzerdaten das Bild:
<html><body><img src="../snapPic/Snap_20140217-192932.jpg"/></body></html>

eigentlich ganz einfach ...
.. und so hab ich folgendes define definiert (etwas trivilisiert, um mit den Sonderzeichen keine Probleme zu haben)

define Cam3 HTTPMOD https://xyz.no-ip.biz:8082/cgi-bin/CGIProxy.fcgi?usr%3Duser%26pwd%3Dpassword%26cmd%3DsnapPicture
attr Cam readingsName1 response
attr Cam readingsRegex1 .*Pic(.*jpg).*
attr Cam stateFormat { sprintf("%s",ReadingsVal($name,"response",0)) }
attr Cam room Status

... das liefert aber kein Ergebnis, d.h. es wird kein reading gesetzt.

Nächster Versuch ist ein gaaaanz generischer regulärer Ausdruck

define Cam3 HTTPMOD https://xyz.no-ip.biz:8082/cgi-bin/CGIProxy.fcgi?usr%3Duser%26pwd%3Dpassword%26cmd%3DsnapPicture
attr Cam1 readingsName1 response
attr Cam1 readingsRegex1 (.*)
attr Cam1 stateFormat { sprintf("%s",ReadingsVal($name,"response",0)) }
attr Cam1 room Status

... und auch hier: kein Ergebnis.

mmmh - wahrscheinlich mach' ich irgendetwas einfaches grundsätzlich falsch.

was ich verschwiegen hatte:
Bei einem meiner Versuche, hab' ich tatsächlich ´mal ein reading bekommen. Das hab' ich aber nie mehr nachstellen können. Allerdings hat es mir gezeigt, dass HTTPS wohl nicht das Problem ist.

Grüße, Peter