Hallo,
das Notify soll ein Sub aufrufen und einige Attribute übergeben.
HM_Strommesser:.* {aktErtrag(ReadingsNum("HM_Strommesser","1.POWER",""), ReadingsNum("d_Strom_Pufferwerte","Maximale_Leistung_W",""), ReadingsNum("HM_Strommesser","Zaehlerstand_Solar_kWh",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Tagesbeginn_00Uhr",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Monatsbeginn_00Uhr",""))}
Ich habe es statt mit dem Trigger "HM_Strommesser:.*" auch schon nur mit "HM_Strommesser" versucht, ändert aber nichts.
Der HM_Strommesser ist ein HM-ES-TX-WM mit Infrarot.
Ich denke es liegt am Notify und nicht am Sub selbst.
2021.05.16 19:15:23 3: n_akt_Ertrag_Strom return value: Unknown command {aktErtrag(ReadingsNum("HM_Strommesser","1.POWER",""),, try help.
Der Logeintrag hilft mir gerade auch nicht weiter, "Unknown command" sagt mir in dem Zusammenhang nichts, es wird ja nur das Sub "aktErtrag" aufgerufen.
Das Sub berechnet nur ein paar Tages- und Monatswerte und weist sie zum Teil Systemvariablen der CCU zu.
sub aktErtrag
{
# alle Variablen u. Arrays der Teilsubs
my @Wert = @_;
my $Ertrag_heute;
my $Ertrag_Monat;
### Beginn Teil akt. Leistung und max. Leistung
if ($Wert[0] < 80)
{
fhem("setreading d_Strom Solar_aktuelle_Leistung_W 0");
fhem("set d_ccu var Solar_akt_power 0");
}
else
{
fhem("setreading d_Strom Solar_aktuelle_Leistung_W $Wert[0]");
fhem("set d_ccu var Solar_akt_power $Wert[0]");
}
if ($Wert[0] > $Wert[1])
{
fhem("setreading d_Strom Maximale_Leistung_W $Wert[0]");
fhem("set d_ccu var Solar_max_power $Wert[0]");
}
### Beginn Teil Ertrag heute
$Ertrag_heute = $Wert[2] - $Wert[3];
{
fhem ("setreading d_Strom Solar_Ertrag_heute_kWh $Ertrag_heute");
fhem ("set d_ccu var Solar_Ertrag_heute $Ertrag_heute");
}
### Beginn Teil Ertrag akt. Monat
$Ertrag_Monat = $Wert[2] - $Wert[4];
{
fhem ("setreading d_Strom Solar_Ertrag_diesen_Monat_kWh $Ertrag_Monat");
fhem ("set d_ccu var Solar_Ertrag_dieser_Monat $Ertrag_Monat");
}
}
# Ende Script aktErtrag
zur Vollständigkeit noch das List vom HM_Strommesser
Internals:
DEF REQ0109846
FUUID 5f0c44b7-f33f-0821-ff48-fae97965f21ed3f8
IODev d_ccu
NAME HM_Strommesser
NR 260
STATE Leistung: 65.0 W
TYPE HMCCUDEV
ccuaddr REQ0109846
ccudevstate active
ccuif BidCos-RF
ccuname HM-ES-TX-WM REQ0109846
ccutype HM-ES-TX-WM
channels 2
firmware 1.0
statevals devstate
READINGS:
2021-02-11 10:47:46 0.LOWBAT false
2021-05-16 19:45:00 1.ENERGY_COUNTER 27733.9
2021-05-16 17:01:22 1.GAS_ENERGY_COUNTER 0.0
2021-05-16 17:01:22 1.GAS_POWER 0.0
2021-05-16 19:45:00 1.POWER 65.0
2021-05-16 17:00:55 IODev d_ccu
2020-07-13 13:55:12 R-LOCAL_RESET_DISABLE 0
2021-05-16 19:45:00 Zaehlerstand_Solar_kWh 27.7
2021-05-16 17:01:22 activity alive
2021-05-16 17:01:22 battery ok
2020-10-01 21:42:11 hmstate unreachable
hmccu:
devspec REQ0109846
dp:
0.AES_KEY:
OVAL 1
VAL 1
0.CONFIG_PENDING:
OVAL false
VAL false
0.DEVICE_IN_BOOTLOADER:
OVAL false
VAL false
0.LOWBAT:
OSVAL ok
OVAL false
SVAL ok
VAL false
0.RSSI_DEVICE:
OVAL 1
VAL 1
0.RSSI_PEER:
OVAL 197
VAL 197
0.STICKY_UNREACH:
OVAL false
VAL false
0.UNREACH:
OSVAL alive
OVAL false
SVAL alive
VAL false
0.UPDATE_PENDING:
OVAL false
VAL false
1.BOOT:
OVAL 0
VAL 0
1.ENERGY_COUNTER:
OSVAL 27731.2
OVAL 27731.200000
SVAL 27733.9
VAL 27733.900000
1.GAS_ENERGY_COUNTER:
OSVAL 0.0
OVAL 0.000000
SVAL 0.0
VAL 0.000000
1.GAS_POWER:
OSVAL 0.0
OVAL 0.000000
SVAL 0.0
VAL 0.000000
1.POWER:
OSVAL 72.0
OVAL 72.000000
SVAL 65.0
VAL 65.000000
Attributes:
IODev d_ccu
alias HM_Strommesser
ccureadingfilter (ENERGY_COUNTER|POWER)
ccureadings 1
event-min-interval 600
event-on-change-reading .*
event-on-update-reading 1.POWER
room HomeMatic,Strom
stateFormat Leistung: 1.POWER W
stripnumber 1
userReadings Zaehlerstand_Solar_kWh none { (int(ReadingsVal("HM_Strommesser","1.ENERGY_COUNTER",0)/100))/10; }
Ich denke ich sehe grad den Wald vor Bäumen nicht. :-[
(nur zur Info, Statistics habe ich bewusst nicht verwendet)
Hi,
ZitatDer Logeintrag hilft mir gerade auch nicht weiter, "Unknown command" sagt mir in dem Zusammenhang nichts, es wird ja nur das Sub "aktErtrag" aufgerufen.
Nach dem ersten Blick würde ich sagen, er findet Deine sub nicht! Wo steht die denn?
Funktioniert denn der Aufruf aus der FHEM Kommandozeile?
{aktErtrag(ReadingsNum("HM_Strommesser","1.POWER",""), ReadingsNum("d_Strom_Pufferwerte","Maximale_Leistung_W",""), ReadingsNum("HM_Strommesser","Zaehlerstand_Solar_kWh",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Tagesbeginn_00Uhr",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Monatsbeginn_00Uhr",""))}
Zu weiteren Fehlersuche: https://wiki.fhem.de/wiki/Notify
Gruß Otto
Setze mal die erste geschweifte Klammer in die gleiche Zeile wie den Namen der Funktion
sub aktErtrag {
merci für die "Spätschicht" :D
@Otto123 Ausführungsteil
{aktErtrag(ReadingsNum("HM_Strommesser","1.POWER",""), ReadingsNum("d_Strom_Pufferwerte","Maximale_Leistung_W",""), ReadingsNum("HM_Strommesser","Zaehlerstand_Solar_kWh",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Tagesbeginn_00Uhr",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Monatsbeginn_00Uhr",""))}
funktioniert. Readings und ihre Zeiten ändern sich.
@betateilchen Werde ich morgen probieren, jetzt im Dunklen passiert von Seiten des Strommessers nix.
Ich habe das Script zusammen mit anderen, welche funktionieren, in einer Datei namens "99_myownUtils.pm" untergebracht.
Diese Teile haben andere Trigger, meist doif.
Ich habe das mal so angefangen, um mein persönliches Zeug von kopierten Sachen in der "99_myUtils.pm" zu trennen, um dort nix zu zerschießen.
Ich hänge den vollständigen Quelltext noch mal an, da ich doch mit einigen Sachen hantiere, die ich nicht vollständig durchsteige.
Ich probiere hier immer wieder Sachen aus, welche ich mir aus einer alten Perl-Schwarte angeeignet habe.
Die anderen Subs in der Datei funktionieren alle.
package main;
use strict;
use warnings;
use POSIX;
sub myownUtils_Initialize($$$$$$$$$)
{
my ($hash) = @_;
}
#----------------------------------------
# 1. sub Maehzeiten
# 2. sub spieldauer
# 3. sub Strom_gestern (mit Vorschub der Vortageswerte und Subaufruf Wochentage)
# 4. sub aktErtrag
# 5. sub Ertrag_letzter_Monat
# 6. sub Wochentage
#----------------------------------------
#----------------------------------------
# 1. Beginn Script Maehzeiten
# Trigger/ hier fehlen noch die Namen der jeweils ausloesenden doifs/notifys
sub Maehzeiten
{
# definiert das Array "@akkMZ" und weist die Werte des notify dem Array zu
my @akkMZ = @_;
#Macht Funktion $wday und die anderen globalen Funktionen im Sub verfügbar
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
#initialisiert das Array
my @Wochentagsdif;
#Berechnen der heutigen Zeitdifferenz
if ($wday == 0)
{
$Wochentagsdif[0] = $akkMZ[0] - $akkMZ[6];
}
else
{
$Wochentagsdif[$wday] = $akkMZ[$wday] - $akkMZ[($wday - 1)];
}
# Rückgabe der Tagesmaehzeiten (Differenzstunden) an das entsprechende Dummy
my $Tag = "Tag_".$wday;
{
fhem("setreading Maehzeit_taeglich_dummy $Tag $Wochentagsdif[$wday]");
}
#Schreiben der Logdatei
#
#
#öffnet das zu schreibende Logfile
my $erfolg=open(OUTFILE, ">>/opt/fhem/log/Maehzeiten2020.log");
#überprüft die erfolgreiche Öffnung des Logfiles
if(!$erfolg)
{
print "Kann file nicht öffnen\n";
exit 1;
}
my @wochentage = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
#Berechnung der Datum- und Zeitstempeldaten, bzw. erzwingt zweistellige Anzeige
my $jahreszahl = 1900+$year;
my $monat = 1+$mon;
$monat = substr("00".$monat, -2, 2);
my $tag = substr("00".$mday, -2, 2);
my $stunde = substr("00".$hour, -2, 2);
my $minuten = substr("00".$min, -2, 2);
my $sekunden = substr("00".$sec, -2, 2);
# eigentlicher Schreibbefehl
print OUTFILE "$jahreszahl"."-"."$monat"."-"."$tag"."_"."$stunde".":"."$minuten".":"."$sekunden"." "."Maehzeit_taeglich_dummy"." "."$wochentage[$wday]".":"." "."$Wochentagsdif[$wday]\n";
close OUTFILE;
# Ende schreiben Log
}
# Ende Maehzeiten Sub
# -------------------------------------------------------------
# 2. Spieldauer Balken VU+
# Trigger
sub spieldauer
{
my $Wert;
if ( $_[1] == 0 )
{
$Wert = 0;
}
else
{
$Wert = ($_[1]-$_[0])/$_[1];
}
{
fhem ("setreading SATReceiver spieldauer_prozent $Wert");
}
}
# Ende Spieldauerbalken VU+
#--------------------------------------------------------------
# 3. Beginn neues Stromscript Strom_gestern
# Trigger doif_Strom_gestern
sub Strom_gestern
{
#Macht Funktion $wday und die anderen globalen Funktionen im Sub verfügbar
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my @Strom = @_;
my $Ertrag_gestern;
my $tag;
my $Tag;
my $Nr;
my $Tg;
my $Readingname;
# Ruft das Unterprogramm zum Schreiben der Wochentagsüberschriften auf
Wochentage();
# (Vortageswerte)
# Schiebt die Tagesstromwerte der Neo Solar Seite eine Position weiter
$Tg = 6;
for($Nr = 3 ; $Nr <= 8 ; $Nr ++)
{
$Strom[$Nr] = $Strom[$Nr + 1];
$Readingname = "Solar_Ertrag_".$Tg;
fhem ("set d_ccu var $Readingname $Strom[$Nr]");
$Tg --;
}
# Berechnung des gestrigen Ertrags
$Ertrag_gestern = $Strom[0] - $Strom[1];
# Rückgabe des gestrigen Ertrags an dummy d_Strom
fhem("setreading d_Strom Solar_Ertrag_gestern_kWh $Ertrag_gestern");
# Rückgabe des Tagesendwertes an dummy d_Strom ins Reading des akt. Tages
# formatiert den Tag zweistellig
$tag = sprintf("%01u",$wday);
# formatiert das userreading
$Tag = "Ertrag_kWh_Tag_".$tag;
{
# hier ändert sich der Reading Name dynamisch
fhem ("setreading d_Strom $Tag $Ertrag_gestern");
# Wird ein zweites mal in ein Reading mit immer gleichen Namen geschrieben
fhem ("setreading d_Strom Solar_Ertrag_gestern_kWh $Ertrag_gestern");
fhem ("setreading d_Strom_Pufferwerte Stand_Tagesbeginn_00Uhr $Strom[0]");
fhem ("set d_ccu var Solar_Ertrag_gestern $Ertrag_gestern");
}
# Überprüfung ob ein neuer Maximalwert vorliegt
if($Ertrag_gestern > $Strom[2])
{
fhem ("setreading d_Strom Maximaler_Ertrag_Tag_kWh $Ertrag_gestern");
fhem ("set d_ccu var Solar_Ertrag_max_Tag $Ertrag_gestern");
}
}
# Ende Strom_gestern
#-------------------------------------------------------------------
# 4. Beginn Script Stromertrag_heute_Monat
sub aktErtrag
{
# alle Variablen u. Arrays der Teilsubs
my @Wert = @_;
#-----------------------------------------------------------------
# nur eingefügt, um zu sehen, was wirklich übergeben wird
{
fhem("setreading d_Strom T0 $Wert[0]");
fhem("setreading d_Strom T1 $Wert[1]");
fhem("setreading d_Strom T2 $Wert[2]");
fhem("setreading d_Strom T3 $Wert[3]");
fhem("setreading d_Strom T4 $Wert[4]");
}
#-----------------------------------------------------------------
my $Ertrag_heute;
my $Ertrag_Monat;
### Beginn Teilsub akt. Leistung und max. Leistung
if ($Wert[0] < 80)
{
fhem("setreading d_Strom Solar_aktuelle_Leistung_W 0");
fhem("set d_ccu var Solar_akt_power 0");
}
else
{
fhem("setreading d_Strom Solar_aktuelle_Leistung_W $Wert[0]");
fhem("set d_ccu var Solar_akt_power $Wert[0]");
}
if ($Wert[0] > $Wert[1])
{
fhem("setreading d_Strom Maximale_Leistung_W $Wert[0]");
fhem("set d_ccu var Solar_max_power $Wert[0]");
}
### Beginn Teilsub Ertrag heute
$Ertrag_heute = $Wert[2] - $Wert[3];
{
fhem ("setreading d_Strom Solar_Ertrag_heute_kWh $Ertrag_heute");
fhem ("set d_ccu var Solar_Ertrag_heute $Ertrag_heute");
}
### Beginn Teilsub Ertrag akt. Monat
$Ertrag_Monat = $Wert[2] - $Wert[4];
{
fhem ("setreading d_Strom Solar_Ertrag_diesen_Monat_kWh $Ertrag_Monat");
fhem ("set d_ccu var Solar_Ertrag_dieser_Monat $Ertrag_Monat");
}
}
# Ende Script aktErtrag
#-------------------------------------------------------------------
# 5 .Ertrag letzter Monat
sub Ertrag_letzter_Monat
{
my $Monatswert;
my @Werte = @_;
$Monatswert = $Werte[0] - $Werte[1];
{
fhem ("setreading d_Strom Solar_Ertrag_Vormonat_kWh $Monatswert");
fhem ("set d_ccu var Solar_Ertrag_letzter_Monat $Monatswert");
fhem ("setreading d_Strom_Pufferwerte Stand_Monatsbeginn_00Uhr $Werte[0]");
}
if($Monatswert > $Werte[2])
{
fhem ("setreading d_Strom Maximaler_Ertrag_Monat_kWh $Monatswert");
fhem ("set d_ccu var Solar_Ertrag_max_Monat $Monatswert");
}
}
# Ende Ertrag letzter Monat
#-------------------------------------------------------------------
# 6. Beginn Script Wochentage
# Trigger aus sub Strom_gestern heraus
#Script schreibt mir den aktuellen Wochentag ganz nach rechts und die letzten
#sechs Tage links daneben
sub Wochentage
{
# Variablen und Arrays
#Macht Funktion $wday und die anderen globalen Funktionen im Sub verfügbar
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my @Wt = ("So.","Mo.","Di.","Mi.","Do.","Fr.","Sa.");
my $n = $wday;
my $m;
my $WtNr;
my $Readingname;
# "for" Schleife wird von 0 bis -6 durchlaufen für die Tage der vergangenen Woche
for ($m=0;$m <=6;$m ++)
{
# $n wird jeweils um eins erhöht, weil trigger bereits um 23:55 ausgelöst und der Folgetag gebraucht wird
if ($n+1-$m >=0)
{
$WtNr = $n + 1 - $m;
if ($WtNr > 6)
{
$WtNr = 0;
}
$Readingname = "SysVar_WtNr_".$m;
fhem("set d_ccu var $Readingname $Wt[$WtNr]");
}
else
{
$WtNr = $n + 1 + 7 - $m;
$Readingname = "SysVar_WtNr_".$m;
fhem("set d_ccu var $Readingname $Wt[$WtNr]");
}
}
return;
}
#Ende Script Wochentage
#-------------------------------------------------------------------
1;
Morgen ist auch noch ein Tag
Moin,
wird denn die sub in dem notify ausgeführt und "nur" ein Fehler geloggt?
Das eventuelle "Problem" an deiner sub: Du gibst "irgendeinen" einen Wert zurück: den Wert Deiner letzten Berechnung. Besser wäre es einen definierten Wert zurück zu geben.
return q{};
Nur die Vermutung von Einem der auch nicht besonders gut in Perl ist ;)
Ansonsten fällt mir noch ein: Damit > HM_Strommesser:.* < triggerst Du auf jeden Event des Gerätes. Ich habe keine HMCCU Geräte - aber bei CUL_HM Geräten ist das quasi ein no go, da treten so viele Events auf. Es wäre besser Du suchst Dir den Event aus, der wirklich den Schreibvorgang auslösen soll!
Schau Dir das im Eventmonitor an, dort kannst Du die Zeile auswählen und ein notify mit dem Trigger erzeugen lassen. Ich würde so tippen
HM_Strommesser:1.POWER:.*
Gruß Otto
return q{};
hab ich mal gemacht, hat nichts geändert.
HM_Strommesser:1.POWER:.*
Hatte ich auch schon mal so. Da ich meinen Kenntnissen nicht ganz traue, wollte ich erst mal so viele Events wie möglich.
Es werden auch alle 2 Minuten Logeinträge generiert. Ich dachte reduzieren kann ich immer noch, wenn es läuft.
Ich geh alles später noch mal durch und würde mich dann , vielleicht mit mehr Hinweisen, noch mal melden.
Zitatwollte ich erst mal so viele Events wie möglich.
mMn völlig falsche Herangehensweise. Eventmonitor auf, schauen was passiert, Events möglichst reduzieren. Den einen Event, den man für die Funktion braucht auswählen, notify anlegen lassen und dann weitermachen.
In Deiner sub und Deinem Aufruf sehe ich nicht wirklich den Fehler der diese Nachricht auslöst. Kann es sein Du hast noch in einer anderen myUtils eine sub mit gleichem Namen?
Kannst Du / hast Du / den cmdalias grep definiert? (https://wiki.fhem.de/wiki/Cmdalias)
Dann mal einfach nach der sub suchen:
grep aktErtrag
Wenn im Notify direkt Perl-Code ausgeführt werden soll, würde ich vermuten, dass dir am Ende vor der geschweiften Klammer ein ; fehlt.
AlsoHM_Strommesser:.* {aktErtrag(ReadingsNum("HM_Strommesser","1.POWER",""), ReadingsNum("d_Strom_Pufferwerte","Maximale_Leistung_W",""), ReadingsNum("HM_Strommesser","Zaehlerstand_Solar_kWh",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Tagesbeginn_00Uhr",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Monatsbeginn_00Uhr",""));}
Zitat von: jhohmann am 17 Mai 2021, 12:30:52
Wenn im Notify direkt Perl-Code ausgeführt werden soll, würde ich vermuten, dass dir am Ende vor der geschweiften Klammer ein ; fehlt.
Das ist kein Problem ;)
ZitatSimple Statements
The only kind of simple statement is an expression evaluated for its side-effects. Every simple statement must be terminated with a semicolon, unless it is the final statement in a block, in which case the semicolon is optional. But put the semicolon in anyway if the block takes up more than one line, because you may eventually add another line. Note that there are operators like eval {}, sub {}, and do {} that look like compound statements, but aren't--they're just TERMs in an expression--and thus need an explicit termination when used as the last item in a statement.
Quelle https://perldoc.perl.org/perlsyn
Also:
@jhohmann: Das Semicolon wars leider nicht, ändert nix.
@Otto123: Der Eventmonitor bringt ca. alle drei Minuten die beiden Events.
Events (Filter: HM_Strom.*) FHEM log
2021-05-17 19:16:12 HMCCUDEV HM_Strommesser 1.ENERGY_COUNTER: 44827.2
2021-05-17 19:16:12 HMCCUDEV HM_Strommesser 1.POWER: 290.0
Ich habe es bereits früher mit folgendem Trigger versucht. HM_Strommesser:1.POWER:.*
Ich mache das jetzt noch mal und werde auch den Namen des Scripts (auch im Notify) ändern.
(xxxyyyzzz wird es ja wohl nicht nocheinmal geben. Ich drück mich grad noch mal um den "cmdalias"herum, damit habe ich noch nie gearbeitet.)
Danach werde ich aus dem Script alles entfernen bis auf den "Testteil" , der nichts anderes macht als die übergebenen Atribute wieder zurückzuschreiben.
#-----------------------------------------------------------------
# nur eingefügt, um zu sehen, was wirklich übergeben wird
{
fhem("setreading d_Strom T0 $Wert[0]");
fhem("setreading d_Strom T1 $Wert[1]");
fhem("setreading d_Strom T2 $Wert[2]");
fhem("setreading d_Strom T3 $Wert[3]");
fhem("setreading d_Strom T4 $Wert[4]");
}
#-----------------------------------------------------------------
Mal schauen, ob das aufschlussreich ist.
Folgendes gemacht:
Trigger geändert
HM_Strommesser:1.POWER:.*
Namensänderung:
xxxyyyzzz
nur noch Minimalscript
sub xxxyyyzzz
{
# alle Variablen u. Arrays der Teilsubs
my @Wert = @_;
#-----------------------------------------------------------------
# nur eingefügt, um zu sehen, was wirklich übergeben wird
{
fhem("setreading d_Strom T0 $Wert[0]");
fhem("setreading d_Strom T1 $Wert[1]");
fhem("setreading d_Strom T2 $Wert[2]");
fhem("setreading d_Strom T3 $Wert[3]");
fhem("setreading d_Strom T4 $Wert[4]");
}
}
Alles erfolglos :(
Der reine Ausführungsteil des notifys funktioniert. Die Werte werden dann ins Dummy "d_Strom" geschrieben.
{xxxyyyzzz(ReadingsNum("HM_Strommesser","1.POWER",""), ReadingsNum("d_Strom","Maximale_Leistung_W",""), ReadingsNum("HM_Strommesser","Zaehlerstand_Solar_kWh",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Tagesbeginn_00Uhr",""), ReadingsNum("d_Strom_Pufferwerte","Stand_Monatsbeginn_00Uhr",""))}
Das ebenfalls in der Datei "99_myownUtils.pm" enthaltene Script Spieldauer funktioniert gleichzeitig einwandfrei.
# 2. Spieldauer Balken VU+
# Trigger
sub spieldauer
{
my $Wert;
if ( $_[1] == 0 )
{
$Wert = 0;
}
else
{
$Wert = ($_[1]-$_[0])/$_[1];
}
{
fhem ("setreading SATReceiver spieldauer_prozent $Wert");
}
}
# Ende Spieldauerbalken VU+
Ausgelöst von diesem Notify:
SATReceiver {spieldauer(ReadingsNum("SATReceiver","eventremaining",""),ReadingsNum("SATReceiver","eventduration",""))}
So langsam gehen mir die Ideen aus. :(
update:
es liegt definitiv am Notify.
Habe im Moment das Notify deaktiviert und durch ein at ersetzt, welches jede Minute triggert.
Damit geht es.
Nachdem es mit dem "at" ging, das "notify" gelöscht und neu definiert.
neu:
HM_Strommesser:1.POWER.* {aktErtragPower(ReadingsNum("HM_Strommesser","1.POWER",""), ReadingsNum("d_Strom","Maximale_Leistung_W",""),ReadingsNum("HM_Strommesser","Zaehlerstand_Solar_kWh",""),ReadingsNum("d_Strom_Pufferwerte","Stand_Tagesbeginn_00Uhr",""),ReadingsNum("d_Strom_Pufferwerte","Stand_Monatsbeginn_00Uhr",""))}
Jetzt geht es , juhu!!!
Keine Ahnung was das Problem war.
Ich wollte auch schon anregen, mal ein list vom gesamten Notify zu schicken und nicht nur die eine Zeile.
Aber wenn es nun gelöscht und neu angelegt ist, wird man die eigentliche Ursache nicht mehr finden.
List war gleich im ersten Post. Aber wie gesagt, es rennt! Dank euch!!!
Zitat von: jhohmann am 18 Mai 2021, 12:24:36
Ich wollte auch schon anregen, mal ein list vom gesamten Notify zu schicken und nicht nur die eine Zeile.
Aber wenn es nun gelöscht und neu angelegt ist, wird man die eigentliche Ursache nicht mehr finden.
Wollte ich gestern Abend auch machen - ob wir was gesehen hätten ist nicht klar.
Aber genau da ist es wieder: Immer ein komplettes list posten ist erstmal eine gute Idee! ;D
Edit: Nein im ersten Post war kein list vom notify! Nur die DEF
sorry, stimmt, list war vom HM_Strommesser nicht vom notify.
Will do next time!