FHEM Forum

FHEM - Hardware => Einplatinencomputer => Thema gestartet von: olwaldi am 23 November 2023, 18:28:43

Titel: [gelöst] DOIFs funktionieren nicht nach Neuinstallation
Beitrag von: olwaldi am 23 November 2023, 18:28:43
Habe heute einen neuen Raspi4 auf Basis eines alten Raspi3 aufgesetzt. Alles funktioniert mit Ausnahme einiger DOIFs. Die verbleiben im STATE 3Fragezeichen.

Gemeinsam ist diesen DOIFs, daß ich dort auf Werte von dummy Devices zugreife. Die waren beim ersten Neustart von fhem vermutlich nicht gesetzt.

Auch nach Setzen der dummy(s) auf die intendierten Werte und shutdown restart bleibts beim STATE 3Fragezeichen.

Habe auch mal versucht, durch set DachsFault block_01 explizit das DOIF auszulösen - kein Effekt.

Hier mal ein Beispiel:
define DachsFault DOIF {\
  if ([Dachs:Stoerung:d] > 0) {\
    if (Value("DachsReportsFault") eq "no") {\
      fhem("set DachsReportsFault yes");;\
      qx(/opt/fhem/RaspiMail.sh "Dachs meldet Stoerung" ich\@gmx.de);;\
    }\
  } else {\
    fhem("set DachsReportsFault no");;\
  }\
}\

#   DEF        {
#  if ([Dachs:Stoerung:d] > 0) {
#    if (Value("DachsReportsFault") eq "no") {
#      fhem("set DachsReportsFault yes");
#      qx(/opt/fhem/RaspiMail.sh "Dachs meldet Stoerung" ich\@gmx.de);
#    }
#  } else {
#    fhem("set DachsReportsFault no");
#  }
#}
#
#   FUUID      63347215-f33f-fc3a-cd1d-6b30e74d4606cc5c
#   MODEL      Perl
#   NAME       DachsFault
#   NOTIFYDEV  Dachs,global
#   NR         81
#   NTFY_ORDER 50-DachsFault
#   STATE      ???
#   TYPE       DOIF
#   VERSION    27740 2023-07-10 09:31:11
#   eventCount 2
#   READINGS:
#     2023-11-23 13:58:54   Device          Dachs
#     2023-11-23 17:24:52   block_01        executed
#     2023-11-23 13:58:54   e_Dachs_Stoerung 0
#     2023-11-23 18:04:06   mode            enabled
#   Regex:
#     accu:
#     bar:
#     barAvg:
#     collect:
#     cond:
#       Dachs:
#         0:
#           Stoerung   ^Dachs$:^Stoerung:
#   condition:
#     0         
#  if (::ReadingValDoIf($hash,'Dachs','Stoerung','','d') > 0) {
#    if (Value("DachsReportsFault") eq "no") {
#      fhem("set DachsReportsFault yes");
#      qx(/opt/fhem/RaspiMail.sh "Dachs meldet Stoerung" ich\@gmx.de);
#    }
#  } else {
#    fhem("set DachsReportsFault no");
#  }
#
#   helper:
#     NOTIFYDEV  Dachs,global
#     globalinit 1
#     last_timer 0
#     sleeptimer -1
#   perlblock:
#     0          block_01
#   readings:
#     all         Dachs:Stoerung
#   uiState:
#   uiTable:
#
setstate DachsFault 2023-11-23 13:58:54 Device Dachs
setstate DachsFault 2023-11-23 17:24:52 block_01 executed
setstate DachsFault 2023-11-23 13:58:54 e_Dachs_Stoerung 0
setstate DachsFault 2023-11-23 18:04:06 mode enabled


Was könnte ich noch versuchen?


Grüßle, Michael
Titel: Aw: DOIFs funktionieren nicht nach Neuinstallation
Beitrag von: betateilchen am 24 November 2023, 09:29:20
Zitat von: olwaldi am 23 November 2023, 18:28:43Was könnte ich noch versuchen?

Titel: Aw: DOIFs funktionieren nicht nach Neuinstallation
Beitrag von: rabehd am 24 November 2023, 11:53:36
5. set <DOIF> checkall
6. set <DOIF> cmd_x
7...
Titel: Aw: DOIFs funktionieren nicht nach Neuinstallation
Beitrag von: betateilchen am 24 November 2023, 12:14:57
8. kein DOIF verwenden, sondern ein notify
9. ...
Titel: Aw: DOIFs funktionieren nicht nach Neuinstallation
Beitrag von: rabehd am 24 November 2023, 12:24:49
Zitat von: betateilchen am 24 November 2023, 12:14:578. kein DOIF verwenden, sondern ein notify
9. ...
In dem Fall stimme ich Dir mal zu  ;)
Titel: Aw: DOIFs funktionieren nicht nach Neuinstallation
Beitrag von: olwaldi am 24 November 2023, 13:09:44
Danke für die Anregungen, hatte ich Alles schon versucht.

Die DOIF's, die nicht mehr so recht wollen, haben kein checkall in ihrer Dropdown-Box. Die, die wieder laufen, haben checkall und konnten damit reaktiviert werden.

Ich will erstmal bei DOIF bleiben, da die ja auf dem Raspi3 problemlos gelaufen sind.

Aber welche Datei hätte ich noch mitkopieren müssen, um die DOIFs zu erhalten? Schließlich konnte ich den Raspi3 problemlos neu starten ohne DOIF-Probleme, d. h. irgendwo muß es drinstehen. Gesichert habe ich fhem.cfg und uniqID - natürlich ausgetauscht bei deaktiviertem fhem.
Titel: Aw: DOIFs funktionieren nicht nach Neuinstallation
Beitrag von: frank am 24 November 2023, 13:14:54
ZitatAber welche Datei hätte ich noch mitkopieren müssen, um die DOIFs zu erhalten?
eventuell fhem.save?
Titel: Aw: DOIFs funktionieren nicht nach Neuinstallation
Beitrag von: olwaldi am 24 November 2023, 14:24:44
Das war die Lösung. Genauer: Ich habe im alten fhem.save vom Raspi3 die fraglichen Kommandos entdeckt, um STATE zu initialisieren - um im Beispiel zu bleiben
setstate DachsFault initialized
Und ich habe den gesamten Ordner /opt/fhem/log für die nächste Neuinstallation in mein Skript aufgenommen.

Vielen Dank, Michael
Titel: Aw: [gelöst] DOIFs funktionieren nicht nach Neuinstallation
Beitrag von: rabehd am 24 November 2023, 15:05:37
Ein set DachsFault initialize gab es nicht in der Befehlsliste?