FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: juemuc am 02 März 2023, 10:51:13

Titel: [erledigt] Frage zur "Event-Variable"
Beitrag von: juemuc am 02 März 2023, 10:51:13
Hallo,

Über die Ereignissteuerung wird ja die Variable $EVENT und $EVPARTn mit n=0 - .. zur Verfügung gestellt. Nun habe ich das Problem, das in einem Fall nur $EVPART0 und $EVPART1 und in einem anderen Fall auch $EVPART2 und $EVPART3 gefüllt sind. Wenn diese nicht gefüllt sind, stehen sie auch nicht zur Verfügung.
Wie kann ich nun alle Infos aus der Variablen $EVENT zur Verfügung stellen, die nach $EVPART0 enthalten sind?

Bsp.: aus dem Event-Monitor: Fritzbox sip2_+1234567890: not in use oder
                                            Fritzbox sip2_+1234567890: active


Viele Grüße
Titel: Antw:Frage zur "Event-Variable"
Beitrag von: betateilchen am 02 März 2023, 12:08:05
$EVENT einfach selbst splitten, dann weißt Du, wieviele Elemente enthalten sind.


my @EVTPART = split(/ /,$EVENT);
my $anzahl = @EVTPART;


Auf die einzelnen Elemente kannst Du dann mit $EVTPART[0] bis $EVTPART[$anzahl-1] zugreifen.
Titel: Antw:Frage zur "Event-Variable"
Beitrag von: juemuc am 02 März 2023, 12:37:10
Hallo betateilchen,

auf eine ähnliche Idee war ich auch schon gekommen. Allerdings wollte ich einfach den Part "$EVTPART0" löschen. Siehe auch https://forum.fhem.de/index.php/topic,132476.0.html (https://forum.fhem.de/index.php/topic,132476.0.html)

Hast Du da einen Tipp für mich?

Viele Grüße
Jürgen
Titel: Antw:Frage zur "Event-Variable"
Beitrag von: betateilchen am 02 März 2023, 12:54:06
Mach doch bitte nicht zu jeder Deiner Fragen mehrere Threads auf, das macht überhaupt keinen Spaß, wenn man Dir helfen möchte und man immer erst kreuz und quer suchen muss, wo Du was geschrieben hast.
Titel: Antw:Frage zur "Event-Variable"
Beitrag von: betateilchen am 02 März 2023, 12:57:12
Zitat von: juemuc am 02 März 2023, 12:37:10
Allerdings wollte ich einfach den Part "$EVTPART0" löschen.
...
Hast Du da einen Tipp für mich?

Klar. Nimm das bereits erwähnte array, entferne das erste Element und baue aus dem restliche array wieder einen String zusammen.


my @evt = split(/ /,$EVENT);
shift @evt;
return join(" ",@evt);
Titel: Antw:Frage zur "Event-Variable"
Beitrag von: juemuc am 02 März 2023, 13:17:39
Zitat von: betateilchen am 02 März 2023, 12:54:06
Mach doch bitte nicht zu jeder Deiner Fragen mehrere Threads auf, das macht überhaupt keinen Spaß, wenn man Dir helfen möchte und man immer erst kreuz und quer suchen muss, wo Du was geschrieben hast.

Kann ich verstehen. Waren für mich am Anfang aber erst einmal 2 unterschiedliche Themen. Hier als Frage zur Variablen "EVENT" und im zweiten Thread Fragen zu Perl.
Das Ersetzen-Thema  benötige ich aber auch noch in abgewandelter Form. Kann ich in Perl nicht in einem String einen Wert suchen und ersetzen, der in einer Variablen steht?
Das Thema mit der Variable "EVENT" ist hier eigentlich mit Deinen Infos erledigt. Danke hierfür.


Viele Grüße
Jürgen.
Titel: Antw:Frage zur "Event-Variable"
Beitrag von: betateilchen am 02 März 2023, 13:23:25
Zitat von: juemuc am 02 März 2023, 13:17:39
Kann ich in Perl nicht in einem String einen Wert suchen und ersetzen, der in einer Variablen steht?

Doch, das geht natürlich.
Aber ausgerechnet die Variablen $EVENT und $EVTPARTx sind keine normalen perl Variablen, sondern eine FHEM Spezialität.
Titel: Antw:[erledigt] Frage zur "Event-Variable"
Beitrag von: juemuc am 02 März 2023, 14:44:37
Hallo Betateilchen,

auch mit diesen "Variablen" hat es funktioniert, wenn man vorher die "Perl-Besonderheiten" beachtet. In meinem Testfall war dummerweise ein "+" enthalten.

Viele Grüße
Jürgen