Knobelaufgabe | frequenter Strombezug

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

Vorheriges Thema - Nächstes Thema

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