FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Kai-Alfonso am 18 September 2019, 12:59:34

Titel: Fhem stürzt ab nach Update
Beitrag von: Kai-Alfonso am 18 September 2019, 12:59:34
Moin,

ich habe heute mal wieder ein Update gemacht und seitdem stürzt Fhem immer ab und startet sich neu. Ich habe ein Doif als Übertäter ausfindig gemacht, was bis dato einwandfrei seit 2 Jahren lief:

([+60])
({use Date::Calc qw(Delta_Days);;
my $start_datum = ReadingsVal("doif_Stromkosten1","Start_Abrechnungsperiode","");;
my $tag = substr($start_datum, 0, 2);;
my $monat = substr($start_datum, 3, 2);;

my ($day,$month,$year) = (localtime)[3,4,5];;

my $year1 = sprintf '%04d',$year+1900;;
my $month1 = sprintf '%02d',$month+1;;
my $jahr = 0;

if ($month1 == 12 ) {
$jahr  = $year1;
}
else {
$jahr  = $year1 - 1;
}

my $day1 = sprintf '%02d',$day;;
my $anzahl_tage = Delta_Days($jahr,$monat,$tag,$year1,$month1,$day1);;
fhem ("setreading doif_Stromkosten1 Tage $anzahl_tage")
})



Hier berechne ich die Anzahl der Tage bis Tag x - ok, mit Blick darauf muss das doif auch nicht alle 60 sekunden laufen. Anyway - jedenfalls stürzt fhem immer ab mit der Meldung

Can't use string ("doif_Stromkosten1_uiTable_c_3_1_"...) as an ARRAY ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 2218.


Also muss es irgendwas mit dem Perl  Code zu tun haben. Vielleicht kann jemand mal helfen?
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 18 September 2019, 13:09:12
Es hat etwas mit uiTable-Attribut zu tun. Hast du DOIFs mit dem Attribut im Einsatz?
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Kai-Alfonso am 18 September 2019, 13:10:37
Zitat von: Damian am 18 September 2019, 13:09:12
Es hat etwas mit uiTable-Attribut zu tun. Hast du DOIFs mit dem Attribut im Einsatz?

Ja, genau das doif nutzt ui Table

"Arbeitspreis (Cent/kWh)"|([$SELF:Arbeitspreis])
"Grundpreis (Euro/Jahr)"|([$SELF:Grundpreis])
"Start Abrechnungsperiode"|([$SELF:Start_Abrechnungsperiode])
"Abschlag (Euro/Monat)"|([$SELF:Abschlag])
"Tage Abrechnugsperiode"|[$SELF:Tage]
"Stromverbrauch Hochrechnung"| sprintf("%.f kWh", ([myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter])/[$SELF:Tage]*365)
"Stromverbrauch bis jetzt"|sprintf("%.2f kWh" , [myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter])
"Stromkosten bis jetzt"|sprintf("%.2f Euro" , [myElectricityCalculator:Stromzaehler_total_consumption_EnergyCostMeter])
"Stromkosten Hochrechnung"| sprintf("%.2f Euro", (([myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter])/[$SELF:Tage]*365)*([$SELF:Arbeitspreis]/100)+[$SELF:Grundpreis])
"Nachzahlung/Gutschrift"| sprintf("%.2f Euro", ([myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter]/[$SELF:Tage]*365)*([$SELF:Arbeitspreis]/100)+[$SELF:Grundpreis]-([$SELF:Abschlag]*12))
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 18 September 2019, 13:13:51
Muss ich mir genau anschauen, wenn ich heute Abend zuhause bin.
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Kai-Alfonso am 18 September 2019, 13:18:01
Zitat von: Damian am 18 September 2019, 13:13:51
Muss ich mir genau anschauen, wenn ich heute Abend zuhause bin.

Super, danke Dir  8) 8)
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 18 September 2019, 13:44:59
Zitat von: Kai-Alfonso am 18 September 2019, 13:18:01
Super, danke Dir  8) 8)

Poste bitte list von diesem DOIF
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Kai-Alfonso am 18 September 2019, 13:51:15
Zitat von: Damian am 18 September 2019, 13:44:59
Poste bitte list von diesem DOIF

gerne

Internals:
   DEF        ([+60])
