FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: UB66 am 12 Mai 2013, 11:24:14

Titel: einfaches addieren von Variablen
Beitrag von: UB66 am 12 Mai 2013, 11:24:14
Hallo Zusammen,
Ich bin seit ca. 6 Wochen dabei HM Komponenten mit der FB 7270 zu steuern.  
Habe jetzt ein Problem, und auch nach viel "Googlen" leider keine Lösung gefunden.
Es sollen einfach nur Variablen kopiert und addiert werden.......

Auszug auf .cfg:

#Variablen Deklaration
define test1 dummy
define test2 dummy
define test3 dummy

# Werte setzen
{fhem("set test1 11.0")}
{fhem("set test2 22.5")}
{fhem("set test3 33.0")}

#kopieren: Werte von test1+Test2 in test3
{fhem ("set test3" +(Value("test1")+Value("test2")))}

Beim Speichern kommt als Meldung:
ERROR:
Unknown command 33.5, try help

Also werden die Zahlen scheinbar richtig addiert, aber "test3" irgendwie als Befehl erkannt ???

mfg
UB66
Titel: Aw: einfaches addieren von Variablen
Beitrag von: broadway am 12 Mai 2013, 11:41:22
So funktionierts und ist leichter lesbar:

my $temp=Value("test1")+Value("test2");
fhem("set test3 $temp");
Titel: Aw: einfaches addieren von Variablen
Beitrag von: UB66 am 12 Mai 2013, 12:14:59
Hi,
danke für die schnelle Antwort.
Leider kommen jetzt Fehler.
Ich habe das alles auch schon in ein "Notify" verpackt, leider kommen hier auch Fehler...


my $temp=Value("test1")+Value("test2");
{fhem("set test3 $temp")};

ERROR:
Unknown command my, try help Global symbol "$temp" requires explicit package name at (eval 2338) line 1, <$fh> line 437.

UB
 
Titel: Aw: einfaches addieren von Variablen
Beitrag von: broadway am 12 Mai 2013, 16:11:13
Achte darauf, wo du den code eingibst. Von mir gepostet: Eingabe unter "DEF" nach anklicken des Notify.

Angabe in fhem.cfg:

define EinTest notify EinTest {\
  my $temp=Value("test1")+Value("test2");;\
  fhem("set test3 $temp");;\
}
Titel: Aw: einfaches addieren von Variablen
Beitrag von: MisterEltako am 12 Mai 2013, 17:55:00
Oder so:
#Variablen Deklaration
define test1 dummy
define test2 dummy
define test3 dummy

# Werte setzen
{fhem("set test1 11.0")}
{fhem("set test2 22.5")}
{fhem("set test3 33.0")}

#kopieren: Werte von test1+Test2 in test3
define Testung3 at +00:00:02 {\
my $test1=Value("test1");;\
my $test2=Value("test2");;\
my $test3=$test1+$test2;;\
Log 3, "Wert ist: $test3";;\
fhem("set test3 $test3");;\
}

MfG, MisterEltako
Titel: Aw: einfaches addieren von Variablen
Beitrag von: UB66 am 12 Mai 2013, 18:54:08
Hallo,
jau läuft jetzt !!!
Danke für die Hilfe !!!

Gruß
UB66
Titel: Antw:einfaches addieren von Variablen
Beitrag von: Hakter51 am 11 Februar 2018, 21:56:49
Hallo,
Ich will auch nur ,,rechnen".  Und bitte um Hilfe.

                         Daten
T_H_Rücklauf     Tem: 21.5
T_H_Vorlauf       Tem: 26.4

{fhem("set D3 " . (Value("T_H_Vorlauf:Tem.*"))-(Value("T_H_Rücklauf:

Fehler log
2018.02.11 21:54:34 3: set D3  : no set value specified
2018.02.11 21:54:34 3: Abfrage: no set value specified
Titel: Antw:einfaches addieren von Variablen
Beitrag von: betateilchen am 11 Februar 2018, 21:59:41
Da fehlen zumindest ein paar Klammern, ausserdem ist T_H_Vorlauf:Tem.* falsch
Titel: Antw:einfaches addieren von Variablen
Beitrag von: Hakter51 am 12 Februar 2018, 19:15:45
oh das ist mir jetzt peilich... Ich sollte nicht abends und nicht am PC einen Beitrag schreiben. Wenn FHEM eine Siemens oder Rockwell SPS wäre wüste ich was ich schreiben muss.

Also noch mal: Wenn ich ein AT definire, das die folgt aussieht, wird in "D3"  "Tem: 26.4" geschrieben.

define Abfrage at +*00:02:00 {fhem("set D3 " .  ((Value("T_H_Vorlauf"))))}


Wenn ich wie folgt berechen erhalte ich eine Fehlermeldung im Log "PERL WARNING: Argument "Tem: 26.4" isn't numeric in subtraction (-)" was auch sinn macht.

define Abfrage at +*00:02:00 {fhem("set D3 " .  ((Value("T_H_Vorlauf"))-(Value("T_H_Ruecklauf"))))}


Daten
T_H_Ruecklauf     Tem: 21.5
T_H_Vorlauf       Tem: 26.4


Wie bekomme ich "Tem: 21.5" zu einem numeric REAL Wert?