FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Jogi am 22 Dezember 2017, 15:08:46

Titel: [Gelöst] Berechnung Temperaturwert um 5 Grad addieren funktioniert nicht
Beitrag von: Jogi am 22 Dezember 2017, 15:08:46
Hallo,
ich versuche seit Stunden einen Temperaturwert mit 5 Grad zu addieren und den Wert in ein dummy zu schreiben und bekomme es nicht hin. ich habe natürlich recherchiert und das hier gefunden:
define test2 dummy
attr test2 group Addieren
attr test2 room Test
define test3 dummy
attr test3 group Addieren
attr test3 room Test

define EinTest notify EinTest {
  my $temp=Value("test1")+Value("test2");;
  fhem("set test3 $temp");;
}
attr EinTest group Addieren
attr EinTest room Test


Das ist zwar nicht die schönste Lösung, weilö man zuerst das notify aktivieren muss, aber es funktioniert.
Jetzt habe ich mehrfach probiert das auf meine Anwendung zu übertragen, aber es funktioniert nicht:
define Einschaltpunkt_WWP dummy
attr Einschaltpunkt_WWP group Heizung
attr Einschaltpunkt_WWP room 8.Heizung
#
define EIN_WWOn1 notify EIN_WWWOn1 {
  my $temp=Value("Raumtemperatur:Temperatur4")+Value("5");;
  fhem("set Einschaltpunkt_WWP $temp");;
}\


Das habe ich auch probiert:

define EIN_WWOn1 notify EIN_WWWOn1 {
  my $temp=Value("Raumtemperatur:Temperatur4")+ 5;
  fhem("set Einschaltpunkt_WWP $temp");;
}

auch das und noch 30 andere Varianten haben nicht funktioniert:
define EIN_WWOn1 notify EIN_WWWOn1 {
  my $temp=Value("[Raumtemperatur:Temperatur4]")+ 5;
  fhem("set Einschaltpunkt_WWP $temp");;
}


Egal was von den oben aufgeführten Befehlen ich in den DEF-Editor eingebe, er nimmt alles ohne Murren, aber es passiert nichts. Zumindest sehe ich nicht, dass es etwas passiert und der Dummy verändert sich nicht.

Ich weiß wirklich nicht, wo ich noch suchen soll und wäre für einen Tipp echt dankbar.

Jogi
Titel: Antw:Berechnung Temperaturwert um 5 Grad addieren funktioniert nicht
Beitrag von: betateilchen am 22 Dezember 2017, 15:20:18
Value() ist falsch. Du willst doch ein reading verarbeiten und kein internal.



