FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Kellerkind86 am 18 Januar 2021, 22:59:01

Titel: [gelöst] Perl Hilfe
Beitrag von: Kellerkind86 am 18 Januar 2021, 22:59:01
Hallo,
würde gerne ein userreading bauen..
würde gerne ein normalen Text am Ende haben von :
next_geburtstag_fhem_native { ReadingsVal("Cal_GeburtstageView","t_001_summary","")." hat ".ReadingsVal("Cal_GeburtstageView","t_001_daysleftLong","") }

das entspricht jetzt einfach als Beispiel: (Dennis) hat ( in 3 Tag(en))
würde aber gerne das Geburtstag anhängen..

hab versucht mit ."Geburtstag" aber das funkioniert am Ende nicht.

danke im voraus,
Gruß Marcell
Titel: Antw:Perl Hilfe
Beitrag von: KölnSolar am 18 Januar 2021, 23:15:36
doch, eigentlich schon. Vielleicht hattest Du es nicht richtig positioniert.Und manchmal helfen einfache Anführungszeichen.
next_geburtstag_fhem_native { ReadingsVal('Cal_GeburtstageView','t_001_summary','')." hat ".ReadingsVal('Cal_GeburtstageView','t_001_daysleftLong,'')." Geburtstag" }
Grüße Markus
Titel: Antw:Perl Hilfe
Beitrag von: Otto123 am 18 Januar 2021, 23:16:49
Hallo Marcell,

bist Du sicher?

{"eins "."zwei ".ReadingsVal("WEB","state","")." drei"}

sollte schon so gehen:
next_geburtstag_fhem_native { ReadingsVal("Cal_GeburtstageView","t_001_summary","")." hat ".ReadingsVal("Cal_GeburtstageView","t_001_daysleftLong","")." Geburtstag" }

Zu spät :)

Gruß Otto
Titel: Antw:Perl Hilfe
Beitrag von: Kellerkind86 am 18 Januar 2021, 23:18:32
Danke euch.. Hatte davor und dahinter einen Punkt.
Vielen Dank
Titel: Antw:[gelöst] Perl Hilfe
Beitrag von: Otto123 am 19 Januar 2021, 11:17:15
Ich gehe da nicht von einem Tippfehler sondern von: Ich weiß eigentlich nicht warum ... aus?!

Diese Funktion heisst concatenation - oder besser Verkettung. Damit werden einzelne Strings (oder Funktionen die Strings liefern) miteinander verknüpft.
https://perldoc.perl.org/perlop#Additive-Operators
"String1"."String2"."String3" -> "String1String2String3" - deswegen ist ein Punkt am Ende ein Fehler, da fehlt dann die Fortsetzung ;)
Titel: Antw:[gelöst] Perl Hilfe
Beitrag von: TomLee am 19 Januar 2021, 12:41:56
Keine Vorteile, länger und im Vergleich alles in einer Zeile zu verketten (ohne Variable) umständlicher, aber vlt. erwähnenswert das man auch mit dem Zuweisungsoperator = zum Ziel kommen könnte.
Da setzt man die Punkte auch nicht falsch.

next_geburtstag_fhem_native { my $v=ReadingsVal("Cal_GeburtstageView","t_001_summary","");
$v .= " hat ";
$v .= ReadingsVal("Cal_GeburtstageView","t_001_daysleftLong","");
$v .= " Geburtstag" }


Gruß

Thomas
Titel: Antw:[gelöst] Perl Hilfe
Beitrag von: Kellerkind86 am 19 Januar 2021, 20:49:20
Okay, ich danke.
ich weiß ich hab noch viel zu lernen... ::)

danke
Gruß Marcell