Hauptmenü

Perl Frage

Begonnen von matze1999, 20 Juni 2022, 12:29:20

Vorheriges Thema - Nächstes Thema

matze1999

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




Beta-User

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...?!?)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors