Autor Thema: !Gelöst! at oder notify zum Jahreswechsel ausführen lassen  (Gelesen 222 mal)

Offline Shadow3561

  • Full Member
  • ***
  • Beiträge: 280
Hallo,

in meinem Haus visualisiere ich die Verbräuche von Strom, Wasser und Gas.
Um einen Vergleich zum Vorjahr zu haben wäre es schön wenn ich es schaffen würde meine Neujahrsarbeit (händisches eintragen von den Werten in einen Dummy) zu automatisieren.

Ich versuche seit mehreren Tagen eine Lösung zu finden, finde aber nichts, daher die Frage an die Profis.

MfG
« Letzte Änderung: 03 Oktober 2019, 21:20:23 von Shadow3561 »

Offline Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 3486
Antw:at oder notify zum Jahreswechsel ausführen lassen
« Antwort #1 am: 03 Oktober 2019, 18:07:18 »
Hi,

ich mache das täglich / wöchentlich und monatlich über ein DOIF und die myutils.
Wasser, Strom und Pellets.

kannst Dir bestimmt für dich ableiten. :)
DOIF:
defmod Verbrauch_Berechnung DOIF ([23:59:45]) {AverageDay()}\
DOELSEIF ([23:59:55] and ((strftime "%d",localtime time+86400) eq "01")) {AverageMonth()}\
DOELSEIF ([00:04:00]) {VerbrauchTag()}\
DOELSEIF ([00:04:15|Sa]) {VerbrauchWoche()}\
DOELSEIF ([00:04:30] and $mday==1) {VerbrauchMonat()}\
## Hiermit werden die Routinen aus der MyUtils aufgerufen
attr Verbrauch_Berechnung do always

myutils:
############################################################
########      Verbrauchswerte TAG               ############
############################################################

