Hauptmenü

dynv6.com

Begonnen von gloob, 15 Januar 2016, 13:36:27

Vorheriges Thema - Nächstes Thema

gloob

Hallo,

Hat jemand von euch den DynDNS Service von https://dynv6.com in Benutzung?

Es ist ein kostenloser dyndns Service und funktioniert im Moment wunderbar.
Hat jemand eine Idee wie ich die IP automatisch von FHEM aktualisieren lassen kann?

Es soll einen wget Befehl geben, allerdings habe ich keine Ahnung wie ich den von FHEM absetzen lassen kann.

$bin "http://dynv6.com/api/update?hostname=$hostname&ipv6=$current&token=$token"
$bin "http://ipv4.dynv6.com/api/update?hostname=$hostname&ipv4=auto&token=$token"
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

betateilchen

#1
Wenn es weiter nichts ist, schau doch einfach mal in die Datei ./FHEM/HttpUtils.pm da findest Du verschiedene Funktionen, um URLs aufzurufen. Das funktioniert dann sicher auch für Deinen Anwendungsfall

Spontan würde ich auf folgende Lösung tippen:

GetHttpFile("http://dynv6.com","/api/update?hostname=$hostname&ipv6=$current&token=$token")
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Bapt. Reverend Magersuppe

Hi,
das würde ich nicht aus FHEM heraus machen sondern direkt im System verackern.
Dazu gibt es ein Skript für die Automatisierung: https://gist.github.com/corny/7a07f5ac901844bd20c9.
Da noch den Token einsetzen in der oberen Portion (kann man sogar auch noch histname und Schnittstelle vom Ethernet rein tun) vom Skript und dies per Cron alle 10 Minuten starten.
Das Skript meldet nur dann eine IP an dynv6 wenn die sich auch verändert.

Läuft bei mir wirklich prima und so ist es möglich von unterwegs zu zugreifen.


--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

gloob

Zitat von: betateilchen am 15 Januar 2016, 13:56:26
Wenn es weiter nichts ist, schau doch einfach mal in die Datei ./FHEM/HttpUtils.pm da findest Du verschiedene Funktionen, um URLs aufzurufen. Das funktioniert dann sicher auch für Deinen Anwendungsfall

Spontan würde ich auf folgende Lösung tippen:

GetHttpFile("http://dynv6.com","/api/update?hostname=$hostname&ipv6=$current&token=$token")

Kann ich die Parameter $hosename, $token irgendwie übergeben?

Aktuell denke ich an etwas wie:

define pushmsg_ip at *07:05:00 { \
my $ip=getip;; \
my $token=1234567890;;\
my $hostname=abcd;;\
fhem "GetHttpFile("http://dynv6.com","/api/update?hostname=$hostname&ipv6=$current&token=$token")";;\
}

Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

betateilchen

Zitat von: gloob am 15 Januar 2016, 14:11:06

Kann ich die Parameter $hosename, $token irgendwie übergeben?


abgesehen davon, dass es hostname heißt und nicht hosename, wo ist das Problem?



define pushmsg_ip at *07:05:00 { \

my $current = getip;; \
my $token= 1234567890;;\
my $hostname = abcd;;\

GetHttpFile("http://dynv6.com","/api/update?hostname=$hostname&ipv6=$current&token=$token");;\

}


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

gloob

#5
Leider bekomme ich nur folgende Fehlermeldung:

2016.01.21 10:34:00 5: exec at command pushmsg_ip_2
2016.01.21 10:34:00 3: pushmsg_ip_2: Unknown command {, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command GetHttpFile("http://dynv6.com","/api/update?hostname=$hostname&ipv6=$current&token=$token"), try help.
2016.01.21 10:34:00 5: redefine at command pushmsg_ip_2 as *10:34:00 {
my $current = getip;
my $token= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
my $hostname = hasenpups;

GetHttpFile("http://dynv6.com","/api/update?hostname=$hostname&ipv6=$current&token=$token");


Hat noch jemand eine Idee, was falsch sein könnte?

Das Device ist wie folgt definiert:

Internals:
   COMMAND    {
my $current = getip;
my $token= 3hfsidyuzHt9rHy8UZVSd7s-tZJfkC;
my $hostname = hasenpups;

GetHttpFile("http://dynv6.com","/api/update?hostname=$hostname&ipv6=$current&token=$token");
   DEF        *10:40:30 {
my $current = getip;
my $token= xxxxxxxxxxxxxxxxxxxxx;
my $hostname = hasenpups;

GetHttpFile("http://dynv6.com","/api/update?hostname=$hostname&ipv6=$current&token=$token");
   NAME       pushmsg_ip_2
   NR         35
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 10:40:30
   TIMESPEC   10:40:30
   TRIGGERTIME 1453455630
   TRIGGERTIME_FMT 2016-01-22 10:40:30
   TYPE       at
   Readings:
     2016-01-21 10:41:50   state           Next: 10:40:30
Attributes:
   room       Systemstate
   verbose    5
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway