FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Timmy.m am 20 Februar 2014, 21:47:25

Titel: Dummys zum Rechnen verwenden
Beitrag von: Timmy.m am 20 Februar 2014, 21:47:25
Guten Abend.

Ich würde gerne zwei Werte aus Dummys subtrahieren in ein dritten Dummy ablegen... nur wie?

Ich habe schon soetwas versucht...


define dum1 dummy
define dum2 dummy
define dum3 dummy

set dum1 30
set dum2 15

Set Dum3 int($Dum1 - $Dum2)


Dabei sollte eigentlich Dum3 mit 15 gefüllt werden.

Tja, irgendwie hab die das Programmieren noch nicht drauf...

Grüße Tim
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: roedert am 20 Februar 2014, 22:53:50
fhem("set dum3 " . int(Value("dum1") - Value("dum2"))")

Dein Beispiel kann auch schon nicht funktionieren weil du die Groß-/Kleinschreibung beachten musst. Dum3 und dum3 sind nicht identisch!
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: Puschel74 am 21 Februar 2014, 05:37:56
Hallo,

ZitatIch habe schon soetwas versucht...
Wo hast du das versucht?

set-Anweisungen gehören nicht in die Konfig sondern werden über die Befehlszeile bzw. FHEMWEB - Detailansicht zum Device eingegeben.
Oder auch über einen Code der die Berechnung übernimmt und dann in das Device per "set <device> $wert" überträgt.

Grüße
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: Timmy.m am 22 Februar 2014, 13:19:08
Vielen Dank für die Antworten. Ich arbeite brav über die FHEM Eingabezeile.

Ich komme leider immer noch nicht weiter... der Vorschlag von roedert funktioniert leider nicht. Mir scheint so, als wäre das ein Klammerfehler... habe ich aber auch nicht gelöst bekommen.


Nun versuche ich es mit einem Funktionsaufruf 99_myUtils.pm.

99_myUtils.pm wie folgt ergänst, abgespeichert und über reload 99_myUtils.pm erneut geladen.
sub
TagesVerbrauch($$){
#Zählerstand-Differenz erreichen
#Aufruf: {TagesVerbrauch("VerbrauchVortag","WertAktuell")}#

########### Variablen aus Funktionsaufruf bilden ###########
my $ZaehlerVortag = $_[0];
my $ZaehlerAktuell = $_[1];
my $Wert = $ZaehlerAktuell-$ZaehlerVortag;
return $Wert;
}


Nun versuche ich wieder mit den gefüllten Dummys meine Werte zu übergeben und dann ausrechnen zu lassen.

Ich habe mal folgendes über die Kommandozeile eingefügt

set dum3 {TagesVerbrauch(Value("dum2"),Value("dum1"))}

oder auch ohne Variablen:

set dum3 {TagesVerbrauch("15","30")}

aber irgendwie schreibt er mit immer nur alles was hinter "set dum3" steht als Wert in dum3.

Das verstehe ich irgendwie nicht.

Grüße Tim
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: roedert am 22 Februar 2014, 13:22:24
Zitat von: roedert am 20 Februar 2014, 22:53:50
fhem("set dum3 " . int(Value("dum1") - Value("dum2"))")

Sorry.. tatsächlich ein Anführungszeichen am Ende zu viel und die Klammern vergessen ... die geschweiften, die alles als Perl-Code kennzeichnen:

{fhem("set dum3 " . (Value("dum1")-Value("dum2")))}

Lies dir nochmal das Einsteiger-PDF durch um zu verstehen was FHEM-Befehle und was perl-Kommandos sind und wie diese Kenntlich gemacht werden......
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: satprofi am 23 Februar 2014, 18:04:53
Hallo.
Möcht mich hier anhängen.
Wie bekomme ich dauerhaft das Ergebnis angezeigt? Habe den Code in der Kommandozeile eingegeben, und Ergebnis wird ausgeworfen. Aber eben nur 1x und nicht aktuell.
Wäre für Hilfe sehr dankbar.
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: Puschel74 am 23 Februar 2014, 18:08:06
Hallo,

ZitatHabe den Code in der Kommandozeile eingegeben, und Ergebnis wird ausgeworfen.
Welchen Code?
Wäre es möglich uns das mitzuteilen?
Du sitzt vor deiner FHEM-Konfiguration und siehst den Code.
Wir müssen hier raten was du gemacht hast.

ZitatWie bekomme ich dauerhaft das Ergebnis angezeigt? ... Aber eben nur 1x und nicht aktuell.
Indem du ein entsprechendes notify erstellst das dir bei Änderung eines der beiden Ausgangswerte den neuen Wert berechnet.

Grüße
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: satprofi am 24 Februar 2014, 17:19:11
Zitat von: Puschel74 am 23 Februar 2014, 18:08:06
Hallo,
Welchen Code?
Wäre es möglich uns das mitzuteilen?
Du sitzt vor deiner FHEM-Konfiguration und siehst den Code.

Grüße


define ueberschuss dummy
{fhem("set Ueberschuss " . (Value("Pac")-Value("Verbrauch")))}


in der Kommandozeile eingegeben
jetzt habe ich einen Dummy Ueberschuss, der aber den Wert vom Zeitpunkt der Eingabe "set Ueberschuss" .... anzeigt.


Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: Puschel74 am 24 Februar 2014, 17:22:47
Hallo,

Zitatjetzt habe ich einen Dummy Ueberschuss, der aber den Wert vom Zeitpunkt der Eingabe "set Ueberschuss" .... anzeigt.
Ja, das stimmt.
Bei diesem Code würde auch niemand was anderes erwarten.

Ich zitiere mich mal selbst:
ZitatIndem du ein entsprechendes notify erstellst das dir bei Änderung eines der beiden Ausgangswerte den neuen Wert berechnet.

Das heisst du musst dir ein notify erstellen das auf Änderungen von Pac und Verbrauch reagiert und dir den Wert des Dummy neu berechnet.

Grüße
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: satprofi am 24 Februar 2014, 17:31:46
Danke vorerst für Antwort.
Könntest Du mir bitte eventuell einen Hinweis geben wo ich danach suchen könnte oder Beispiele dazu finde?
thx
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: Puschel74 am 24 Februar 2014, 17:36:08
Klar doch  ;D

http://fhem.de/commandref.html#notify (http://fhem.de/commandref.html#notify)
Ist der commandref-Eintrag zu notify

http://www.fhemwiki.de/wiki/Funktionsbeschreibung_zu_notify (http://www.fhemwiki.de/wiki/Funktionsbeschreibung_zu_notify)
Ist der Wiki-Eintrag zu notify

Und im Forum zumindest im Bereich Automatisierung (grad eins drunter) findest du sicher auch jede Menge Beiträge die notify verwenden.
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: satprofi am 26 Februar 2014, 21:29:39
Hallo.
habe jetzt eine Lösung gefunden


### Ueberschuss ###
define Ueberschuss Dummy
attr Ueberschuss room SolarEdge
define Abfrage at +*00:02:00 {fhem("set Ueberschuss " . (Value("Pac")-Value("Verbrauch")))}


vielleicht ginge es auch einfacher, aber zumindest erfüllt es jetzt meine vorstellung.
Titel: Antw:Dummys zum Rechnen verwenden
Beitrag von: marfie am 14 Dezember 2014, 21:46:42
Hab auch mal rumprobiert.
Versuch es mal hiermit wenn de noch ein notify nehmen möchtest.

define <name> notify dum1 {fhem("set dum3 " . (Value("dum1") - Value("dum2")))}