sub VerbrauchTag() {

# TAGESVERBRAUCH PELLETS
my $wert1=ReadingsVal("ETA_Vorrat_1_Silo","Silo_Vorrat","--"); # einlesen Silo-Vorrat
my $wert2=ReadingsVal("ETA_Vorrat_2_Kessel","Vorrat_2_Kessel","--"); # einlesen Kessel-Vorrat
my $wert3=ReadingsVal("Verbrauch","Pelletslager","--"); # einlesen Bestand Vortag
my $wert4=ReadingsVal("Energiekosten","Pelletspreis","--"); # einlesen Pelletpreis
my $wert5=$wert1+$wert2; # berechnen Gesamt-Vorrat
my $wert6=$wert3-$wert5; # berechnen Tagesverbrauch (Bestand Vortag minus Gesamt-Vorrat)
my $wert7=($wert4/1000)*$wert6; # berechnen Tageskosten (Verbrauch mal Kilo-Preis)
my $wert8=round($wert7,2); # runden der Tagskosten auf cent
fhem("setreading Verbrauch Pelletslager $wert5"); # setzen neuer Bestand
fhem("setreading Verbrauch Pelletsverbrauch $wert6"); # setzen Tagesverbrauch
fhem("setreading Energiekosten PelletsKostenTag $wert8"); # setzen Tageskosten

# TAGESVERBRAUCH STROM GESAMT
my $wert9=ReadingsVal("Stromzaehler","total_consumption","--"); # einlesen Zählerstand
my $wert10=$wert9/1000; # umrechnen Zählerstand Wh zu KWh
my $wert11=ReadingsVal("Verbrauch","Stromzaehler","--"); # einlesen Zählerstand Vortag
my $wert12=ReadingsVal("Energiekosten","Strompreis","--"); # einlesen Strompreis
my $wert13=$wert10-$wert11; # berechnen Tagesverbrauch
my $wert14=round($wert13,1); # runden Tagesverbrauch auf eine Stelle nach Komma
my $wert15=$wert13*$wert12; # berechnen Tageskosten
my $wert16=round($wert15,2); # runden Tageskosten auf cent
fhem("setreading Verbrauch Stromzaehler $wert10"); # setzen KWh Zählerstand
fhem("setreading Verbrauch Stromverbrauch $wert14"); # setzen Tagesverbrauch gerundet
fhem("setreading Energiekosten StromKostenTag $wert16"); # setzen Tageskosten gerundet

# TAGESVERBRAUCH POWERMETER 1 - HEIZUNG
my $wert17=ReadingsVal("HM_Powermeter_1_Pwr","energyCalc","--"); # einlesen Zählerstand
my $wert18=$wert17/1000; # umrechnen Zählerstand Wh zu KWh
my $wert19=ReadingsVal("Verbrauch","HM_Powermeter_1","--"); # einlesen Zählerstand Vortag
my $wert20=$wert18-$wert19; # berechnen Tagesverbrauch
my $wert21=round($wert20,1); # runden Tagesverbrauch auf eine Stelle nach Komma
my $wert22=$wert20*$wert12; # berechnen Tageskosten
my $wert23=round($wert22,2); # runden Tageskosten auf cent
fhem("setreading Verbrauch HM_Powermeter_1 $wert18"); # setzen Zählerstand
fhem("setreading Verbrauch HM_Powermeter_1_VerbrauchTag $wert21"); # setzen Tagesverbrauch gerundet
fhem("setreading Energiekosten HM_Powermeter_1_KostenTag $wert23"); # setzen Tageskosten gerundet

# TAGESVERBRAUCH POWERMETER 2 - EDV
my $wert24=ReadingsVal("HM_Powermeter_2_Pwr","energyCalc","--"); # einlesen Zählerstand
my $wert25=$wert24/1000; # umrechnen Zählerstand Wh zu KWh
my $wert26=ReadingsVal("Verbrauch","HM_Powermeter_2","--"); # einlesen Zählerstand Vortag
my $wert27=$wert25-$wert26; # berechnen Tagesverbrauch
my $wert28=round($wert27,1); # runden Tagesverbrauch auf eine Stelle nach Komma
my $wert29=$wert27*$wert12; # berechnen Tageskosten
my $wert30=round($wert29,2); # runden Tageskosten auf cent
fhem("setreading Verbrauch HM_Powermeter_2 $wert25"); # setzen Zählerstand
fhem("setreading Verbrauch HM_Powermeter_2_VerbrauchTag $wert28"); # setzen Tagesverbrauch gerundet
fhem("setreading Energiekosten HM_Powermeter_2_KostenTag $wert30"); # setzen Tageskosten gerundet
 
# TAGESVERBRAUCH POWERMETER 3 - WASSERBETT
my $wert31=ReadingsVal("HM_Powermeter_3_Pwr","energyCalc","--"); # einlesen Zählerstand
my $wert32=$wert31/1000; # umrechnen Zählerstand Wh zu KWh
my $wert33=ReadingsVal("Verbrauch","HM_Powermeter_3","--"); # einlesen Zählerstand Vortag
my $wert34=$wert32-$wert33; # berechnen Tagesverbrauch
my $wert35=round($wert34,1); # runden Tagesverbrauch auf eine Stelle nach Komma
my $wert36=$wert34*$wert12; # berechnen Tageskosten
my $wert37=round($wert36,2); # runden Tageskosten auf cent
fhem("setreading Verbrauch HM_Powermeter_3 $wert32"); # setzen Zählerstand
fhem("setreading Verbrauch HM_Powermeter_3_VerbrauchTag $wert35"); # setzen Tagesverbrauch gerundet
fhem("setreading Energiekosten HM_Powermeter_3_KostenTag $wert37"); # setzen Tageskosten gerundet

# TAGESKOSTEN HEIZUNG GESAMT
my $wert38=$wert7+$wert22; # summieren Tagesgesamtkosten der Heizung
my $wert39=round($wert38,2); # runden Tagesgesamtkosten der Heizung
fhem("setreading Energiekosten HeizkostenGesamtTag $wert39"); # setzen Tagesgesamtkosten der Heizung gerundet

# TAGESVERBRAUCH WASSER
my $wert40=ReadingsVal("SoftIQ","consumptionDay","0"); # einlesen Tagesverbrauch 0 Grad dH
my $wert41=ReadingsVal("SoftIQ","consumptionWeek","0"); # einlesen Wochenverbrauch 0 Grad dH
my $wert42=ReadingsVal("SoftIQ","consumptionMonth","0"); # einlesen Monatsverbrauch 0 Grad dH
my $wert43=$wert40/16*20; # berechnen Tagesverbrauch 4 Grad dH
my $wert44=$wert40+$wert41; # Addieren Tagesverbrauch zu Wochenverbrauch
my $wert45=$wert40+$wert42; # Addieren Tagesverbrauch zu Monatsverbrauch
my $wert46=ReadingsVal("Energiekosten","FrischwasserPreis","--"); # einlesen FrischwasserPreis
my $wert47=ReadingsVal("Energiekosten","AbwasserPreis","--"); # einlesen AbwasserPreis
my $wert48=$wert43*(($wert46+$wert47)/1000); # berechnen Tageskosten
my $wert49=round($wert48,2); # runden Tageskosten auf cent
fhem("setreading Verbrauch WasserVerbrauchTag $wert43"); # setzen Wasserverbrauch Tag
fhem("setreading SoftIQ consumptionWeek $wert44"); # setzen Zählerstand Wasser Woche
fhem("setreading SoftIQ consumptionMonth $wert45"); # setzen Zählerstand Wasser Woche
fhem("setreading Energiekosten WasserKostenTag $wert49"); # setzen Tageskosten gerundet

WriteStatefile()  }


