NEWS
Javascript zur Temperaturüberwachung [gelöst]
-
@tomily sagte in Javascript zur Temperaturüberwachung:
mehrzeilig
z.B. mit Backticks, die können auch wunderbar Variablen enthalten:
const wert = 25; const foo = `Dies ist ein mehrzeiliger String! Der Wert ist ${wert}.`;
foo
enthält den folgenden Text:Dies ist ein mehrzeiliger String! Der Wert ist 25.
-
Da hätte ich auch selbst drauf kommen können. Das funktioniert und wäre eine gute Lösund.
Leider wird das Feld vom ioBroker-Adapter nach dem neu Laden wieder überschreiben mit einem default.
Die Anpassung der Namensfelder und das verwenden von dp.common.name wäre super. Bekomme ich den Adapter dazu, das Feld nicht wieder zu überschreiben?Dafür ist "\n" perfekt für den Zeilenumbruch.
@AlCalzone
Danke auch für deinen Hinweis. Das wirkt als Skripting-Anfänger für mich recht mächtig, werde es aber auch ausprobierenMercie
-
@tomily sagte:
Leider wird das Feld vom ioBroker-Adapter nach dem neu Laden wieder überschreiben
Vom Adapter ioBroker.synology ?
Dann verwende common.desc (Beschreibung). Oder wird das auch überschrieben ? -
So ein Mist. Leider wird das Feld genau so auf Default zurück gesetzt wie der Name
-
@tomily sagte:
Leider wird das Feld genau so auf Default zurück gesetzt wie der Name
Dann probiere mal native.name.
-
DANKE! Ich danke euch vielmals. Habe viel dazu gelernt und nun funktioniert es genau so wie ich es wollte.
Den native.name kannte ich noch nicht. Mir war nicht bewusst, dass man dort noch Felder hinzufügen kann. Diese werden nicht überschrieben und können verwendet werden.Hier mein Ergebnis:
var temp1 = "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature"; var temp2 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature"; var temp3 = "synology.1.DiskStationManager.hdd_info.laufwerk_1.temperature"; var temp4 = "synology.1.DiskStationManager.hdd_info.laufwerk_2.temperature"; var temp5 = "synology.1.DiskStationManager.hdd_info.laufwerk_3.temperature"; var temp6 = "synology.1.DiskStationManager.hdd_info.laufwerk_4.temperature"; var threshold = 33; on([temp1, temp2, temp3, temp4, temp5, temp6], function(dp) { if (dp.state.val >= threshold && dp.oldState.val < threshold) { //Email Temperatur ÜBER Threshold sendTo("email", { subject: ("Temperatur " + dp.native.name + " " + dp.state.val + " °C"), text: dp.native.name + " ÜBER Threshold!\nThreshold: " + threshold + " °C\nAktueller Wert: " + (dp.state.val) + " °C" }) } else if ( dp.state.val <= threshold - 0.5 && dp.oldState.val > threshold - 0.5) { //Email Temperatur UNTER Threshold sendTo("email", { subject: ("Temperatur " + dp.native.name + " " + dp.state.val + " °C"), text: dp.native.name + " UNTER Threshold!\nThreshold: " + threshold + " °C\nAktueller Wert: " + (dp.state.val) + " °C" }) } });
-
@tomily sagte:
Den native.name kannte ich noch nicht.
Den gibt es normalerweise auch nicht. Wenn aber common immer wieder vollständig überschrieben wird, kann man dahin ausweichen.
Bitte das Thema in der Überschrift des ersten Beitrags als [gelöst] markieren. -
Besten Dank und vorab ein schönes Wochenende.
Kann den Betreff leider nicht mehr ändern. Wie macht Ihr das normal?
-
@tomily sagte:
Kann den Betreff leider nicht mehr ändern.
Im ersten Beitrag auf die 3 Punkte rechts unten: Bearbeiten auswählen. Dann die Überschrift editieren.
-
Versteck gefunden
Mercie und schönes Wochenende!