GetFileFromURL mit Benutzeranmeldung

Begonnen von Dragonfly, 10 April 2013, 18:16:34

Vorheriges Thema - Nächstes Thema

Rohan

Hi,

ich editiere jetzt bewusst nicht meinen letzten Beitrag, damit der TO auch eine Nachricht bekommt:

ich habe es gerade mal (reduziert) in der fhem.cfg nachgestellt.


define Squeezebox dummy
define Squeezebox_ntfy notify Squeezebox:.* {\
  my $server='http://usr:pwd@@192.168.1.60:9002';;\
  Log 3, "$server";;\
}


Im Fhem-Logfile erscheint nach "trigger Squeezebox on" folgende Ausgabe:

2013.04.11 20:21:09 3: http://usr:pwd@192.168.1.60:9002

Das ist doch mM genau das, was der TO möchte, oder?

Und nun?

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Dragonfly

Habs jetzt auch - Aufgrund der Fo@oBar Theorie habe ich das 2. @ nicht reingemacht.

So gehts jetzt richtig:
define Squeezebox_ntfy notify (Squeezebox:.*) {\
    my $v=Value("Squeezebox");;\
    my $server='http://usr:pwd@@192.168.1.60:9002';;\
    my $player="&player=00:04:20:2B:5B:4E";;\
    if ($v eq "on") {GetFileFromURL "" . $server . "/status.html?p0=play" . $player . ""};;\
    }


Danke - Freude groß!

Rohan

Hi,

Zitat von: Dragonfly schrieb am Do, 11 April 2013 21:46Aufgrund der Fo@oBar Theorie habe ich das 2. @ nicht reingemacht.

Das ist keine Theorie, sondern getestet (allerdings "reines" Perl). Ich erkläre es mir so, dass der "String" eingeschlossen von '' (wo nix ersetzt wird) übergeben wird an eine weitere String-Zuweisung in "", wo dann das "@" maskiert sein muss.

Aber: Hauptsache, et lüppt ;)

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

TeeVau

Zitat von: Rohan schrieb am Do, 11 April 2013 12:10Aber $Event & Co. bringt ihn doch nicht weiter, weil er doch genau das "@"-Zeichen braucht für eine gültige URL.

Gruß
Thomas
Mist, Sorry. Du hast natürlich recht. Ich war auf dem völlig falschen Dampfer. Tut mir leid für die Verwirrung
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

Mr_Tembo

Hallo zusammen,

ich klinke mich hier auch einmal ein, denn ich bin auf einen weiteren Fehler gestoßen:

Passwort und Benutzer wurde ja oben gelöst. Bei mir ist zusätzlich ein anderer Port erforderlich. Und Hier ist das Problem. Lass ich den Webserver auf Standard 80 funktioniert es mit dem Zugriff. Ist es aber ein anderer Port, wie der Standard 80 - in diesem Beispiel die 88 - dann funktioniert es nicht, den er macht einen Redirekt zu Port 80 und übernimmt nicht den angegebenen Port.

Der Source-Code sieht wie folgt aus (klappt perfekt solang ich den Schalter-Webserver auf Port 80 laufen haben:

define AQ_SchalterLED dummy
attr AQ_SchalterLED setList off on
attr AQ_SchalterLED room 2.00_Schalter
define AQ_SchalterLED_ntfy notify (AQ_SchalterLED:.*) {\
    my $v=Value("AQ_SchalterLED");;\
    my $server='http://usr:pass@@192.168.123.223:88';;\
    my $mode="actor";;\
   my $type="switch";;\
   my $id = "7";;\
    if ($v eq "on") {GetFileFromURL "" . $server . "/xml?mode=" . $mode . "&type=" . $type . "&id=" . $id . "&action=1" . ""} else {GetFileFromURL "" . $server . "/xml?mode=" . $mode . "&type=" . $type . "&id=" . $id . "&action=0" . ""};;\
   }

Der LOG Eintrag wie folgt:

2016.02.05 20:49:24 4: HttpUtils url=http://usr:pass@@192.168.123.223:88/xml?mode=actor&type=switch&id=7&action=0
2016.02.05 20:49:24 4: http://usr:pass@@192.168.123.223:88/xml?mode=actor&type=switch&id=7&action=0: HTTP response code 301
2016.02.05 20:49:24 4: HttpUtils http://usr:pass@@192.168.123.223:88/xml?mode=actor&type=switch&id=7&action=0: Redirect to http://192.168.123.223/xml/?mode=actor&type=switch&id=7&action=0
2016.02.05 20:49:24 4: HttpUtils url=http://192.168.123.223/xml/?mode=actor&type=switch&id=7&action=0
2016.02.05 20:49:24 4: CustomGetFileFromURL http://192.168.123.223/xml/?mode=actor&type=switch&id=7&action=0: Can't connect(1) to http://192.168.123.223:80: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt

Hat jemand eine Idee.

Grüße Michael