[DBRep] maxvalue Reading (und evtl userReading) Frage

Begonnen von Kai-Alfonso, 30 September 2019, 16:46:19

Vorheriges Thema - Nächstes Thema

DS_Starter

Danke Rudi, ich werde heute Abend die Beispiele im Wiki mal anpassen wenn Kai nicht schneller sein sollte.  ;)

Lg,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

stefan-dd

Mir schreibt es immer wieder Fehler zu dieser Zeile ins log.

my $pmts = "$3-$2-$1 $4:$5:$6";

2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $3 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $1 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $4 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $5 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $6 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.


Hat jemand eine Idee woran das liegt?

stefan-dd

Mir schreibt es immer wieder Fehler zu dieser Zeile ins log.

my $pmts = "$3-$2-$1 $4:$5:$6";

2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $3 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $2 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $1 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $4 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $5 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.
2023.03.07 20:13:51 1: PERL WARNING: Use of uninitialized value $6 in concatenation (.) or string at ./FHEM/99_rundenUtils.pm line 15.


Hat jemand eine Idee woran das liegt?

betateilchen

Wenn man wüsste, was in Deiner 99_rundenUtils.pm dazu steht und verstehen würde, was das mit DbRep zu tun hat - könnte man Dir vielleicht helfen.

Du versuchst halt, einen String aus Werten zu erzeugen, in denen nix drinsteht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Kai-Alfonso

Moin,

ist schon ein bisschen älter das Thema, aber mein File funktioniert nicht mehr. Geändert habe ich meines Wissens nichts an dem File

reload: Error:Modul 99_myDbRepUtils deactivated:
Inhalt der 99_myDbRepUtils

############################################################################################################
##        Reading maxTemp12M im Ursprungdevice aus maxValue setzen 
##        $name    = Name des DbRep-Devices
##        $reading = das übergebene Reading vom DbRep-Device in der Form:
##                  2019-10-01_11-44-45__SMA_Energymeter__Einspeisung_Wirkleistung__MAX__no_aggregation
##        $value  = der Wert des übergebenen Readings
############################################################################################################
sub TempStatistik {
my ($name,$reading,$value) = @_;
my $resr;
 
if($reading =~ /^.*Temp.*$/) {                                          # es ist das Ergebnis aus  Ursprungdevice / ausgewertetes Reading / MAX
    my ($ts,$read,undef) = split("__",$reading,3);                            # Extraktion Timestamp, read = Reading Name zum Erstellen, Extract aus readingNameMap
    $ts      =~ /^(\d+)-(\d+)-(\d+)_(\d+)-(\d+)-(\d+)$/;                      # Aufteilung Timestamp
    my $pmts = "$1-$2-$3 $4:$5:$6";                                            # Neuzusammenstellung des Timestamp
    my $tsdate = "$1-$2-$3";
 my $tstime = "$4:$5:$6";
 my $dest  = AttrVal($name, "device", "");                                  # device Attribut dbrep auslesen
    my $hash = $defs{$dest};                                                  # hash des Zieldevices
    # readingsSingleUpdate($hash, $resr, $value, 1);                          # wenn man den aktuellen Timestamp setzt (Normalfall)
    setReadingsVal($hash,$read,$value,$pmts);                                  # !!! Spezialfall !!! abweichenden Timestamp setzen
 fhem  ("trigger $dest $read: $value");
 
 }

return;
}]
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

DS_Starter

Wenn 99_myDbRepUtils nicht geladen werden kann, kommt im Log mit ziemlicher Sicherheit vor der Meldungszeile eine Perl-Fehlermeldung die auf den Grund hinweist.
Möglicherweise gibt es die Routine setReadingsVal nicht, zumindest ist das keine FHEM Standardroutine.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter