Knobelaufgabe | frequenter Strombezug

Begonnen von holle75, 28 Juni 2024, 17:29:24

Vorheriges Thema - Nächstes Thema

holle75

Hallo!

Da meine Süße öfter mal vergisst, den Wasserhahn zum Schlauch abzustellen und bei uns Bezug über eine Pumpe läuft, suche ich eine Logik um mir dieses "Fehlverhalten" anzeigen zu lassen.

Das einzige Indiz, was es in einer Grafik sofort sichtbar macht, ist der frequente Strom(mehr)bezug. In der Grafik lassen sich die ca 500W schön sehen. Siehe unten.

Mir fällt programmatisch absolut nix ein, wie ich eine Meldung triggern kann. Auch variiert die Frequenz wie oft dann die Pumpe anspringt von 15 Minuten bis zu einer Stunde.

Jemand von euch eine Idee?


Otto123

Du könntest den Strom als Trigger für ein watchdog nehmen und die Frequenz als reset , das ganze dann extra noch als Anzahl (Hundegebell) pro Zeit auswerten.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

holle75

Strom als Trigger ja, aber leider für die Pumpe keinen separaten Stromzähler. Dann wärs einfacher. So muss ich ~500W über aktuellen GESAMTVERBRAUCH als Indikator nehmen und da fängts bei mir im Kopf schon an kompliziert zu werden.

1) ~500Watt über aktuellen Verbrauch (der sonstwo gerade liegen kann)
2) Diese 500W nicht länger als 30-60 sek bis wieder 500W weniger
3) Frequenz dieser Peaks muss zwischen 15 und 60 Minuten liegen
4) und die Frequenz muss, sagen wir mal, so 3 Stunden bestandt haben, sonst könnte es auch sonstwas für ein Gerät sein.

noch habe ich keine Idee, wie ich das in ein Gerüst gieße. Die Logik ist fies.

Otto123

#3
MyUtils ne Logik machen die den alten mit dem neuen Wert vergleicht und einen Trigger erzeugt. OldreadingsNum und ReadingsNum übergeben. Oder daraus ein userreadings? Ob das down relevant ist? Ich würde dann 60 min warten ob der Trigger nochmal kommt. Watchdog.
Und dann vielleicht zweites watchdog mit Wartezeit 3 Stunden.

Aber ich denke nur laut  ;D
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

holle75

Jo, du liegst da schon komplett richtig ;)
perl, ... nicht meins für myutils.... und kann meinem alten Kopf nicht (mehr) davon überzeugen perl zu lernen.
Ich werde die "Aufgabe", wenn Muse, wohl auch mal ins Unterforum packen. Irgend ein weiser DOIF-Kopf hat bestimmt eine Idee.

Starkstrombastler

Ein vergessener Gartenschlauch kann zum richtig teuren Problem werden, wenn er platzt und das Wasser den Keller flutet. War jedenfalls bei einem meiner Nachbarn so.

Nimm für nicht mal 20 Euro einen schaltbaren Zwischenstecker (z.B. Shelly Plus Plug S) und du hast eine vernünftige Lösung.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

holle75

In der Theorie ja, aber wenn die Pumpe am Arsch der Heide ihren Strom zieht (ca 100m enfernt von der Zivilisation über HM wired classic "vor Ort" geschaltet), ist das Problem, diesen "Zwischenstecker" auszulesen. Welcher auch immer es ist. Über dieses Stromkabel läuft auch noch einiges andere. Also kann nicht wo dieses Kabel dann in die Zivilisation zurückkehrt messen.

Ich warte ja noch immer auf eine "Bastellösung Strommesser" für HM wired classic ;)

fiedel

Lies dich doch mal zu LoRaWAN ein. Das ELV- Journal gibt es jetzt komplett und rückwirkend kostenfrei.

Gruß
Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

holle75

