# Zahl aus Text extrahieren

**URL:** <https://community.homey.app/t/zahl-aus-text-extrahieren/101588>\
**Category:** Fragen & Hilfe\
**Tags:** homey-pro, homey-pro-2023\
**Created:** [January 18, 2024, 8:28pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588 "2024-01-18T20:28:00Z")\
**Posts on this page:** 11\
**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:** [January 18, 2024, 8:28pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/1 "2024-01-18T20:28:00Z")

</div>

Hallo zusammen

Gibt es eine Möglichkeit in einem Flow eine Zahl zu extrahieren (ohne Script)?  
Ich starte einen Flow mit dem Text “save - 0%” oder “call - 100%”.  
Der Flow speichert mir mit save gewisse Werte.

Wie kann ich jedoch die Zahl auslesen, ich möchte diese gerne gebrauchen ohne grossen Umweg…

Merci

Gerät:  
Homey Pro (Early 2023)

---

<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:** [January 18, 2024, 10:11pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/2 "2024-01-18T22:11:08Z")

</div>

Das wird nur gut mit einem HomeyScript funktionieren  
Aber mit AdvancedFlows ist das kein Problem.

Morgen kann ich dir ein Beispiel zeigen…

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [January 18, 2024, 11:06pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/3 "2024-01-18T23:06:47Z")

</div>

Ha, ich habe auch daran herumgepfuscht, Ronny und Spart,

Um zu verstehen, was du mit deiner Frage meinst, Spart, habe ich mir Folgendes überlegt:  
Das funktioniert hier, mit homeyscript “Dann” karte  
“Skript mit Argument ausführen und Nummer-Tag zurückgeben”.  
Als Argument nehmen wir das Tag die du auswählen kannst unter “Dieser Flow” [Startwert]

> ![Screenshot from 2024-01-18 23-51-39](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/9/d/9dd288b196480178545e41dbcf47bfee8b227a17.png)

.

Der Code zum Einfügen in die homeyscript-Karte:

```auto
// Extract number from string
let input = (args[0]);

// only save the string following the "-" and whitespace
var res_1 = input.slice(input.indexOf('-')+2);
// now, only save the string prior to the "%"
var res = res_1.split("%")[0];

// use parseFloat to change "res" into a numeric value
return parseFloat(res);

```

.

