Userreading Variable für ein Reading

Begonnen von stera, 01 April 2022, 12:27:38

Vorheriges Thema - Nächstes Thema

stera

Hallo zusammen,

kann man im Userreading auch ein Regex innerhalb eines Reading anwenden?
Aus dem DBRep Tool wird ja immer ein Datum usw. vor dem Reading geschrieben und ändert sich bei der Abfrage. Aus dem Reading wollte ich gerne nur ein Trend ableiten. Mit einem Notify ist es ja kein Problem, aber wollte mal wissen ob es auch einfach mit einem Userreading geht?

z.B.
Das Reading lautet:
2022-04-01 12:19:59   2022-04-01_12-05-57__OBISStromzaehler__ObisESP_total_365d__DIFF__no_aggregation 2.0

Das Userreading in etwa so, geht aber leider nicht, es ist immer else also steigend.
userReadings trend {if(ReadingsVal($name,".*DIFF.*","") < 0) { "abfallend"} else { "steigend"}}

Wäre dankbar um kurze Rückmeldung.

Danke,
Stefan

TomLee

#1
So ?

userReadings trend:57__OBISStromzaehler__ObisESP_total_365d__DIFF__no_aggregation.* {ReadingsNum($name,'57__OBISStromzaehler__ObisESP_total_365d__DIFF__no_aggregation',0) < 0) ? 'abfallend' : 'steigend'}

DS_Starter

Hallo Stefan,

dafür verwendest du im DbRep zweckmäßigerweise das Attr userExitFn.
Schau dir mal in der Hilfe zu dem Attr die zweite Variante an.
Wenn du weitere Hilfe brauchst meldest du dich einfach nochmal.
Proxmox+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

stera

Hallo Heiko,

danke für die Antwort, aber mit UserExitFn müsste ich auch wieder was in der myUtils anlegen, soweit ich das verstanden habe. Dann ist notify für mich die einfachere Lösung. Das von TomLee ist nun durchgestrichen und konnte damit auch kein Erfolg haben. Dachte nur, dass es vllt. eine einfache Lösung im Userreading gibt und man nicht wieder mit Zusatzlösungen arbeiten muss.

Ich habe nochmal eine andere Frage zu DBRep, aber das mache ich in einem anderem Thread.

Viele Grüße,
Stefan

DS_Starter

Zitat
aber mit UserExitFn müsste ich auch wieder was in der myUtils anlegen, soweit ich das verstanden habe.
Nein, du kannst direkt Code in UserExitFn angeben. Deswegen der Hiweis auf Variante 2 (direkte Code Eingabe)

LG
Proxmox+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

stera

Zitat von: DS_Starter am 02 April 2022, 20:18:12
Nein, du kannst direkt Code in UserExitFn angeben. Deswegen der Hiweis auf Variante 2 (direkte Code Eingabe)

LG

Danke für die Antwort. Ich hatte das auf den ersten Blick gar nicht gesehen, weil ich nur mit Handy geguckt hatte.

Hatte mal versucht ein zusätzliches Reading anzulegen, aber geht leider nicht.

Der Reading lautet:
2022-04-03_12-02-11__HM_Zaehlersensor_Gas__gas_total_m3__DIFF__no_aggregation

{
  if ($READING =~ /HM_Zaehlersensor_Gas__gas_total_m3__DIFF/) {       
    my $wert1   = $VALUE;                       
   
    my $hash = $defs{$NAME};

    readingsBulkUpdate ($hash, 'gas_total_m3_DIFF', $wert1);
  }   
}

DS_Starter

Was heißt geht nicht ? Fehler oder kein Wert ?

Ich habe es gerade nochmal bei mir getestet und klappt problemlos.


{
  if ($READING =~ /__\/Energy__\/__MAX/) {       
    my $wert1   = $VALUE;                       
   
    my $hash = $defs{$NAME};

    readingsBulkUpdate ($hash, 'Energy_MAX', $wert1);
  }   
}


Das ausgewerte Reading heißt 2022-04-03_12-45-01__/Energy__/__MAX__no_aggregation und es wird 'Energy_MAX' erstellt.


   READINGS:
     2022-04-03 13:23:16   2022-04-03_12-45-01__/Energy__/__MAX__no_aggregation 5008.0000
     2022-04-03 13:23:16   Energy_MAX      5008.0000
     2022-04-03 13:23:16   background_processing_time 0.7862
     2022-04-03 13:23:16   sql_processing_time 0.6652
     2022-04-03 13:23:16   state           done
Proxmox+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

DS_Starter

Hast du die aktuellste DbRep Version ?
Proxmox+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

stera

Das war es, die hatte ich noch nicht  ???

Danke Heiko