Berechnung im Ausführungsteil notify - HILFE - ich kapier es nicht

Begonnen von Stonemuc, 12 September 2022, 17:38:54

Vorheriges Thema - Nächstes Thema

betateilchen


$Aut=round($Aut,2);fhem("setreading Verbrauchsmeter Autarkie $Aut")
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Stonemuc

Auch wenn ich noch was davor habe? Weil dann gibt er mir nen Klammerfehler aus....

defmod Autarkie at +*00:30:00 {my$Aut=((ReadingsNum("Wechselrichter","Daily.Energy",0) - ReadingsNum("Stromzaehler_Einspeisung","Tageseinspeisung",0))/(ReadingsNum("Stromzaehler_Verbrauch","Tagesverbrauch",0))*100);; fhem("setreading Verbrauchsmeter Autarkie $Aut")}
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

MadMax-FHEM

#17
Wie wäre es denn, wenn du den Fehler psoten würdest?

Und ich denke hier fehlt ein Leerzeichen?

my$Aut=... vs. my $Aut=...

Und: warum so elendsviele Klammern?

Und: wie gibst du das ein? Jedes mal KOMPLETT SO in  FHEMWeb-cmd ODER per Klick auf DEF? ODER Raw-Def? -> wegen der Strichpunkte... z.B. hier https://forum.fhem.de/index.php?topic=98634.0

Ja, einfach NACHDEM du $Aut korrekt berechnet hast einen "Einschub" (von betateilchen) mit dem Runden und DANACH dann das set/setreading das du schon hast...

Pseudocode (weil mir deine Klammern zu viel sind):

my $Aut=Berechnung;; $Aut=round($Aut,2);; fhem("set...")


Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

betateilchen

Naja, mit der Klammersetzung scheinst Du ja grundsätzlich auf Kriegsfuß zu stehen.

Grundsätzlich gilt bei Klammern nicht "viel hilft viel". Klammern sollte man genau da setzen, wo sie notwendig sind, und nicht "auf Verdacht".
Klammern können in Deinem Konstrukt aus zwei Gründen notwendig sein: Entweder, weil sie zu einer aufgerufenen perl Funktion z.B. ReadingsNum() gehören ODER weil sie mathematisch notwendig sind. Eigentlich müsste das Ganze so aussehen, wenn ich Dein Vorhaben richtig interpretiere:


my $Aut=( ReadingsNum("Wechselrichter","Daily.Energy",0) - ReadingsNum("Stromzaehler_Einspeisung","Tageseinspeisung",0) ) / ReadingsNum("Stromzaehler_Verbrauch","Tagesverbrauch",0) * 100;


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

Stonemuc

Zitat von: MadMax-FHEM am 13 September 2022, 13:49:39
Wie wäre es denn, wenn du den Fehler psoten würdest?

Und ich denke hier fehlt ein Leerzeichen?

my$Aut=... vs. my $Aut=...

Und: warum so elendsviele Klammern?

Und: wie gibst du das ein? Jedes mal KOMPLETT SO in  FHEMWeb-cmd ODER per Klick auf DEF? ODER Raw-Def? -> wegen der Strichpunkte... z.B. hier https://forum.fhem.de/index.php?topic=98634.0

Ja, einfach NACHDEM du $Aut korrekt berechnet hast einen "Einschub" (von betateilchen) mit dem Runden und DANACH dann das set/setreading das du schon hast...

Pseudocode (weil mir deine Klammern zu viel sind):

my $Aut=Berechnung;; $Aut=round($Aut,2);; fhem("set...")


Gruß, Joachim

Die Berechnung funktioniert mit meinen Klammern und dem my$Aut ohne Leerzeichen korrekt. Es kommt ja der richtige Wert raus - auch händisch nachgerechnet. Das Ändern mache ich immer über die RAW-def.
Dank deinem "Pseudocode" konnte ich es jetzt nachvollziehen. Ich muss also immer nach jedem "Abschnitt" ein doppel ;; machen...daran hat es bei mir gelegen.

FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

betateilchen

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

Stonemuc

Ne..so soll es ja nicht sein, ich füge das Leerzeichen ein und versuch es mal mit deinem Vorschlag mit weniger Klammern...solte mathematisch ja auch klappen :)
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe