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
Wäre es da nicht einfacher ein kleines Javascript zu basteln, das jeweils nach 30 Sekunden redirected?
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
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
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
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
@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
Das ist ein Javascript, das du - in einem seperatem File -über das Javascripts--Attribut des Floorplans einbinden kannst.
Das wars also, js. Bin gerade dabei.
VG
Frank
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.
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
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
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:
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
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
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
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