Hallo
Bräuchte mal Hilfe bei folgenden Problem :
Der Temperatur Sensor von meinem Raspberry Pi liefert Werte wie zb :
"11.5°C / 35.2%"
"3.5°C / 64.8%"
Usw.
Ich würde diesen Wert gerne in Temperatur und Luftfeuchtigkeit zerlegen. Wie kann ich das mit AM machen?
Der Wert kommt als variable rein global_rpi1_tempraw (ausgelesen via ssh) und soll dann eben in global_rpi1_temp und global_rpi1_luft zerlegt werden.
Problem ist das die Temperatur mal 1 und dann wieder 2 stellen vor dem Komma hat, also keine fixe Länge
Vielen dank im voraus für Hilfe
Vg/me
Teile einer Variable in anderen Variablen speichern
Moderator: Martin
Re: Teile einer Variable in anderen Variablen speichern
Hi,
Es gibt meistens mehrere Lösungen, eine davon:
list=split('21°C / 64.8%', '/')
--> [21°C , 64.8%]
Deine Variablen kannst dann mit list[0] der Temperatur und list[1] der Luftfeuchtigkeit zuordnen,
LG,
Es gibt meistens mehrere Lösungen, eine davon:
list=split('21°C / 64.8%', '/')
--> [21°C , 64.8%]
Deine Variablen kannst dann mit list[0] der Temperatur und list[1] der Luftfeuchtigkeit zuordnen,
LG,
"You cannot know the meaning of your life until you are connected to the power that created you.”
Shri Mataji Nirmala Devi, founder of Sahaja Yoga
Shri Mataji Nirmala Devi, founder of Sahaja Yoga
Re: Teile einer Variable in anderen Variablen speichern
You can use regex to match and capture them. Do you need the degree Celcius and the percentage? I assume you wanna the raw number including the decimal (so you can do calculation to it). If so, below regex only capture the digit.
You can try this script and put a debug dialog to check the result.
Additional info :
Code: Select all
sensor = "11.5 ° C / 35.2%";
find = findAll(sensor, "(\\d\\d?\\d?\\.\\d) ° C / (\\d\\d?\\d?\\.\\d)%", true);
temp = find[0][1];
humid = find[0][2];
Additional info :
- \\d will capture single digit. Adding a question mark after it >> \\d?, denotes 0 or 1 digit. So the number can be there or not.
- \\d\\d?\\d? will match anything from 0 to 999.
- Adding \\.\\d mean to capture a dot followed by a digit. Thus capturing the number and 1 digit decimal point.
- The humidity also the same, just in case the sensor post 100.0% humidity.
- Putting bracket between them to capture the value into groups (1 and 2). If you need the degree and percentage, you should move the right bracket to cover them too.
Index of Automagic useful thread List of my other useful posts (and others')
Xiaomi Redmi Note 5 (whyred), AOSP Extended v6.7 build 20200310 Official, Android Pie 9.0, Rooted.
Xiaomi Redmi Note 5 (whyred), AOSP Extended v6.7 build 20200310 Official, Android Pie 9.0, Rooted.
Re: Teile einer Variable in anderen Variablen speichern
hallo/hello !!
@yogi108 : DANKE für deine Hilfe !!
Hab das gestern schon probiert,FUNKT PERFEKT.
Hab die "list" funktion eh gelesen in der Hilfe,aber ich hab das nicht kombiniert,dass man sie ja auch so nutzen kann !
Ich trenn zuerst Temperatur und Luftfeuchtigkeit und weise temporäre Variablen zu,und danach trenne ich mit "list" einfach die Temperatur von "°C" bzw. die Luftfeuchtigkeit vom % Zeichen.
Vorteil für mich => auch negative ,und dreistellige Werte funktionieren ohne Rücksicht drauf,da man ja nur nach nem Zeichen trennt !
@Desmanto : thanks for your help as well !!!
Your right,I only need the real value,without degree/percentage.
But unfortunately I wasnt able to test your solution,as I have an older automagic app installed ,where "unknown function" popsup,and Im kinda reluctant to update (why...thats a bit complicated in my case/phone),so for now I use the first solution.
But I can see how I might have to upgrade in the future,to use regex for more complex problems,...reminds me of "sed"@linux !!
@yogi108 : DANKE für deine Hilfe !!
Hab das gestern schon probiert,FUNKT PERFEKT.
Hab die "list" funktion eh gelesen in der Hilfe,aber ich hab das nicht kombiniert,dass man sie ja auch so nutzen kann !
Ich trenn zuerst Temperatur und Luftfeuchtigkeit und weise temporäre Variablen zu,und danach trenne ich mit "list" einfach die Temperatur von "°C" bzw. die Luftfeuchtigkeit vom % Zeichen.
Vorteil für mich => auch negative ,und dreistellige Werte funktionieren ohne Rücksicht drauf,da man ja nur nach nem Zeichen trennt !
@Desmanto : thanks for your help as well !!!
Your right,I only need the real value,without degree/percentage.
But unfortunately I wasnt able to test your solution,as I have an older automagic app installed ,where "unknown function" popsup,and Im kinda reluctant to update (why...thats a bit complicated in my case/phone),so for now I use the first solution.
But I can see how I might have to upgrade in the future,to use regex for more complex problems,...reminds me of "sed"@linux !!