FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: ErzGabriel am 27 März 2021, 13:31:50

Titel: Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: ErzGabriel am 27 März 2021, 13:31:50
Hallo zusammen.
Ich habe mir heute ein Doif erstellt, mit zwei Bedingungen und einer Subroutine die dann durchgeführt werden soll. Der Trigger löst aus aber es kommt nichts ins Log.
Deswegen habe ich ein kleines Problem, ich finde keinen Fehler, das mag an meinen mangelhaften Perlkenntnissen liegen.

Könnte mal bitte ein Fachmann drüber schauen und mir sagen, wo der Fehler ist. Danke.

defmod doif_Pollen_Sauerland DOIF ([Sauerland] eq "on" and [12:15]) (set Telegrambot msg @Vxxx {pollen_sauerland()})
attr doif_Pollen_Sauerland do always
attr doif_Pollen_Sauerland group Vxxx
attr doif_Pollen_Sauerland room Telegram
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Otto123 am 27 März 2021, 14:14:59
Hi,

dann solltest Du diesen Inhalt posten:
{pollen_sauerland()}

Gruß Otto
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Christoph Morrison am 27 März 2021, 14:31:16
Poste bitte ein list von doif_Pollen_Sauerland, ein list von Sauerland und natürlich pollen_sauerland().
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: ErzGabriel am 27 März 2021, 14:51:20
Hier der List:

Internals:
   CFGFN     
   DEF        ([Sauerland] eq "on" and [12:15]) (set Jxxx msg @Vxxx {pollen_sauerland()})
   FUUID      605f09b8-f33f-18e0-2f1e-f1b81acb60d78594
   MODEL      FHEM
   NAME       doif_Pollen_Sauerland
   NOTIFYDEV  Sauerland,global
   NR         1142
   NTFY_ORDER 50-doif_Pollen_Sauerland
   STATE      cmd_1
   TYPE       DOIF
   VERSION    24095 2021-03-26 21:58:04
   READINGS:
     2021-03-27 12:15:00   cmd             1
     2021-03-27 12:15:00   cmd_event       timer_1
     2021-03-27 12:15:00   cmd_nr          1
     2021-03-27 12:14:36   mode            enabled
     2021-03-27 12:15:00   state           cmd_1
     2021-03-27 12:15:00   timer_01_c01    28.03.2021 12:15:00
   Regex:
     accu:
     cond:
       Sauerland:
         0:
           &STATE     ^Sauerland$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'Sauerland','STATE') eq "on" and ::DOIF_time_once($hash,0,$wday)
   days:
   do:
     0:
       0          set Jxxx msg @Vxxx {pollen_sauerland()}
     1:
   helper:
     DEVFILTER  ^global$|^Sauerland$
     NOTIFYDEV  global|Sauerland
     event      timer_1
     globalinit 1
     last_timer 1
     sleeptimer -1
     timerdev   
     timerevent timer_1
     triggerDev
     timerevents:
       timer_1
     timereventsState:
       timer_1
     triggerEvents:
       timer_1
     triggerEventsState:
       timer_1
   internals:
     all         Sauerland:STATE
   interval:
   intervalfunc:
   localtime:
     0          1616926500
   realtime:
     0          12:15:00
   time:
     0          12:15:00
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1616926500:
       localtime  1616926500
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   group      Vxxx
   room       Telegram


Hier die Subroutine:
sub pollen_sauerland() {
my @Vxxx;
my $msg;
my @plants = ("Birke", "Erle", "Graeser", "Hasel", "Roggen");
foreach my $plant (@plants) {
my $pol = ReadingsVal("Pollen_Sauerland","fc2_$plant", "");
if ($pol !~ /white/) {
$msg .= "🌳 "  if ($plant =~ /Birke|Erle/);
$msg .= "🌿 "  if ($plant =~ /Graeser/);
$msg .= "🌾 "  if ($plant =~ /Roggen/);
$msg .= "🌰 "  if ($plant =~ /Hasel/);
$msg .= "$plant: leichte Belastung 🟡\n" if ($pol =~ /yellow/);
$msg .= "$plant: mittlere Belastung 🟠\n" if ($pol =~ /orange/);
$msg .= "$plant: starke Belastung 🔴\n" if ($pol =~ /red/);
}
}
fhem("set Jxxx msg @Vxxx $msg") if ($msg);
}
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Otto123 am 27 März 2021, 15:13:26
Hi,

