60_Watches - Modul für eine Analog/Digital-Uhr

Begonnen von DS_Starter, 19 November 2018, 23:00:33

Vorheriges Thema - Nächstes Thema

osid-timo

Hallo Heiko,
Danke für den Tipp
ich löse das jetzt mit dem State des Moduls

DOELSEIF (([ElEnergie:EasymeterQ3C_power,21] < [$SELF:P_P_on,-10] and [PumpeStoppUhr1:stoptime,00:00:00] lt "00:03:00") or ["$SELF:P_mybutton: on"] )
(( IF ("[PumpeStoppUhr1:&STATE]" eq "initialized") (set PumpeStoppUhr1 start) ELSE (IF ("[PumpeStoppUhr1:&STATE]" eq "stopped") (set PumpeStoppUhr1 resume))) ##gewünschte Laufzeit noch nicht abgelaufen


Gruß Oswald
FHEM Pi3: 1* CUL, 30* Homematic, 10* EnOcean
FHEM Pi3: IR-Lesekopf, BT->SMA
FHEM Pi3: ZHK, 1-wire, 1* VBus   Resol DeltaSol BS

DS_Starter

Hallo Oswald, @all,

wird das reset auf 00:00:00 noch benötigt ?
Würde es nicht unbedingt benötigt, würde ich das Verhalten von reset so belassen wie es ist.

LG,
Heiko

Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

rischbiter123

Moin,

von mir aus kann es so bleiben wie es ist.

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

TWART016

Gibt es die Möglichkeit, dass die Readings die Sekunden mitzählen? Würde das gerne in FTUI nutzen.

DS_Starter

ZitatGibt es die Möglichkeit, dass die Readings die Sekunden mitzählen?
Technisch wäre das sicherlich möglich. Allerdings läuft die Uhr als JavaScript Anwendung im Client (Browser). Die Readings müssten jedoch jede Sekunde auf den FHEM Server "runter" geschrieben werden. Ich befürchte Performanceprobleme bzw. Ungenauigkeiten durch die nötige asynchrone Arbeitsweise.
Nach meinem bisherigen Wissensstand würde ich die Frage eher verneinen, es sei denn ein JavaScript Experte zeigt mir einen gangbaren Weg.

Vielleicht gibt es neue Erkenntnisse wenn du dein beabsichtigtes Szenario noch genauer beschreibst.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

TWART016

Ich möchte die Zeit wählen, wie lange mein Fenster offen ist.

Mit dem Modul HourCounter bekomme ich diesen Wert, allerdings nur im Interval von 60 Sekunden.

Mein Wunsch wäre dies "live" sehen zu können, optimal auch über Tablet UI.

DS_Starter

Ich habe in meinem contrib eine Testversion liegen.
Für das MODEL DIGITAL und stopwatch (Attr digitalDisplayPattern = stopwatch) wird ein Reading currtime erstellt.

Probiere mal bitte ob es das ist was dir vorschwebt und wie es sich in deinem System verhält.

Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben und danach FHEM restarten:

"wget -qO ./FHEM/60_Watches.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/60_Watches.pm"

Grüße,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

TWART016

#97
Zitat von: DS_Starter am 31 Juli 2020, 10:57:01
Ich habe in meinem contrib eine Testversion liegen.
Für das MODEL DIGITAL und stopwatch (Attr digitalDisplayPattern = stopwatch) wird ein Reading currtime erstellt.

Probiere mal bitte ob es das ist was dir vorschwebt und wie es sich in deinem System verhält.

Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben und danach FHEM restarten:

"wget -qO ./FHEM/60_Watches.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/60_Watches.pm"

Grüße,
Heiko

Sieht super aus.

Ich habe mal den Alarm auf 15 Sekunden gestellt.
set Uhr Alarm Set 00 00 15

Jetzt fängt er immer ab 15 an zu zählen. Wie kann ich das wieder auf 0 stellen?

Kann der aktuelle Zeitpunkt in einem Reading gezeigt werden, also den alarmSet?

Mit einem Stop wird das Reading stoptime geschrieben. Diese ist nun 1 Sekunde unterschiedlich zu currtime
Internals:
   DEF        Digital
   FUUID      5f21ef78-f33f-1e7a-44a0-a7d6db1c376bed2a
   FVERSION   60_Watches.pm:v0.26.0-s22109/2020-06-03
   MODEL      DIGITAL
   NAME       Uhr
   NR         65
   STATE      stopped
   TYPE       Watches
   HELPER:
     PACKAGE    FHEM::Watches
     VERSION    0.26.0
   READINGS:
     2020-07-31 11:21:47   alarmTime       00:00:00
     2020-07-31 11:27:56   alarmed         0
     2020-07-31 11:31:16   currtime        00:03:34
     2020-07-31 11:27:56   starttime       1596187676257
     2020-07-31 11:31:16   state           stopped
     2020-07-31 11:31:17   stoptime        00:03:35
Attributes:
   DbLogExclude .*
   digitalDisplayPattern stopwatch
   digitalSegmentType 16
   webCmd     start:stop


Edit: Ist es über webCmd möglich start / stop zu setzen?

DS_Starter

ZitatIch habe mal den Alarm auf 15 Sekunden gestellt.
Code: [Auswählen]

set Uhr Alarm Set 00 00 15

Jetzt fängt er immer ab 15 an zu zählen. Wie kann ich das wieder auf 0 stellen?
Kann ich bei mir nicht nachvollziehen. Die Zeitmessung fängt bei mir mit set <> start immer bei 0 an. Aber dein Befehl ist falsch, heißt

set <> alarmSet 00 00 15

ZitatKann der aktuelle Zeitpunkt in einem Reading gezeigt werden, also den alarmSet?
Ja, wird im Reading alarmTime angezeigt.


Internals:
   DEF        Digital
   FUUID      5ea8924f-f33f-b178-81bc-cfe34d8b125f4632
   FVERSION   60_Watches.pm:v1.1.1-s22109/2020-06-03
   MODEL      DIGITAL
   NAME       StopWatch
   NR         640
   STATE      stopped
   TYPE       Watches
   HELPER:
     PACKAGE    FHEM::Watches
     VERSION    0.25.0
   Helper:
     DBLOG:
       alarmTime:
         LogDB1:
           TIME       1596193130.55094
           VALUE      00:00:15
       alarmed:
         LogDB1:
           TIME       1596193805.95194
           VALUE      0
       currtime:
         LogDB1:
           TIME       1596193818.57641
           VALUE      00:00:12
       starttime:
         LogDB1:
           TIME       1596193805.95194
           VALUE      1596193805951
       state:
         LogDB1:
           TIME       1596193818.62938
           VALUE      stopped
       stoptime:
         LogDB1:
           TIME       1596193819.2278
           VALUE      00:00:12
   OLDREADINGS:
   READINGS:
     2020-07-31 12:58:50   alarmTime       00:00:15
     2020-07-31 13:10:05   alarmed         0
     2020-07-31 13:10:18   currtime        00:00:12
     2020-07-31 13:10:05   starttime       1596193805951
     2020-07-31 13:10:18   state           stopped
     2020-07-31 13:10:19   stoptime        00:00:12
Attributes:
   digitalColorBackground 1F1F1F
   digitalColorDigits E95D0F
   digitalDisplayPattern stopwatch
   digitalSegmentType 7
   digitalSegmentWidth 2.5
   disable    0
   htmlattr   width="150" height="100"
   room       Watches


ZitatMit einem Stop wird das Reading stoptime geschrieben. Diese ist nun 1 Sekunde unterschiedlich zu currtime
Ja, das kann passieren und waren meine Befürchtungen von denen ich weiter oben schon schrieb -> Ungenauigleiten und evtl. Performanceprobleme.
Letzteres scheint nicht aufzutreten und mit ersterem muß man dann wohl leben.  ;)
Auf meiner schnellen VM gibt es allerdings keine Abweichung zwischen diesen Readings. (siehe oben)

ZitatEdit: Ist es über webCmd möglich start / stop zu setzen?
Nein, momentan nicht. Evtl. zu einem späteren Zeitpunkt zu/abschaltbar.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

TWART016

Zitat von: DS_Starter am 31 Juli 2020, 13:16:30
Kann ich bei mir nicht nachvollziehen. Die Zeitmessung fängt bei mir mit set <> start immer bei 0 an. Aber dein Befehl ist falsch, heißt

set <> alarmSet 00 00 15
Habe mich verschieben, habe den Button verwendet. Nach einem reset und alarmDel sind alle Readings weg. Nach einem Start danach ist der Beginn nach wie vor bei 15. Selbst wenn ich ein neues Device anlege. Gibt es sowas wie einen Cache?

Zitat von: DS_Starter am 31 Juli 2020, 13:16:30
Ja, wird im Reading alarmTime angezeigt.



Internals:
   DEF        Digital
   FUUID      5ea8924f-f33f-b178-81bc-cfe34d8b125f4632
   FVERSION   60_Watches.pm:v1.1.1-s22109/2020-06-03
   MODEL      DIGITAL
   NAME       StopWatch
   NR         640
   STATE      stopped
   TYPE       Watches
   HELPER:
     PACKAGE    FHEM::Watches
     VERSION    0.25.0
   Helper:
     DBLOG:
       alarmTime:
         LogDB1:
           TIME       1596193130.55094
           VALUE      00:00:15
       alarmed:
         LogDB1:
           TIME       1596193805.95194
           VALUE      0
       currtime:
         LogDB1:
           TIME       1596193818.57641
           VALUE      00:00:12
       starttime:
         LogDB1:
           TIME       1596193805.95194
           VALUE      1596193805951
       state:
         LogDB1:
           TIME       1596193818.62938
           VALUE      stopped
       stoptime:
         LogDB1:
           TIME       1596193819.2278
           VALUE      00:00:12
   OLDREADINGS:
   READINGS:
     2020-07-31 12:58:50   alarmTime       00:00:15
     2020-07-31 13:10:05   alarmed         0
     2020-07-31 13:10:18   currtime        00:00:12
     2020-07-31 13:10:05   starttime       1596193805951
     2020-07-31 13:10:18   state           stopped
     2020-07-31 13:10:19   stoptime        00:00:12
Attributes:
   digitalColorBackground 1F1F1F
   digitalColorDigits E95D0F
   digitalDisplayPattern stopwatch
   digitalSegmentType 7
   digitalSegmentWidth 2.5
   disable    0
   htmlattr   width="150" height="100"
   room       Watches

Ich habe das Reading bei mir nicht.
Internals:
   DEF        Digital
   FUUID      5f21ef78-f33f-1e7a-44a0-a7d6db1c376bed2a
   FVERSION   60_Watches.pm:v0.26.0-s22109/2020-06-03
   MODEL      DIGITAL
   NAME       Uhr
   NR         65
   STATE      stopped
   TYPE       Watches
   HELPER:
     PACKAGE    FHEM::Watches
     VERSION    0.26.0
   OLDREADINGS:
   READINGS:
     2020-07-31 13:36:32   alarmed         0
     2020-07-31 13:36:36   currtime        00:00:18
     2020-07-31 13:36:32   starttime       1596195392204
     2020-07-31 13:36:36   state           stopped
     2020-07-31 13:36:37   stoptime        00:00:19
Attributes:
   DbLogExclude .*
   digitalColorBackground 1F1F1F
   digitalColorDigits E95D0F
   digitalDisplayPattern stopwatch
   digitalSegmentType 7
   digitalSegmentWidth 2.5
   htmlattr   width="350" height="100"


Zitat von: DS_Starter am 31 Juli 2020, 13:16:30
Ja, das kann passieren und waren meine Befürchtungen von denen ich weiter oben schon schrieb -> Ungenauigleiten und evtl. Performanceprobleme.
Letzteres scheint nicht aufzutreten und mit ersterem muß man dann wohl leben.  ;)
Auf meiner schnellen VM gibt es allerdings keine Abweichung zwischen diesen Readings. (siehe oben)
Nicht so schlimm. Immerhin es steht in einem Reading. Ich habe auch eine VM auf einem NUC. Sollte also nicht daran liegen.

DS_Starter

Leere doch mal deinen Browsercache -> JavaScript !
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

#101
In meinem contrib liegt nun eine ausgebaute Version. Alle Uhrendefinitionen können nun die angezeigte Zeit als Reading currtime schreiben.
Da ich keine Performanceprobleme erzeugen möchte, muss man diese Funktionalität mit der Attribut timeAsReading bewußt einschalten.

Edit: Ist eingecheckt und morgen im Update enthalten
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

TWART016

Zitat von: DS_Starter am 31 Juli 2020, 13:49:10
Leere doch mal deinen Browsercache -> JavaScript !
Habe den Browesercache gelöscht, aber nach wie vor das Verhalten. Auch andere Browser haben das Problem, denke also nicht, dass es daran liegt.

DS_Starter

#103
Hmm, kann ich bei mir nach wie vor nicht nachvollziehen. Ein set <> start lässt die Stoppuhr immer von 00:00:00 beginnen, egal ob alarmTime mit set <> alarmSet gesetzt wurde oder nicht.
Ich benutze Firefax und Chrome. Auch Edge funktioniert tadellos.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Du hattest doch geschrieben, du hast das Reading alarmTime nicht !?
Ich habe mal nachgeschaut ... das Reading wird beim set Kommando alarmSet mit wenigen FHEM Standard Perl Befehlen gesetzt. Das hat noch nichts mit JavaScript zu tun.
Wenn das Reading nicht gesetzt wird müsste es Perl Fehlermeldungen im Log geben o.ä.
Dein FHEM ist aktuell ?
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter