FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: franky08 am 03 April 2015, 22:26:51

Titel: [gelöst] weblink zeitgesteuert ausführen
Beitrag von: franky08 am 03 April 2015, 22:26:51
Hallo, ich stehe gerade vor folgendem Problem:
definiert ist ein weblink
htmlCode { '<a href="http://192.168.2.66:8087/fhem/floorplan/Le_Zeit"><img src="/fhem/www/images/default/black_down.png"></a>' }
der stellt mir auf einem Floorplan (Le_Status) einen Button (black_down) dar. Damit kann ich auf Floorplan (Le_Zeit) wechseln, dass funktioniert auch. Jetzt möchte ich aber das nach jeweils 30sec (über at) zu dem Floorplan gewechselt wird, also automatisch und nach weiteren 30sec zurück auf den ersten Floorplan. Das Ganze ist für ein Lenovo Tablet  auf dem WVC läuft und jeweils alle 30sec automatisch die Floorpläne "durchschaltet".
Hat jemand einen Tipp. Der Aufruf über at +*00:00:30 html Code funktioniert so leider nicht.

VG
Frank
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: KernSani am 03 April 2015, 23:06:43
Wäre es da nicht einfacher ein kleines Javascript zu basteln, das jeweils nach 30 Sekunden redirected?
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 03 April 2015, 23:11:37
Himmel, behüte mich  :)
Mit js kenne ich mich leider überhaupt nich aus. Habe schon versucht das Ganze in eine sub zu packen aber da scheitert der html Aufruf genau so. Werde morgen mal im Perl Handbuch nachsehen, dass mus ja irgendwie zu machen sein.

VG
Frank

Und schöne Osterfeiertage
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 03 April 2015, 23:25:38
Im Perl Handbuch ist da leider auch nicht viel zu finden, leider nur wie man html bzw. xhtml Sites baut. Interrasant wäre der Aufruf aus Perl, denke das es etwas mit set oder get zu tun hat, probiere morgen mal weiter.

VG
Frank
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: KernSani am 03 April 2015, 23:32:50
Hi Franky

Mit Perl wirst du nicht viel weiter kommen.

(Unsauber runtergetippt und ungetestet) brauchst du etwa sowas:

function switch() {
var delay = 3000;
if (window.location.href=="http://192.168.2.66:8087/fhem/floorplan/Le_Zeit") {
  window.setTimeout(function() { window.location.href = 'http://192.168.2.66:8087/fhem/floorplan/Le_Status'; }, delay); }
else {
  window.setTimeout(function() { window.location.href = 'http://192.168.2.66:8087/fhem/floorplan/Le_Zeit'; }, delay); }
}
}
$(document).ready(function(){
switch();
});




Grüße,

Oli
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 03 April 2015, 23:37:56
Danke dir, teste ich morgen mal. Hatte gerade eine "Eingebung" aber ist jetzt schon etwas spät.

http://www.webmasterworld.com/perl/3820935.htm

VG
Frank
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 04 April 2015, 07:17:06
@KernSani
Das ist doch eine sub, die du oben gepostet hast oder doch ein notify. Mal sehen ob ich es zum laufen bekomme. Als notify bringt es leider etliche Fehler im Log:

2015.04.04 08:23:43 3: Lenovo_switch return value: Unknown command {
, try help.
IF: no left bracket:  {  window.setTimeout(function() { window.location.href = 'http://192.168.2.66:8087/fhem/floorplan/Le_Status'
Unknown command },, try help.
Unknown command }
, try help.
Unknown command },, try help.
Unknown command }
, try help.
Unknown command }), try help.


VG
Frank
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: KernSani am 04 April 2015, 08:28:45
Das ist ein Javascript, das du - in einem seperatem File -über das Javascripts--Attribut des Floorplans einbinden kannst.
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 04 April 2015, 08:39:22
Das wars also, js. Bin gerade dabei.

