FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Marko1976 am 27 Juli 2025, 15:47:06

Titel: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Marko1976 am 27 Juli 2025, 15:47:06
Hallo, ich wollte mal fragen ob es so etwas wie Zählewenn aus Excel auch in Fhem oder Perl gibt.

Ich möchte verschiede Device zählen wenn ihr STATE oder ein vorgegebenes Reading einen bestimmten Wert enthält.
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Prof. Dr. Peter Henning am 27 Juli 2025, 16:43:19
Perl kennt von sich aus keine FHEM-Geräte. Man kann aber problemlos in einem Perl-Programm einen FHEM-Befehl mit FILTER-Direktive absetzen und die Anzahl der zurückgegebenen Zeilen auswerten.

Allerdings erschließt sich mir der Sinn einer solchen Zählung nicht so ganz.

LG

pah
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: betateilchen am 27 Juli 2025, 18:20:40
Zitat von: Marko1976 am 27 Juli 2025, 15:47:06Ich möchte verschiede Device zählen wenn ihr STATE oder ein vorgegebenes Reading einen bestimmten Wert enthält.

im einfachsten Fall:

count state=open
zählt bei mir alle offenen Rollläden und Türen/Fenster.

https://commandref.fhem.de/#count



Zitat von: Prof. Dr. Peter Henning am 27 Juli 2025, 16:43:19Allerdings erschließt sich mir der Sinn einer solchen Zählung nicht so ganz.

Es muss doch nicht alles einen Sinn haben.
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Marko1976 am 27 Juli 2025, 21:29:55
Zitat von: Prof. Dr. Peter Henning am 27 Juli 2025, 16:43:19Allerdings erschließt sich mir der Sinn einer solchen Zählung nicht so ganz.
Man muss ja auch nicht alles verstehen, oder?

Hintergrund ist aber eigentlich ganz einfach.
Ich habe für verschiedene Aufgaben jeweils ein DOIF als Aufgabe erstellt, zb für Hausarbeiten oder Fahrzeugwartung. Diese werden in Abhängigkeit in verschiedene Stati versetzt None/Alert/Priority. Entsprechend des Status lasse ich Benachrichtigungen per Push und Alexa verteilen.
In miener FTUI3-Startseite habe ich nun eine Kachel die auf diese "Aufgaben" verweist und ich würde ganz gerne anzeigen lassen ob und eventuell wie viele Aufgaben anstehen, sprich das Icon anpassen.
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Marko1976 am 27 Juli 2025, 21:35:36
Zitat von: betateilchen am 27 Juli 2025, 18:20:40count state=open
Also so wie ich das verstehe handelt es sich um einen Befehl für die Commandzeile der einmal abgesetzt einen Rückgabewert liefert.

Sollte ich mich da jetzt nicht vertuen kann ich es für meinen Sinn weniger gebrauchen, da ich den Wert ja dauerhaft berechnet und immer im Zugriff haben muss um die Anzeige im FTUI3 entsprechend reagieren zu lassen. Andernfalls müsste ich den Befehle ja immer wieder in regelmäßigen Abständen ausführen.
Oder verstehe ich  die commandref da falsch?
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: passibe am 27 Juli 2025, 21:51:00
Ja, du müsstest das dann immer aktualisieren, z.B. mit einem notify mit entsprechender Regex, die dann auf das Event des zu zählenden Readings triggert.

Aber sowas geht wohl auch "aus einer Hand" mit einem DOIF, siehe hier https://fhem.de/commandref_DE.html#DOIF_aggregation bzw. das wurde hier diskutiert: https://forum.fhem.de/index.php?topic=90224.0 und auch hier: https://forum.fhem.de/index.php/topic,87144.msg795823.html

Denke damit solltest du dir was zusammenbauen können; wenn nicht, dann evtl. das Thema in das DOIF-Unterforum verschieben und dort wird dir dann sicherlich auch geholfen. Viel Erfolg!

P.S.: Gefunden habe ich das übrigens über eine Google-Suche nach site:fhem.de readings zählen
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Prof. Dr. Peter Henning am 28 Juli 2025, 12:11:44
@Marko1976: Zunächst einmal empfehle ich, die Doku zu lesen. Dort ist dokumentiert, wie man einen Befehl periodisch absetzt. Den Rückgabewert in ein Reading zu schreiben, ist dort auch zu finden - einfach als userReading.

Das mit den verschiedenen DOIF als "Aufgabe" erscheint mir unnötig kompliziert und mit ziemlich viel manuellem Aufwand verbunden. Für so etwas gibt es u.a. das Modul "PostMe", das erlaubt "gelbe Klebezettel" mit entsprechenden Erinnerungen per Mail oder Telegram.

Schließlich:
Zitat von: Marko1976 am 27 Juli 2025, 21:29:55verschiedene Stati versetzt
Die Mehrzahl von "Status" lautet "Status".

LG

pah
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Marko1976 am 29 Juli 2025, 00:08:02
Zitat von: Prof. Dr. Peter Henning am 28 Juli 2025, 12:11:44@Marko1976: Zunächst einmal empfehle ich, die Doku zu lesen. Dort ist dokumentiert, wie man einen Befehl periodisch absetzt. Den Rückgabewert in ein Reading zu schreiben, ist dort auch zu finden - einfach als userReading.
Es geht nicht um die Umsetzung, sondern die Sinnhaftigkeit. Der Wert MUSS immer aktuell sein. Alles was periodisch abgefragt wird ist nicht dauerhaft aktuell - somit für meinen Sinn und Zweck nicht brauchbar.

Zitat von: Prof. Dr. Peter Henning am 28 Juli 2025, 12:11:44@Marko1976: Das mit den verschiedenen DOIF als "Aufgabe" erscheint mir unnötig kompliziert und mit ziemlich viel manuellem Aufwand verbunden. Für so etwas gibt es u.a. das Modul "PostMe", das erlaubt "gelbe Klebezettel" mit entsprechenden Erinnerungen per Mail oder Telegram.
Wenn Sie wüssten was an den DOIF's dranhängt, würden Sie wahrscheinlich Anderes sagen. Aber da ich überhaupt keine Lust habe meine Beweggründe oder die Umsetzung bis ins Kleinste mit jedem zu teilen oder zu diskutieren, muss es reichen wenn ich schreibe, dass dies die FÜR MICH besste Umsetzung ist.

Zitat von: Prof. Dr. Peter Henning am 28 Juli 2025, 12:11:44@Marko1976: Die Mehrzahl von "Status" lautet "Status".
Sollten Sie sich eins zu Herzen nehmen - KEIN Mensch mag Oberlehrer die alles und jeden verbessern müssen! Wenn man einen Fehler findet, einfach mal überlesen und man hat viel mehr Freu(n)de.

