# Variablen berechnen

**URL:** <https://community.homey.app/t/variablen-berechnen/42639>\
**Category:** Fragen & Hilfe\
**Created:** [February 9, 2021, 7:01am UTC](https://community.homey.app/t/variablen-berechnen/42639 "2021-02-09T07:01:12Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Undertaker](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/undertaker/32/53278_2.png) [@Undertaker](https://community.homey.app/u/Undertaker)\
**Post date:** [February 9, 2021, 7:01am UTC](https://community.homey.app/t/variablen-berechnen/42639/1 "2021-02-09T07:01:12Z")

</div>

Ich habe mal langsam angefangen mich mit Variablen zu beschäftigen. Bisher hatte ich einfach keinen Bock dazu, möchte (muss) aber jetzt Flows einsparen, um überhaupt noch einen Überblick zu haben.  
Die Logic Variablen Zahl und Ja/Nein sind klar. Aber was soll man mit der Variablen Text anfangen ?

Mein größeres Problem ist eine Variable zu berechnen. Ich war noch nie eine Leuchte in Mathe.  
Ein Beispiel:  
Ich simuliere im Aquarium einen Sonnenuntergang mit einem Shelly RGBW. Wenn ich alle einzelnen Flows zusammen rechne, sind das 48 Stück.  
Die verteilen sich auf Lichtfarbe, Dimmlevel und Farbtemperatur.  
Ich könnte die Flows vermutlich auf wesentlich weniger reduzieren, wenn ich folgende Variablen berechnen könnte:

Ausgangsleistung 100%/0%  
Jede Minute den Wert um 10% verringern/erhöhen, bis Wet 0/100 erreicht ist.  
Geht das ? Wenn ja, hat jemand mal ein Beispiel für mich, dass ich die Vorgehensweise kapiere ?

---

<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:** [February 9, 2021, 7:37am UTC](https://community.homey.app/t/variablen-berechnen/42639/2 "2021-02-09T07:37:53Z")

</div>

Ich nehme für soche Übergänge die Chronograph-App. Wäre das nicht einfacher als Variablen?

---

<div class="post-metadata">

**Author:** ![MadMonkey](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/madmonkey/32/22606_2.png) [@MadMonkey](https://community.homey.app/u/MadMonkey)\
**Post date:** [February 9, 2021, 8:10am UTC](https://community.homey.app/t/variablen-berechnen/42639/3 "2021-02-09T08:10:54Z")

</div>

> [@Undertaker](#):
>
> gsleistung 100%/0%

Das würde ich auch mit einer Transition der Chronograph App machen. Start 100, Ziel 0, Schritte: 10 und eine beliebige Zeit. Du brauchst dann 2 Flows:

- einer wo du die Transition startest
- einer wo du auf Transistion Änderungen reagierst, du bekommst dann einen Wert mit den du direkt verwenden kannst um beispielsweise die Helligkeit zu ändern

---

<div class="post-metadata">

**Author:** ![CyberSponk](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/cybersponk/32/8334_2.png) [@CyberSponk](https://community.homey.app/u/CyberSponk)\
**Post date:** [February 9, 2021, 8:22am UTC](https://community.homey.app/t/variablen-berechnen/42639/4 "2021-02-09T08:22:56Z")

</div>

> [@Undertaker](#):
>
> Geht das ? Wenn ja, hat jemand mal ein Beispiel für mich, dass ich die Vorgehensweise kapiere ?

Yoo, das sollte machbar sein. Zwei Flows. Einer für 0 + 10 und einer für 100 - 10:

Runterzählen  
WENN  
Auslöser 1 Min  
UND  
MeineVariable ist nicht 0  
DANN  
Rechnen {{ MeineVariable - 10}}

Hochzählen  
WENN  
Auslöser 1 Min  
UND  
MeineVariable ist nicht 100  
DANN  
Rechnen {{ MeineVariable + 10}}

In dem Flow welcher dann was machen soll:

WENN  
Variable MeineVariable sich ändert  
DANN  
Dimme z.B. Licht auf MeineVariable

Man muss schauen wie das z.B. Licht den Dimmwert möchte: 10 oder 0.10. Wenn zweiteres muss man die Formel zur Berechnung anpassen.

---

<div class="post-metadata">

**Author:** ![Undertaker](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/undertaker/32/53278_2.png) [@Undertaker](https://community.homey.app/u/Undertaker)\
**Post date:** [February 9, 2021, 12:53pm UTC](https://community.homey.app/t/variablen-berechnen/42639/5 "2021-02-09T12:53:02Z")

</div>

Ich versuch das nachher mal ! 🍻

---

<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:** [February 9, 2021, 2:07pm UTC](https://community.homey.app/t/variablen-berechnen/42639/6 "2021-02-09T14:07:19Z")

</div>

Hier ein Beispiel. Ich verwende das für einen Lichtwecker.

Transition starten:

 ![Screenshot_20210209-150154_Homey](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/6/1/617ac60406a4479a00631e2701b587673ba9515e.jpeg)

Jeder Schritt führt diesen Flow aus:

 ![Screenshot_20210209-150357_Homey](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/7/0/70b0f5a7a052b25bb28b057fd5bf8e54f0b8695a.jpeg)

 ![Screenshot_20210209-150405_Homey](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/4/2/420e1656c3b4ae8c08149ea949f56f4335a76b22.jpeg)

---

<div class="post-metadata">

**Author:** ![Undertaker](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/undertaker/32/53278_2.png) [@Undertaker](https://community.homey.app/u/Undertaker)\
**Post date:** [February 10, 2021, 5:13am UTC](https://community.homey.app/t/variablen-berechnen/42639/7 "2021-02-10T05:13:56Z")

</div>

Danke für eure Tipps !  
In erster Linie ging es mir darum zu kapieren, wie in den Variablen Berechnungen funktionieren.  
Auf die {{ }} wäre ich von alleine nie gekommen.  
Ich hab gestern mal als Anfang einen Zähler für Kaffee pro Tag (😳) und die tägliche Durchschittstempertur eingerichtet. Das funktioniert sehr gut und ich bin auf dem richtigen Weg für mehr !

…wobei ich den Kaffee Zähler sofort wieder lösche ! Man sollte seiner Frau nicht unbedingt eine Argumentationshilfe präsentieren, um den beeindruckenden Verbrauch von Kaffeebohnen zu erklären.😉🤫

---

<div class="post-metadata">

**Author:** ![DirkG](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/dirkg/32/118897_2.png) [@DirkG](https://community.homey.app/u/DirkG)\
**Post date:** [February 10, 2021, 5:44am UTC](https://community.homey.app/t/variablen-berechnen/42639/8 "2021-02-10T05:44:01Z")

</div>

Bei einigen Berechnungen muss man runden, z.B, bei Tags auf eine oder zwei Nachkommastellen:

{{round(Berechnung,2)}}

Wenn es Abends dunkel wird, lasse ich meine Rollos erstmal nur auf Sichtschutz fahren. Da das so aussehen soll als würden die manuell betätigt werden (insbesondere im Urlaub wenn niemand zuhause ist), fährt jedes Rollo jeden Abend ein zufällige Position zwischen 50 und 30 % an.

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/c/0/c0de34b67dc3e3c3434886659a0781c716a7ab5c.jpeg)

---

<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:** [February 10, 2021, 7:08am UTC](https://community.homey.app/t/variablen-berechnen/42639/9 "2021-02-10T07:08:50Z")

</div>

Schau mal hier:

> [@Available math functions](https://community.homey.app/t/available-math-functions/16622):
>
> Are there built-in math functions that can be used in variable calculations (in basic logic flows, not Homeyscript)? If so, where can I find the docs?

Vermutlich kannst du alle JS-Math-Fuktionen verwenden.

> **[math.js | an extensive math library for JavaScript and Node.js](https://mathjs.org/docs/reference/functions.html)**
>
> Math.js is an extensive math library for JavaScript and Node.js. It features big numbers, complex numbers, matrices, units, and a flexible expression parser.

> **[math.js | an extensive math library for JavaScript and Node.js](https://mathjs.org/docs/expressions/syntax.html)**
>
> Math.js is an extensive math library for JavaScript and Node.js. It features big numbers, complex numbers, matrices, units, and a flexible expression parser.

---

<div class="post-metadata">

**Author:** ![Undertaker](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/undertaker/32/53278_2.png) [@Undertaker](https://community.homey.app/u/Undertaker)\
**Post date:** [February 10, 2021, 10:20am UTC](https://community.homey.app/t/variablen-berechnen/42639/10 "2021-02-10T10:20:25Z")

</div>

…dann eine Herausforderung für euch.  
Kann ich eine Variable definieren, die die aktuelle Uhrzeit z.B. 12.45, anzeigt und fortführt?  
Ich habe was verrücktes vor und brauche dazu die exakte Uhrzeit als Variable.

---

<div class="post-metadata">

**Author:** ![Tequila329](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tequila329/32/10729_2.png) [@Tequila329](https://community.homey.app/u/Tequila329)\
**Post date:** [February 10, 2021, 10:29am UTC](https://community.homey.app/t/variablen-berechnen/42639/11 "2021-02-10T10:29:26Z")

</div>

Wie genau? Sekunden, Minuten? 🙂  
Sekundengenau bekomme ich hin…noch exakter leider nicht

---

<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:** [February 10, 2021, 10:33am UTC](https://community.homey.app/t/variablen-berechnen/42639/13 "2021-02-10T10:33:46Z")

</div>

Gute Frage.  
Woher nimmst du die Uhrzeit?  
Es gibt in Homey nur Text und Zahlen als Variablentyp.  
Selbst wenn Homey das bei Zuweisung der Zahlenvariable in den Unix-Code (Sekunden ab…irgenwann einmal) umwandelt, müsstest du mit dieser Zahl rechnen. Eine Konvertierung zurück geht m.E. aber nicht.  
Ich würde sagen: keine Chance.

Zeitprüfungen mache ich nur in HA, z.B. Prüfung, wie lange schon eine MQTT-Änderung aussteht.

---

<div class="post-metadata">

**Author:** ![Tequila329](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tequila329/32/10729_2.png) [@Tequila329](https://community.homey.app/u/Tequila329)\
**Post date:** [February 10, 2021, 10:39am UTC](https://community.homey.app/t/variablen-berechnen/42639/14 "2021-02-10T10:39:43Z")

</div>

Also Zeit stellt dir Homey selbst schon als interne Variable zur Verfügung.

 ![Bildschirmfoto 2021-02-10 um 11.40.03](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/8/2/823b80cd639b8e51be34dc4715222e0ca34bb88e.png)

---

<div class="post-metadata">

**Author:** ![Undertaker](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/undertaker/32/53278_2.png) [@Undertaker](https://community.homey.app/u/Undertaker)\
**Post date:** [February 10, 2021, 10:57am UTC](https://community.homey.app/t/variablen-berechnen/42639/15 "2021-02-10T10:57:42Z")

</div>

Das ist schon richtig, nur kann ich diese Zeit nicht als tag verwenden, zumindest finde ich nichts, um die laufende Systemzeit in Flows zu integrieren.

---

<div class="post-metadata">

**Author:** ![CyberSponk](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/cybersponk/32/8334_2.png) [@CyberSponk](https://community.homey.app/u/CyberSponk)\
**Post date:** [February 10, 2021, 11:11am UTC](https://community.homey.app/t/variablen-berechnen/42639/16 "2021-02-10T11:11:17Z")

</div>

> [@Undertaker](#):
>
> nur kann ich diese Zeit nicht als tag verwenden

Wo in den Tags? Bei UND sowie DANN ist der Zeit-Tag auswählbar.

---

<div class="post-metadata">

**Author:** ![Undertaker](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/undertaker/32/53278_2.png) [@Undertaker](https://community.homey.app/u/Undertaker)\
**Post date:** [February 10, 2021, 11:41am UTC](https://community.homey.app/t/variablen-berechnen/42639/17 "2021-02-10T11:41:39Z")

</div>

Ich hatte einen Denkfehler, ich hab die Lösung.  
Mein Fehler war die Variable als numerisch zu setzen. Da wird Zeit nicht als Tag angezeigt.  
Wenn ich das Ganze als Text Variable mache ist alles gut. Ich lasse minütlich abfragen und habe jetzt meine Variable mit der genauen Uhrzeit.

[https://homey.app/f/raoLbu](https://homey.app/f/raoLbu)

 ![Screenshot_20210210-124057_Homey](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/b/a/ba7be1144f74d84d63062da075f093929175be4c.jpeg)

👍👍👍👍👍👍👍👍

---

<div class="post-metadata">

**Author:** ![DirkG](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/dirkg/32/118897_2.png) [@DirkG](https://community.homey.app/u/DirkG)\
**Post date:** [February 10, 2021, 11:55am UTC](https://community.homey.app/t/variablen-berechnen/42639/18 "2021-02-10T11:55:22Z")

</div>

Und für welchen Anwendungsfall benutzt Du das genau, wenn ich fragen darf?

---

<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:** [February 10, 2021, 12:01pm UTC](https://community.homey.app/t/variablen-berechnen/42639/19 "2021-02-10T12:01:06Z")

</div>

Ah, du willst das nur ausgeben. Ich dachte, du willst damit rechnen.  
Falls du doch mal mit Zeiten rechnen willst, dann könntest du dir HomeyScript anschshauen. Ich habe mal eine komplexe Bedingung in HomeyScript als JavaScript abgebildet. Den Rückgabewert kann man dann als Tag im Flow verwenden.  
Wenn du dazu Infos brauchst, dann melde dich nochmal…

---

<div class="post-metadata">

**Author:** ![Undertaker](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/undertaker/32/53278_2.png) [@Undertaker](https://community.homey.app/u/Undertaker)\
**Post date:** [February 10, 2021, 12:23pm UTC](https://community.homey.app/t/variablen-berechnen/42639/20 "2021-02-10T12:23:13Z")

</div>

…ich bin gerade dabei (zumindest versuche ich es), dummen Thermostaten wie z.B. dem Danfoss LC 13, per Logic und Hardware Modifikationen, ein paar Eigenschaften des Spirits zu verpassen.  
z.B. Boost, Ist-Temperatur oder externe Temperatur Messung.

Ich denke aber nicht, dass das was für die Allgemeinheit wird, weil die Erklärung jedes Schrittes schwierig ist und sich nicht jeder traut, ergänzende Sensoren in die filigrane Elektronik des Danfoss einzubauen.

---

<div class="post-metadata">

**Author:** ![clipse\_M](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/clipse_m/32/30035_2.png) [@clipse\_M](https://community.homey.app/u/clipse_M)\
**Post date:** [May 1, 2021, 9:20pm UTC](https://community.homey.app/t/variablen-berechnen/42639/21 "2021-05-01T21:20:05Z")

</div>

Hi Ronny,  
Sag mal wie kann ich denn ein Homeyscript in eine Variable ausgeben?  
Ich habe hier ein Script für circadian Licht gefunden, das gibt mir Werte fürs Licht in Temp aus.  
Allerdings krieg ich das nicht im Homey dargestellt.

[Next page](https://community.homey.app/t/variablen-berechnen/42639.md?page=2)