Hallo Frank und Danke. In der Suchfunktion bei ELV finde ich LoRaWAN, aber nichts in Bezug auf Strommessung?
Auch scheint mir LoRaWAN ebenfalls funkgebunden zu sein? Da würde ich dann eher alles andere als nochmals irgendwas von ELV bevorzugen ;) ... (das primär wegen ihrer Homematic Classic Politik. Die Buben bekommen von mir keinen cent mehr.)

cetri

Hi,

hast du da wo die Pumpe steht WLAN? Dann würde ich das wahrscheinlich mit einem Durchflussmengenmesser in der Wasserleitung und ESPhome oder einem WLAN-fähigen Zwischenstecker in der Zuleitung zur Pumpe lösen. Dann hast du eine sichere Auslösung auf das Event "Pumpe an" oder "Wasser fliesst" und musst nicht auf 500W Mehrverbrauch triggern die ja auch sonstwo herkommen können.

Ich habe bei mir einen schaltbaren Zigbee-Zwischenstecker mit Strommessung in der Zuleitung zur Pumpe. Da kann ich zum Einen die Pumpe mit schalten und zum Anderen auch auswerten ob sie wirklich läuft.

LG
Jörg

holle75

Hallo Jörg, ja das mit dem Wlan an genau der Stelle ist die Frage. Könnte sein, aber da der Sender mit in einem Bodenschacht sitzen würde, eher unwahrscheinlich. Deswegen sträube ich mich gegen alles funkgebundene. Was nicht heißt, dass ich es nicht trotzdem ausprobiere. Danke ebenfalls für die Anregung.

Zur Frage ob die Pumpe läuft, wenn über ESPHome, würde ein Strommesser, ala https://esphome.io/components/sensor/ct_clamp im Falle am Pumpenkabel (also hinter/neben der allgemeinen Durchleitung) bevorzugt werden. Dieses Wasser, Ventile, Rohr Gebastel muss ich schon zu oft machen und ist immer ne nervige Angelegenheit. Clamp ums Kabel und gut. Oder meine Elektrokenntnisse haben mich gerade verlassen und der Hauptstrang würde "einstrahlen"? Und/Oder welchen Wasserdurchflusssensor meinst du?

Aber eigentlich reizt mich die Ursprungsfrage am meisten. Rein von der Logik her, ob machbar.

Gisbert

#11
Hallo holle75,

mit ESPHome kennst du dich ja mittlerweile aus, dann könnte dein obiger Link eine Lösung für dich sein.

Fertige Stecker gibt es für ab ca. 10 Eur. Die messen nicht nur den elektrischen Strom, Spannung und Leistung, sondern haben auch noch Relais, mit dem du den Ausgang schalten kannst. Zudem besitzen sie schon ein Gehäuse, was bei einer Bastellösung immer noch dazu kommt.

Falls der Fokus beim Basteln liegen sollte, gibt es auch noch einfachere Sensoren, die z.B. nur die Stromstärke messen, was für deinen Anwendungsfall vermutlich mehr als ausreichend ist. Es müssten z.B. Platinchen mit der Bezeichnung ACS758 sein - aus der Erinnerung heraus, nicht garantiert. Bei Interesse schaue ich gerne genau nach.

Viele Grüße Gisbert

Edit:
Die ACS714 müssten wahrscheinlich besser geeignet sein, da die messbare Stromstärke kleiner als bei den ACS758 ist.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

holle75

Hallo Gisbert und danke. Basteln liegt in der Priorität ganz weit hinten. Nur wenn ich muss (auch wenn ich, auch dank Dir, gerade bei ESPHome "drin" bin).
Schalten würde ich weiterhin gerne wired. Das ist gegeben, funktioniert und ich muss mir keine Gedanken machen.
Falls (wenn denn da im Loch tatsächlich Wlan ankommen würde), mag ich eigentlich die Clamp-Idee. Stromversorgung (ohne jetzt da nicht wieder ne Baustelle aufzumachen) müßte ich mir auch noch überlegen. Es soll ja auch gerne eine Weile überleben und funktionieren. Erdlöcher sind leider kein optimaler Aufenthaltsort für Strom und Elektronik.....

holle75