({use Date::Calc qw(Delta_Days);;
my $start_datum = ReadingsVal("doif_Stromkosten1","Start_Abrechnungsperiode","");;
my $tag = substr($start_datum, 0, 2);;
my $monat = substr($start_datum, 3, 2);;

my ($day,$month,$year) = (localtime)[3,4,5];;

my $year1 = sprintf '%04d',$year+1900;;
my $month1 = sprintf '%02d',$month+1;;
my $jahr = 0;

if ($month1 == 12 ) {
$jahr  = $year1;
}
else {
$jahr  = $year1 - 1;
}

my $day1 = sprintf '%02d',$day;;
my $anzahl_tage = Delta_Days($jahr,$monat,$tag,$year1,$month1,$day1);;
fhem ("setreading doif_Stromkosten1 Tage $anzahl_tage")
})
   FUUID      5c482d46-f33f-ce3b-0adf-9f18b704ce92cc28
   MODEL      FHEM
   NAME       doif_Stromkosten1
   NOTIFYDEV  global
   NR         162
   NTFY_ORDER 50-doif_Stromkosten1
   STATE      initialized
   TYPE       DOIF
   VERSION    20163 2019-09-15 16:48:42
   .attraggr:
   .attrminint:
   READINGS:
     2018-12-08 08:33:46   Abschlag        75
     2019-03-08 12:21:18   Arbeitspreis    25.40
     2019-03-08 12:21:53   Grundpreis      96
     2018-12-04 12:34:25   Start_Abrechnungsperiode 01.12
     2019-09-18 10:42:24   Tage            291
     2019-09-18 13:50:24   cmd             0
     2019-09-18 13:50:24   mode            enabled
     2019-09-18 13:50:24   state           initialized
     2019-09-18 13:50:24   timer_01_c01    18.09.2019 13:51:24
   Regex:
     accu:
     uiTable:
       doif_Stromkosten1:
         doif_Stromkosten1_uiTable_c_0_1_0_0:
           Arbeitspreis ^doif_Stromkosten1$:^Arbeitspreis:
         doif_Stromkosten1_uiTable_c_1_1_0_0:
           Grundpreis ^doif_Stromkosten1$:^Grundpreis:
         doif_Stromkosten1_uiTable_c_2_1_0_0:
           Start_Abrechnungsperiode ^doif_Stromkosten1$:^Start_Abrechnungsperiode:
         doif_Stromkosten1_uiTable_c_3_1_0_0:
           Abschlag   ^doif_Stromkosten1$:^Abschlag:
         doif_Stromkosten1_uiTable_c_4_1_0_0:
           Tage       ^doif_Stromkosten1$:^Tage:
         doif_Stromkosten1_uiTable_c_5_1_0_0:
           Tage       ^doif_Stromkosten1$:^Tage:
         doif_Stromkosten1_uiTable_c_8_1_0_0:
           Arbeitspreis ^doif_Stromkosten1$:^Arbeitspreis:
           Grundpreis ^doif_Stromkosten1$:^Grundpreis:
           Tage       ^doif_Stromkosten1$:^Tage:
         doif_Stromkosten1_uiTable_c_9_1_0_0:
           Abschlag   ^doif_Stromkosten1$:^Abschlag:
           Arbeitspreis ^doif_Stromkosten1$:^Arbeitspreis:
           Grundpreis ^doif_Stromkosten1$:^Grundpreis:
           Tage       ^doif_Stromkosten1$:^Tage:
       myElectricityCalculator:
         doif_Stromkosten1_uiTable_c_5_1_0_0:
           Stromzaehler_total_consumption_EnergyMeter ^myElectricityCalculator$:^Stromzaehler_total_consumption_EnergyMeter:
         doif_Stromkosten1_uiTable_c_6_1_0_0:
           Stromzaehler_total_consumption_EnergyMeter ^myElectricityCalculator$:^Stromzaehler_total_consumption_EnergyMeter:
         doif_Stromkosten1_uiTable_c_7_1_0_0:
           Stromzaehler_total_consumption_EnergyCostMeter ^myElectricityCalculator$:^Stromzaehler_total_consumption_EnergyCostMeter:
         doif_Stromkosten1_uiTable_c_8_1_0_0:
           Stromzaehler_total_consumption_EnergyMeter ^myElectricityCalculator$:^Stromzaehler_total_consumption_EnergyMeter:
         doif_Stromkosten1_uiTable_c_9_1_0_0:
           Stromzaehler_total_consumption_EnergyMeter ^myElectricityCalculator$:^Stromzaehler_total_consumption_EnergyMeter:
   attr:
     cmdState:
       0:
         1
   condition:
     0          ::DOIF_time_once($hash,0,$wday)
   days:
   do:
     0:
       0          {use Date::Calc qw(Delta_Days);; my $start_datum = ReadingsVal("doif_Stromkosten1","Start_Abrechnungsperiode","");; my $tag = substr($start_datum, 0, 2);; my $monat = substr($start_datum, 3, 2);;  my ($day,$month,$year) = (localtime)[3,4,5];;  my $year1 = sprintf '%04d',$year+1900;; my $month1 = sprintf '%02d',$month+1;; my $jahr = 0;  if ($month1 == 12 ) { $jahr  = $year1; } else { $jahr  = $year1 - 1; }  my $day1 = sprintf '%02d',$day;; my $anzahl_tage = Delta_Days($jahr,$monat,$tag,$year1,$month1,$day1);; fhem ("setreading doif_Stromkosten1 Tage $anzahl_tage") }
     1:
   helper:
     globalinit 1
     last_timer 1
     sleeptimer -1
   intervalfunc:
   localtime:
     0          1568807484
   realtime:
     0          13:51:24
   time:
     0          +60
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1568807484:
       localtime  1568807484
       hash:
   uiState:
   uiTable:
     dev        doif_Stromkosten1
     package   
     reading    Abschlag
     table:
       0:
         0:
           0:
             0          "Arbeitspreis (Cent/kWh)"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_0_1_0_0',(::ReadingValDoIf($hash,'doif_Stromkosten1','Arbeitspreis')),"")
       1:
         0:
           0:
             0          "Grundpreis (Euro/Jahr)"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_1_1_0_0',(::ReadingValDoIf($hash,'doif_Stromkosten1','Grundpreis')),"")
       2:
         0:
           0:
             0          "Start Abrechnungsperiode"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_2_1_0_0',(::ReadingValDoIf($hash,'doif_Stromkosten1','Start_Abrechnungsperiode')),"")
       3:
         0:
           0:
             0          "Abschlag (Euro/Monat)"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_3_1_0_0',(::ReadingValDoIf($hash,'doif_Stromkosten1','Abschlag')),"")
       4:
         0:
           0:
             0          "Tage Abrechnugsperiode"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_4_1_0_0',::ReadingValDoIf($hash,'doif_Stromkosten1','Tage'),"")
       5:
         0:
           0:
             0          "Stromverbrauch Hochrechnung"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_5_1_0_0', sprintf("%.f kWh", (::ReadingValDoIf($hash,'myElectricityCalculator','Stromzaehler_total_consumption_EnergyMeter'))/::ReadingValDoIf($hash,'doif_Stromkosten1','Tage')*365),"")
       6:
         0:
           0:
             0          "Stromverbrauch bis jetzt"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_6_1_0_0',sprintf("%.2f kWh" , ::ReadingValDoIf($hash,'myElectricityCalculator','Stromzaehler_total_consumption_EnergyMeter')),"")
       7:
         0:
           0:
             0          "Stromkosten bis jetzt"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_7_1_0_0',sprintf("%.2f Euro" , ::ReadingValDoIf($hash,'myElectricityCalculator','Stromzaehler_total_consumption_EnergyCostMeter')),"")
       8:
         0:
           0:
             0          "Stromkosten Hochrechnung"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_8_1_0_0', sprintf("%.2f Euro", ((::ReadingValDoIf($hash,'myElectricityCalculator','Stromzaehler_total_consumption_EnergyMeter'))/::ReadingValDoIf($hash,'doif_Stromkosten1','Tage')*365)*(::ReadingValDoIf($hash,'doif_Stromkosten1','Arbeitspreis')/100)+::ReadingValDoIf($hash,'doif_Stromkosten1','Grundpreis')),"")
       9:
         0:
           0:
             0          "Nachzahlung/Gutschrift"
         1:
           0:
             0          ::DOIF_Widget($hash,$reg,'doif_Stromkosten1_uiTable_c_9_1_0_0', sprintf("%.2f Euro", (::ReadingValDoIf($hash,'myElectricityCalculator','Stromzaehler_total_consumption_EnergyMeter')/::ReadingValDoIf($hash,'doif_Stromkosten1','Tage')*365)*(::ReadingValDoIf($hash,'doif_Stromkosten1','Arbeitspreis')/100)+::ReadingValDoIf($hash,'doif_Stromkosten1','Grundpreis')-(::ReadingValDoIf($hash,'doif_Stromkosten1','Abschlag')*12)),"")
     tc:
     td:
       0:
       1:
       2:
       3:
       4:
       5:
       6:
       7:
       8:
       9:
     tr:
