Dummys zum Rechnen verwenden

Begonnen von Timmy.m, 20 Februar 2014, 21:47:25

Vorheriges Thema - Nächstes Thema

Timmy.m

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
FHEM5.9@RaspPi.3B|HMLAN|CUL868V3|1Wire|HUE|FritzBox|BotVacDconnected|3xKindleDisplay|
FHEM2FHEM|
FHEM5.9@RaspPi.2B|nanoCul868|TCM310|JeeLinkClone|RFXTRX433E|ZWave|Zigbee|xiaomi
RaspberryMatic@RaspPi.3B+ in Planung

roedert

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!

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Timmy.m

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
FHEM5.9@RaspPi.3B|HMLAN|CUL868V3|1Wire|HUE|FritzBox|BotVacDconnected|3xKindleDisplay|
FHEM2FHEM|
FHEM5.9@RaspPi.2B|nanoCul868|TCM310|JeeLinkClone|RFXTRX433E|ZWave|Zigbee|xiaomi
RaspberryMatic@RaspPi.3B+ in Planung

roedert

#4
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......

satprofi

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.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

satprofi

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.


gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

satprofi

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
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Puschel74

Klar doch  ;D

http://fhem.de/commandref.html#notify
Ist der commandref-Eintrag 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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

satprofi

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.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

marfie

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")))}