#13
... und wo ich gerade dran bin. Im Zuge der ESPHome (danke Gisbert) Bautätigkeiten für das BMS/Solar habe ich mir auch mal die DOIF https://fhem.de/commandref_DE.html#DOIF_Reading_Funktionen

angeschaut. Da sollte man doch vielleicht was mit der Änderungsrate diffpsec hinbekommen ... um wieder bei meiner Initialfrage zu landen.

Jetzt müßte nur noch das Hirn funktionieren um die Logik in meiner Pumpe im Falle "Hahn offen" mit DOIF zu beschreiben ;)

EDIT: puh, Damian machts einem auch kompliziert. diffpsec, diff,, inc ?????? Kopf tut weh.

Damian

Dann will ich mal nicht so sein :)

Hier mal ein Lösungsansatz:

defmod di_pumpe DOIF init {$_count=0}\
\
{\
if ([pumpe:leistung] > 500 and !defined($_on)) {$_count++;;$_on=1;;set_State("Start")} else {delete $_on};;\
if ($_count==1) {set_Exec("timer",7200,'if ($_count > 3) {set_State("Hahn offen")} else {set_State($_count)};;$_count=0')};;\
}

Dieses DOIF-Device zählt die Ein/Ausschalt-Vorgänge (größer 500 Watt) innerhalb einer Zeitspanne von zwei Stunden (7200 Sekunden), wenn die Anzahl größer als drei ist, dann gibt es im Status "Hahn offen", sonst die Anzahl der Ein/Ausschalt-Vorgänge innerhalb der Zeitspanne von 7200 Sekunden.

Die Zahlen kannst du im Device entsprechend anpassen.

Auf "Hahn offen" kannst du triggern und gewünschte Aktionen ausführen.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holle75

Oh, Danke dir! Ich versuche das mal nachzuvollziehen (Perl nicht meins) und zu testen.

Aber vorab: Initiales Problem, siehe https://forum.fhem.de/index.php?topic=138626.msg1316007#msg1316007, war die Messung der Differenz von "Status" zu "Status plus 500W". Deswegen kam ich auf diffpsec, diff, inc

Deine Code arbeitet mit dem direkten Verbrauch der Pumpe, richtig? Wie kann ich im Ereignis die Differenz nutzen?

Aber der Rest, auch wenn ichs noch nicht kapiere, sieht ganz hübsch (logisch) aus ;)

Damian

z. B. im gleichen Device

attr di_pumpe DOIF_Readings leistung:[dein_device:energie:diffpsec]*3600
dann kannst du statt [bla:leistung] [$SELF:leistung] angeben.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holle75

Verstehe. Danke. probier ich ...

Allerdings die *3600 hatte ich schon im commandref Beispiel nicht gedanklich transferiert bekommen. Der Strom (in meinem Fall) ist momentan und hat keinen Bezug zu Wh (WattStunden). Oder wofür stehen die 3600? ... bzw versteh ich den Multiplikator überhaupt nicht. Daher kam auch mein "puh, Damian machts einem auch kompliziert" ;)

Damian

#18
Zitat von: holle75 am 15 Juli 2024, 21:49:59Verstehe. Danke. probier ich ...

Allerdings die *3600 hatte ich schon im commandref Beispiel nicht gedanklich transferiert bekommen. Der Strom (in meinem Fall) ist momentan und hat keinen Bezug zu Wh (WattStunden). Oder wofür stehen die 3600? ... bzw versteh ich den Multiplikator überhaupt nicht. Daher kam auch mein "puh, Damian machts einem auch kompliziert" ;)

Das ist nur mal Mathematik und die Tatsache, dass eine Stunde 3600 Sekunden hat.

Wenn du als Differenz in einer Stunde 1 Wh hast, dann wird ja 1/3600 gerechnet (das Reading heißt im Klartext ja: Differenz pro Sekunde) wenn du es mit 3600 multipliziert, erhältst du wieder 1 Watt, das ist ja die Leistung, die man im Durchschnitt in dieser Stunde hatte.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cetri