############################################################
########      Verbrauchswerte WOCHE             ############
############################################################

sub VerbrauchWoche() {

# WOCHENVERBRAUCH PELLETS
my $wert1=ReadingsVal("ETA_Vorrat_1_Silo","Silo_Vorrat","--"); # einlesen Silo-Vorrat
my $wert2=ReadingsVal("ETA_Vorrat_2_Kessel","Vorrat_2_Kessel","--"); # einlesen Kessel-Vorrat
my $wert3=ReadingsVal("Verbrauch","PelletslagerMo","--"); # einlesen Bestand Vorwoche
my $wert4=ReadingsVal("Energiekosten","Pelletspreis","--"); # einlesen Pelletpreis
my $wert5=$wert1+$wert2; # berechnen Gesamt-Vorrat
my $wert6=$wert3-$wert5; # berechnen Wochenverbrauch (Bestand Vorwoche minus Gesamt-Vorrat)
my $wert7=($wert4/1000)*$wert6; # berechnen Wochenkosten (Verbrauch mal Kilo-Preis)
my $wert8=round($wert7,2); # runden der Wochenkosten auf cent
fhem("setreading Verbrauch PelletslagerMo $wert5"); # setzen neuer WochenBestand
fhem("setreading Verbrauch PelletsverbrauchWoche $wert6"); # setzen Wochenverbrauch
fhem("setreading Energiekosten PelletsKostenWoche $wert8"); # setzen Wochenkosten

# WOCHENVERBRAUCH STROM GESAMT
my $wert9=ReadingsVal("Stromzaehler","total_consumption","--"); # einlesen Zählerstand
my $wert10=$wert9/1000; # umrechnen Zählerstand Wh zu KWh
my $wert11=ReadingsVal("Verbrauch","StromzaehlerMo","--"); # einlesen Zählerstand Vorwoche
my $wert12=ReadingsVal("Energiekosten","Strompreis","--"); # einlesen Strompreis
my $wert13=$wert10-$wert11; # berechnen Wochenverbrauch
my $wert14=round($wert13,1); # runden Wochenverbrauch auf eine Stelle nach Komma
my $wert15=$wert13*$wert12; # berechnen Wochenkosten
my $wert16=round($wert15,2); # runden Wochenkosten auf cent
fhem("setreading Verbrauch StromzaehlerMo $wert10"); # setzen KWh ZählerstandWoche
fhem("setreading Verbrauch StromverbrauchWoche $wert14"); # setzen Wochenverbrauch gerundet
fhem("setreading Energiekosten StromKostenWoche $wert16"); # setzen Wochenkosten gerundet

# TAGESVERBRAUCH POWERMETER 1 - HEIZUNG
my $wert17=ReadingsVal("HM_Powermeter_1_Pwr","energyCalc","--"); # einlesen Zählerstand
my $wert18=$wert17/1000; # umrechnen Zählerstand Wh zu KWh
my $wert19=ReadingsVal("Verbrauch","HM_Powermeter_1_Fr","--"); # einlesen Zählerstand Vorwoche
my $wert20=$wert18-$wert19; # berechnen Wochenverbrauch
my $wert21=round($wert20,1); # runden Wochenverbrauch auf eine Stelle nach Komma
my $wert22=$wert20*$wert12; # berechnen Wochenkosten
my $wert23=round($wert22,2); # runden Wochenosten auf cent
fhem("setreading Verbrauch HM_Powermeter_1_Fr $wert18"); # setzen Zählerstand Woche
fhem("setreading Verbrauch HM_Powermeter_1_VerbrauchWoche $wert21"); # setzen Wochenverbrauch gerundet
fhem("setreading Energiekosten HM_Powermeter_1_KostenWoche $wert23"); # setzen Wochenkosten gerundet

# WOCHENERBRAUCH POWERMETER 2 - EDV
my $wert24=ReadingsVal("HM_Powermeter_2_Pwr","energyCalc","--"); # einlesen Zählerstand
my $wert25=$wert24/1000; # umrechnen Zählerstand Wh zu KWh
my $wert26=ReadingsVal("Verbrauch","HM_Powermeter_2_Fr","--"); # einlesen Zählerstand Vorwoche
my $wert27=$wert25-$wert26; # berechnen Wochenverbrauch
my $wert28=round($wert27,1); # runden Wochenverbrauch auf eine Stelle nach Komma
my $wert29=$wert27*$wert12; # berechnen Wochenkosten
my $wert30=round($wert29,2); # runden Wochenkosten auf cent
fhem("setreading Verbrauch HM_Powermeter_2_Fr $wert25"); # setzen Zählerstand Woche
fhem("setreading Verbrauch HM_Powermeter_2_VerbrauchWoche $wert28"); # setzen Wochenverbrauch gerundet
fhem("setreading Energiekosten HM_Powermeter_2_KostenWoche $wert30"); # setzen Wochenkosten gerundet

# TAGESVERBRAUCH POWERMETER 3 - WASSERBETT
my $wert31=ReadingsVal("HM_Powermeter_3_Pwr","energyCalc","--"); # einlesen Zählerstand
my $wert32=$wert31/1000; # umrechnen Zählerstand Wh zu KWh
my $wert33=ReadingsVal("Verbrauch","HM_Powermeter_3_Fr","--"); # einlesen Zählerstand Vorwoche
my $wert34=$wert32-$wert33; # berechnen Wochenverbrauch
my $wert35=round($wert34,1); # runden Wochenverbrauch auf eine Stelle nach Komma
my $wert36=$wert34*$wert12; # berechnen Wochenkosten
my $wert37=round($wert36,2); # runden Wochenkosten auf cent
fhem("setreading Verbrauch HM_Powermeter_3_Fr $wert32"); # setzen Zählerstand Woche
fhem("setreading Verbrauch HM_Powermeter_3_VerbrauchWoche $wert35"); # setzen Wochenverbrauch gerundet
fhem("setreading Energiekosten HM_Powermeter_3_KostenWoche $wert37"); # setzen Wochenkosten gerundet

# WOCHENKOSTEN HEIZUNG GESAMT
my $wert38=$wert7+$wert22; # summieren Wochengesamtkosten der Heizung
my $wert39=round($wert38,2); # runden Wochengesamtkosten der Heizung
fhem("setreading Energiekosten HeizkostenGesamtWoche $wert39"); # setzen Wochengesamtkosten der Heizung gerundet

# WOCHENVERBRAUCH WASSER
my $wert40=ReadingsVal("SoftIQ","consumptionWeek","0"); # einlesen Wochenverbrauch 0 Grad dH
my $wert41=$wert40/16*20; # berechnen Wochenverbrauch 4 Grad dH
my $wert42=ReadingsVal("Energiekosten","FrischwasserPreis","--"); # einlesen FrischwasserPreis
my $wert43=ReadingsVal("Energiekosten","AbwasserPreis","--"); # einlesen AbwasserPreis
my $wert44=$wert41*(($wert42+$wert43)/1000); # berechnen Wochenkosten
my $wert45=round($wert44,2); # runden Wochenkosten auf cent
fhem("setreading Verbrauch WasserVerbrauchWoche $wert41"); # setzen Wasserverbrauch Woche
fhem("setreading Energiekosten WasserKostenWoche $wert45"); # setzen Tageskosten gerundet
fhem("setreading SoftIQ consumptionWeek 0"); # Rücksetzen Wasserverbrauch Woche

WriteStatefile()  }


