Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt

Begonnen von John, 08 April 2013, 22:11:55

Vorheriges Thema - Nächstes Thema

satprofi

Hallo@all.
Geniales Modul, was ich gerade für meinen Solarlader einsetzen will. Start/Stop klappt schon mal, aber jetzt bräuchte ich einen Lösungsansatz wie ich die Ah errechne. Ladestrom ist konstant, Ladeschlussspannung lese ich mit weiteren Kontakt aus.

gruss
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

satprofi

Hallo.
Habe dein Modul jetzt für meine PV-Anlage angepasst.
Ich messe die Ladedauer der Batterien, diesen Wert übergebe ich um 18:00h einem Dummy. Dieser Wert wird dann von einem DOIF abgefragt und steuert meinen Netzschütz , der den WR zum speisen aus Batterie anregt.

Nochmals vielen Dank für dein Modul.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Bartimaus

#227
Sodele,


ich lese jetzt die Brennerstarts mit einem FS20-KSE aus. Sobald der Brenner startet, meldet der KSE ein "on"und schreibt es ins LOG.. Soweit so gut. Habe jetzt aus der Wiki alle Readings etc. gesetzt
Mal sehen wie es jetzt funktioniert. Mit dem Plot haperts noch.


Edit: Plot & ReadingsGroup funktionieren nun auch. Bin glücklich. Vielen Dank !!!
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

knxfreund13

Hallo John,

mich würde interessieren ob dieses nette Tool auch mit einem Cube geht ? Denn ich habe das Problem, dass bei mir die Kontakte mit den Ventilen gepairt sind! Da alles mit dem Cube gemacht wurde. Der ist nur in fhem eingebaut und triggert alle 10 min die Informationen.

Gruß
bis bald
Frieder

John

Hi Frieder,

der HourCounter "lebt" von den Events:
a. Nur wenn diese existieren ist er nutzbar.
b. Wenn du die Zeitdauer zwischen 2 Ereignissen messen willst, müssen diese synchron mit dem physikalischen Ereignis gefeuert werden

Das ist natürlich nicht gegeben, wenn du den Cube, nur alle 10 Minuten pollst.
Beim CUL ist das anders. Er gibt die Infos sofort an FHEM weiter, wenn er diese empfängt.
Das alles ist aber nicht das Problem vom HourCounter, sondern von der vorgelagerten Erfassungs-Ebene.

Schau dir im Event-Monitor das Timing der Events an, die du für den HourCounter vorsiehst, um die Zeit-Synchronizität zu beurteilen.


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Bartimaus

Zitat von: pappn am 30 August 2014, 14:13:56
Der Tankinhalt wird im Modul 99_UtilsHourCounter_CE einmal am Tag (bei Tageswechsel) berechnet.
Zeile 143:my $appTanklevel = ReadingsVal ($name,'appTanklevel',0 )-$pulseTimePerDay*0.000630901964;

Der Wert 0.000630901964 ist dabei der Oelverbrauch je Sekunde und muss von dir an deine Gegebenheiten angepasst werden.
Den gleichen Wert findest du auch in attr Brenneruebersicht_3 valueFormat der Readingsgroup Definitionen. Hier ist er dann auch anzupassen.

Den aktuelen Wert für den Tankinhalt kannst du mit setreading <device> <reading> <value> setzen.
Bei mir sieht das aktuell dann so aus:setreading BrennerTest appTanklevel 4456.01856228562

Christof

Cool....

Ein erfüllter Wunsch weckt natürlich neue  ;)
Toll wäre jetzt auch noch, wenn man den Heilzölpreis je Liter eingeben könnte, und im Reading werden die verbrauchten Liter auch in € umgerechnet......
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

John

@all - hourcounter -fans

HourCounter ist nun Bestandteil und offizielles Modul von FHEM.

Dank an alle die durch Anwendung und Hinweise bei der Entwicklung mitgeholfen haben.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

mi.ke

Endlich . . . Klasse !

Vielen Dank noch mal für diese wirkliche Bereicherung
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

mvb

Hallo John,
tolles Modul. Ich möchte damit einen Solarstundenzähler für die LWZ 303 SOL realisieren.
LWZ ist folgendermaßen definiert
# LWZ auslesen und steuern, modul THZ
define LWZ THZ /dev/ttyUSB0@115200
attr LWZ interval_sGlobal 300
attr LWZ interval_sHC1 300
attr LWZ interval_sHistory 86400
attr LWZ room Heizung
attr LWZ userReadings SolarPump {(split ' ',ReadingsVal("LWZ","sGlobal",0))[29]}
define FileLog_LWZ FileLog /var/log/fhem/LWZ-%Y.log LWZ:sGlobal.*
define FileLog_LWZ_HK1 FileLog /var/log/fhem/LWZHK1-%Y.log LWZ:sHC1.*
attr FileLog_LWZ_HK1 room Heizung
define FileLog_LWZ_Hist FileLog /var/log/fhem/LwzHist-%Y.log LWZ:sHistory.*


Den Stundenzähler habe ich (nach dem Lesen Deines Wiki-Beitrages so aufgesetzt: (habe jetzt die Heizkreislaufpumpe benutzt, da bei Solar z.Z. wenig los ist)
#Solarstundentähler
define SolarTime HourCounter LWZ.sglobal:heatingCircuitPump:.1 LWZ.sglobal:heatingCircuitPump:.0
attr SolarTime room Sensor


Aber der Zähler inkrementiert nicht.

sglobal ist ein Reading mit mehreren Werten aus der LWZ, das so aussieht:
outsideTemp: 11 flowTemp: 38.5 returnTemp: 39.1 hotGasTemp: 37.2 dhwTemp: 44.1 flowTempHC2: -60 evaporatorTemp: 27.7 condenserTemp: 41.6 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 rvuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 40 inputVentilatorPower: 40 mainVentilatorPower: 0 outputVentilatorSpeed: 24 inputVentilatorSpeed: 26 mainVentilatorSpeed: 0 outside_tempFiltered: 9.6 relHumidity: 0 dewPoint: 0 P_Nd: 7.37 P_Hd: 14.57 actualPower_Qc: 0 actualPower_Pel: 0 collectorTemp: 43.7 insideTemp: 21.3

Was mache ich falsch?

Danke
Martin


John

Hallo Martin,
schick doch bitte ein event-Log (FHEM-Menüleiste Event-Monitor), dann kann ich beurteilen, warum es nicht funktioniert.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

mvb

Hallo John,

hier der Ausschnitt aus dem Event-Monitor:
2014-10-28 05:46:45 dummy solardummy {Value("SolarPump")}
2014-10-28 05:46:45 THZ LWZ sGlobal: outsideTemp: 5.3 flowTemp: 32.4 returnTemp: 27 hotGasTemp: 69.9 dhwTemp: 38.2 flowTempHC2: -60 evaporatorTemp: -2.7 condenserTemp: 29 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 rvuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 40 inputVentilatorPower: 40 mainVentilatorPower: 60 outputVentilatorSpeed: 16 inputVentilatorSpeed: 27 mainVentilatorSpeed: 17 outside_tempFiltered: 5.8 relHumidity: 0 dewPoint: 0 P_Nd: 3.84 P_Hd: 13.86 actualPower_Qc: -21748 actualPower_Pel: -12856 collectorTemp: 4 insideTemp: 20.5
2014-10-28 05:46:45 THZ LWZ SolarPump: 0


Die Regexp im HourCounter habe ich geändert auf:(ein Stern hat gefehlt, und g -> G)
#Solarstundentähler
define SolarTime HourCounter LWZ.sGlobal.*heatingCircuitPump:.1 LWZ.sGlobal.*heatingCircuitPump:.0
attr SolarTime room Sensor


Gezählt wird aber trotzdem nicht, obwohl Statuswechsel 0 -> 1 -> 0 vorliegen. Die Regexp teste ich mit einem notify zu Solardummy. Das funktioniert, wie an dem Ereignis davor zu sehen ist. (Allerdings ist da der auszuführende FHEM-Code falsch, aber das spielt hier keine Rolle).

Danke

Martin

John

Hallo Martin,
versuchs mal damit:
define SolarTime HourCounter LWZ:.*heatingCircuitPump:.1 LWZ:.*heatingCircuitPump:.0

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

mvb

Hallo John,

habe ich getestet. Bringt leider auch nichts. und auch noch:
.*compressor:.1 .*compressor:.0 was auch nichts bringt, auch wenn es eine andere Regexp ist.
Was tun?

Danke, Martin

John

Hallo Martin,

wir stehen kurz vor der Ziellinie.

Ich habs bei mir nachgestellt und ja, du hast recht, es funktioniert noch nicht.

Es muss so sein:
define SolarTime HourCounter LWZ:.*heatingCircuitPump:.1.* LWZ:.*heatingCircuitPump:.0.*

Also nach der 0 bzw. 1 brauchen wir noch ein ".*".

Danach hat alles bestens funktioniert.
Der HourCounter macht das was er soll er zählt die Flanken und misst Puls- und Pausenzeit.

John

PS: vielleicht magst du den Mitlesenden erklären, warum das Regexp für ON bzw. OFF so aussehen muss.
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

backbone10

#239
Hi,
auch von mir ein fettes DANKE für das Modul !!

Hat schon jemand eine Lösung fürs "erzwingen" der Readings ? Ich denke, das kann ich auch gut verwenden..

LG

Tom

Zitat
John , danke für das umfangreiche Modul. Ich möchte bei einem Punkt vom Juni diesen Jahres noch einmal nachhaken :

Zitat von: John am 03 Juli 2014, 23:41:33

    pulseTimePerDay wird nur nach einer negativen Flanke und nach einem Tageswechsel aktualisiert.
    Ich denke dein Problem habe ich verstanden und werde darüber nachdenken.


Es wäre wirklich schön wenn man mit einem Attribut das aktualiesren der Readings in einem festen Zeitintervall (bsp 300 Sekunden) quasi "erzwingen" könnte.