Zitat von: holle75 am 15 Juli 2024, 13:42:55Hallo Jörg, ja das mit dem Wlan an genau der Stelle ist die Frage. Könnte sein, aber da der Sender mit in einem Bodenschacht sitzen würde, eher unwahrscheinlich.

Fragt sich ja ob der Sender mit im Schacht sitzen muss oder ob du den nach aussen verlegen kannst. Mein Brunnen ist im Keller da hab ich alle Möglichkeiten. Wenn das Ganze irgendwo im Garten in nem Schacht sitzt wird es natürlich schwieriger.

Zitat von: holle75 am 15 Juli 2024, 13:42:55Clamp ums Kabel und gut. Oder meine Elektrokenntnisse haben mich gerade verlassen und der Hauptstrang würde "einstrahlen"?

Ne der misst die Leistung auf dem Kabel an dem er angeschlossen ist.

Zitat von: holle75 am 15 Juli 2024, 13:42:55Und/Oder welchen Wasserdurchflusssensor meinst du?

Sowas hier z.B.
Hat dann auch den Vorteil das du nicht nur siehst das Wasser läuft sondern auch wieviel durchgelaufen ist.

Zitat von: holle75 am 15 Juli 2024, 17:11:23Schalten würde ich weiterhin gerne wired. Das ist gegeben, funktioniert und ich muss mir keine Gedanken machen.

Da stellt sich mir die Frage ob die vorhandene Infrastruktur zum Schalten nicht reichen würde um eine Leistungsmessung zu realisieren.

LG
Jörg

holle75

Zitat von: Damian am 15 Juli 2024, 23:04:30Das ist nur mal Mathematik und die Tatsache, dass eine Stunde 3600 Sekunden hat.

Wenn du als Differenz in einer Stunde 1 Wh hast, dann wird ja 1/3600 gerechnet (das Reading heißt im Klartext ja: Differenz pro Sekunde) wenn du es mit 3600 multipliziert, erhältst du wieder 1 Watt, das ist ja die Leistung, die man im Durchschnitt in dieser Stunde hatte.

Ich GLAUBE ich habe verstanden. Den Stunden und Sekunden Part kann ich nachvollziehen. Wie diff pro sekunde genau funktioniert und das im Zusammenspiel, mmh, noch ein bißchen schwammig. Aber ich muss es ja nicht komplett durchholen solange es funktioniert. Danke für die Erklärung.

holle75

#21
Zitat von: cetri am 16 Juli 2024, 10:27:34Fragt sich ja ob der Sender mit im Schacht sitzen muss oder ob du den nach aussen verlegen kannst. Mein Brunnen ist im Keller da hab ich alle Möglichkeiten. Wenn das Ganze irgendwo im Garten in nem Schacht sitzt wird es natürlich schwieriger.

Ja, irgendwo auf dem Feld. Nach außen legen wäre für die Haltbarkeit nicht dienlich.

Zitat von: cetri am 16 Juli 2024, 10:27:34Hat dann auch den Vorteil das du nicht nur siehst das Wasser läuft sondern auch wieviel durchgelaufen ist.
Das Ding wirkt sinnvoll und im Verhältnis einfach einzubauen. Danke

Zitat von: cetri am 16 Juli 2024, 10:27:34Da stellt sich mir die Frage ob die vorhandene Infrastruktur zum Schalten nicht reichen würde um eine Leistungsmessung zu realisieren.

Im Loch liegt Strom (durchlaufend für weitere Verbraucher, abgezweigt), HMW-Bus und HMW-Schalter, nicht mehr. Strom für Device X könnte ich vom Bus abzweigen (wahrscheinlich downsteppen) oder 230V wandeln. Kommunikation geht nur über Funk, HMW-Bus oder ich zieh noch 100m nen anderen Bus (den ich aber "an der anderen Seite" dann einbinden müßte). Das DOIF (auch wenns Perl-DOIF ist. Schwer für mich)  ist der spannendste Weg. Jetzt wo dass Differenzstrom rausfinden Problem gelöst ist. Keine zusätzliche Technik und, wenns denn funktioniert, ein paar Zeilen Code. Ob Strom oder Wasser (Pumpe läuft) ... die Auswertung der Logik dahinter wäre gleich kompliziert.

