Temperatur in Farbe umsetzen

Begonnen von Prof. Dr. Peter Henning, 07 Dezember 2014, 22:18:23

Vorheriges Thema - Nächstes Thema

The-Holgi

OK, das hat geklappt. Wie ich gesehen habe wurde es im Wiki auch schon geändert. Jetzt beiße ich mit gerade die Zähne daran aus das notify über einen dummy-Schalter ein und aus zu schalten. Vielleicht hat jemand einen Tipp.

Gruß Holgi
Raspberry Pi 5

RoBra81


The-Holgi

Hm, du meinst über ein 2. Notify welches von meinem dummyschalter getriggert wird das Notify disablen bzw enable ?
Raspberry Pi 5

RoBra81

Oder du nimmst IF und fragst im Notify den Status des Dummy ab.

The-Holgi

Das hatte ich gerade erfolglos versucht.
Raspberry Pi 5

RoBra81


The-Holgi

So:
temperature.* if((Value("Temp_Licht") eq "on"){fhem("set hue2 rgb ".substr(Color::pahColor(0,15,30,$EVTPART1,0,0),0,6))}
mit der Ausgabe im log:
temp_anzeige return value: Unknown command if((Value("Temp_Licht"), try help.
Ich muß dazu sagen das ich normalerweise fast alles mit DOIF mache, deshalb hier die Schwierigkeiten.

Gruß Holgi
Raspberry Pi 5

Prof. Dr. Peter Henning

Erstens wurde im Wiki gar nichts geändert - das scheint einfach ein Lesefehler gewesen zu sein.
Zweitens bitte ich darum, solche doch eher generellen Coding-Tipps nicht unter diesem Thread zu diskutieren.  ::)

pah

The-Holgi

OK, kein Problem verstehe das der Thread nicht zugemüllt werden soll. Im Wiki wurde aber definitiv was geändert, bei copy & paste sollte es eigentlich keine Lesefehler geben. Spielt aber auch keine Rolle, denke jetzt komme ich klar. Besten Dank für die Erweiterung der color.pm.
Gruß Holgi
Raspberry Pi 5

Prof. Dr. Peter Henning

Quatsch mit Soße. Laste gefälligst Deine eigenen Fehler nicht anderen an  >:(
Die Versionsgeschichte im Wiki beweist eindeutig, dass an dieser Stelle keine Änderung erfolgt ist.

pah

The-Holgi

Hallo pah,
es liegt mir fern hier irgendjemanden etwas an zu lasten. Ich bin froh das Leute wie du hier kräftig "coden" und entwickeln. Ohne euch gäbe es kein fhem.
Ich möchte auch nicht weiter darauf herumreiten, fakt ist aber das am 18.02.15 das hier geschrieben wurde:
Zitat von: justme1968 am 18 Februar 2015, 21:36:54
ich habe die version von oben eingecheckt und auf der Color.pm seite im wiki eine beschreibung mit beispielen angefangen.
vermutlich ist das meiste aber auf der Temperaturfarbe seite besser aufgehoben.
...und unten im coloc Wiki steht:
Diese Seite wurde zuletzt am 21. Februar 2015 um 14:10 Uhr geändert.
Das beweist für mich das doch noch was geändert wurde, oder irre ich mich ?

Gruß Holgi
Raspberry Pi 5

justme1968

aber nicht das leerzeichen hinter rgb...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

RoBra81

Ich möchte nicht auch noch darauf rumhacken, aber vielleicht führt das zu einem Abschluss: in DEINEM Ursprünglichen Zitat aus dem Wiki ist das Leerzeichen sogar noch drin und erst durch deine Anpassung verschwunden:

Zitat von: The-Holgi am 21 Februar 2015, 13:24:24
Hallo, habe es mit dem Beispiel aus dem Wiki probiert. trigger Aussen_Sensor temperature: 20.5
define <n> notify mytemp:temperature {fhem("set lampe rgb ".substr(Color::pahColor(0,15,30,$EVTPART1,0,0),0,6))}
So angepasst:
Aussen_Sensor:temperature.* {fhem("set hue2 rgb".substr(Color::pahColor(0,15,30,$EVTPART1,0,0),0,6))}
Ohne .* gab es garkeine Reaktion mit folgende Meldung im Log:
2015.02.21 13:05:07 3: set hue2 rgb7DAB1D : Unknown argument rgb7DAB1D, choose one of off:noArg on:noArg....
Es scheint als ob nur das leerzeichen zwischen rgb und 7DAB1D fehlt.

Gruß Holgi

vbs

Mal eine Frage in die Runde: Ich hätte evtl. zwei Anwendungsfälle für die Funktion, jedoch geht es evtl. in die falsche Richtung. Vielleicht könnt ihr mir sagen, wie ihr das machen würdet.

Einerseits würde ich gerne ein Icon für Zimmer-Luftfeuchtigkeit färben. Und zwar soll es bei 50% knall-grün sein. Davon abweichend soll es langsam zu rot wechseln, und dann unterhalb von 20% und oberhalb von 80% voll-rot sein.
Ich hab das jetzt mit pahColor so versucht:
return "humidity\@" . substr(Color::pahColor(20,50,80,$value,[255,0,0, 127,127,0, 0,255,0, 127,127,0, 255,0,0]),0,6);
Jedoch bin ich mir nicht sicher, wie ich midcolor1 und midcolor3 belegen soll. Die Bezierkurve ist vielleicht auch gar nicht nötig.


Zweiter Fall:
Das Icon eines Heizungsaktuators, welches den Öffnungsgrad anzeigt, soll ebenfalls koloriert werden. Und zwar von 0% -> blau, über 50% -> gelb bis zu 100% -> rot.
Dafür habe ich im Moment das hier:
return "sani_heating_level_$value\@" . substr(Color::pahColor(0,50,100,$value,[0,0,255, 127,127,0, 255,255,0, 255,127,0, 255,0,0]),0,6);

Aber auch hier die gleichen Fragen wie davor: Wie midcolor1 und midcolor3 belegen? Und geht es nicht evtl. ganz anders noch besser?

frank

ich habe mir mal eine farbscala für temperaturen erstellt, die von blau (<=0) über grün, gelb (15), orange, rot bis pink (>=30) verläuft. vielleicht kann es einer gebrauchen.

(http://forum.fhem.de/index.php?action=dlattach;topic=30128.0;attach=28644)

die funktion:
pahColor(0,15,30,$temp,[0,196,255, 0,255,0, 255,255,0, 255,0,0, 225,0,225],0)

Zitat von: justme1968 am 17 Februar 2015, 14:01:05
die frage ist ob man das ganze noch generalisiert und eine beliebige anzahl an stützsteilen erlaubt.
hierfür wäre natürlich eine funktion mit mehr stützstellen hervorragend, sodass ich für die farben grün, orange, rot noch bessere temperaturen festlegen könnte.  ;)

@vbs
ZitatWie midcolor1 und midcolor3 belegen?
so, dass dir der farbverlauf gefällt. die sollten dann zwischen den angegebenen "temperaturen" liegen. bei dir im ersten fall bei 35 und 65.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html