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

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

Vorheriges Thema - Nächstes Thema

DS_Starter

Ich hatte den Bedarf eine frei positionierbare Uhr auf einer Dashboardseite anzeigen zu können.
Ausgehend von den Javascript-Uhren auf den Seiten:

https://www.w3schools.com/graphics/canvas_clock_start.asp
http://www.3quarks.com/de/Bahnhofsuhr/
http://www.3quarks.com/de/Segmentanzeige/index.html

habe ich mir ein kleines Modul gebastelt mit welchem man sich eine Uhr im modernen Stil, eine Bahnhofsuhr oder eine Digitalanzeige definieren kann. Im Anhang gibt es ein paar Beispiele dazu.

Define

    define <name> Watches [Modern | Station | Digital]

    Modern    : erstellt eine analoge Uhr im modernen Design
    Station    : erstellt eine Bahnhofsuhr
    Digital    : erstellt eine Digitalanzeige (Uhr, (CountDown)Stoppuhr, statische Zeitanzeige oder Text) 

Zu jeder Uhr gibt es eine Handvoll Attribute zur Anpassung der Farbe und Darstellung.

Das Modul wird über FHEM Update ausgeliefert. Die neueste Entwicklungsversion befindet sich im Verzeichnis:
https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben:


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


Danach FHEM wie gewöhnlich restarten.

Grüße,
Heiko
ESXi@NUC+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

Ich habe die Möglichkeiten noch etwas erweitert.
Man kann nun auch einen kurzen Text in der Digtalanzeige platzieren.

digitalDisplayPattern [text | watch]
Umschaltung der Digitalanzeige zwischen Uhrenmodus (default) und Textanzeige. Der anzuzeigende Text kann mit dem Attribut "digitalDisplayText" definiert werden.

    watch    : Anzeige einer Uhr
    text    : Anzeige eines definierbaren Textes


digitalDisplayText
Ist das Attribut "digitalDisplayPattern = text" gesetzt, kann mit "digitalDisplayText" der anzuzeigende Text eingestellt werden. Im Default wird "Play" anzgezeigt.
Mit der Siebensegmentanzeige können Ziffern, Bindestrich, Unterstrich und die Buchstaben A, b, C, d, E, F, H, L, n, o, P, r, t, U und Y angezeigt werden. So lassen sich außer Zahlen auch kurze Texte wie ,,Error", ,,HELP", ,,run" oder ,,PLAY" anzeigen.

Das Beispielbild in #0 ist aktualisiert.
ESXi@NUC+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

xkalle01

Hallo DS_Starter,
Ich habe dein Modul gefunden, da ich eine Möglichkeit suche, eine Zeit anzuzeigen, die ein device eingeschaltet ist.
Wenn ich richtig verstanden habe, zeigt dein Module die Systemzeit an und ist nicht dafür entwickelt worden eine Laufzeit anzuzeigen.

Ich suche eine Anzeige die z. B. auf 00:00 steht und sekundenweise aufwärts zählt solange z. B. ein Schalter eingeschaltet ist.
Kann man dein Modul dafür verwenden und es so erweiten? Hast Du eine Idee?


DS_Starter

Das ist putzig, ich habe die Erweiterung als Stoppuhr noch auf meiner ToDo-Liste. :)
Momentan geht es noch nicht.
Eine Basis dafür könnte ein Zähler sein wie hier dargestellt http://www.3quarks.com/de/Segmentanzeige/index.html

Es zeigt dann ein Bild wie im Anhang.

Mal sehen ob/wann ich dazu komme.

LG,
Heiko
ESXi@NUC+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

Eine Idee hätte ich die jetzt schon funktioniert. Du kannst dir eine Digitaluhr definieren und die Anzeige mit digitalDisplayPattern = text auf Textanzeige umstellen.

Dann kannst du dir einen Zähler (z.B. mit at)  definieren der z.B. alle 10 Sekunden hochzählt und das Attribut der Watch ändern:

attr <Name> digitalDisplayText <Zähler>

Nicht sehr komfortabel, aber funktioniert.

VG
ESXi@NUC+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

Ich habe das Modul um eine Stoppuhr und eine statische Zeitanzeigemöglichkeit erweitert.
Beide Möglichkeiten werden im Model Digitaluhr angeboten.