Damian

Zitat von: holle75 am 16 Juli 2024, 12:36:49
Zitat von: Damian am 15 Juli 2024, 23:04:30Das ist nur mal Mathematik und die Tatsache, dass eine Stunde 3600 Sekunden hat.

Wenn du als Differenz in einer Stunde 1 Wh hast, dann wird ja 1/3600 gerechnet (das Reading heißt im Klartext ja: Differenz pro Sekunde) wenn du es mit 3600 multipliziert, erhältst du wieder 1 Watt, das ist ja die Leistung, die man im Durchschnitt in dieser Stunde hatte.

Ich GLAUBE ich habe verstanden. Den Stunden und Sekunden Part kann ich nachvollziehen. Wie diff pro sekunde genau funktioniert und das im Zusammenspiel, mmh, noch ein bißchen schwammig. Aber ich muss es ja nicht komplett durchholen solange es funktioniert. Danke für die Erklärung.

Das ist wiederum Physik: Leistung=Energie/Zeit

Das ist alles. Die Einheit der Leistung hängt von der Einheit der Energie und der Zeit ab.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Prof. Dr. Peter Henning

Zitat von: Damian am 16 Juli 2024, 15:08:47Die Einheit der Leistung hängt von der Einheit der Energie und der Zeit ab.
Pardon, aber diese Formulierung ist Unsinn. Die Einheiten hängen gar nicht voneinander ab. Einheiten können beliebig gewählt werden (sagen wir mal Pferdestärken für die Leistung, Joule für die Energie und Minuten für die Zeit).

LG

pah

holle75

#24
Hallo pah, Damian, auch wenn das stimmen mag, mein Physik und Mathe Leistungskurs ist über 30 Jahre her. Wenn man sich nicht zwischendurch mit der Materie beschäftigt ist wahrscheinlich jede GANZ DETAILLIERTE Erklärung ein bißchen Perlen vor die Säue.

Aber zu dem DOIF. Mit (Zeiten jetzt mal imaginär):

defmod MAIL_WasserhahnOffenLogik_DOIF DOIF init {$_count=0}\
\
{\
if ([12:00-23:00] and [$SELF:leistung] > 500 and !defined($_on)) {$_count++;;$_on=1;; set_State("Start")} else {delete $_on};;\
if ($_count==1) {set_Exec("timer",7200,'if ($_count > 3) {set_State("Hahn offen")} else {set_State($_count)};;$_count=0')};;\
}
attr MAIL_WasserhahnOffenLogik_DOIF DOIF_Readings leistung:[Xtender_AC_out:Power__W:diffpsec]*3600
attr MAIL_WasserhahnOffenLogik_DOIF room System

setstate MAIL_WasserhahnOffenLogik_DOIF Start
setstate MAIL_WasserhahnOffenLogik_DOIF 2024-07-16 15:58:10 block_02 executed
setstate MAIL_WasserhahnOffenLogik_DOIF 2024-07-16 15:44:40 block_init executed
setstate MAIL_WasserhahnOffenLogik_DOIF 2024-07-16 15:58:10 e_MAIL_WasserhahnOffenLogik_DOIF_leistung -109981.6668
setstate MAIL_WasserhahnOffenLogik_DOIF 2024-07-16 15:58:10 leistung -109981.6668
setstate MAIL_WasserhahnOffenLogik_DOIF 2024-07-16 15:44:40 mode enabled
setstate MAIL_WasserhahnOffenLogik_DOIF 2024-07-16 15:57:56 state Start
setstate MAIL_WasserhahnOffenLogik_DOIF 2024-07-16 15:44:40 timer_01_c02 17.07.2024 12:00:00
setstate MAIL_WasserhahnOffenLogik_DOIF 2024-07-16 15:44:40 timer_02_c02 16.07.2024 23:00:00
setstate MAIL_WasserhahnOffenLogik_DOIF 2024-07-16 15:49:53 timer_timer 16.07.2024 17:49:53

