hi,
was stimmt mit diesem splitBefehl nicht, es kommt immer die meldung Global symbol requires explicit package name , habe es auch mit @@temp1 probiert, nix,
ohne split geht es.
define heizungaenderung notify SZThermostat { \
my $temp=(ReadingsVal("SZThermostat","desired-temp","99"));;\
my @temp1=split(/\./,$temp);;\
if ( Value("Handy") eq "present") {{{bueroheizung}};;{fhem("set MyTTSsz tts die gewünschte Temperatur beträgt $temp1[0]")} } }
danke im voraus für die hilfe
Was willst Du eigentlich machen? Nur die Nachkommstelle abschneiden?
Dazu braucht es doch kein split.
my $temp = int(ReadingsVal("SZThermostat","desired-temp","99"))
oder doch besser auf keine Nachkommstellen runden?
my $temp = round(ReadingsVal("SZThermostat","desired-temp","99"),0)
danke für die schnelle antwort,wollte splitten, weil im tts Engine, höre ich z.b 22 pause 5,ich wollte splitten, dann erstmal die erste hälfte dann schreibe ich Komma ,dann die zweite hälfte, also $temp1[0] Komma $temp1[1] = z.b 22 Komma 5.
danke
ps: es ist ein punkt kein Komma dazwischen, desired-temp=23.5
noch einfacher...
my $temp = ReadingsVal("SZThermostat","desired-temp","99");
$temp =~ s/\./ Komma /;
In $temp steht danach der Text im gewünschten Format.
geil, danke ;D
geht 1a,aber wo könnte man lesen wofür steht die s und der Schrägstrich usw. , und wie könnte man es doch mit Split machen, wegen andere Projekte.
danke
Zitat von: RedStar73 am 28 Februar 2015, 21:54:03
wo könnte man lesen wofür steht die s und der Schrägstrich usw.
Überall da, wo regexp erklärt wird, und zu diesem Thema gibt es gefühlte 2 Millionen Tutorials im Internet.
Zitat von: RedStar73 am 28 Februar 2015, 21:54:03
und wie könnte man es doch mit Split machen, wegen andere Projekte.
my $temp = ReadingsVal(irgendeinSensor,irgendeinReading,"99.0");
my @a = split(/\./,$temp);
$temp = "$a[0] Komma $a[1]";
Funktioniert hier einwandfrei.