Hallo zusammen,
ich nutze fhem schon seit einiger Zeit und für folgende Aufgabenstellung bräuchte ich Eure Hilfe.
Ich möchte nicht die gescheiterten Versuche dokumentieren, sondern hier fragen wie es richtig sein müsste.
Ich würde gerne die Temperatur des Temperatursensors "Tempsensor" aus fhem über einen http Aufruf an ein anderes Gerät übergeben. Die http Seite ist mit user und pwd geschützt. Abschalten der Anmeldung geht nicht, von daher vermute ich, dass der Befehl GetFileFromURL und nicht GetHttpFile zu verwenden ist. Die Syntax von GetFileFromURL habe ich nachgelesen, kann es aber nicht richtig umsetzen und bekomme es nicht zum Laufen.
Hier jetzt das Beispiel:
http://user:pwd@192.168.0.100/beispiel-cgi/dynamicoverlay.cgi?action=settext&text=Temperatur:21Grad
Wobei 21Grad zu ersetzen ist durch den gemessenen Temperaturwert des Tempsensors:
ReadingsVal("Tempsensor","temperature",25)
Und wenn ich die richtige Syntax von GetFileFromURL habe, dann via at Befehl regelmäßig Daten übergeben:
define tempwertsenden at +*00:01:00 {...}
Ich würde mich sehr freuen, wenn Ihr mir helfen könntet für dieses Beispiel die funktionierende korrekte Systax zu finden.
Vielen Dank für Eure Hilfe!
Zitat von: osbs am 03 Mai 2015, 20:53:01
Die Syntax von GetFileFromURL habe ich nachgelesen, kann es aber nicht richtig umsetzen und bekomme es nicht zum Laufen.
Hallo, wäre schon wichtig zu wissen was du versucht hast und was die Logdatei dazu sagt. So ist es leichter zu sehen was genau dein Problem ist.
Du kannst ja einfach mal in der Fhem Befehlzeile eingeben:
{Log 1, GetFileFromURL('http://user:pwd@192.168.0.100/beispiel-cgi/dynamicoverlay.cgi?action=settext&text=Temperatur:21Grad
', 4, "", 1, 1)}
Und dir die Ausgabe in der FHEM-Logdatei anschauen.
Gruß
Hallo Phill,
perfekt das funktioniert! Vielen dank!
Wie baue ich in den http string nun noch korrekt den Wert ReadingsVal("Tempsensor","temperature",25) ein?
Ich dachte an irgendwas mit {my $temp=ReadingsVal("Tempsensor","temperature",25);; ... }
Alles was ich bis jetzt probiert habe führt zu Fehlern, z.b. malformed or unsupported URL.
Da fehlen sicher an den richtigen Stellen die richtigen Operatoren.
Gruß
Hallo zusammen,
ich habe weiter probiert und mit folgender Konfiguration läuft es nun:
define tempwertsenden at +*00:01:00 {my $temp=ReadingsVal("Tempsensor","temperature",25);; GetFileFromURL('http://user:pwd@192.168.0.100/beispiel-cgi/dynamicoverlay.cgi?action=settext&text=Temperatur:' . $temp . 'Grad', 4, "", 1, 1)}
Danke für die Hilfe.
Gruß