bekomme ich in "leistung" Minuswerte. Fängt sich das noch?

EDIT: RAW nochmal getauscht, weil noch ein timer_timer dazukam ...

Damian

Zitat von: Prof. Dr. Peter Henning am 16 Juli 2024, 15:35:12
Zitat von: Damian am 16 Juli 2024, 15:08:47Die Einheit der Leistung hängt von der Einheit der Energie und der Zeit ab.
Pardon, aber diese Formulierung ist Unsinn. Die Einheiten hängen gar nicht voneinander ab. Einheiten können beliebig gewählt werden (sagen wir mal Pferdestärken für die Leistung, Joule für die Energie und Minuten für die Zeit).

LG

pah

Ach Nein? Dann erklär ihm bitte, warum beim Teilen von Wattstunden durch Sekunden (das macht das Modul ja) keine Wattzahl rauskommt ;) Das Umrechnen in die gewünschte Einheit habe bereits erklärt. Dass man Einheiten umrechnen kann, wurde hier nicht in Frage gestellt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: holle75 am 16 Juli 2024, 15:54:53bekomme ich in "leistung" Minuswerte. Fängt sich das noch?


Dann müsste der Zählerstand in Wh kleiner statt größer werden. Das kann natürlich immer passieren, wenn der Zählerstand zurückgesetzt wird.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holle75

so langsam kapier ich was Diffpsec macht.... und was mir bei der Suche danach aufgefallen ist (fast zero) ... ich glaube die Wenigsten ;)
Das ist doch Genial! ... und würde wahrscheinlich mannigfaltig eingesetzt. Wenn es besser verstanden würde.
Vielleicht noch zwei-drei möglichst unterschiedliche Beispiele in die commandref und diffpsec, diff, inc würden "fliegen"!

holle75

Was mir noch aufgefallen ist. "Start" wird beim ersten "Treffer" in state gesetzt. Allerdings keine hochzählenden Zahlen.
Da Start öfter im Event Monitor angezeigt wird, nehme ich an, dass das hochzählen nicht so ganz funktioniert?
Hey, Perl, ich kann nur die Idee verstehen, aber nicht all die Klammern, Semikolons, etc. ;)

Prof. Dr. Peter Henning

Was um Himmels Willen soll eine
Zitat von: Damian am 16 Juli 2024, 16:26:52Wattzahl
sein? So etwas gibt es nicht, es gibt nur die Größe "Leistung" - und in welcher Einheit man die angibt, ist in der Regel frei wählbar.

Natürlich kommt bei der Division von Wattstunden durch Sekunden ein Wert für diese Leistung heraus - allerdings in einer ziemlich unhandlichen Einheit "3600 Watt". Es steht jedem frei, diese Einheit zu verwenden, man könnte sie z.B. "Bügeleisenstärke" nennen, mit der Abkürzung BS.

Natürlich schlage ich das nicht ernsthaft vor. Allerdings kann ich es nicht akzeptieren, wenn jemand Unsinn über physikalische Grundlagen schreibt.

LG

pah

holle75

Ich habe diffpsec doch noch nicht verstanden und deswegen mal mitgeloggt.

mit:
defmod MAIL_WasserhahnOffenLogik_DOIF DOIF init {$_count=0}\
\
{\
if ([01:00-23:00] and [$SELF:leistung] > 500 and !defined($_on)) {$_count++;;$_on=1;; set_State("Start")} else {delete $_on};;\
if ($_count==1) {set_Exec("timer",7200,'if ($_count > 3) {set_State("Hahn offen")} else {set_State($_count)};;$_count=0')};;\
}
attr MAIL_WasserhahnOffenLogik_DOIF DOIF_Readings leistung:[Xtender_AC_out:Power__W:diffpsec]*3600
attr MAIL_WasserhahnOffenLogik_DOIF event_Readings leistung2:[Xtender_AC_out:Power__W:diffpsec]*3600