entweder rufst Du die sub auf und machst dort einen Return mit der Nachricht ODER du machst die Nachricht in der sub.
Jetzt machst Du eine Mischung!
So wie Deine Sub ist im DOIF einfach
({pollen_sauerland()})

Gruß Otto
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: ErzGabriel am 27 März 2021, 15:19:21
Ich habe den Device mittlerweile umgebaut:

sub pollen_sauerland() {
my @Vxxx;
my $msg;
my @plants = ("Birke", "Erle", "Graeser", "Hasel", "Roggen");
foreach my $plant (@plants) {
my $pol = ReadingsVal("Pollen_Sauerland","fc2_$plant", "");
if ($pol !~ /white/) {
$msg .= "🌳 "  if ($plant =~ /Birke|Erle/);
$msg .= "🌿 "  if ($plant =~ /Graeser/);
$msg .= "🌾 "  if ($plant =~ /Roggen/);
$msg .= "🌰 "  if ($plant =~ /Hasel/);
$msg .= "$plant: leichte Belastung 🟡\n" if ($pol =~ /yellow/);
$msg .= "$plant: mittlere Belastung 🟠\n" if ($pol =~ /orange/);
$msg .= "$plant: starke Belastung 🔴\n" if ($pol =~ /red/);
}
}
fhem("set Jxxx msg @Vxxx $msg") if ($msg);
}


Funktioniert aber auch nicht. Datum springt auf den nächsten Tag aber im Log steht nichts.
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Otto123 am 27 März 2021, 15:26:25
funktioniert der Aufruf in der Kommanozeile?
{pollen_sauerland()}
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: ErzGabriel am 27 März 2021, 15:40:31
Der Aufruf von:
({pollen_sauerland()})
funktioniert nicht.

Umgebaut auf:
defmod doif_Pollen_Sauerland DOIF ([15:36]) ({pollen_sauerland()})
funktioniert nicht.

Die Grundlage für meinen Aufbau:
defmod doif_Pollen DOIF ([18:00]) ({pollen()})
funktioniert seit zwei Jahren tadellos.

Könnte es dadran liegen, dass ich zwei Subroutinen habe, die fast gleich sind. Habe nur den Namen der Subroutine angepasst.
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Otto123 am 27 März 2021, 15:45:01
Die Klammern sind Unsinn - die gehören nur zu DOIF!
Aber wenn das in der Kommandozeile nicht funktioniert ist Deine Sub falsch.
{pollen_sauerland()}
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: ErzGabriel am 27 März 2021, 15:47:58
Lasse ich die Klammern weg, kriege ich unbekanntes Kommando zu lesen.

Wie bereits gesagt, funktioniert die Sub seit zwei Jahren bei meinem ersten Pollenversand.
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Otto123 am 27 März 2021, 15:48:42
Dann gibt es die Sub nicht ::) wo hast Du die hingeschrieben?
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: ErzGabriel am 27 März 2021, 15:52:30
In die 99myUtils.pm, die auch mit der üblichen Zeile
1;
endet.
Die Sub steht vor der Endzeile.
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Christoph Morrison am 27 März 2021, 16:01:38
Zeig bitte noch Pollen_Sauerland und Sauerland.

