FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: matze1999 am 20 Juni 2022, 12:29:20

Titel: Perl Frage
Beitrag von: matze1999 am 20 Juni 2022, 12:29:20
Hallo,

ich bin absoluter Perl Laie uns stoße an meine Grenzen:

Ich habe folgendes at erstellt:

Beregnung:.* {
my @nr = (1..6);
for(@nr){
if( @nr  !=  $EVTPART1 ) {
        my $B.@nr.time == 180;
} elsif( @nr == $EVTPART1 ) {
        my $B.@nr.time == ($EVTPART2*60);
}} {
fhem ("set HUEDevice8 on-for-timer $B1time;sleep (my $B1time + 120);set HUEDevice8 on-for-timer my $B2time;sleep (my $B2time + 120) ;set HUEDevice8 on-for-timer my $B3time;sleep (my $B3time + 120);set HUEDevice8 on-for-timer my $B4time;sleep (my $B4time + 120);set HUEDevice8 on-for-timer my $B5time;sleep (my $B5time + 120);set HUEDevice8 on-for-timer my $B6time")}}


$B.@nr.time sollen am Ende des if also 6 Variablen ($B1time, $B2time ... $B6time) sein, eine mit dem Wert  ($EVTPART2*60) und die anderen 5 mit dem Wert 180. diese Werte sollen dann im fhem Teil genutzt werden. Für das sleep werden die Werte $B.@nr.time noch mal um 120 erhöht.

Beregnung ist ein dummy und liefert als state die Ventilnummer und die Beregnungszeit in Minuten

defmod Beregnung dummy
attr Beregnung setList 1 2 3 4 5 6
setstate Beregnung 3 60


So klappt das (natürlich) nicht, die folgende Fehlermeldung kommt:

Global symbol "$B1time" requires explicit package name (did you forget to declare "my $B1time"?) at (eval 1664794) line 9.
Global symbol "$B1time" requires explicit package name (did you forget to declare "my $B1time"?) at (eval 1664794) line 9.
Global symbol "$B2time" requires explicit package name (did you forget to declare "my $B2time"?) at (eval 1664794) line 9.
Global symbol "$B2time" requires explicit package name (did you forget to declare "my $B2time"?) at (eval 1664794) line 9.
Global symbol "$B3time" requires explicit package name (did you forget to declare "my $B3time"?) at (eval 1664794) line 9.
Global symbol "$B3time" requires explicit package name (did you forget to declare "my $B3time"?) at (eval 1664794) line 9.
Global symbol "$B4time" requires explicit package name (did you forget to declare "my $B4time"?) at (eval 1664794) line 9.
Global symbol "$B4time" requires explicit package name (did you forget to declare "my $B4time"?) at (eval 1664794) line 9.
Global symbol "$B5time" requires explicit package name (did you forget to declare "my $B5time"?) at (eval 1664794) line 9.
Global symbol "$B5time" requires explicit package name (did you forget to declare "my $B5time"?) at (eval 1664794) line 9.
Global symbol "$B6time" requires explicit package name (did you forget to declare "my $B6time"?) at (eval 1664794) line 9.


kann mir hier jemand auf die Sprünge helfen?

matze1999



Titel: Antw:Perl Frage
Beitrag von: Beta-User am 20 Juni 2022, 12:52:24
Querverweis nach https://forum.fhem.de/index.php/topic,128069.0.html, da der Beitrag ursprünglich dort gepostet wurde...
(Welchem Zweck dienen solche Aktionen? Einfach den Thread-Titel ändern wäre doch auch möglich...?!?)