DOIF Hilfe Readings bei Differenz größer als Wert

Begonnen von Hallerschneider, 01 November 2023, 11:48:07

Vorheriges Thema - Nächstes Thema

Hallerschneider

Hallo,
ich möchte das Reading "a" (Wechselrichter 1) mit dem Reading "b" (Wechselrichter 2) vergleichen und wenn der Differenzwert größer als z.B. "200" ist dann bekomme ich eine Telegram-Nachricht.
An der Telegrammnachricht scheitert es nicht, sondern an der Formel mit der DOIF-Berechnung:

([Stromverbrauch:power_0] && [Stromverbrauch:power_2]=>"200") (set telegram message Wechselrichter ungleich!) Ich habe schon sehr viel herumprobiert und komme nicht weiter.

Ein Marder hat mir schon manchmal Kabel abgebissen an der PV-Anlage und somit will ich die Einspeiseleistung überwachen.

Vielen Dank für Eure Hilfe

betateilchen

Bitte benutze code-Tags. Danke.

"größer gleich" wird normalerweise als >= dargestellt.

Und wenn Du eine Differenz vergleichen möchtest, musst Du halt auch die Differenz irgendwo ermittlen.

Zum Beispiel so (ungetestet):
([Stromverbrauch:power_0] - [Stromverbrauch:power_2]) > 200
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rabehd

Zitat von: Hallerschneider am 01 November 2023, 11:48:07([Stromverbrauch:power_0] && [Stromverbrauch:power_2]=>"200") (set telegram message Wechselrichter ungleich!)
Wo kommt das denn her? Da bekommt man ja Augenkrebs.
Ich bin bei betateilchen...
nur die Klammer würde ich anders setzen.
([Stromverbrauch:power_0] - [Stromverbrauch:power_2] > 200 )
Auch funktionierende Lösungen kann man hinterfragen.

betateilchen

Zitat von: rabehd am 01 November 2023, 13:51:31nur die Klammer würde ich anders setzen.

Es kommt auf das Gesamtkonstrukt an. In Deinem Kontext könnte man die Klammer auch ganz weglassen.

Mir ging es mit der Klammersetzung darum, klarzumachen, worauf sich der Vergleich gegen 200 überhaupt bezieht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rabehd

Ich will mit Dir auch keine Fehlerdiskussion anfangen. Meine Vermutung ist nur, wer sowas
Zitat([Stromverbrauch:power_0] && [Stromverbrauch:power_2]=>"200")
versucht, der braucht viel Erklärung oder ein fertiges Beispiel.
Auch funktionierende Lösungen kann man hinterfragen.

Hallerschneider

Zitat von: rabehd am 01 November 2023, 15:14:13Ich will mit Dir auch keine Fehlerdiskussion anfangen. Meine Vermutung ist nur, wer sowas
versucht, der braucht viel Erklärung oder ein fertiges Beispiel.

Vielen Dank Euch beiden für Eure Hilfe und für die sanfte Umschreibung für einen der sich leider nur wenig auskennt. Zeit, Alter(51) und evtl. der falsche Beruf bringt es mit sich, dass mein FHEM nur eine Bastel-Lösung bleibt. Wenn wieder was funktioniert freu ich mich und wenn nicht, erinnere ich mich an das Forum.
Ich dachte, DOIF kann auch einen direkten Vergleich, hab auch mit = > || usw herumgemurkst. Eure Lösung rechnet hier aber nur in eine Richtung. Ich hab es nun so gelöst und es scheint zu funktionieren:
    
([Stromverbrauch:power_0] - [Stromverbrauch:power_2]>=200) DOELSEIF ([Stromverbrauch:power_2] - [Stromverbrauch:power_0]>=200) (set ...

Danke und LG aus WÜM

rabehd

#6
Da gäbe es noch eine Funktion "abs". Sie gibt den absoluten Betrag zurück.

{abs(ReadingsVal(...))}abs(x - v) >= 200 /* ungeprüft
Die Idee && als Minus zu verwenden, faziniert mich immer noch  8)
Auch funktionierende Lösungen kann man hinterfragen.

Hallerschneider

Zitat von: rabehd am 03 November 2023, 14:28:48Die Idee && als Minus zu verwenden, faziniert mich immer noch  8)


Nun, ich freue mich immer wenn jemand durch mich faziniert ist, noch mehr freue ich mich wenn jemand durch mich fasziniert ist.
Um nochmal klarzustellen, es war nie mein Gedanke && als Minus zu verwenden! Wie oben bereits erwähnt wollte ich einen Vergleich der beiden Werte und wenn bei Differenz größer als dann ...    und ein Vergleich kann ja in beide Richtungen gehen. 

LG