[gelöst] Reading durch FHEM(); durchführen?

Begonnen von matzke, 19 Januar 2023, 18:00:34

Vorheriges Thema - Nächstes Thema

matzke

Hallo,

wie kann ich aus Perl heraus einen FHEM Befehl absetzen, der erst 10 Sekunden später ausgeführt wird und dann erst auch ein Reading einliest? Ich wolle es so machen:

fhem("sleep 10 ; setreading $Device z_2_1_VerbrauchIn_ws {(ReadingsNum($Device,'energy0',0);} - $oldEnergy)

Problem ist dies hier:
{(ReadingsNum($Device,'energy0',0);}

Viele Grüße

Beta-User

Vielleicht hilft es schon, wenn du die schießende set-magic-Klammer an der richtigen Stelle setzt? (hinten)
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

AnBad

ja aber der Wert der Variable $oldEnergie wird noch durch den Perl-Code eingesetzt.

betateilchen

Zitat von: matzke am 19 Januar 2023, 18:00:34
Problem ist dies hier:

Nein. Problem ist, dass Du die Klammern nicht gezählt hast und die Zahl der öffnenden Klammern nicht mit der Zahl der schließenden Klammern übereinstimmt.

fhem("sleep 10 ; setreading $Device z_2_1_VerbrauchIn_ws ". ReadingsNum($Device,'energy0',0) - $oldEnergy)

Ich würde die Aufgabe übrigens einfach mit einem at lösen, das in 10 Sekunden ausgeführt wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

AnBad

OK, ja, ich hatte die Zeile gekürzt und dabei ist der Fehler entstanden. Ist aber nicht das eigentliche Problem. Ich werde meine Problem, habe ich mir gerade überlegt, anders lösen. Anstatt über fhem(,,") werde ich ein at schreiben, das mir dann 10 sec später (nach Update der Daten) die Sub nochmals aufruft und die Berechnungen durchführt.

betateilchen

Zitat von: matzke.

Zitat von: AnBad.

Gespaltene Persönlichkeit?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

matzke

Ja,
anfangs, wie ich überhaupt keine Ahnung von FHEM und Perl und im allgemeinen von Coding hatte, da hat man mich hier im Forum übel behandelt, weil ich viele Fragen hatte. Da es mir zu blöd wurde, habe ich dann ein zweites Profil mir angelegt. Am Ipad bin ich wohl mit dem zweiten Profil angemeldet.... Muss ich mal ändern.