############################################################
########      Verbrauchswerte MONAT             ############
############################################################

sub VerbrauchMonat() {

# MONATSVERBRAUCH PELLETS
my $wert1=ReadingsVal("ETA_Vorrat_1_Silo","Silo_Vorrat","--"); # einlesen Silo-Vorrat
my $wert2=ReadingsVal("ETA_Vorrat_2_Kessel","Vorrat_2_Kessel","--"); # einlesen Kessel-Vorrat
my $wert3=ReadingsVal("Verbrauch","Pelletslager1ter","--"); # einlesen Bestand Vormonat
my $wert4=ReadingsVal("Energiekosten","Pelletspreis","--"); # einlesen Pelletpreis
my $wert5=$wert1+$wert2; # berechnen Gesamt-Vorrat
my $wert6=$wert3-$wert5; # berechnen Monatsverbrauch (Bestand Vormonat minus Gesamt-Vorrat)
my $wert7=($wert4/1000)*$wert6; # berechnen Monatskosten (Verbrauch mal Kilo-Preis)
my $wert8=round($wert7,2); # runden der Monatskosten auf cent
fhem("setreading Verbrauch Pelletslager1ter $wert5"); # setzen neuer MonatsBestand
fhem("setreading Verbrauch PelletsverbrauchMonat $wert6"); # setzen Monatsverbrauch
fhem("setreading Energiekosten PelletsKostenMonat $wert8"); # setzen Monatskosten

# MONATSVERBRAUCH STROM GESAMT
my $wert9=ReadingsVal("Stromzaehler","total_consumption","--"); # einlesen Zählerstand
my $wert10=$wert9/1000; # umrechnen Zählerstand Wh zu KWh
my $wert11=ReadingsVal("Verbrauch","Stromzaehler1ter","--"); # einlesen Zählerstand Vormonat
my $wert12=ReadingsVal("Energiekosten","Strompreis","--"); # einlesen Strompreis
my $wert13=$wert10-$wert11; # berechnen Monatsverbrauch
my $wert14=round($wert13,1); # runden Monatsverbrauch auf eine Stelle nach Komma
my $wert15=$wert13*$wert12; # berechnen Monatskosten
my $wert16=round($wert15,2); # runden Monatskosten auf cent
fhem("setreading Verbrauch Stromzaehler1ter $wert10"); # setzen ZählerstandMonat
fhem("setreading Verbrauch StromverbrauchMonat $wert14"); # setzen Monatsverbrauch gerundet
fhem("setreading Energiekosten StromKostenMonat $wert16"); # setzen Monatskosten gerundet

# MONATSVERBRAUCH POWERMETER 1 - HEIZUNG
my $wert17=ReadingsVal("HM_Powermeter_1_Pwr","energyCalc","--"); # einlesen Zählerstand
my $wert18=$wert17/1000; # umrechnen Zählerstand Wh zu KWh
my $wert19=ReadingsVal("Verbrauch","HM_Powermeter_1_1ter","--"); # einlesen Zählerstand Vormonat
my $wert20=$wert18-$wert19; # berechnen Monatsverbrauch
my $wert21=round($wert20,1); # runden Monatsverbrauch auf eine Stelle nach Komma
my $wert22=$wert20*$wert12; # berechnen Monatskosten
my $wert23=round($wert22,2); # runden Monatskosten auf cent
fhem("setreading Verbrauch HM_Powermeter_1_1ter $wert18"); # setzen Zählerstand Monat
fhem("setreading Verbrauch HM_Powermeter_1_VerbrauchMonat $wert21"); # setzen Monatsverbrauch gerundet
fhem("setreading Energiekosten HM_Powermeter_1_KostenMonat $wert23"); # setzen Monatskosten gerundet

# MONATSVERBRAUCH POWERMETER 2 - EDV
my $wert24=ReadingsVal("HM_Powermeter_2_Pwr","energyCalc","--"); # einlesen Zählerstand
my $wert25=$wert24/1000; # umrechnen Zählerstand Wh zu KWh
my $wert26=ReadingsVal("Verbrauch","HM_Powermeter_2_1ter","--"); # einlesen Zählerstand Vormonat
my $wert27=$wert25-$wert26; # berechnen Monatsverbrauch
my $wert28=round($wert27,1); # runden Monatsverbrauch auf eine Stelle nach Komma
my $wert29=$wert27*$wert12; # berechnen Monatskosten
my $wert30=round($wert29,2); # runden Monatskosten auf cent
fhem("setreading Verbrauch HM_Powermeter_2_1ter $wert25"); # setzen Zählerstand Monat
fhem("setreading Verbrauch HM_Powermeter_2_VerbrauchMonat $wert28"); # setzen Monatsverbrauch gerundet
fhem("setreading Energiekosten HM_Powermeter_2_KostenMonat $wert30"); # setzen Monatskosten gerundet

# MONATSVERBRAUCH POWERMETER 3 - WASSERBETT
my $wert31=ReadingsVal("HM_Powermeter_3_Pwr","energyCalc","--"); # einlesen Zählerstand
my $wert32=$wert31/1000; # umrechnen Zählerstand Wh zu KWh
my $wert33=ReadingsVal("Verbrauch","HM_Powermeter_3_1ter","--"); # einlesen Zählerstand Vormonat
my $wert34=$wert32-$wert33; # berechnen Monatsverbrauch
my $wert35=round($wert34,1); # runden Monatsverbrauch auf eine Stelle nach Komma
my $wert36=$wert34*$wert12; # berechnen Monatskosten
my $wert37=round($wert36,2); # runden Monatskosten auf cent
fhem("setreading Verbrauch HM_Powermeter_3_1ter $wert32"); # setzen Zählerstand Monat
fhem("setreading Verbrauch HM_Powermeter_3_VerbrauchMonat $wert35"); # setzen Monatsverbrauch gerundet
fhem("setreading Energiekosten HM_Powermeter_3_KostenMonat $wert37"); # setzen Monatskosten gerundet

# MONATSNKOSTEN HEIZUNG GESAMT
my $wert38=$wert7+$wert22; # summieren Monatsgesamtkosten der Heizung
my $wert39=round($wert38,2); # runden Monatsgesamtkosten der Heizung
fhem("setreading Energiekosten HeizkostenGesamtMonat $wert39"); # setzen Monatsgesamtkosten der Heizung gerundet

# MONATSVERBRAUCH WASSER
my $wert40=ReadingsVal("SoftIQ","consumptionMonth","0"); # einlesen Monatsverbrauch 0 Grad dH
my $wert41=$wert40/16*20; # berechnen Monatsverbrauch 4 Grad dH
my $wert42=ReadingsVal("Energiekosten","FrischwasserPreis","--"); # einlesen FrischwasserPreis
my $wert43=ReadingsVal("Energiekosten","AbwasserPreis","--"); # einlesen AbwasserPreis
my $wert44=$wert41*(($wert42+$wert43)/1000); # berechnen Monatskosten
my $wert45=round($wert44,2); # runden Monatskosten auf cent
fhem("setreading Verbrauch WasserVerbrauchMonat $wert41"); # setzen Wasserverbrauch Monat
fhem("setreading Energiekosten WasserKostenMonat $wert45"); # setzen Tageskosten gerundet
fhem("setreading SoftIQ consumptionMonth 0"); # Rücksetzen Wasserverbrauch Woche

WriteStatefile()  }


############################################################
########      Average MONTH                     ############
############################################################

sub AverageMonth() {

my $wert1=ReadingsVal("Aussen_Temp","temperature_max_month","--");
my $wert2=ReadingsVal("Aussen_Temp","temperature_min_month","--");
my $wert3=ReadingsVal("Aussen_Temp","temperature_avg_month","--");
fhem("setreading Verbrauch Aussentemp_max_month $wert1");
fhem("setreading Verbrauch Aussentemp_min_month $wert2");
fhem("setreading Verbrauch Aussentemp_avg_month $wert3");

WriteStatefile()  }


############################################################
########      Average DAY                       ############
############################################################

sub AverageDay() {

my $wert1=ReadingsVal("Aussen_Temp","temperature_avg_day","--");
my $wert2=ReadingsVal("Aussen_Temp","temperature_min_day","--");
my $wert3=ReadingsVal("Aussen_Temp","temperature_max_day","--");
fhem("setreading Verbrauch Aussentemp_avg_day $wert1");
fhem("setreading Verbrauch Aussentemp_min_day $wert2");
fhem("setreading Verbrauch Aussentemp_max_day $wert3");

WriteStatefile()  }

Offline Shadow3561

  • Full Member
  • ***
  • Beiträge: 280
Antw:at oder notify zum Jahreswechsel ausführen lassen
« Antwort #2 am: 03 Oktober 2019, 18:14:31 »
Danke dafür.
Die Monatlichen oder Wöchentlichen Aufgaben sind nicht mein Problem, die habe ich bereits geschafft.

Aber jedes Jahr am 31.12. um 23:59:59 Uhr die Werte der jährliche Verbräuche in einen Dummy „Verbrauch Vorjahr“ mit einem notify oder at zu schreiben ist mir bisher nicht gelungen.
Habe die Dokus dazu mehrfach gelesen. Entweder bin ich blind oder Hirnleistungstechnisch zu eingeschränkt um es zu blicken.


Offline Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 3486
Antw:at oder notify zum Jahreswechsel ausführen lassen
« Antwort #3 am: 03 Oktober 2019, 18:27:26 »
Na vom Prinzip ist es das gleiche, musst nur für jährlich umbauen.
Ob dann im notify/doif oder myutils spielt keine Rolle.

Gesendet von meinem S60 mit Tapatalk


Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6739
Antw:at oder notify zum Jahreswechsel ausführen lassen
« Antwort #4 am: 03 Oktober 2019, 19:10:40 »
z. B.

DOIF ([23:59] and $md eq "12-31") (set ...)
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline Shadow3561

  • Full Member
  • ***
  • Beiträge: 280
Antw:at oder notify zum Jahreswechsel ausführen lassen
« Antwort #5 am: 03 Oktober 2019, 19:35:00 »
Danke Damian.
Warum nur habe ich nicht gleich an ein DOIF gedacht. Hatte mich wohl zu sehr aufs at versteift.

