# Script - console.log

**URL:** <https://community.homey.app/t/script-console-log/112279>\
**Category:** Fragen & Hilfe\
**Created:** [July 2, 2024, 12:38pm UTC](https://community.homey.app/t/script-console-log/112279 "2024-07-02T12:38:32Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Spart](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/spart/32/79224_2.png) [@Spart](https://community.homey.app/u/Spart)\
**Post date:** [July 2, 2024, 12:38pm UTC](https://community.homey.app/t/script-console-log/112279/1 "2024-07-02T12:38:32Z")

</div>

Hallo zusammen

Kann mir jemand erklären, wie ich mehrere Werte in einem Skript einlese?  
Möchte eine Durchschnittstemperatur berechnen.

Hier zwei Beispiele

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/a/f/af41b7f72aa5276686f932340d75e5780a649fcf.png)

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/4/e/4e564913bf71a21e8e90ffe66502076d3f0f194b.png)

Der Code funktioniert, aber er liest mir die Daten wohl falsch ein…?

Danke für eure Hilfe.

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [July 2, 2024, 12:40pm UTC](https://community.homey.app/t/script-console-log/112279/2 "2024-07-02T12:40:04Z")

</div>

```auto
let temperatures = args[0];
console.log(temperatures);

```

---

<div class="post-metadata">

**Author:** ![Spart](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/spart/32/79224_2.png) [@Spart](https://community.homey.app/u/Spart)\
**Post date:** [July 3, 2024, 1:27pm UTC](https://community.homey.app/t/script-console-log/112279/3 "2024-07-03T13:27:48Z")

</div>

Danke für die rasche Hilfe.  
Ist aber immer noch das selbe Fehlerbild, wenn ich es so anpasse…

---

<div class="post-metadata">

**Author:** ![RonnyW](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/ronnyw/32/10879_2.png) [@RonnyW](https://community.homey.app/u/RonnyW)\
**Post date:** [July 3, 2024, 1:41pm UTC](https://community.homey.app/t/script-console-log/112279/4 "2024-07-03T13:41:48Z")

</div>

Du solltest uns schon das ganze Skript zeigen.  
Was ist das für eine Funktion?  
Und woher sollte der Parameter `temps` kommen, der zuvor nicht deklariert wurde?

---

<div class="post-metadata">

**Author:** ![Spart](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/spart/32/79224_2.png) [@Spart](https://community.homey.app/u/Spart)\
**Post date:** [July 3, 2024, 1:45pm UTC](https://community.homey.app/t/script-console-log/112279/5 "2024-07-03T13:45:25Z")

</div>

/ Beispiel-Temperaturwerte  
// let temperatures = [10, 20, 30, 40, 50];  
// let temperatures = console.log(args[0]);  
// let temperatures = console.log.args.temperatures || [10, 20, 30, 10, 500];

let temperatures = args[0];  
console.log(temperatures);

// Funktion zum Berechnen des Durchschnitts ohne min und max Werte  
function calculateAverageWithoutExtremes(temps) {  
if (!Array.isArray(temps)) {  
throw new Error(“Die Eingabewerte müssen ein Array sein”);  
}  
if (temps.length \<= 2) {  
throw new Error(“Nicht genügend Werte, um die Ausreißer zu entfernen”);  
}

// Kopie des Arrays erstellen und sortieren  
let sortedTemps = temps.slice().sort((a, b) =\> a - b);

// Entferne den ersten (min) und letzten (max) Wert  
sortedTemps.shift();  
sortedTemps.pop();

// Berechne den Durchschnitt der verbleibenden Werte  
let sum = sortedTemps.reduce((acc, val) =\> acc + val, 0);  
let average = sum / sortedTemps.length;

// Auf 2 Dezimalstellen runden und als Zahl zurückgeben  
return Number(average.toFixed(2));  
}

try {  
// Prüfe, ob die Eingangswerte vorhanden und ausreichend sind  
if (!Array.isArray(temperatures) || temperatures.length \< 5) {  
throw new Error(“Nicht genügend Werte, um die Ausreißer zu entfernen”);  
}

// Durchschnitt berechnen  
let averageTemperature = calculateAverageWithoutExtremes(temperatures);  
return averageTemperature;  
} catch (error) {  
return { “message”: error.message };  
}

---

<div class="post-metadata">

**Author:** ![Spart](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/spart/32/79224_2.png) [@Spart](https://community.homey.app/u/Spart)\
**Post date:** [July 3, 2024, 1:48pm UTC](https://community.homey.app/t/script-console-log/112279/6 "2024-07-03T13:48:16Z")

</div>

Oben der Code. Er Code funktioniert, wenn ich  
let temperatures = [10, 20, 30, 40, 50];  
eingebe. Darum habe ich nicht den ganzen Code angehängt.

---

<div class="post-metadata">

**Author:** ![RonnyW](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/ronnyw/32/10879_2.png) [@RonnyW](https://community.homey.app/u/RonnyW)\
**Post date:** [July 3, 2024, 1:53pm UTC](https://community.homey.app/t/script-console-log/112279/7 "2024-07-03T13:53:43Z")

</div>

Der Flowkarten-Parameter ist ein Array mit Strings. Den musst du erst in ein Array parsen:

`let temperatures = JSON.parse(args[0]);`  
Und dann temperatures als Funktionsparameter übergeben.

Btw. Bitte Code immer formatieren, damit es lesbar bleibt:  
 ![grafik](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/c/6/c639a7563f6f5b11c1ce7b6001ddacd03585ea56.png)

---

<div class="post-metadata">

**Author:** ![Spart](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/spart/32/79224_2.png) [@Spart](https://community.homey.app/u/Spart)\
**Post date:** [July 3, 2024, 2:18pm UTC](https://community.homey.app/t/script-console-log/112279/8 "2024-07-03T14:18:32Z")

</div>

Dass es nicht sauber formatiert ist habe ich gesehen, wusste aber nicht wie ändern.  
Habe das nächste Mal sicherlich mehr Zeit dafür.

Leider kommt aber ein Fehler:  
❌ Script Error  
⚠ SyntaxError: Unexpected token , in JSON at position 2

---

<div class="post-metadata">

**Author:** ![RonnyW](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/ronnyw/32/10879_2.png) [@RonnyW](https://community.homey.app/u/RonnyW)\
**Post date:** [July 3, 2024, 2:44pm UTC](https://community.homey.app/t/script-console-log/112279/9 "2024-07-03T14:44:03Z")

</div>

Du musst den Parameter als Array-String übergeben:  
[10, 20]

---

<div class="post-metadata">

**Author:** ![Spart](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/spart/32/79224_2.png) [@Spart](https://community.homey.app/u/Spart)\
**Post date:** [July 3, 2024, 6:24pm UTC](https://community.homey.app/t/script-console-log/112279/10 "2024-07-03T18:24:23Z")

</div>

Danke, so funktioniert es.  
Wenn ich jetzt aber die Temperaturfühler einlese, geht es wieder nicht.

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/4/9/49f5c06e50719c325bcbb4ca9f5d8079ca754150.png)

wenn ich jedoch eine Zahl davor eingebe, geht es. Die Temperaturfühler liest es mir ja sauber aus…?

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/2/2/22b0c8985bc2b926547b3089c2d9e949c9850293.png)

P.S. Gibt es irgendwo tolle Anleitungen zu Homeyscript?

---

<div class="post-metadata">

**Author:** ![Spart](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/spart/32/79224_2.png) [@Spart](https://community.homey.app/u/Spart)\
**Post date:** [July 4, 2024, 11:08am UTC](https://community.homey.app/t/script-console-log/112279/11 "2024-07-04T11:08:45Z")

</div>

Jemand eine Ahnung, warum ich da eine Zahl eingeben muss und es mir die Temperaturfühler alleine nicht einlesen kann/will?

Danke

---

<div class="post-metadata">

**Author:** ![RonnyW](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/ronnyw/32/10879_2.png) [@RonnyW](https://community.homey.app/u/RonnyW)\
**Post date:** [July 4, 2024, 1:20pm UTC](https://community.homey.app/t/script-console-log/112279/12 "2024-07-04T13:20:31Z")

</div>

Nicht wirklich. Du kannst mal ein Leerzeichen zw. Die Klammer un das erste Token machen. Vllt. stört das.

---

<div class="post-metadata">

**Author:** ![Spart](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/spart/32/79224_2.png) [@Spart](https://community.homey.app/u/Spart)\
**Post date:** [July 4, 2024, 7:38pm UTC](https://community.homey.app/t/script-console-log/112279/13 "2024-07-04T19:38:02Z")

</div>

Du bist mein Held, danke.  
Leerzeichen zwischen der Klammer und dem ersten Token und es geht…