Attributes:
   alias      Stromkosten
   cmdState   1
   do         always
   room       Strom
   uiTable    "Arbeitspreis (Cent/kWh)"|([$SELF:Arbeitspreis])
"Grundpreis (Euro/Jahr)"|([$SELF:Grundpreis])
"Start Abrechnungsperiode"|([$SELF:Start_Abrechnungsperiode])
"Abschlag (Euro/Monat)"|([$SELF:Abschlag])
"Tage Abrechnugsperiode"|[$SELF:Tage]
"Stromverbrauch Hochrechnung"| sprintf("%.f kWh", ([myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter])/[$SELF:Tage]*365)
"Stromverbrauch bis jetzt"|sprintf("%.2f kWh" , [myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter])
"Stromkosten bis jetzt"|sprintf("%.2f Euro" , [myElectricityCalculator:Stromzaehler_total_consumption_EnergyCostMeter])
"Stromkosten Hochrechnung"| sprintf("%.2f Euro", (([myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter])/[$SELF:Tage]*365)*([$SELF:Arbeitspreis]/100)+[$SELF:Grundpreis])
"Nachzahlung/Gutschrift"| sprintf("%.2f Euro", ([myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter]/[$SELF:Tage]*365)*([$SELF:Arbeitspreis]/100)+[$SELF:Grundpreis]-([$SELF:Abschlag]*12))
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 18 September 2019, 17:07:35
Teste bitte mal die angehängte Version


