Zeit wann wie geschaltet wurde im floorplan darstellen

Begonnen von Kaspi, 04 Februar 2016, 19:47:17

Vorheriges Thema - Nächstes Thema

Kaspi

N´abend

wie kann ich im floorplan darstellen, wann zum Beispiel der Aussendämmerungssensor geschaltet hat?

Danke im voraus

Frank

UliM

Hi,
Einfach diesen Sensor im floorplan darstellen lassen mit dem geeigneten style.
=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Kaspi


UliM

Hmm, wie wär's mit nem userresading das den timestamp hat, und dann nimmst Du in floorplan den style für Readings?
=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Kaspi

Hmm. sagst Du mir wie?
Ich komme nicht weiter.
Habe also den Daemmerungsschalter. Im state steht, wann er geschaltet hat.
Um nun separat im Floorplan die Zeit darstellen zu lassen habe ich mir gedacht die Zeit in ein Dummy zu schreiben, und den Dummy dann neben dem Daemmerungsschalter darzustellen.
Wie mache ich das ??

Danke

Frank

UliM

Hi,
statt eines dummy kannst Du auch ein userreading nehmen, dann sprast Du Dir ein device.
Wie man den Zeitstempel auf userreading oder dummy bekommt kannst Du googeln, steht sicher irgendwo im forum oder der Doku, oder Du kannst unter Anfängerfragen einen post erstellen.
Es wäre auch hilfreich, wenn Du den output von "list <device>" posten würdest, dann könnte man mal sehen was zB in STATE steht.
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

nine42

Wie von UliM vorgeschlagen, habe ich für jeden Kontakt ein dummy angelegt, welches über ein notify mit der Zeit versorgt wird.
Mit einem Timer lösche ich jeden Morgen die Werte, so dass bei den Kontakten nur die Werte des aktuellen Tags stehen.


#-------------------------------------------------------------------------------
define Time_CON_Werkstatt dummy
attr Time_CON_Werkstatt alias Werkstatt
attr Time_CON_Werkstatt fp_Erdgeschoss 533,628,0,
attr Time_CON_Werkstatt group Time
#-------------------------------------------------------------------------------
define Time_CON_Osttor dummy
attr Time_CON_Osttor alias Osttor
attr Time_CON_Osttor fp_Erdgeschoss 666,715,0,
attr Time_CON_Osttor group Time
#-------------------------------------------------------------------------------
define Time_CON_Nordtor dummy
attr Time_CON_Nordtor alias Nordtor
attr Time_CON_Nordtor fp_Erdgeschoss 152,200,0,
attr Time_CON_Nordtor group Time
#-------------------------------------------------------------------------------
define ContactTime notify CON_.*:open.* { \
   my $timestamp = ReadingsTimestamp($NAME,"state","Kontakt-Zeit nicht lesbar");; \
   my $time = substr($timestamp, 11, 5);; \
   my $date = substr($timestamp, 0, 10);; \
   Log 1, "------ ".$NAME." opens at ".$time." on ".$date;; \
   fhem("set Time_".$NAME." ".$time);; \
}
attr ContactTime alias Zeit Kontakt
attr ContactTime group Regeln
attr ContactTime room Regeln

define DeleteTime at *06:00:00 { \
   fhem("set Time_.*_.*  &nbsp");; \
}

ph1959de

Wäre readingsHistory eventuell auch eine Option gewesen? Das wäre im Prinzip ein "Einzeiler" gewesen. Oder fehlt dann etwas von der gewünschten Funktionalität?

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

nine42

Ich verwende zur Zeit noch die "Dummy"-Lösung, habe aber auch schon die "UserReading"-Lösung vorbereitet.
(siehe unten im Code: readingsSingleUpdate). Sobald man mit floorpan state & user reading darstellen kann (siehe http://forum.fhem.de/index.php/topic,49854.0.html), lösche ich meine Dummys.
Dann ist das Zurücksetzen mit dem Timer allerdings nicht mehr ganz so elegant, denn man kann dann keine Wildcards (fhem("set Time_.*_.*  &nbsp")) mehr verwenden sondern muss die UserReadings aller Kontakte einzeln mit "readingsBulkUpdate" zurücksetzen. Wenn man seine Installation um einen neuen Kontakt erweitert, muss man daran denken.


#-------------------------------------------------------------------------------
define Time_CON_Osttor dummy
attr Time_CON_Osttor alias Osttor
attr Time_CON_Osttor fp_Erdgeschoss 666,715,0,
attr Time_CON_Osttor group Time
#-------------------------------------------------------------------------------
define Time_CON_Nordtor dummy
attr Time_CON_Nordtor alias Nordtor
attr Time_CON_Nordtor fp_Erdgeschoss 152,200,0,
attr Time_CON_Nordtor group Time
#-------------------------------------------------------------------------------
define ContactTime notify CON_.*:open.* { \
   my $timestamp = ReadingsTimestamp($NAME,"state","Kontakt-Zeit nicht lesbar");; \
   my $time = substr($timestamp, 11, 5);; \
   my $date = substr($timestamp, 0, 10);; \
   Log 1, "------ ".$NAME." opens at ".$time." on ".$date;; \
   fhem("set Time_".$NAME." ".$time);; \
   readingsSingleUpdate($defs{$NAME},"time",$time,1);; \
}



define DeleteTime at *06:00:00 { \
   fhem("set Time_.*_.*  &nbsp");; \
}

nine42

Hab' etwas gebaut, was dafür geeignet wäre. Vielleicht baut es UliM in 95_FLOORPLAN.pm ein

-> http://forum.fhem.de/index.php/topic,49854.0.html