Wäre es so richtig?


DEF
([23:59] and $md eq "12-31") ("setreading Stromzaehler_WN Vorjahr [ReadingsNum("Stromzaehler_WN", "Jahresverbrauch", "0")]")


FHEM zeigt beim speichern der DEF jedenfalls keinen Fehler
« Letzte Änderung: 03 Oktober 2019, 19:41:48 von Shadow3561 »

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6739
Antw:at oder notify zum Jahreswechsel ausführen lassen
« Antwort #6 am: 03 Oktober 2019, 19:51:54 »
Danke Damian.
Warum nur habe ich nicht gleich an ein DOIF gedacht. Hatte mich wohl zu sehr aufs at versteift.

Wäre es so richtig?


DEF
([23:59] and $md eq "12-31") ("setreading Stromzaehler_WN Vorjahr [ReadingsNum("Stromzaehler_WN", "Jahresverbrauch", "0")]")


FHEM zeigt beim speichern der DEF jedenfalls keinen Fehler

eher

([23:59] and $md eq "12-31") ("setreading Stromzaehler_WN Vorjahr [Stromzaehler_WN:Jahresverbrauch:d]")
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline Zrrronggg!

  • Hero Member
  • *****
  • Beiträge: 2276
    • www.fresse.de
Antw:at oder notify zum Jahreswechsel ausführen lassen
« Antwort #7 am: 03 Oktober 2019, 20:36:02 »
Nur mal am Rande: mit "at" wäre zumindest ein absolutes Datum kein Problem:

define irgendwas_19 at 2019-12-31T23:59:59 set…
Mit 5-7 Defs kann man da locker die nächsten Jahre abdecken (lönger denke ich eh nicht, weil ich bis dahin sowieso alles wieder ganz anders mache), war mir einfacher als irgendwelche DOIF/if checks, ob heute der Tag der Tage ist.
Ich lösche die "verbrauchten" defs hinterher.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Offline Shadow3561

  • Full Member
  • ***
  • Beiträge: 280
Antw:at oder notify zum Jahreswechsel ausführen lassen
« Antwort #8 am: 03 Oktober 2019, 21:19:25 »
Mit dem notify war mir bewusst. Wollte es aber nur einmal anlegen und dann quasi vergessen.
Für Gas und Wasser benutze ich das Modul Hourcounter, hier ist es kein Problem den Vorjahresverbrauch per userreading in eine readingsgroup zu packen.

Den Stromzähler lese ich per Modbus aus und dieser liefert mir den genauen Zählerstand. Daher der Umweg über Dummy.

Danke an alle.

Offline honkmasta

  • New Member
  • *
  • Beiträge: 23
Antw:!Gelöst! at oder notify zum Jahreswechsel ausführen lassen
« Antwort #9 am: 03 Oktober 2019, 22:05:43 »
Moin, ich weiß nicht ob es anwendbar ist aber ich benutzte für diese Aufgaben das Statistics Modul. Dieses kann Zählerstände, Schaltzeiten usw schön nach Stunde, Tag, Monat und Jahr aggregierten. Gruß


Gesendet von iPhone mit Tapatalk Pro

 

decade-submarginal