Set

        start
        Startet die Stoppuhr.
        Dieses Set-Kommando ist nur bei einer Uhr vom Modell "digital" mit gesetztem Attribut digitalDisplayPattern = stopwatch vorhanden.

        stop
        Stoppt die Stoppuhr.
        Dieses Set-Kommando ist nur bei einer Uhr vom Modell "digital" mit gesetztem Attribut digitalDisplayPattern = stopwatch vorhanden.

        static <hh> <mm> <ss>
        Setzt eine statische Zeitanzeige mit hh-Stunden(24), mm-Minuten und ss-Sekunden.
        Dieses Set-Kommando ist nur bei einer Uhr vom Modell "digital" mit gesetztem Attribut digitalDisplayPattern = staticwatch vorhanden.

            Beispiel
            set <name> static 8 15 3 

Attribut

digitalDisplayPattern [staticwatch | stopwatch | text | watch]
Umschaltung der Digitalanzeige zwischen einer Uhr (default), einer Stoppuhr, statischen Zeitanzeige oder Textanzeige. Der anzuzeigende Text im Modus Textanzeige kann mit dem Attribut digitalDisplayText definiert werden.

    staticwatch    : statische Zeitanzeige
    stopwatch     : Stoppuhr
    text              : Anzeige eines definierbaren Textes
    watch           : Uhr

Version 0.5.0 liegt im contrib.

LG
ESXi@NUC+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

Frank_Huber

Hallo Heiko,

Was zeigt die Uhr denn an, Systemzeit des Servers oder die Zeit des Browser Clients?

Gesendet von meinem S68Pro mit Tapatalk


DS_Starter

#7
Hi Frank,

die Zeit des Clients (Javascript).
Serverzeit wäre natürlich toll, aber da wüßte ich nicht wie es ginge.

Systemzeit des Servers ist ab V0.8.0 angezeigt.

LG,
Heiko 
ESXi@NUC+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

Ich habe noch ein "set ... reset" hinzugefügt.

Ein set .. stop lässt die gestoppte Zeit der Stoppuhr stehen, wohingegen ein "reset" den Zähler auf 00:00:00 setzt.

VG
ESXi@NUC+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

Wolle02

Hallo Heiko,

jetzt bin ich rein zufällig über den Thread gestolpert. Toll. dass du so eine Uhr gebaut hast. Ich kann so was auch gut gebrauchen und wie das so ist kommen natürlich gleich die Wünsche und Begehrlichkeiten.  ???

Meinst du, du könntest auch noch einen Countdown einbauen? Also eine umgekehrte Stoppuhr?

Gruß
Wolle

DS_Starter

Zitatwie das so ist kommen natürlich gleich die Wünsche und Begehrlichkeiten.
Kenne ich   :)

ZitatMeinst du, du könntest auch noch einen Countdown einbauen? Also eine umgekehrte Stoppuhr?
Weiß nicht, aber ich versuchs mal.
Es geht mit Sicherheit, aber ich bin bei Javascript ein absoluter Beginner.  Anhand der Uhr wollte ich auch ein bisschen üben.  ;) Naja, da habe ich wieder einen sinnvollen Grund es zu tun.

Grüße,
Heiko
ESXi@NUC+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

Wolle02

Dann sag ich schon mal ganz dick DANKE für deine Bemühungen!

DS_Starter

#12
Hallo miteinander,

ich habe die Version 0.8.0 in mein contrib geladen.

Es hat sich allerhand getan.

* alle Uhren zeigen jetzt die Serverzeit des FHEM-Servers an (ab  V0.9.0 per Attribut zw. Server/Clientzeit umschaltbar)

* es ist eine CountDown Watch hinzugefügt (digitalDisplayPattern = countdownwatch). Ist der Countdown abgelaufen, löst das Reading countDownDone einen Event aus.

* es gibt einen Setter "continue" für die beiden Stoppuhren

Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben:
"wget -qO ./FHEM/60_Watches.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/60_Watches.pm"

Danach FHEM restarten.

Grüße,
Heiko
ESXi@NUC+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

Ich habe dem Modul jetzt noch ein Attribut "timeSource" spendiert mit dem man zwischen Anzeige der lokalen Client (Browser) Zeit und der FHEM-Serverzeit umschalten kann.
Per default wird die Serverzeit verwendet.
ESXi@NUC+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

Wolle02

Moin Heiko,

vielen Dank für die Umsetzung.
Ich habe mir gleich mal einen CountDown eingerichtet und einen Testcountdown mit 10 Sekunden eingestellt.
set DigiWatch countDownInit 00 00 10

Leider ist mir dann FHEM komplett abgeschmiert und ich konnte es nur durch einen Reboot des Pi wieder zum Leben erwecken.
Im Logfile habe ich folgendes gefunden:
Undefined subroutine &main::ReadingsBulkUpdateValue called at /opt/fhem/FHEM/60_Watches.pm line 151.

Gruß
Wolle