(übersetzt mit [deepl.com](http://deepl.com))

---

<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:** [February 27, 2024, 2:39pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/4 "2024-02-27T14:39:07Z")

</div>

Hallo.

Sorry für meine späte Antwort, habe es etwas auf die Seite gestellt.  
Der Code so funktioniert bei mir nicht: _Cannot read properties of undefined (reading ‘slice’)_

Da ich aber eh nur die 0% brauche (zum öffnen meiner Rollos), werde ich einfach di “Null” abrufen.

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [February 27, 2024, 7:01pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/5 "2024-02-27T19:01:37Z")

</div>

Kein problem.

> [@Spart](#):
>
> Cannot read properties of undefined (reading ‘slice’)

Ich vermute, die Variable, die du als Argument ausgewählt hast, enthält keinen Wert?

 ![Screenshot_20240227-194930_Chrome](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/d/5/d538bae4d41851c5c132413986a794f5c7812088.jpeg)

Du kannst das Skript kurz testen, indem du die erste Zeile eingibst

```auto
let input = (args[0]);

```

vorübergehend ersetzt durch

```auto
let input = "call - 100%";

```

---

<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:** [February 28, 2024, 8:01am UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/6 "2024-02-28T08:01:20Z")

</div>

Ich hatte den falschen Flow/Kachel genommen, sorry…  
Mit der richtigen Kachel funktioniert das einwandfrei. Danke.

Ich habe mich noch nicht gross mit den Scripts befasst, obwohl mir das viel sympathischer wäre.  
Gibt es eine gute Anleitung?

Ich möchte ja Scripts schreiben, was kein Problem ist, diese abrufen und die Resultate dann auch brauchen können. In den Scripts kann ich aber nicht direkt Variablen einlesen und beschreiben, sehe ich das richtig?

---

<div class="post-metadata">

**Author:** ![Simon\_Kai](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/simon_kai/32/79941_2.png) [@Simon\_Kai](https://community.homey.app/u/Simon_Kai)\
**Post date:** [March 18, 2024, 11:56am UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/7 "2024-03-18T11:56:04Z")

</div>

Hallo,

ich habe ein ähnliches Problem:  
 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/d/f/df95f1a2bb4e960a6ada4cecab88c12b69d15b0b.png)

Ich würde die Zeit im Text “Remaining time” gerne als Zahl nutzen. Am liebsten auch noch umgerechnet in Stunden und Minuten. Dies sind aktuell einfach nur Minuten.

Vielleicht hast du oder jemand anderes Zeit und Geduld mit dies zu erklären.  
Ich danke schon mal

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [March 18, 2024, 12:23pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/8 "2024-03-18T12:23:20Z")

</div>

Ich weiß nicht, ob es einfacher sein kann, aber es ist möglich, es so zu machen:

 ![Screenshot from 2024-03-18 13-15-34](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/7/3/73d7150025c9b4c989791ad2497c49ef06d0eabd.png)

 ![Screenshot from 2024-03-18 13-16-00](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/3/2/32dfdfe714e94f748023eef6591ee7ee62f64a79.png)

.  
Die Berechnung im zweiten Karte lautet (zum copy/paste):

```auto
{{ 0+("[remaining_time]".split(":")[1]) }}

```

Dies ändert den Wert im Tag `[remaining_time]` von `106:00` auf `106`

---

<div class="post-metadata">

**Author:** ![Simon\_Kai](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/simon_kai/32/79941_2.png) [@Simon\_Kai](https://community.homey.app/u/Simon_Kai)\
**Post date:** [March 18, 2024, 1:34pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/9 "2024-03-18T13:34:52Z")

</div>

Wow! Danke! Das hat mit schon sehr weiter geholfen.  
Die ersten drei Elemete funktionieren schon. Ich bekomme die Zeit aus dem Text als Zahl. Aber das umrechnen funktioniert noch nicht.  
Kannst du mir sagen, wo mein Fehler ist? Ich finde auch deine Zeiteinheit (hh:mm) nicht.

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [March 18, 2024, 4:09pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/10 "2024-03-18T16:09:56Z")

</div>

Kein Problem, Simon!

Die Berechnung ist wie folgt aufgebaut:  
`{{ [Result] * 60 }}`  
Die Minuten müssen in Sekunden umgewandelt werden, damit sie in der Better Logic-Karte verwendet werden können.  
Das [Ergebnis] oder [Result]-Tag stammt aus die vorherigen Konvertierungslogik-Karte  
 ![Screenshot from 2024-03-18 17-12-25](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/6/6/66ac0ead0f39e2dc5ed15e416c0cf79c02a1d840.png)

Wenn du sie in die Berechnungs-Karte einfügen möchtest, sehst du sie oben unter “Diese Flow”.  
 ![Screenshot from 2024-03-18 17-14-11](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/c/fcf2910fabce1847014c723637baabefc7ea8a37.png)

.

> [@Simon\_Kai](#):
>
> Ich finde auch deine Zeiteinheit (hh:mm) nicht.

In diesem BL-Diagramm kannst du zwar hh:mm als gewünschte Zeiteinheit angeben, aber dann müsst du immer noch dein Eintrag auswählen, um ihn dem Flow-karte hinzuzufügen.  
Das muss man einfach wissen.  
 ![Screenshot from 2024-03-18 17-05-33](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/e/d/ed2bdf59fdbe6799874034e771a7c771119b2caa.png)

---

<div class="post-metadata">

**Author:** ![Simon\_Kai](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/simon_kai/32/79941_2.png) [@Simon\_Kai](https://community.homey.app/u/Simon_Kai)\
**Post date:** [March 18, 2024, 7:57pm UTC](https://community.homey.app/t/zahl-aus-text-extrahieren/101588/11 "2024-03-18T19:57:15Z")

</div>

hartelijk dank voor uw hulp.  
Ich hatte zwei Fehler. Ich hatte bei der Multiplikation mit 60 eine Leerzeile drin. Und ich habe nicht gesehen, dass am Ende die Zeit z.B. 05:00 auch wieder ein Text und keine Zahl ist. Ich danke dir sehr