VG
Frank
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 04 April 2015, 08:52:41
ZitatDas ist ein Javascript, das du - in einem seperatem File -über das Javascripts--Attribut des Floorplans einbinden kannst.
Da das Ganze (die Floorpläne) über WebVievControl dargestellt werden, müsste der Aufruf der switch.js doch eigendlich in die webviewcontrol.pm als userJsFile . Direkt in der Web Instanz passiert sonst nix.
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 04 April 2015, 10:33:42
Bringt auf der Fehlerconsole:
SyntaxError: Unexpected token '<'

auf was könnte sich "anonyme Funktion" beziehen? Mus die function switch vorher irgendwo deklariert werden?



VG
Frank
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 04 April 2015, 13:27:24
Da war ne Klammer zuviel und der name function hat wohl nicht gepasst. Habe es jetzt umgebaut, mal sehen ob es läuft.


VG
Frank
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 04 April 2015, 13:47:10
So, etwas näher bin ich der Sache gekommen. Die Pfadangabe der userJs in WVC hat nicht gepasst. Bis da hinn ist es jetzt OK. Gemeckert wird jetzt über $document:

Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 04 April 2015, 17:33:31
Hat noch jemand eine Idee? Langsam weis ich nicht mehr wo ich noch nach einem Fehler suchen soll. Dafür kenne ich mich mit der js Syntax zu wenig aus und die online Syntaxprüfung findet keinen Fehler. Angezeigt wird ein Fehler in:

$(document).ready(function(){
SW();
});

$(document).ready ist wohl nicht OK. Habe es schon ohne Klammern, ohne $ probiert aber das ist wie im Nebel stochen wenn man die Syntax nicht kennt.

VG
Frank
Titel: Antw:weblink zeitgesteuert ausführen
Beitrag von: franky08 am 04 April 2015, 18:22:36
Es funktioniert:

function SW() {
var delay = 30000;
if (window.location.href=="http://192.168.2.66:8087/fhem/floorplan/Le_Zeit") {
  window.setTimeout(function() { window.location.href = 'http://192.168.2.66:8087/fhem/floorplan/Le_Status'; }, delay); }
else {
  window.setTimeout(function() { window.location.href = 'http://192.168.2.66:8087/fhem/floorplan/Le_Zeit'; }, delay); }
}
ready:{
SW();
}


schaltet zwar etwas "rasant" um aber da passe ich nur die Zeit noch an.

P.S. die switch.js in WVC eigetragen hat den "dummen" Effekt, dass sämtliche Web Instanzen ständig zwischen den beiden Floorplänen schalten, ein schönes Osterei  :) :) ;)
erstmal über telnet deaktiviert, normaler Zugriff auf das fhem Webif ist nicht mehr möglich

P.S.S. Die switch.js gehört nach /codemirror und wird in der jeweiligen WEB Instanz als Attribut eingebunden


VG
Frank
Titel: Antw:[gelöst] weblink zeitgesteuert ausführen
Beitrag von: KernSani am 05 April 2015, 21:54:06
Hi Frank,

sorry, dass ich erst jetzt dazu komme, zu antworten.
Kenne leider "WVC" leider nicht, aber dass einfach nur "ready" funktioniert irritiert mich etwas, aber gut...

Jede "Floorplan"-Instanz hat ein eigenes Javascripts-Attribut. Damit sollte switch.js eigentlich nur für den Floorplan greifen, wo es auch eingebunden ist. Alternativ kannst du auch im "else"-Zweig noch auf die location abfragen.

Grüße,

Oli
Titel: Antw:[gelöst] weblink zeitgesteuert ausführen
Beitrag von: franky08 am 05 April 2015, 22:46:07
Es funktioniert wunderbar, wollte eben noch schnell ein Video davon machen aber das wird zu groß. Ich hab mit einem Online Syntax tool und der Fehlerconsole dann herausgefunden wo es hakte.
Mein Fehler war die js direkt als userjs in WVC einzubinden, binde ich sie in der WEB Instanz des Tablets ein, funktioniert es wie gewünscht.

VG
Frank