2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 01:09:47 +00:00

60_Watches: contrib 0.17.0

git-svn-id: https://svn.fhem.de/fhem/trunk@21874 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2020-05-05 21:26:22 +00:00
parent 0d54d4a6ce
commit 8bf026fc26

View File

@ -254,6 +254,7 @@ sub Set { ## no critic 'compl
shift @a; shift @a;
my $txt = join (" ", @a);
$txt =~ s/[\r\n]//g;
readingsSingleUpdate($hash, "displayText", $txt, 0);
} elsif ($opt eq "displayTextDel") {
@ -409,8 +410,8 @@ sub digitalWatch {
my $adtt = AttrVal($d, "digitalTextTicker", 0);
my $adtdn = AttrVal($d, "digitalTextDigitNumber", 0);
my $ddt = ReadingsVal($d, "displayText", "----");
$ddt =~ s/[\r\n]//g;
my $deftxt = " ";
my $ddt = ReadingsVal($d, "displayText", $deftxt);
my $alarm = " ".ReadingsVal($d, "alarmTime", "aa:bb:cc");
my $ddp = "###:##:##"; # dummy
@ -482,7 +483,8 @@ sub digitalWatch {
var minutes_$d;
var seconds_$d;
var startDate_$d;
var afree_$d = 0;
var value_$d = ' $deftxt'; // default Digitaltext initialisieren
var tlength_$d = '$txtc'; // Textlänge Digitaltext initialisieren
function SegmentDisplay_$d(displayId_$d) {
this.displayId_$d = displayId_$d;
@ -513,7 +515,7 @@ sub digitalWatch {
};
var display_$d = new SegmentDisplay_$d('display_$d');
display_$d.pattern = '$ddp ';
display_$d.pattern = '$ddp '; // Textschablone initialisieren
display_$d.cornerType = 2;
// display_$d.displayType = 7;
display_$d.displayAngle = $adda; // Zeichenwinkel: -30 - 30 (9)
@ -1292,25 +1294,49 @@ sub digitalWatch {
}
}
var value = $ddt;
if (watchkind_$d == 'text') {
tlength_$d = value_$d.length-1; // Länge des Textes abzgl. 1 für ' '
if($adtdn) {
tlength_$d = $adtdn;
}
if (watchkind_$d == 'text' && $adtt == 1) { // Laufschrift anzeigen
display_$d.pattern = ''; // Textschablone erstellen
for (var i = 0; i <= tlength_$d; i++) {
display_$d.pattern += '#';
}
display_$d.pattern += ' '; // Abstand Text zum rechten Rand
if ($adtt == 1) { // Text als Laufband
var rttime = new Date();
var rthours = rttime.getHours();
var rtminutes = rttime.getMinutes();
var rtseconds = rttime.getSeconds();
var rtmillis = rttime.getMilliseconds();
// var text = ' abcdefghijklmnopqrstuvwxyz 0123456789 ';
var text = '$forerun'+value+' ';
var text = '$forerun'+value_$d+' ';
var index = ( 2 * (rtseconds + 60*rtminutes + 24*60*rthours) + Math.floor(rtmillis / 500) ) % (text.length - 6);
value = text.substr(index, $txtc+parseInt(1));
value_$d = text.substr(index, $txtc+parseInt(1));
}
if(value == ' undefined:undefined:undefined' || value == ' NaN:NaN:NaN') {
value = ' : : ';
command = '{ReadingsVal(\"$d\",\"displayText\", \"$deftxt\")}'; // Text dynamisch aus Reading lesen
url_$d = makeCommand(command);
\$.get( url_$d, function (data) {
value_$d = data.replace(/\\n/g, '');
value_$d = ' '+value_$d;
return value_$d;
}
);
} else {
value_$d = $ddt;
if(value_$d == ' undefined:undefined:undefined' || value_$d == ' NaN:NaN:NaN') {
value_$d = ' : : ';
}
}
display_$d.setValue(value);
display_$d.setValue(value_$d);
window.setTimeout('animate_$d()', 200);
}