[gelöst]Weblink aus Fhem heraus ausführen

Begonnen von eckibrecki, 04 Dezember 2015, 01:11:16

Vorheriges Thema - Nächstes Thema

eckibrecki

Hallo,

bislang konnte ich offene Fragen durch die Forensuche immer ausreichend gut lösen (bilde ich mir ein). Diesmal bin ich mir aber nicht sicher, ob der Weg der richtige ist...  :-\

Ich habe eine Wansview Kamera (evtl. nicht die beste Wahl, aber für den Anfang sollte es reichen) mit integrierter Alarmfunktion. Da die Kamera auf Veränderungen im Bild reagierte (auch Wind, Regen oder Nebel) gab es SEHR viele Fehlalarme. Daher wollte ich die Alarmfunktion der Kamera durch HM Bewegungsmelder aktivieren lassen. Im Browser funktioniert folgender Link zur Aktivierung eines Alarmbereiches:
http://xxx.xxx.xxx.xxx/cgi-bin/hi3510/param.cgi?cmd=setmdattr&-enable=1&-s=50&-name=1&-x=184&-y=218&-w=666&-h=502

In Fhem habe ich auf das Modul weblink zurückgegriffen. Hier funktioniert es aber lediglich mit den Optionen "Image" und "Iframe". Daher habe ich es derzeit wie folgt umgesetzt:
define Cam_Haustuer_weblink_Alarmbereich1_aktiv weblink image http://xxx.xxx.xxx.xxx/cgi-bin/hi3510/param.cgi?cmd=setmdattr&-enable=1&-s=50&-name=1&-x=184&-y=218&-w=666&-h=502

Das aktivieren über ein notify mit dem Aufruf der Cam funktioniert jetzt.
Da "weblink image" vermutlich für einen anderen Zweck entwickelt wurde, bin ich mir nicht sicher, ob dies der richtige Weg ist, oder ob es bessere Möglichkeiten gibt...

Folgendes Schema aus dem Thema http://forum.fhem.de/index.php/topic,18447.45.html habe ich auch schon versucht:
{GetFileFromURL("http://xxx.xxx.xxx.xxx/cgi-bin/hi3510/param.cgi?cmd=setmdattr&-enable=1&-s=50&-name=1&-x=184&-y=218&-w=666&-h=502")}
Dies funktionierte jedoch nicht wegen Problemen mit Benutzername und Passwort; was eigentlich nicht benötigt wird.


Vielen Dank für eure Hinweise und viele Grüße
eckibrecki

McCavity

Hi,

auch wenn ich in der Sache mangels Testmöglichkeiten nicht wirklich weiterhelfen kann, hätte ich (vielleicht) einen Tipp zu

Zitat von: eckibrecki am 04 Dezember 2015, 01:11:16Folgendes Schema aus dem Thema http://forum.fhem.de/index.php/topic,18447.45.html habe ich auch schon versucht:
{GetFileFromURL("http://xxx.xxx.xxx.xxx/cgi-bin/hi3510/param.cgi?cmd=setmdattr&-enable=1&-s=50&-name=1&-x=184&-y=218&-w=666&-h=502")}
Dies funktionierte jedoch nicht wegen Problemen mit Benutzername und Passwort; was eigentlich nicht benötigt wird.

Wenn das Problem mit diesem Aufruf tatsächlich Benutzername / Paßwort sind, dann könntest Du noch versuchen, Benutzername und Paßwort direkt im URL zu übergeben, falls es sich um HTTP-Authentifizierung handelt und nicht ein Formular in Form einer Webseite, die vom Webserver der Kamera angezeigt wird. Dafür müßtest Du vor Deinem Hostnamen (bzw. der IP-Adresse) Benutzername und Paßwort einfügen. Diese Information steht dann im Klartext in der fhem.cfg, dessen mußt Du Dir bewußt sein. Wenn Deine Installation rein intern ist und die Daten nirgendwo nach außen gereicht werden *kann* man das aber als läßliche Sünde werten - ich weise nur darauf hin :-) Dein modifizierter Aufruf müßte dann folgendes Format bekommen:

{GetFileFromURL("http://benutzername:passwort@xxx.xxx.xxx.xxx/cgi-bin/hi3510/param.cgi?cmd=setmdattr&-enable=1&-s=50&-name=1&-x=184&-y=218&-w=666&-h=502")}

Vielleicht hilft Dir das schon weiter?

LG

McCavity

eckibrecki

Hallo McCavity,

vielen Dank für die schnelle Rückmeldung.
Nicht nur Lesen bringt Vorteile, sondern man sollte auch verstehen, was geschrieben wurde...  ::)

Den von Dir genannten Vorschlag hatte ich zwar schon ausprobiert, bekam da aber auch eine Fehlermeldung im Bezug auf Username. Dies lag allerdings daran, dass ich versucht habe die Funktion mit einem "Benutzer", nicht durch den "Admin" zu starten. Gebe ich den Link mit dem Admin und Passwort ein, funktioniert es.

Entgegen meiner Behauptung im ersten Beitrag, funktionieren Links ohne Benutzername und Passwort leider nicht. (hatten aber gestern noch funktioniert; ehrlich  :D Keine Ahnung was ich da anders gemacht hatte...)

Der Vollständigkeit halber nochmal der komplette Link (die " aus dem ersten Beitrag müssen ' sein)
{GetFileFromURL('http://adminbenutzername:passwort@xxx.xxx.xxx.xxx/cgi-bin/hi3510/param.cgi?cmd=setmdattr&-enable=1&-s=50&-name=1&-x=184&-y=218&-w=666&-h=502')}

Danke auch für den Hinweis mit der Klarschrift des Passwort. Hatte gehofft es durch die Eingabe eines normalen Benutzernamens umgehen zu können. Solange ich hierfür keine andere Möglichkeit habe, werde ich das Risiko eingehen müssen...  :(


Viele Grüße
eckibrecki