Wer in einzelnen Sätzen Sarkasmus findet, darf ihn gerne behalten.
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: passibe am 29 Juli 2025, 00:21:25
Zitat von: Prof. Dr. Peter Henning am 28 Juli 2025, 12:11:44finden - einfach
Das korrekte Zeichen für einen Gedankenstrich ist übrigens der Halbgeviertstrich (https://de.wikipedia.org/wiki/Halbgeviertstrich) und nicht der Viertelgeviertstrich (https://de.wikipedia.org/wiki/Viertelgeviertstrich) (Bindestrich) ...

Zitat von: Marko1976 am 29 Juli 2025, 00:08:02Alles was periodisch abgefragt wird ist nicht dauerhaft aktuell - somit für meinen Sinn und Zweck nicht brauchbar.

Aber mal zurück zum Thema, ich denke, dass die DOIF-aggregation hier, wie erwähnt (https://forum.fhem.de/index.php?topic=142143.msg1345353#msg1345353), ganz gut passt. Habe das gerade mal bei mir getestet – mit
define offene_fenster DOIF
attr offene_fenster state [#"^[a-z]_fenster":contact:"false"]
aktualisiert sich im state des DOIF die Anzahl der offenen Fenster, sobald ich eins öffne/schließe.
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: betateilchen am 29 Juli 2025, 15:07:41
Und wenn es darum geht, readings in einem Frontend laufend aktuell zu halten, fällt mir das Stichwort ,,longpoll" ein, da übernimmt das Frontend die Aktualisierung höchstselbst.
Die eine oder andere in FHEM verfügbare Frontendvariante bietet longpoll out-of-the-box
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Marko1976 am 29 Juli 2025, 15:29:09
Schon gut,
Habe jetzt ein DOIF genommen und per EventReading die Summe bzw. den Mittelwert berechnen lassen. Darauf kann ich per ftui3 jederzeit zugreifen und es wird bei jeder Wertänderung in den Aufgaben-DOIF's automatisch neuberechnet.

Danje @passibe
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Prof. Dr. Peter Henning am 29 Juli 2025, 16:56:47
Zitat von: Marko1976 am 29 Juli 2025, 00:08:02Alles was periodisch abgefragt wird ist nicht dauerhaft aktuell
Das ist schlichtweg falsch. FHEM ist ebensowenig wie die meisten anderen Systeme in der Lage, irgendwelche Daten in Nullzeit zu aktualisieren.

LG

pah

Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Marko1976 am 31 Juli 2025, 11:53:55
Zitat von: Prof. Dr. Peter Henning am 29 Juli 2025, 16:56:47
Zitat von: Marko1976 am 29 Juli 2025, 00:08:02Alles was periodisch abgefragt wird ist nicht dauerhaft aktuell
Das ist schlichtweg falsch. FHEM ist ebensowenig wie die meisten anderen Systeme in der Lage, irgendwelche Daten in Nullzeit zu aktualisieren.
Ehrliche Frage, wer oder was sind Sie? Macht es Ihnen Spaß andere für Dumm zu verkaufen? Oder was soll der Kindergarten?
JEDER versteht unter "dauerhaft aktuell" nicht Nullzeit sondern einfach umgehend danach. Was soll diese Überspitzung? Macht es Ihnen einfach Spaß andere damit zu ärgern oder sind Sie einfach so einfältig, dass es Ihnen nicht auffällt wie das auf andere wirkt? Logik ist sicher nicht jedermanns Stärke, dennoch verfügt jeder Mensch über eine Grundlogik - und die sollte man nicht dauernd durch solche Kommentare in Frage stellen.

@passibe
Ich bräuchte noch mal deine Hilfe.
Ich habe wie gesagt ein DOIF erstellt bei dem mit "event reading" auch die Summe erstellt wird. Allerdings habe ich jetzt bemerkt, dass dies nur erfolgt wenn das Dev des DOIF's geändert wird und nicht wenn das DOIF getriggertoder ein Fall ausgelöst wird. Das Attribut Always steht schon auf Do. Mehr fällt mir aktuell leider nicht ein.

Wie kann ich erreichen, dass das DOIF bei Änderung eines betroffenen Readings in einem anderen DOIF neuberechnet wird?

Hier das List des berechnenden DOIF's:
Internals:
  CFGFN     
  DEF        (["^Hausarbeit_.* counter:.*$"])
    ()
  FUUID      688686c7-f33f-7706-90e1-a1f79814bc4c2d1d
  MODEL      FHEM
  NAME      Aufgabencounter
  NOTIFYDEV  .*(^Hausarbeit_.* counter).*,.*(^Hausarbeit_.*).*,.*(^Tasks_.*).*,global
  NR        75618
  NTFY_ORDER 50-Aufgabencounter
  STATE      initialized
  TYPE      DOIF
  VERSION    29460 2024-12-29 20:25:48
  eventCount 346
  OLDREADINGS:
  READINGS:
    2025-07-31 11:38:59  Aufgaben        0
    2025-07-31 11:38:59  Hausarbeiten    1
    2025-07-31 11:38:59  cmd            0
    2025-07-31 11:38:59  mode            enabled
    2025-07-31 11:38:59  state          initialized
  Regex:
    accu:
    bar:
    barAvg:
    collect:
    cond:
      :
        0:
          "^Hausarbeit_.* counter:.*$" ^Hausarbeit_.* counter:.*$
    event_Readings:
      :
        Aufgaben:
          "^Tasks_.*" ^Tasks_.*
        Hausarbeiten:
          "^Hausarbeit_.*" ^Hausarbeit_.*
  attr:
    cmdState:
    wait:
    waitdel:
  condition:
    0          ::EventDoIf('^Hausarbeit_.* counter',$hash,'.*$',0)
  do:
    0:
      0         
    1:
  event_Readings:
    Aufgaben  ::AggregateDoIf($hash,'#sum:a:','^Tasks_.*','counter')
    Hausarbeiten ::AggregateDoIf($hash,'#sum:a:','^Hausarbeit_.*','counter')
  helper:
    NOTIFYDEV  .*(^Hausarbeit_.* counter).*,.*(^Hausarbeit_.*).*,.*(^Tasks_.*).*,global
    globalinit 1
    last_timer 0
    sleeptimer -1
    triggerDev
    triggerEvents
    triggerEventsState
  uiState:
  uiTable:
Attributes:
  alias      Aufgabezähler
  do        always
  event_Readings Hausarbeiten:[#sum:a:"^Hausarbeit_.*":counter],
Aufgaben:[#sum:a:"^Tasks_.*":counter],
  room      Dummy

An anderer Stelle funktioniert es wunderbar. Beispielsweise bei der Berechnung des Durchschnittpreises von meinen überwachten Tankstellen. Auch alles DOIF's. Sobald ein Preis in einem der Tankstellen-DOIF's sich ändert, wird der Durchschnittpreis im Rechnungs-DOIF neu berechnet. Ich sehe aber keinen Unterschied. Wieso also funktioniert es dort und nicht hier?
Hast du irgendeine Idee?
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: betateilchen am 31 Juli 2025, 13:01:34
@pah: wie wäre es mit etwas Altersmilde?

Ich mache mal Popcorn...
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: passibe am 01 August 2025, 01:08:27
Kannst du nochmal erklären, was du machen willst?
Also aus welchen Devices sollen welche Readings gezählt werden?

Ich würde das nach wie vor wie in meinem Beispiel einfach über das "state" Attribut lösen.

Wenn du das aufgeschlüsselt haben willst nach "Hausarbeiten" und "Aufgaben", muss du das vielleicht mit zwei DOIFs machen. Spontan weiß ich nicht, ob das anders geht. Verschiedene Auswertungen zusammenrechnen kann man im state-Attribut aber auch, siehe die Commandref (https://fhem.de/commandref_DE.html#DOIF_state) (unter "Es können beim Attribut state ebenfalls Berechnungen ...").

Ansonsten aber wie gesagt ins DOIF-Unterforum verschieben, da sind Leute, die sich besser auskennen.
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Prof. Dr. Peter Henning am 01 August 2025, 09:53:36
Zitat von: Marko1976 am 31 Juli 2025, 11:53:55JEDER versteht unter "dauerhaft aktuell" nicht Nullzeit sondern einfach umgehend danach.
Das ist wieder einmal falsch, denn "umgehend" ist in der Informatik ein sinnloser Begriff.

Zitat von: Marko1976 am 29 Juli 2025, 00:08:02Wenn man einen Fehler findet, einfach mal überlesen und man hat viel mehr Freu(n)de.
Die angebrachte Korrektur bezieht sich nicht auf einen Tippfehler, oder einen Zeichensetzungsfehler - vor mir aus auch bei "Gedankenstrichen"  ;D . Sondern auf die Verwendung eines fehlerhaften technischen Begriffs "Stati".

Das Forum, das Wiki und die Commandref sind technische Dokumentationen. Jeder IT-Profi kennt das aus seiner Praxis: technische Dokumentationen erfordern normierte Sprache. Größere IT-Unternehmen beschäftigen deshalb Technische Redakteure (mit großem "T"), deren Aufgabe auch die Sprachnormierung ist.

LG

pah

P.S.: Wenn der TE "Freunde" sucht, sollte er sich auf einem Dating-Portal umsehen. Quisquis correctionibus contumeliis respondet, in schola attendit non.

Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Marko1976 am 01 August 2025, 11:31:55
@Prof. Dr. Peter Henning

Witzig, wirklich witzig - denn ich bin seit über 20 Jahren gelernter Technischer Redakteur (Tekom). Falls Ihnen die Ergänzung etwas sagt. Wenn Sie wollen, hänge ich gerne das entsprechende Zertifikat hier als Screenshot an.

Und ja, Technische Dokumentationen sollten klar, eindeutig und selbsterklärend sein.
Sie sollten auf jeden Fall aber VERSTÄNDLICH sein.

Technische Dokumentationen geben in einer Schritt für Schritt Anleitung alles wieder, was und wie der Anwender zu tun und wichtiger noch zu lassen hat. Besonderer Wert wird dabei auf Eindeutigkeit gelegt, wie zb. ein "Sie MÜSSEN  " statt einem "Sie KÖNNEN...". Es wird selbst auf die kleinste Aktion verwiesen - und wenn es nur das festziehen einer Schraube dem Drücken der Enter-Taste ist. Eine derartige Präzision und Anleitung ist hier in keinem einzigen Text der Fall - muss es auch gar nicht, denn wie eben gesagt handelt es sich hier um ein FORUM und keine Technische Dokumentation.
Ein Forum ist eine Plattform in der man sich trifft, gegenseitig hilft und Wissen austauscht. Es basiert auf Augenhöhe und Gleichberechtigung. Nicht Besserwisserei und Klübchenbildung. Also all das was Sie eben nicht verkörpern.

Abgesehen davon sind die wenigsten Leser einer technischen Dokumentation Technische oder gar geschulte Anwender, es sind einfach stink normale Menschen. Deshalb werden Technische Dokumentationen inzwischen in Easy Speak und mehr bebildert als mit Text gefüllt geschrieben. Sie wissen was Easy Speak bedeutet?

Beispiel:
"Umgehend" ist in der Informatik sicher ein sinnloser Begriff, das stimmt - aber es ist ein Begriff den JEDER Mensch versteht und sich darunter etwas vorstellen kann.
Mal davon abgesehen, dass die User hier in den wenigsten Fällen IT-Fachleute sind, ist Fhem KEIN IT-Unternehmen und Sie, guter Mann, haben NULL Ahnung wie eine technische Dokumentation wirklich aussieht. Sie leben in Ihrer kleinen IT-Blase und bilden sich ein, dass so die ganze Welt aussieht. Kleiner Hinweis - dem ist nicht so.
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Damian am 01 August 2025, 12:56:39
Zitat von: Marko1976 am 31 Juli 2025, 11:53:55Ich habe wie gesagt ein DOIF erstellt bei dem mit "event reading" auch die Summe erstellt wird. Allerdings habe ich jetzt bemerkt, dass dies nur erfolgt wenn das Dev des DOIF's geändert wird und nicht wenn das DOIF getriggertoder ein Fall ausgelöst wird. Das Attribut Always steht schon auf Do. Mehr fällt mir aktuell leider nicht ein.

Es kommt drauf an wie du es getestet hast. In der Bedingung hast du einen Trigger ohne eine Ausführungsanweisung, hier: "^Hausarbeit_.* counter:.*$". Diese ist für die Triggerung und damit Berechnung der Event_Readings unerheblich. Jedes Event_Reading hat seinen eigenen Trigger. Entscheidend ist also, dass das Event zum Trigger des Event_Reading passt, hier "^Hausarbeit_.*" bzw. "^Tasks_.*".

Für eine genauere Analyse poste mal das Event, welches nicht zur Berechnung des Eventreadings führt.

Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Prof. Dr. Peter Henning am 01 August 2025, 17:51:39
Zitat von: Marko1976 am 01 August 2025, 11:31:55Sie leben in Ihrer kleinen IT-Blase

Udo, kannst Du mir etwas Popcorn abgeben? Ich kann gerade nicht aus meiner Blase raus.

LG

pah
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Marko1976 am 01 August 2025, 20:23:44
Zitat von: Damian am 01 August 2025, 12:56:39Für eine genauere Analyse poste mal das Event, welches nicht zur Berechnung des Eventreadings führt.
2025-08-01 20:16:13.160 DOIF Hausarbeit_counter checkall
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta days: 0
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta e_Aufgabe_Fiesta_days: 0
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta counter: 1
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta cmd_nr: 2
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta cmd_seqnr: 1
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta cmd: 2.1
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta cmd_event: Aufgabe_Fiesta
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta Alert
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta cmd_nr: 2
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta cmd_seqnr: 2
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta cmd: 2.2
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta cmd_event: Aufgabe_Fiesta
2025-08-01 20:16:13.168 DOIF Aufgabe_Fiesta Alert
2025-08-01 20:17:03.494 DOIF Hausarbeit_counter checkall
2025-08-01 20:17:03.494 DOIF Hausarbeit_counter Hausarbeiten: 4
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld days: 0
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld e_Hausarbeit_Kochfeld_days: 0
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld counter: 1
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld cmd_nr: 2
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld cmd_seqnr: 1
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld cmd: 2.1
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld cmd_event: Hausarbeit_Kochfeld
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld Alert
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld cmd_nr: 2
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld cmd_seqnr: 2
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld cmd: 2.2
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld cmd_event: Hausarbeit_Kochfeld
2025-08-01 20:17:03.503 DOIF Hausarbeit_Kochfeld Alert

List des Rechen-DOIF's:
Internals:
  CFGFN     
  DEF        (["^Hausarbeit.* Alert$"])
    ()
DOELSEIF (["^Aufgabe.* Alert$"])
    ()
  FUUID      688686c7-f33f-7706-90e1-a1f79814bc4c2d1d
  MODEL      FHEM
  NAME      Hausarbeit_counter
  NOTIFYDEV  .*(^Hausarbeit.* Alert$).*,.*(^Aufgabe_.*).*,.*(^Hausarbeit_.*).*,global,.*(^Aufgabe.* Alert$).*
  NR        75618
  NTFY_ORDER 50-Aufgabencounter
  STATE      4 / 0
  TYPE      DOIF
  VERSION    29460 2024-12-29 20:25:48
  eventCount 467
  OLDREADINGS:
  READINGS:
    2025-08-01 20:13:44  Aufgaben        0
    2025-08-01 20:17:03  Hausarbeiten    4
    2025-08-01 20:06:40  cmd            0
    2025-08-01 20:06:40  mode            enabled
    2025-08-01 20:06:40  state          initialized
  Regex:
    accu:
    bar:
    barAvg:
    collect:
    cond:
      :
        0:
          "^Hausarbeit.* Alert$" ^Hausarbeit.* Alert$
        1:
          "^Aufgabe.* Alert$" ^Aufgabe.* Alert$
    event_Readings:
      :
        Aufgaben:
          "^Aufgabe_.*" ^Aufgabe_.*
        Hausarbeiten:
          "^Hausarbeit_.*" ^Hausarbeit_.*
  attr:
    cmdState:
    wait:
    waitdel:
  condition:
    0          ::EventDoIf('^Hausarbeit.* Alert$',$hash,'',0)
    1          ::EventDoIf('^Aufgabe.* Alert$',$hash,'',0)
  do:
    0:
      0         
    1:
      0         
    2:
  event_Readings:
    Aufgaben  ::AggregateDoIf($hash,'#sum:a:','^Aufgabe_.*','counter')
    Hausarbeiten ::AggregateDoIf($hash,'#sum:a:','^Hausarbeit_.*','counter')
  helper:
    NOTIFYDEV  .*(^Hausarbeit.* Alert$).*,.*(^Aufgabe_.*).*,.*(^Hausarbeit_.*).*,global,.*(^Aufgabe.* Alert$).*
    event      checkall
    globalinit 1
    last_timer 0
    sleeptimer -1
    triggerDev Hausarbeit_counter
    triggerEvents:
      checkall
      Hausarbeiten: 4
    triggerEventsState:
      checkall
      Hausarbeiten: 4
  uiState:
  uiTable:
Attributes:
  alias      Zähler für Hausarbeiten
  do        always
  event-on-change-reading .*
  event_Readings Hausarbeiten:[#sum:a:"^Hausarbeit_.*":counter],
Aufgaben:[#sum:a:"^Aufgabe_.*":counter],
  room      Dummy
  stateFormat Hausarbeiten / Aufgaben
  timestamp-on-change-reading .*
  verbose    5

Ich habe in dem DOIF in dem gerechnet wird noch die zweite Gruppe (Aufgabe) hinzugefügt und sowohl für die Hausarbeiten als auch die Aufgabe jeweils ein Event ausgelöst wie es auch von der automatik passieren würde. Interessanterweise funktoniert es bei den Hausarbeiten mit dem Checkall, bei den Aufgaben nicht mal das.
Habe auch noch mal ein aktualisiertes List des Rechen-DOIF's angehangen.

Vielleicht kann ja hier jemand was daraus herauslesen.

So wie ich das commandref zu den eventReadings verstehe, erfolgt die Berechnung automatisch sobald eines der überwachten Devices/Readings sich ändert, egal was im DEF steht oder ob das DOIF irgendwie getriggert wird.
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: TomLee am 01 August 2025, 20:26:47
Zitat von: Prof. Dr. Peter Henning am 01 August 2025, 09:53:36...

Das Forum, das Wiki und die Commandref sind technische Dokumentationen. ...

Das Forum versteht sich definitiv nicht als technische Dokumentation – und das ist auch gut so. Es lebt vom Dialog, vom Teilen von Erfahrungen und von Fragen, die oft über die reine Dokumentation hinausgehen.

Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: betateilchen am 01 August 2025, 20:34:32
Zitat von: Prof. Dr. Peter Henning am 01 August 2025, 17:51:39Udo, kannst Du mir etwas Popcorn abgeben?

Klar, die Vorräte sind nahezu unerschöpflich 😀
Titel: Aw: Fhem/Perl-Funktion "Zählewenn" gesucht
Beitrag von: Dr. Boris Neubert am 01 August 2025, 20:52:47
Thema gesperrt.

https://de.wikipedia.org/wiki/Abklingbecken

Ich hoffe auf eine kurze Halbwertszeit - dann öffne ich das Thema wieder für on-topic-Diskussion.

Achso, und übrigens, Moderatorenschelte in den Meldungen der Beiträge ist wohlfeil, aber wir machen das alles hier freiwillig neben unserem Erwerbs-, Familien-, FHEM- und sonstigen Leben. Also bitte nachsichtig sein oder noch besser selber mitmachen!