das event_Readings  um die Events auch außerhalb des DOIF´s zu sehen.... bekomme ich im Log

2024-07-18_09:41:19 MAIL_WasserhahnOffenLogik_DOIF leistung2: -864.666
2024-07-18_09:44:33 Xtender_AC_out Power__W: 261
2024-07-18_09:44:33 MAIL_WasserhahnOffenLogik_DOIF leistung2: 501.0264
2024-07-18_09:47:16 Xtender_AC_out Power__W: 702
2024-07-18_09:47:17 MAIL_WasserhahnOffenLogik_DOIF leistung2: 9735.2064
2024-07-18_09:47:35 Xtender_AC_out Power__W: 678
2024-07-18_09:47:35 MAIL_WasserhahnOffenLogik_DOIF leistung2: -4726.6056
2024-07-18_09:47:45 Xtender_AC_out Power__W: 254
2024-07-18_09:47:45 MAIL_WasserhahnOffenLogik_DOIF leistung2: -149840.8668
2024-07-18_09:57:27 Xtender_AC_out Power__W: 715
2024-07-18_09:57:27 MAIL_WasserhahnOffenLogik_DOIF leistung2: 2852.1252
2024-07-18_09:57:51 Xtender_AC_out Power__W: 637
2024-07-18_09:57:51 MAIL_WasserhahnOffenLogik_DOIF leistung2: -11506.734

Gedacht habe ich, dass diffpsec dir die abweichenden Spitzen von einem über Zeit nivellierten Wert ausgibt.

Im Log, verstehe ich den Zusammenhang dann nicht mehr.

Damian

Es sieht für mich so aus als wäre das Reading Power__W  dem Namen nach Leistung und keine Energie. Dann brauchst du die ganze Rechnerei nicht mit diffpsec und kannst das Reading gleich in der Abfrage angeben: ...[Xtender_AC_out:Power__W] > 500...
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holle75

#32
Hallo Damian, Ja, ganz simpel, wieviel Strom in W GERADE verbraucht wird. Von meiner Anfangsproblematik kommend: Kann ich nicht diffpsec, diff, inc in irgendeiner Weise nutzen, dass ich die "Peaks" als Ergebnis bekomme? So hatte ich diffpsec verstanden ;)

Also Grundverbrauch, der über Nacht sehr gleichbleibend ist, plus X für eine bestimmte Zeit. Wobei mir hier X (ohne die Zeit) erstmal grob reichen würde. X würde ich dann gerne auswerten.

Sorry, euch hier mit meinem Missverständnis in die Irre geführt zu haben.


Damian

Warum willst du nicht direkt Power__W als aktuelle Leistungsaufnahme nehmen? Da sind doch alle "Peaks" drin?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holle75

Weil ich den einen "Pumpen-Peak" abfangen muss. Der Grundverbrauch kann ja irgendwo liegen.

Ich kann also nicht auf irgendeinen aktuellen Verbrauch triggern. Schau mal hier -> https://forum.fhem.de/index.php?topic=138626.msg1316007#msg1316007 , da ist die Problematik beschrieben.

Und alle hier mitdenkenden haben insofern Recht, dass ich es mir unnötig schwer mache ;) ... Stromzähler an die Pumpe und es wäre wesentlich einfacher. Nur dass die Pumpe 100m entfernt vom Rest der Elektrik geschaltet wird und das stromliefernde Kabel weitergeht und noch andere Verbraucher versorgt. Und ich dort nicht einfach messen kann.

Deswegen fand ich den Ansatz die Differenz (als Peaks) als Trigger zu nehmen recht schlau. Nur braucht man dafür ein Device, was "Differenz kann"

Damian

OK. Das leistet die Definition nicht, sie zählt lediglich die Verbräuche über einem festen Wert, hier 500 Watt. Mit avg https://fhem.de/commandref_DE.html#DOIF_Reading_Funktionen  könntest du den Verbrauch über einen bestimmten Zeitraum mitteln und so zu einer Grundlast kommen und diese dann abziehen. Aber auch da stecken beliebig viele Tücken drin.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holle75