[Gelöst] If Bedingung in einer sub

Begonnen von dk3572, 23 Dezember 2020, 13:52:02

Vorheriges Thema - Nächstes Thema

Otto123

#15
Ach Mann, ich bin doch auch nicht der Profi mit Übergaben in einer Perlsub. Ich habe das mal vor langer Zeit so gemacht wie beschrieben, ja ich habe in der Perl Ecke mitgelesen - aber wie es jetzt richtig ist oder einfach nur geht ... ;)

Ich lese mich jetzt mal hier durch https://perldoc.perl.org/perlsub bis ich da fertig bin mache ich keine neuen Vorschläge zur Übernahme von übergebenen Werten {Sub($NAME)} 8)

@dk3572
Zumindest geht das Eine nicht ohne das Andere - Du kannst nicht einen Aufruf machen {Sub($NAME)} ohne in der Sub dann auch diesen Übergabewert irgendwie "aufzunehmen".
Daher der Fehler wie in #9 ;)


Das letzte notify ist Quark - so war mein Vorschlag - den hast Du in meiner nicht ausformulierten Aussage offenbar falsch verstanden:
BM_.*:motion {TTSSayQueue ($NAME)}

@Beta-User Wozu muss man wenn man die 99_myUtils editiert FHEM neu starten?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

dk3572

ok, schwere Geburt, aber jetzt funktioniert es wie es soll.

(BM_Wohnzimmer:motion.*|BM_Kueche_Motion:motion.*) {TTSSayQueue ($NAME)}

Danke an alle und schöne Feiertage.

VG Dieter

Otto123

Hallo Dieter,

Ich bleibe mal noch hartnäckig wegen der Klammer um das Suchmuster  8) und verlinke mal auf eine Diskussion.
Warum lässt Du die nicht weg?
(BM_Wohnzimmer:motion.*|BM_Kueche_Motion:motion.*)
funktioniert das so nicht?
BM_Wohnzimmer:motion.*|BM_Kueche_Motion:motion.*
Ist der Event nicht wirklich exakt motion? Wozu dann das "alles und Rest" hintendran .* ?
Funktioniert das nicht?
BM_Wohnzimmer:motion|BM_Kueche_Motion:motion

Noch zu meinem Link von oben, siehst Du den Unterschied wenn Du mal die beiden Ausdrücke getrennt in die Kommandozeile wirfst ?:
{notifyRegexpCheck('(BM_Wohnzimmer:motion.*|BM_Kueche_Motion:motion.*)')}
{notifyRegexpCheck('BM_Wohnzimmer:motion.*|BM_Kueche_Motion:motion.*')}

Auf alle Fälle Schöne Weihnachten!🎄

Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

dk3572

alles klar, habe es so abgeändert, funktioniert auch.

BM_Wohnzimmer:motion|BM_Kueche_Motion:motion {TTSSayQueue ($NAME)}


Danke nochmal.

Beta-User

Zitat von: Otto123 link=topic=117006.msg1113869#msg1113869
@Beta-User Wozu muss man wenn man die 99_myUtils editiert FHEM neu starten?
Das betrifft NUR den Fall, dass man was an Funktionen ändert, die mit prototype arbeiten und auch nur dann, wenn sich der prototype ändert; (jedenfalls hatte ich das mal irgendwo so aufgeschnappt).

Sonst funktioniert das Editieren von myUtils via FHEMWEB stressfrei, keine Sorge ;) .

HIER war es aber vermutlich der Grund, warum es erst nicht funktioniert hat beim Wechseln von () nach ($), was mich in dem Bauchgefühl bestätigt, dass PBP Recht damit hat, dass man im Zweifel lieber auf prototype verzichten sollte.

Und wenn meine Zwischenbemerkung zum Thema shift war nicht böse gemeint, man kann auch die @_-Variante nutzen (war nur, weil ich grade sowieso dabei war wg. dieser prototype-Geschichte). In "meinen" Modulen flog das aber fast überall raus zugunsten der shift-Schreibweise; die erlaubt es m.E. eleganter, gleich Ersatzwerte oder qualifizierte Rückgaben/Fehlermeldungen reinzubauen. Dann bekommt man statt "prototype missmatch" eben "we need a target device as argument" oder "you have to specify a target value" zurück oder kann was ins Log schreiben etc....
Bin sicher, du hast das mit dem Perl-"defined-or" ("//") binnen 15 Minuten intus :) .
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