From 140d283c77e40211b50bb79af67911bdaaa9ac4b Mon Sep 17 00:00:00 2001
From: Ellert <>
Date: Thu, 12 Oct 2017 16:34:21 +0000
Subject: [PATCH] 98_DOIFtools.pm:add getter linearColorGradient, returns a
table of value, colornumber, color bar
git-svn-id: https://svn.fhem.de/fhem/trunk@15240 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
fhem/FHEM/98_DOIFtools.pm | 105 +++++++++++++++++++++++++++++++++++---
1 file changed, 97 insertions(+), 8 deletions(-)
diff --git a/fhem/FHEM/98_DOIFtools.pm b/fhem/FHEM/98_DOIFtools.pm
index a7159b2ab..5bdbe8d57 100644
--- a/fhem/FHEM/98_DOIFtools.pm
+++ b/fhem/FHEM/98_DOIFtools.pm
@@ -329,7 +329,7 @@ sub DOIFtools_Initialize($)
my $oldAttr = "target_room:noArg target_group:noArg executeDefinition:noArg executeSave:noArg eventMonitorInDOIF:noArg readingsPrefix:noArg";
- $hash->{AttrList} = "DOIFtoolsExecuteDefinition:1,0 DOIFtoolsTargetRoom DOIFtoolsTargetGroup DOIFtoolsExecuteSave:1,0 DOIFtoolsReadingsPrefix DOIFtoolsEventMonitorInDOIF:1,0 DOIFtoolsHideModulShortcuts:1,0 DOIFtoolsHideGetSet:1,0 DOIFtoolsMyShortcuts:textField-long DOIFtoolsMenuEntry:1,0 DOIFtoolsHideStatReadings:1,0 DOIFtoolsEventOnDeleted:1,0 DOIFtoolsEMbeforeReadings:1,0 DOIFtoolsNoLookUp:1,0 DOIFtoolsNoLookUpInDOIF:1,0 DOIFtoolsLogDir disabledForIntervals ".$oldAttr;
+ $hash->{AttrList} = "DOIFtoolsExecuteDefinition:1,0 DOIFtoolsTargetRoom DOIFtoolsTargetGroup DOIFtoolsExecuteSave:1,0 DOIFtoolsReadingsPrefix DOIFtoolsEventMonitorInDOIF:1,0 DOIFtoolsHideModulShortcuts:1,0 DOIFtoolsHideGetSet:1,0 DOIFtoolsMyShortcuts:textField-long DOIFtoolsMenuEntry:1,0 DOIFtoolsHideStatReadings:1,0 DOIFtoolsEventOnDeleted:1,0 DOIFtoolsEMbeforeReadings:1,0 DOIFtoolsNoLookUp:1,0 DOIFtoolsNoLookUpInDOIF:1,0 DOIFtoolsLogDir disabledForIntervals ".$oldAttr; #DOIFtoolsForceGet:true
}
sub DOIFtools_dO ($$$$){
@@ -339,10 +339,12 @@ return "";}
sub DOIFtools_eM($$$$) {
my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn.
my @dtn = devspec2array("TYPE=DOIFtools");
+ my $lang = AttrVal("global","language","EN");
my $ret = "";
# call DOIF_detailFn
no strict "refs";
- $ret .= &{ReadingsVal($dtn[0],".DOIF_detailFn","")}($FW_wname, $d, $room, $pageHash) if (ReadingsVal($dtn[0],".DOIF_detailFn",""));
+ my $retfn = &{ReadingsVal($dtn[0],".DOIF_detailFn","")}($FW_wname, $d, $room, $pageHash) if (ReadingsVal($dtn[0],".DOIF_detailFn",""));
+ $ret .= $retfn if ($retfn);
use strict "refs";
if (!$room) {
# LookUp in probably associated with
@@ -350,10 +352,10 @@ sub DOIFtools_eM($$$$) {
# Event Monitor
if (AttrVal($dtn[0],"DOIFtoolsEventMonitorInDOIF","")) {
my $a0 = ReadingsVal($d,".eM", "off") eq "on" ? "off" : "on";
- my $lang = AttrVal("global","language","EN");
$ret .= "
" if (ReadingsVal($dtn[0],".DOIF_detailFn",""));
- $ret .= "
Event monitor: toggle ";
- $ret .= " |
Event monitor: toggle ";
+ $ret .= " | ";
+ $ret .= "
Color Table | "; + $ret .= "||
---|---|---|
";
+ for (my $i=0;$i<=255;$i++) {
+ my $col = DOIFtoolsLinColorGrad($sc,$ec,0,255,$i);
+ $ret .= " ";
+ }
+ $ret .= " | ||
Value | Color Number | Color |
".sprintf("%.1f",$i)." | $col |
<Startfarbnummer>,<Endfarbnummer>,<Minimalwert>,<Maximalwert>,<Schrittweite>
+
+<Startfarbnummer>, ist eine HTML-Farbnummer, Beispiel: #0000FF für Blau.
+<Endfarbnummer>, , ist eine HTML-Farbnummer, Beispiel: #FF0000 für Rot.
+<Minimalwert>, der Minimalwert auf den die Startfarbnummer skaliert wird, Beispiel: 7.
+<Maximalwert>, der Maximalwert auf den die Endfarbnummer skaliert wird, Beispiel: 30.
+<Schrittweite>, für jeden Schritt wird ein Farbwert erzeugt, Beispiel: 0.5.
+
+Beispielangabe: #0000FF,#FF0000,7,30,0.5
+":
+"Syntax:
+<start color number>,<end color number>,<minimal value>,<maximal value>,<step width>
+
+<start color number>, a HTML color number, example: #0000FF for blue.
+<end color number>, , a HTML color number, example: #FF0000 for red.
+<minimal value>, the start color number will be scaled to it, example: 7.
+<maximal value>, the end color number will be scaled to it, example: 30.
+<step width>, for each step a color number will be generated, example: 0.5.
+
+Example specification: #0000FF,#FF0000,7,30,0.5
+";
+ return $ret
+ }
} else {
my $hardcoded = "checkDOIF:noArg statisticsReport:noArg runningTimerInDOIF:noArg";
- return "unknown argument $arg for $pn, choose one of readingsGroup_for:multiple-strict,$dL DOIF_to_Log:multiple-strict,$dL SetAttrIconForDOIF:multiple-strict,$dL userReading_nextTimer_for:multiple-strict,$ntL ".(AttrVal($pn,"DOIFtoolsHideGetSet",0) ? $hardcoded :"");
+ return "unknown argument $arg for $pn, choose one of readingsGroup_for:multiple-strict,$dL DOIF_to_Log:multiple-strict,$dL SetAttrIconForDOIF:multiple-strict,$dL userReading_nextTimer_for:multiple-strict,$ntL ".(AttrVal($pn,"DOIFtoolsHideGetSet",0) ? $hardcoded :"")." linearColorGradient:textField";
}
return $ret;
@@ -1501,6 +1577,7 @@ DOIFtools contains tools to support DOIF.get <name> SetAttrIconForDOIF <DOIF names for setting the attribute icon to helper_doif>
get <name> linearColorGradient <start color number>,<end color number>,<minimal value>,<maximal value>,<step width>
get DOIFtools linearColorGradient #0000FF,#FF0000,7,30,0.5