FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Sailor am 05 Dezember 2022, 11:08:46

Titel: ROOMMATE - Warning
Beitrag von: Sailor am 05 Dezember 2022, 11:08:46
Moin zusammen

Ich habe ein ROOMMATE - DEVICE mit einem User -Reading eingerichtet:


Internals:
   CFGFN      ./cfg/HomeResidentStatus.cfg
   DEF        rgr_Residents
   DURATIONTIMER 1670234682.87353
   FUUID      5c49937e-f33f-02bc-94cb-a3883dce1b60c32a
   FVERSION   20_ROOMMATE.pm:0.195330/2019-06-02
   NAME       Vorname_Nachname
   NOTIFYDEV  global,Vorname_Nachname_wakeuptimer1
   NR         630
   NTFY_ORDER 50-Vorname_Nachname
   READY      1
   RESIDENTGROUPS rgr_Residents
   STATE      home
   SUBTYPE    adult
   TYPE       ROOMMATE
   eventCount 2859
   Helper:
     DBLOG:
       homestatus:
         DbLogFhem:
           TIME       1670234623.04909
           VALUE      1
   READINGS:
     2022-12-02 06:54:00   durTimerAbsence 00:00:00
     2022-12-02 06:54:00   durTimerAbsence_cr 0
     2022-12-05 11:03:42   durTimerPresence 00:18:15
     2022-12-05 11:03:42   durTimerPresence_cr 18
     2022-11-27 13:59:51   durTimerSleep   00:00:00
     2022-11-27 13:59:51   durTimerSleep_cr 0
     2022-12-05 11:03:42   homestatus      1
     2022-12-05 10:45:27   lastArrival     2022-12-05 10:45:27
     2022-12-05 10:45:23   lastDeparture   2022-12-05 10:45:23
     2022-12-05 10:45:27   lastDurAbsence  00:00:04
     2022-12-05 10:45:27   lastDurAbsence_cr 0
     2022-12-05 10:45:23   lastDurPresence 75:51:23
     2022-12-05 10:45:23   lastDurPresence_cr 4551
     2022-12-05 10:45:23   lastLocation    Home
     2022-12-05 10:45:23   lastMood        calm
     2022-12-05 10:45:27   lastState       absent
     2022-12-05 10:45:27   location        Home
     2022-12-05 10:45:27   mood            calm
     2022-12-05 10:45:27   presence        present
     2022-12-05 10:45:27   state           home
     2022-11-29 22:21:42   wayhome         0
   TIMER:
     Vorname_Nachname_DurationTimer:
       HASH       Vorname_Nachname
       MODIFIER   DurationTimer
       NAME       Vorname_Nachname_DurationTimer
Attributes:
   DbLogExclude .*
   DbLogInclude homestatus
   alias      Status
   devStateIcon home:icoVorname_Nachname.home absent:icoVorname_Nachname.absent
   event-on-change-reading .*
   event-on-update-reading .*
   group      Vorname_Nachname
   icon       people_sensor
   room       Roommates
   rr_locationHome Home
   rr_locations home,work,anywhere
   rr_wakeupDevice Vorname_Nachname_wakeuptimer1
   sortby     0
   userReadings homestatus {
   if (ReadingsVal("Vorname_Nachname","state",1) eq "home")      {return 1;}
elsif (ReadingsVal("Vorname_Nachname","state",1) eq "absent")    {return 2;}
elsif (ReadingsVal("Vorname_Nachname","state",1) eq "gotosleep") {return 3;}
elsif (ReadingsVal("Vorname_Nachname","state",1) eq "gone")      {return 4;}
else  {return 1;}
}

   webCmd     state:mood


Das userReadings haut mir jedesmal die Log-Meldung


2022.12.05 10:45:24.924 1: readingsUpdate(Vorname_Nachname,homestatus,2) missed to call readingsBeginUpdate first.
2022.12.05 10:45:24.925 1: stacktrace:
2022.12.05 10:45:24.925 1:     main::readingsBulkUpdate            called by fhem.pl (4972)
2022.12.05 10:45:24.925 1:     main::readingsEndUpdate             called by FHEM/RESIDENTStk.pm (727)
2022.12.05 10:45:24.925 1:     main::RESIDENTStk_Set               called by fhem.pl (3967)
2022.12.05 10:45:24.925 1:     main::CallFn                        called by fhem.pl (1962)
2022.12.05 10:45:24.925 1:     main::DoSet                         called by fhem.pl (1994)
2022.12.05 10:45:24.925 1:     main::CommandSet                    called by fhem.pl (1274)
2022.12.05 10:45:24.925 1:     main::AnalyzeCommand                called by fhem.pl (1125)
2022.12.05 10:45:24.925 1:     main::AnalyzeCommandChain           called by .//FHEM/01_FHEMWEB.pm (2847)
2022.12.05 10:45:24.926 1:     main::FW_fC                         called by .//FHEM/01_FHEMWEB.pm (984)
2022.12.05 10:45:24.926 1:     main::FW_answerCall                 called by .//FHEM/01_FHEMWEB.pm (609)
2022.12.05 10:45:24.926 1:     main::FW_Read                       called by fhem.pl (3972)
2022.12.05 10:45:24.926 1:     main::CallFn                        called by fhem.pl (782)
2022.12.05 10:45:27.265 2: ROOMMATE set Vorname_Nachname home

raus

Der Beitrag https://forum.fhem.de/index.php?topic=106021.0 (https://forum.fhem.de/index.php?topic=106021.0) hat leider nicht zur Lösung beigetragen.

Kennt Jemand diese Warnung und die entsprechende Abhilfe?

Nachtrag:

Seltsam ist das schon, denn FHEM/RESIDENTStk.pm (727) zeigt

727 readingsEndUpdate( $hash, 1 );


und die Zeile 454 darüber wird der Kreis korrekt geöffnet:

454 readingsBeginUpdate($hash);


Nachtrag 2:

Habe durch rum experimentieren einen Workaround gefunden.

Mein userReading liest sich jetzt wie folgt:


homestatus {
my $hash = $defs{$NAME};
readingsBeginUpdate($hash);
       if (ReadingsVal("Guest","state",1) eq "home")      {return 1;}
elsif (ReadingsVal("Guest","state",1) eq "absent")    {return 2;}
elsif (ReadingsVal("Guest","state",1) eq "gotosleep") {return 3;}
elsif (ReadingsVal("Guest","state",1) eq "gone")      {return 4;}
else  {return 1;}
}

Man bemerke, dass ich jetzt selbst ein "readingsBeginnUpdate" ausführe.

Das ist alles Andere als sauber"
Aber zumindest ist die Fehlermeldung weg.

Gruß
    Sailor