Edit: Version gelöscht
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: cwagner am 18 September 2019, 19:34:50
Diese Erfahrung hatte ich auch gemacht am Sonntag und bin dann wieder auf die vorige DOIF-Version im Repository zurückgegangen:

2019.09.16 22:29:17 1: PERL WARNING: Argument "" isn't numeric in numeric eq (==) at (eval 479) line 2.
Can't use string ("DI_Warmwasser_uiTable_c_0_0_0_2") as an ARRAY ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 2218.


Hatte es noch nicht gepostet, da ich in meinem uiTables großräumig Änderungen gemacht hatte und daher erst einmal bei mir "sauber" machen wollte, ehe ich auf dieses Thema hinweise.

Christian
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 18 September 2019, 20:26:28
Daher bitte testen, bevor ich die neue Version einchecke.
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Kai-Alfonso am 18 September 2019, 20:55:43
Zitat von: Damian am 18 September 2019, 20:26:28
Daher bitte testen, bevor ich die neue Version einchecke.

Vielen Dank für die neue Version - ich komme erst morgen früh zum testen, melde mich dann aber sofort
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 18 September 2019, 21:54:14
Ich habe die korrigierte Version bereits eingecheckt, obwohl ich den Fehler bei mir nicht nachstellen konnte.
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: cwagner am 18 September 2019, 22:51:04
Hier muss ich leider enttäuschen, 2 Versuche mit übereinstimmenden Ergebnis:
1. laufendes FHEM, das DOIF aus dem Post reloaded und sofort:
2019.09.18 22:42:21 1: PERL WARNING: Subroutine FW_makeImage redefined at ./FHEM/98_DOIF.pm line 3686.
Can't use string ("DI_Solarthermie_uiTable_c_0_1_0_"...) as an ARRAY ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 2216.


2. FHEM neustarten, im Hochfahren:
2019.09.18 22:44:26 1: PERL WARNING: Found = in conditional, should be == at (eval 474) line 2.
Can't use string ("DI_Warmwasser_uiTable_c_0_0_0_2") as an ARRAY ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 2216.