nb an die stumm Mitlesenden: Wenn ihr ein Problem habt, bitte postet gleich im ersten Beitrag alle Devices mit list, die als Trigger dienen oder mit [] (set magic) oder anderweitig abgefragt werden.
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: ErzGabriel am 27 März 2021, 16:07:52
Pollen_Sauerland
defmod Pollen_Sauerland allergy PLZ
attr Pollen_Sauerland userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex reading08Name reading08Regex reading09Name reading09Regex reading10Name reading10Regex reading11Name reading11Regex reading12Name reading12Regex reading13Name reading13Regex reading14Name reading14Regex reading15Name reading15Regex reading16Name reading16Regex reading17Name reading17Regex reading18Name reading18Regex reading19Name reading19Regex reading20Name reading20Regex reading21Name reading21Regex reading22Name reading22Regex reading23Name reading23Regex reading24Name reading24Regex reading25Name reading25Regex reading26Name reading26Regex reading27Name reading27Regex reading28Name reading28Regex reading29Name reading29Regex reading30Name reading30Regex reading31Name reading31Regex reading32Name reading32Regex timeout
attr Pollen_Sauerland event-on-change-reading Erle,Hasel,Loewenzahn,Graeser,Linde,Beifuss,Gaensefuss,Mais,Brennessel,Hafer,Roggen,Weizen,Spitzwegerich,Raps,Hopfen,Holunder,Ulme,Pappel,Weide,Birke,Eiche,Esche,Platane,Flieder,Ambrosia,Buche,Rotbuche,Ahorn,Nessel,Kiefer,Tanne,Fichte
attr Pollen_Sauerland group Pollenvorhersage
attr Pollen_Sauerland levelsFormat rc_dot@white,rc_dot@yellow,rc_dot@orange,rc_dot@red
attr Pollen_Sauerland reading01Name Erle
attr Pollen_Sauerland reading01Regex (?s)Erle.*?poll([0-3])
attr Pollen_Sauerland reading02Name Hasel
attr Pollen_Sauerland reading02Regex (?s)Hasel.*?poll([0-3])
attr Pollen_Sauerland reading03Name Loewenzahn
attr Pollen_Sauerland reading03Regex (?s)L.wenzahn.*?poll([0-3])
attr Pollen_Sauerland reading04Name Graeser
attr Pollen_Sauerland reading04Regex (?s)Gr.ser.*?poll([0-3])
attr Pollen_Sauerland reading05Name Linde
attr Pollen_Sauerland reading05Regex (?s)Linde.*?poll([0-3])
attr Pollen_Sauerland reading06Name Beifuss
attr Pollen_Sauerland reading06Regex (?s)Beifu..*?poll([0-3])
attr Pollen_Sauerland reading07Name Gaensefuss
attr Pollen_Sauerland reading07Regex (?s)G.nsefu..*?poll([0-3])
attr Pollen_Sauerland reading08Name Mais
attr Pollen_Sauerland reading08Regex (?s)Mais.*?poll([0-3])
attr Pollen_Sauerland reading09Name Brennessel
attr Pollen_Sauerland reading09Regex (?s)Brennessel.*?poll([0-3])
attr Pollen_Sauerland reading10Name Hafer
attr Pollen_Sauerland reading10Regex (?s)Hafer.*?poll([0-3])
attr Pollen_Sauerland reading11Name Roggen
attr Pollen_Sauerland reading11Regex (?s)Roggen.*?poll([0-3])
attr Pollen_Sauerland reading12Name Weizen
attr Pollen_Sauerland reading12Regex (?s)Weizen.*?poll([0-3])
attr Pollen_Sauerland reading13Name Spitzwegerich
attr Pollen_Sauerland reading13Regex (?s)Spitzwegerich.*?poll([0-3])
attr Pollen_Sauerland reading14Name Raps
attr Pollen_Sauerland reading14Regex (?s)Raps.*?poll([0-3])
attr Pollen_Sauerland reading15Name Hopfen
attr Pollen_Sauerland reading15Regex (?s)Hopfen.*?poll([0-3])
attr Pollen_Sauerland reading16Name Holunder
attr Pollen_Sauerland reading16Regex (?s)Holunder.*?poll([0-3])
attr Pollen_Sauerland reading17Name Ulme
attr Pollen_Sauerland reading17Regex (?s)Ulme.*?poll([0-3])
attr Pollen_Sauerland reading18Name Pappel
attr Pollen_Sauerland reading18Regex (?s)Pappel.*?poll([0-3])
attr Pollen_Sauerland reading19Name Weide
attr Pollen_Sauerland reading19Regex (?s)Weide.*?poll([0-3])
attr Pollen_Sauerland reading20Name Birke
attr Pollen_Sauerland reading20Regex (?s)Birke.*?poll([0-3])
attr Pollen_Sauerland reading21Name Eiche
attr Pollen_Sauerland reading21Regex (?s)Eiche.*?poll([0-3])
attr Pollen_Sauerland reading22Name Esche
attr Pollen_Sauerland reading22Regex (?s)Esche.*?poll([0-3])
attr Pollen_Sauerland reading23Name Platane
attr Pollen_Sauerland reading23Regex (?s)Platane.*?poll([0-3])
attr Pollen_Sauerland reading24Name Flieder
attr Pollen_Sauerland reading24Regex (?s)Flieder.*?poll([0-3])
attr Pollen_Sauerland reading25Name Ambrosia
attr Pollen_Sauerland reading25Regex (?s)Ambrosia.*?poll([0-3])
attr Pollen_Sauerland reading26Name Buche
attr Pollen_Sauerland reading26Regex (?s)Buche.*?poll([0-3])
attr Pollen_Sauerland reading27Name Rotbuche
attr Pollen_Sauerland reading27Regex (?s)Rotbuche.*?poll([0-3])
attr Pollen_Sauerland reading28Name Ahorn
attr Pollen_Sauerland reading28Regex (?s)Ahorn.*?poll([0-3])
attr Pollen_Sauerland reading29Name Nessel
attr Pollen_Sauerland reading29Regex (?s)Nessel.*?poll([0-3])
attr Pollen_Sauerland reading30Name Kiefer
attr Pollen_Sauerland reading30Regex (?s)Kiefer.*?poll([0-3])
attr Pollen_Sauerland reading31Name Tanne
attr Pollen_Sauerland reading31Regex (?s)Tanne.*?poll([0-3])
attr Pollen_Sauerland reading32Name Fichte
attr Pollen_Sauerland reading32Regex (?s)Fichte.*?poll([0-3])
attr Pollen_Sauerland room Wetter
attr Pollen_Sauerland stateFormat fc1_maximum
attr Pollen_Sauerland timeout 10
attr Pollen_Sauerland updateEmpty 1
attr Pollen_Sauerland updateIgnored 1
attr Pollen_Sauerland webCmd update


Sauerland:
defmod Sauerland dummy
attr Sauerland group Vxxx
attr Sauerland room Automatiken
attr Sauerland setList on off
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Otto123 am 27 März 2021, 16:13:54
Zitat von: ErzGabriel am 27 März 2021, 15:52:30
In die 99myUtils.pm, die auch mit der üblichen Zeile
1;
endet.
Die Sub steht vor der Endzeile.
Ich hab jetzt Angst es geht bis Ostern  :o
Wenn Du den Befehl zum Aufruf der Sub {pollen_sauerland()} in die Kommandozeile wirfst und Du bekommst zurück das es ein unbekannter Befehl ist - dann
Gibt es die Sub nicht in Deiner 99_myUtils.pm -oder
Du hast die 99_myUtils.pm anders als über den eingebauten Editor editiert und kein reload ausgeführt.
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: ErzGabriel am 27 März 2021, 16:23:07
Fehlermeldung kommt nur, wenn ich die geschweiften Klammern weglasse.

Meine 99myUtils:
#########################################
##########                     ##########
########## Datei Grundstruktur ##########
##########                     ##########
#########################################

package main;

use strict;
use warnings;
use POSIX;


sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

########## Datei Grundstruktur Ende ##########


############################################################
########## Netzwerk Gerät über Fritzbox abfragen ###########
############################################################


sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
        my $StatusFritz = ReadingsVal($_, $MAC, "weg");
        if ($StatusFritz eq "weg") {
            # Dieser Zweig testet ob das Reading vorhanden ist
            } elsif ($StatusFritz eq "inactive") {
            # Dieser Zweig testet ob im Reading inactive steht
            } elsif ($StatusFritz =~ /(.*)s, 0/) {
            # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
        } else { $Status = 1}
    }
  return $Status
}

########## Ende Fritzbox Netzwerk Abfrage ##########


################################
########## Pollenflug ##########
################################

sub pollen() {
my @Vxxx;
my $msg;
my @plants = ("Birke", "Erle", "Graeser", "Hasel", "Roggen");
foreach my $plant (@plants) {
my $pol = ReadingsVal("Pollen","fc2_$plant", "");
if ($pol !~ /white/) {
$msg .= "🌳 "  if ($plant =~ /Birke|Erle/);
$msg .= "🌿 "  if ($plant =~ /Graeser/);
$msg .= "🌾 "  if ($plant =~ /Roggen/);
$msg .= "🌰 "  if ($plant =~ /Hasel/);
$msg .= "$plant: leichte Belastung 🟡\n" if ($pol =~ /yellow/);
$msg .= "$plant: mittlere Belastung 🟠\n" if ($pol =~ /orange/);
$msg .= "$plant: starke Belastung 🔴\n" if ($pol =~ /red/);
}
}
fhem("set Jarvis msg @Vxxx $msg") if ($msg);
}


sub pollen_sauerland() {
my @Vxxx;
my $msg;
my @plants = ("Birke", "Erle", "Graeser", "Hasel", "Roggen");
foreach my $plant (@plants) {
my $pol = ReadingsVal("Pollen_Sauerland","fc2_$plant", "");
if ($pol !~ /white/) {
$msg .= "🌳 "  if ($plant =~ /Birke|Erle/);
$msg .= "🌿 "  if ($plant =~ /Graeser/);
$msg .= "🌾 "  if ($plant =~ /Roggen/);
$msg .= "🌰 "  if ($plant =~ /Hasel/);
$msg .= "$plant: leichte Belastung 🟡\n" if ($pol =~ /yellow/);
$msg .= "$plant: mittlere Belastung 🟠\n" if ($pol =~ /orange/);
$msg .= "$plant: starke Belastung 🔴\n" if ($pol =~ /red/);
}
}
fhem("set Jarvis msg @Vxxx $msg") if ($msg);
}

########## Ende Pollenflug ##########


#################################################
########## Proplanta LogProxy-Funktion ##########
#################################################

sub logProxy_proplanta2Plot($$$$;$$) {
my ($device, $fcValue, $from, $to, $fcHour, $expMode) = @_;
    my $regex;
    my @rl;
   
return undef if(!$device);
   
    if($fcValue =~ s/_$//) {
        $regex = "^fc[\\d]+_".$fcValue."[\\d]{2}\$";
    }
    else {
        $regex = "^fc[\\d]+_".$fcValue."\$";
    }
   
    $fcHour = 12 if(!defined $fcHour);
    $expMode = "point" if(!defined $expMode);

if( defined($defs{$device}) ) {
if( $defs{$device}{TYPE} eq "PROPLANTA" ) {
            @rl = sort{
                my ($an) = ($a =~ m/fc(\d+)_.*/);
                my ($bn) = ($b =~ m/fc(\d+)_.*/);
                $an <=> $bn or $a cmp $b;
                }( grep /${regex}/,keys %{$defs{$device}{READINGS}} );
return undef if( !@rl );
} else {
Log3 undef, 2, "logProxy_proplanta2Plot: $device is not a PROPLANTA device";
return undef;
}
}

my $fromsec = SVG_time_to_sec($from);
my $tosec   = SVG_time_to_sec($to);
my $sec = $fromsec;
my ($h,$fcDay,$mday,$mon,$year);
my $timestamp;
   
my $reading;
my $value;
my $prev_value;
my $min = 999999;
my $max = -999999;
my $ret = "";

# while not end of plot range reached
while(($sec < $tosec) && @rl) {
#remember previous value for start of plot range
$prev_value = $value;

$reading = shift @rl;
        ($fcDay) = $reading =~ m/^fc(\d+).*/;
    $h = ($reading =~ m/.*(\d\d)$/)?$1:$fcHour;
$value = ReadingsVal($device,$reading,undef);
       
($mday,$mon,$year) = split('\.',ReadingsVal($device,"fc".$fcDay."_date",undef));
$timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $year, $mon, $mday, $h, 0, 0);
$sec = SVG_time_to_sec($timestamp);
       
# skip all values before start of plot range
next if( SVG_time_to_sec($timestamp) < $fromsec );

# add first value at start of plot range
if( !$ret && $prev_value ) {
  $min = $prev_value if( (looks_like_number($prev_value) && ($prev_value < $min)) || ($prev_value lt $min) );
  $max = $prev_value if( (looks_like_number($prev_value) && ($prev_value > $max)) || ($prev_value gt $max) );
  $ret .= "$from $prev_value\n";
}

# done if after end of plot range
last if($sec > $tosec);

$min = $value if( (looks_like_number($value) && ($value < $min )) || ($value lt $min) );
$max = $value if( (looks_like_number($value) && ($value > $max )) || ($value gt $max) );

# add actual controll point
$ret .= "$timestamp $value\n";

# Log 1, "$timestamp $value -0- $reading";
}
    if(($sec < $tosec) && !@rl && ($expMode eq "day")) {
    $timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $year, $mon, $mday, 23, 59, 59);
    if(SVG_time_to_sec($timestamp) < $tosec) {
        $ret .= "$timestamp $value\n";
        }
        else {
$ret .= "$to $value\n";
        }
    }
    elsif(($sec > $tosec) && ($expMode eq "day")) {
        $value = $prev_value + ($value - $prev_value)*(86400 + ($tosec - $sec))/86400;
        $ret .= "$to $value\n";
    }
return ($ret,$min,$max,$prev_value);
}

########## Ende Proplanta ##########


#########################################################
########## Kalenderfunktion für Abfallkalender ##########
#########################################################

sub datumHeuteMorgen($)
{
my $compareDate = shift;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900; $mon += 1;
my $heute = sprintf('%02d.%02d.%04d', $mday, $mon, $year);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);
$year += 1900; $mon += 1;
my $morgen = sprintf('%02d.%02d.%04d', $mday, $mon, $year);
return "heute" if $compareDate eq $heute;
return "morgen" if $compareDate eq $morgen;
return $compareDate;
}

########## Ende Kalenderfunktion ##########

1;


Da ist zu sehen, das die Sub drin ist.
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Otto123 am 27 März 2021, 17:57:14
Zitat von: ErzGabriel am 27 März 2021, 16:23:07
Fehlermeldung kommt nur, wenn ich die geschweiften Klammern weglasse.
Willst Du mich veräppeln?
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: Otto123 am 27 März 2021, 18:08:17
Ich habe Deine Routine in meine 99_myUtils.pm übernommen.
Ich habe deine Pollen_Sauerland übernommen.
Ich habe Deine Nachricht in einen Logeintrag umgewandelt:
Log 1, "set Jarvis msg @Vxxx $msg";
Ergebnis wenn ich in der FHEM Kommandozeile diesen Befehl einwerfe:
{pollen_sauerland()}
2021.03.27 18:04:48 1: set Jarvis msg  🌳 Erle: leichte Belastung 🟡
Funktioniert, mehr kann ich nicht tun.

Gruß Otto
Titel: Antw:Subroutine in DOIF mit mehreren Bedingungen
Beitrag von: ErzGabriel am 27 März 2021, 18:42:28
Okay, danke.
Leite ich es ins Log um, kommt auch nichts bei rum. Ich weiß es nicht, muss ich mir ne andere Lösung einfallen lassen.