define <notifyName> notify <device/event/regexp> { fhem("set <zielDummyName> ".(ReadingsNum(<device>,<reading>,0)+5) }



(Die Teile in spitzen Klammern musst Du auf Deine Gerätenamen anpassen)

Und als nächstes solltest Du Dir ein paar FHEM Grundlagen anlesen.
Titel: Antw:Berechnung Temperaturwert um 5 Grad addieren funktioniert nicht
Beitrag von: Jogi am 22 Dezember 2017, 16:12:37
Zitat von: betateilchen am 22 Dezember 2017, 15:20:18
Value() ist falsch. Du willst doch ein reading verarbeiten und kein internal.



define <notifyName> notify <device/event/regexp> { fhem("set <zielDummyName> ".(ReadingsNum(<device>,<reading>,0)+5) }



(Die Teile in spitzen Klammern musst Du auf Deine Gerätenamen anpassen)

Und als nächstes solltest Du Dir ein paar FHEM Grundlagen anlesen.

Sorry, ich verstehe es nicht:

Das habe ich daraus gemacht, ist aber scheinbar auch falsch:
define EIN_WWOn1 notify Raumtemperatur $Event { fhem("set Einschaltpunkt_WWP ".(ReadingsNum(Raumtemperatur,Temperatur4,0)+5) }\


Ich lese mir auch gerne die Grundlagen durch, wenn Du mir sagst welche.
Ich habe bereits in Wiki und im Forum recherchiert, finde aber entweder nicht das, was ich suche, oder ich suche falsch.

Titel: Antw:Berechnung Temperaturwert um 5 Grad addieren funktioniert nicht
Beitrag von: Beta-User am 22 Dezember 2017, 16:23:05
Mach mal die einführende Klammer nach "fhem" weg oder noch eine schließende kuz vor Schluß rein.

Im Einsteiger-pdf findest du einige Infos zu perl und perl-debugging, und dann noch bei den perl-Specials aus der commandref.

Gruß, Beta-User
Titel: Antw:Berechnung Temperaturwert um 5 Grad addieren funktioniert nicht
Beitrag von: MadMax-FHEM am 22 Dezember 2017, 16:27:44
Zitat von: Jogi am 22 Dezember 2017, 16:12:37
Sorry, ich verstehe es nicht:

Das habe ich daraus gemacht, ist aber scheinbar auch falsch:
define EIN_WWOn1 notify Raumtemperatur $Event { fhem("set Einschaltpunkt_WWP ".(ReadingsNum(Raumtemperatur,Temperatur4,0)+5) }\


Ich lese mir auch gerne die Grundlagen durch, wenn Du mir sagst welche.
Ich habe bereits in Wiki und im Forum recherchiert, finde aber entweder nicht das, was ich suche, oder ich suche falsch.

Was soll deiner Meinung nach das '$EVENT' an der Stelle bewirken?

Commandref bzgl. notify hast du durch!?

Gruß, Joachim
Titel: Antw:Berechnung Temperaturwert um 5 Grad addieren funktioniert nicht
Beitrag von: Jogi am 23 Dezember 2017, 16:03:33
Ich danke Euch für Eure Tipps und Hinweise, aber leider funktioniert es immer noch nicht.

@Beta-User: Es funktioniert leider auch nicht, wenn ich Deine Tipps umsetze. Egal, ob mit oder ohne Klammer, es wird keine Summe berechnet.

@MadMax-FHEM: Event bewirkt an der Stelle dasselbe, wie alles andere, was ich bereits ausprobiert habe: Nichts!
Es ist einer meiner verzweifelten -ahnungslosen- Versuche gewesen, das umzusetzen, was mir empfohlen wird.

Commandref zu notify habe ich durch, wie auch schon 30 andere Beiträge zum Thema "Werte addieren und in einen Dummy schreiben". Leider hat alles was ich danach versucht habe nicht zum Ziel geführt, weswegen ich mich ja an dieses Forum wende.

Die Commandref ist super, genauso wie der Einsteigerleitfaden, jedoch sind die Erklärungen in der Commandref leider nicht immer so, dass ein Anfänger das versteht. Zudem kommt man in der Praxis auch immer wieder an Punkte, die etwas anders sind und auch andere Lösungen erfordern.

Was ich gut verstehe sind Beispiele. Die müssen aber irgendwie ähnlich sein, wie das was ich realisieren möchte.
Beispiel: Wenn ich ein Ziel in das Navi meines Auto eingeben möchte, hilft es mir wenig, wenn ich ein Beispiel dazu bekomme, wie man auf offenem Meer navigiert. Das mag ein ähnliches Thema sein, hilft mir aber nicht weiter.

Ich habe wirklich nirgendwo ein Beispiel gefunden, was annähernd das macht, was ich möchte.
Wenn jemand eins hat, dann her damit.
Ansonsten wäre ich aber auch für einen konkreten Tipp was ich falsch gemacht habe -oder besser noch- wie es richtig wäre sehr dankbar.
Denn wenn ich nur weiß, was falsch ist, heisst das noch nicht, dass ich es richtig machen kann.

Vielen Dank für Eure Mühe und frohe Weihnachten,
Jogi

Titel: Antw:Berechnung Temperaturwert um 5 Grad addieren funktioniert nicht
Beitrag von: Rolfg am 23 Dezember 2017, 16:35:38
Hallo Jogi,

hier mal ein Beispiel wie ich die Stromberechnung für einen Tag gelöst habe. Vielleicht kannst du es ja nutzen.


HM_353413_IEC_01:.*
{
my $a = ReadingsVal("HM_353413_IEC_01","KWh","") ;;
my $b = ReadingsVal("d_Strom_um_Null","state",0);; 
my $c = $a-$b;;
{fhem "set d_Strom_ueber_Tag $c"}}



Ob das so optimal ist weiß ich nicht aber es funktioniert bei mir. Du mußt halt nur schauen wie du das notify triggerst.

Gruß Rolf
Titel: Antw:Berechnung Temperaturwert um 5 Grad addieren funktioniert nicht
Beitrag von: Beta-User am 23 Dezember 2017, 16:41:32
Hat sich jetzt mit dem Beitrag von Rolfg überschnitten, aber trotzdem:

Schade, dass es so nicht funktioniert und du offensichtlich reichlich frustriert zu sein scheinst.

Allerdings: Du scheinst von Helfern zu erwarten, dass sie alles wissen, alles an geleisteter Vorarbeit prüfen usw.

Meine Empfehlung also: Einlesen, austesten.

Fang mal damit an, das folgende auf deine Devices anzupassen und einfach in die Eingabezeile einzugeben:
{ ReadingsNum("MYSENSOR_98","temperature20","0")}
Das findet sich praktisch gleich in den Beispielen zu ReadingsNum etc.

Dann addierst du mal 5 dazu.

Dann den nächsten Schritt.

usw.

Aber erwarte besser keinen fertigen Code...

Just my2ct.
Titel: Antw:Berechnung Temperaturwert um 5 Grad addieren funktioniert nicht
Beitrag von: Jogi am 24 Dezember 2017, 13:29:06
Zitat von: Beta-User am 23 Dezember 2017, 16:41:32
Hat sich jetzt mit dem Beitrag von Rolfg überschnitten, aber trotzdem:

Schade, dass es so nicht funktioniert und du offensichtlich reichlich frustriert zu sein scheinst.

Allerdings: Du scheinst von Helfern zu erwarten, dass sie alles wissen, alles an geleisteter Vorarbeit prüfen usw.

Meine Empfehlung also: Einlesen, austesten.

Fang mal damit an, das folgende auf deine Devices anzupassen und einfach in die Eingabezeile einzugeben:
{ ReadingsNum("MYSENSOR_98","temperature20","0")}
Das findet sich praktisch gleich in den Beispielen zu ReadingsNum etc.

Dann addierst du mal 5 dazu.

Dann den nächsten Schritt.

usw.

Aber erwarte besser keinen fertigen Code...

Just my2ct.

Vielen Dank!
Das ist ein Tipp, den ich umsetzen kann.
Ich bin dabei und mache die ersten Fortschritte. Vielen Dank!

Und nur um es nicht so stehen zu lassen: Ich erwarte keinen fertigen Code. Das fände ich sogar schade, denn man will sich ja selbst etwas erarbeiten. Sonst braucht man mit sowas wie FHEM auch gar nicht erst anzufangen.
Aber, wenn man stunden- und tagelang erfolglos herumexperimentiert hat, hilft ein Schubs in die richtige Richtung weiter und ist
manchmal auch notwendig und erforderlich!

Also, nochmal vielen Dank für die Geduld und frohe Weihnachten.

Das Thema ist damit für mich erledigt, denn den Rest schaffe ich selbst. Jetzt weiß ich ja wo ich anfangen muss.