In beiden Fällen wird FHEM abgeschossen:
fhem.service - FHEM Home Automation
   Loaded: loaded (/etc/systemd/system/fhem.service; enabled; vendor preset: ena
   Active: failed (Result: exit-code) since Wed 2019-09-18 22:44:27 CEST; 4min 5
  Process: 25443 ExecStart=/usr/bin/perl fhem.pl configDB (code=exited, status=0
Main PID: 25444 (code=exited, status=255)

Sep 18 22:43:01 PI3 systemd[1]: Starting FHEM Home Automation...
Sep 18 22:43:02 PI3 systemd[1]: Started FHEM Home Automation.
Sep 18 22:44:27 PI3 systemd[1]: fhem.service: Main process exited, code=exited,
Sep 18 22:44:27 PI3 systemd[1]: fhem.service: Unit entered failed state.
Sep 18 22:44:27 PI3 systemd[1]: fhem.service: Failed with result 'exit-code'.
lines 1-11/11 (END)


Herzliche Grüße

Christian
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 18 September 2019, 23:33:04
Welche letzte Version läuft bei dir stabil? Poste bitte list von DI_Solarthermie bzw. DI_Warmwasser.
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Kai-Alfonso am 19 September 2019, 09:42:20
Bei mir stürzt auch die neue Version ab - aber lustigerweise nicht direkt, sondern erst nach x minuten
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 19 September 2019, 09:53:30
Zitat von: Kai-Alfonso am 19 September 2019, 09:42:20
Bei mir stürzt auch die neue Version ab - aber lustigerweise nicht direkt, sondern erst nach x minuten

ja, das hat gestern schon der Christian festgestellt. Ich muss den Fall bei mir erst mal reproduzieren um die Ursache zu erkennen. Schick mir bitte die Raw-Defintion von der Definition, vielleicht kann ich sie bei mir ans Laufen bekommen um den Absturz zu provozieren.
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Kai-Alfonso am 19 September 2019, 10:00:26
Zitat von: Damian am 19 September 2019, 09:53:30
ja, das hat gestern schon der Christian festgestellt. Ich muss den Fall bei mir erst mal reproduzieren um die Ursache zu erkennen. Schick mir bitte die Raw-Defintion von der Definition, vielleicht kann ich sie bei mir ans Laufen bekommen um den Absturz zu provozieren.

Ja, ich habs gelesen, wollte es aber auch noch mal gegenchecken, ob es bei mir auch abstürzt. Ich verstehe nur nicht, das er nicht sofort abstürzt (bei minütlicher Ausführung) sondern "beliebig"

defmod doif_Stromkosten1 DOIF ([+60])\
({use Date::Calc qw(Delta_Days);;;;\
my $start_datum = ReadingsVal("doif_Stromkosten1","Start_Abrechnungsperiode","");;;;\
my $tag = substr($start_datum, 0, 2);;;;\
my $monat = substr($start_datum, 3, 2);;;;\
\
my ($day,$month,$year) = (localtime)[3,4,5];;;;\
\
my $year1 = sprintf '%04d',$year+1900;;;;\
my $month1 = sprintf '%02d',$month+1;;;;\
my $jahr = 0;;\
\
if ($month1 == 12 ) {\
$jahr  = $year1;;\
}\
else {\
$jahr  = $year1 - 1;;\
}\
\
my $day1 = sprintf '%02d',$day;;;;\
my $anzahl_tage = Delta_Days($jahr,$monat,$tag,$year1,$month1,$day1);;;;\
fhem ("setreading doif_Stromkosten1 Tage $anzahl_tage")\
})
attr doif_Stromkosten1 alias Stromkosten
attr doif_Stromkosten1 cmdState 1
attr doif_Stromkosten1 do always
attr doif_Stromkosten1 room Strom
attr doif_Stromkosten1 uiTable "Arbeitspreis (Cent/kWh)"|([$SELF:Arbeitspreis])\
"Grundpreis (Euro/Jahr)"|([$SELF:Grundpreis])\
"Start Abrechnungsperiode"|([$SELF:Start_Abrechnungsperiode])\
"Abschlag (Euro/Monat)"|([$SELF:Abschlag])\
"Tage Abrechnugsperiode"|[$SELF:Tage]\
"Stromverbrauch Hochrechnung"| sprintf("%.f kWh", ([myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter])/[$SELF:Tage]*365)\
"Stromverbrauch bis jetzt"|sprintf("%.2f kWh" , [myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter])\
"Stromkosten bis jetzt"|sprintf("%.2f Euro" , [myElectricityCalculator:Stromzaehler_total_consumption_EnergyCostMeter])\
"Stromkosten Hochrechnung"| sprintf("%.2f Euro", (([myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter])/[$SELF:Tage]*365)*([$SELF:Arbeitspreis]/100)+[$SELF:Grundpreis])\
"Nachzahlung/Gutschrift"| sprintf("%.2f Euro", ([myElectricityCalculator:Stromzaehler_total_consumption_EnergyMeter]/[$SELF:Tage]*365)*([$SELF:Arbeitspreis]/100)+[$SELF:Grundpreis]-([$SELF:Abschlag]*12))

setstate doif_Stromkosten1 initialized
setstate doif_Stromkosten1 2018-12-08 08:33:46 Abschlag 75
setstate doif_Stromkosten1 2019-03-08 12:21:18 Arbeitspreis 25.40
setstate doif_Stromkosten1 2019-03-08 12:21:53 Grundpreis 96
setstate doif_Stromkosten1 2018-12-04 12:34:25 Start_Abrechnungsperiode 01.12
setstate doif_Stromkosten1 2019-09-18 10:42:24 Tage 291
setstate doif_Stromkosten1 2019-09-19 09:59:31 cmd 0
setstate doif_Stromkosten1 2019-09-19 09:59:31 mode enabled
setstate doif_Stromkosten1 2019-09-19 09:59:31 state initialized
setstate doif_Stromkosten1 2019-09-19 09:59:31 timer_01_c01 19.09.2019 10:00:31

Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 19 September 2019, 11:09:14
Es stürtzt erst ab, wenn ein Event zu einem in der uiTable definierten Trigger kommt.
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: cwagner am 19 September 2019, 11:14:53
Zitat von: Damian am 18 September 2019, 23:33:04
Welche letzte Version läuft bei dir stabil? Poste bitte list von DI_Solarthermie bzw. DI_Warmwasser.

Version: # $Id: 98_DOIF.pm 20157 2019-09-13 21:08:50Z Damian $

Da ich auswärts bin, kann ich die beiden Listings erst heute Nacht liefern. Bis dahin hätte ich nur die Defines und die Attribute:


define DI_Warmwasser DOIF ((([[Aufstehen]-09:00] and [Proplanta_Vorhersage:Global.Radiation] < 0.8) or [18:00-21:00]) \
       and [T_Warmwasser:temperature:d]<54 and [abwesend:cmd_nr]==2) \
   (set Vorlauf 58) (set DI_RL_Anhebung cmd_2) (set DI_RL_Anhebung disable) (set DI_WW_Pumpe enable)   \
DOELSE (set DI_Heizanforder cmd_1) (set DI_RL_Anhebung enable) (set SW_02_WW_Pumpe off) (set DI_WW_Pumpe disable)
attr DI_Warmwasser uiTable {\
$SHOWNODEVICELINE = "Aktuell";;\
$TPL{onoff}="iconSwitch,on,10px-kreis-rot,off,10px-kreis-gruen";;\
}\
"DI_Warmwasser".":".[$SELF:state] | "T_Warmwasser".":".[T_Warmwasser:temperature:d1]."°C"|\
"DI_WW_Pumpe".":".WID ([DI_WW_Pumpe],"iconLabel,disabled,10px-kreis-rot,cmd_2,10px-kreis-gruen,cmd_1,10px-kreis-gelb") | "SW_02_WW_Pumpe".":".WID ([SW_02_WW_Pumpe],$TPL{onoff})

uiTable also noch "alte" Notation

Und auch bei DI_Solarthermie habe ich noch nicht in den Perlmodus umgeschaltet und auch noch nicht das XOR-Rechnen für die beiden verzögerten Set-Befehle eingeführt:

define DI_Solarthermie DOIF ## DOIF-Modus wegen Problem zweier Switch-Aufträge in der gleichen logischen Sekunde (einer wird vergessen)\
([T_Kollektor:temperature:d]>([?T_Solarspeicher_1:temperature:d]+15) and [?T_Warmwasser:temperature:d]<60) \
(set Switch_Heizkeller output Kollektor_Pumpe ON) (set Switch_Heizkeller output 3Wege-Ventil OFF)   ## Vorrang Warmwasser aufheizen\
DOELSEIF ([T_Kollektor:temperature:d]>([?T_Solarspeicher_2:temperature:d]+15) and [?T_Solarspeicher_2:temperature:d]<101) \
(set Switch_Heizkeller output Kollektor_Pumpe ON) (set Switch_Heizkeller output 3Wege-Ventil ON)     ## Rücklaufanhebung aufheizen\
DOELSE (set Switch_Heizkeller output Kollektor_Pumpe OFF) (set Switch_Heizkeller output 3Wege-Ventil OFF)     ## wir warten auf mehr Sonne
attr DI_Solarthermie uiTable {\
$SHOWNODEVICELINE = "Aktuell";;\
$ATTRIBUTESFIRST =  1;;\
$TC{1,5,7}= "style='font-weight:bold;;font-size:11pt;;'";;\
$TC{5,7}="align='right'";;\
}\
"DI_Solarthermie".":","T_Kollektor".":"|\
[$SELF:state],[T_Kollektor:temperature:d1]."°"|\
WID([Switch_Heizkeller:Kollektor_Pumpe],"iconLabel,on,sani_solar_temp\@green")|\
WID([Switch_Heizkeller:3Wege-Ventil],"iconLabel,OFF,sani_water_tap\@green,ON,sani_heating\@green")|\
.[T_VL_Kollektor:temperature:d1]."°VL",[T_RL_Kollektor:temperature:d1]."°RL" |\
"SP 1 unten:","SP 2 unten:"|\
[T_Solarspeicher_1:temperature:d1]."°",[T_Solarspeicher_2:temperature:d1]."°"|\
"oben:","oben:"|\
[T_Warmwasser:temperature:d1]."°",[T_RL_Anhebung:temperature:d1]."°"
attr DI_Solarthermie do allways
attr DI_Solarthermie wait 180,25:180,25:180,25



Grüße

Christian
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 19 September 2019, 11:42:11
OK. Die Änderungen zu Version: # $Id: 98_DOIF.pm 20157 2019-09-13 21:08:50Z Damian $ sind überschaubar, aber wichtig. Ich muss als nächstes den Absturz, wie schon geschrieben, nachstellen können, damit ich das eigentliche Problem erkennen kann.

Es hat auf jeden Fall etwas mit den Triggerangaben in uiTable zu tun und weniger mit der Definition des DOIFs selbst.
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 19 September 2019, 12:47:37
Ich bräuchte noch mal den Absturz mit stacktrace (Attribut stacktrace in global auf 1 setzen)
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 19 September 2019, 18:17:47
So, jetzt aber. Blöder Tippfehler hat mich jetzt zwei Tage Suche gekostet.

Im Anhang korrigierte Version.

Edit: Version eingecheckt



Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: cwagner am 19 September 2019, 22:56:42
Gratulation! Bei mir läuft es jetzt rund! Danke für Deine Arbeit und schade für die Zeit, die Du investieren musstest.

Herzliche Grüße

Christian
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Damian am 19 September 2019, 23:16:56
Neue Version eingecheckt. Es war mir schon klar, dass die letzten Versionen etwas anfälliger sein würden, weil ich grundlegende Triggermechnismen intern geändert habe. Aber langsam kommen wir auf die gewohnte Stabilität des Moduls ;)
Titel: Antw:Fhem stürzt ab nach Update
Beitrag von: Kai-Alfonso am 20 September 2019, 13:14:42
Zitat von: Damian am 19 September 2019, 23:16:56
Neue Version eingecheckt. Es war mir schon klar, dass die letzten Versionen etwas anfälliger sein würden, weil ich grundlegende Triggermechnismen intern geändert habe. Aber langsam kommen wir auf die gewohnte Stabilität des Moduls ;)

Super, vielen Dank - bei mir läuft es seit 9 Uhr einwandfrei durch