Hallo Zusammen,
ich stehe schon seit Stunden auf dem Schlauch, hoffe ihr könnt mir helfen.
Folgendes Problem:
Ich habe eine Funktion geschrieben in der Ich Vorlauf und Heizkurve meiner Holzheizung vergleiche und mich benachrichtigen lassen möchte, wenn ich Holz nachlegen muss.
An sich funktioniert es auch, aber ich möchte die Nachricht natürlich nur 1x verschicken und nicht alle paar sekunden wenn die Daten abgefragt werden.
Also habe ich ein Dummy device "Nachricht" angelegt, in dem ich den Status speichere, ob die Nachricht schon verschickt wurde oder nicht.
Möchte ich nun den Status des Geräts abfragen, bekomme ich als Ergebnis im EventMonitor: 1 : versendet2017-02-04 11:25:13, ich möchte natürlich nur "versendet" haben. Was mache ich falsch?
hier meine Funktion:
sub einheizen ($$)
{
my ($Vorlauf) = @_;
my ($Vorlauf,$Heizkurve) = @_;
if ($Heizkurve - $Vorlauf > 4) {
fhem("set Einheizen ja");
my ($msg) = ReadingsVal('Nachricht', 'state', "");
Log 1, $msg;
if (ReadingsVal('Nachricht', 'state', "") eq "keine"){
benachrichtigung_einheizen();
}
}
else{
Log 1, "Heizung passt";
fhem("set Einheizen nein");
fhem("set Nachricht keine");
}
}
sub benachrichtigung_einheizen ()
{
#system("curl -s -F 'token=nvnr3nvnornv4ono56rnvoe' -F 'user=df032jjfdj0jf02jff2ßkjfß' -F 'message=Es ist Zeit einzuheizen!' https://api.pushover.net/1/messages.json");
fhem("set Nachricht versendet");
}