FHEM Forum

FHEM => Sonstiges => Thema gestartet von: DS_Starter am 19 November 2018, 23:00:33

Titel: 60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 19 November 2018, 23:00:33
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 20 November 2018, 10:59:14
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.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: xkalle01 am 26 April 2020, 20:11:39
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?

Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 26 April 2020, 20:52:17
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 26 April 2020, 23:41:37
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 28 April 2020, 22:19:29
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Frank_Huber am 28 April 2020, 22:33:48
Hallo Heiko,

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

Gesendet von meinem S68Pro mit Tapatalk

Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 28 April 2020, 22:43:13
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 
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 29 April 2020, 13:16:53
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Wolle02 am 29 April 2020, 13:51:50
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 29 April 2020, 13:58:55
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Wolle02 am 29 April 2020, 14:15:51
Dann sag ich schon mal ganz dick DANKE für deine Bemühungen!
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 01 Mai 2020, 22:16:55
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 02 Mai 2020, 08:14:45
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.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Wolle02 am 02 Mai 2020, 09:44:47
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 02 Mai 2020, 09:48:57
Ach sorry, da habe ich aus versehen eine falsche Subroutine genutzt die es nur bei mir gibt.  :o
Korrigiere ich gleich und gebe Bescheid.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: knopf_piano am 02 Mai 2020, 10:10:52
Bestätigung, hab das gleiche
Undefined subroutine &main::ReadingsBulkUpdateValue called at /opt/fhem/FHEM/60_Watches.pm line 151.
Rest schaut aber top aus!
Danke
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 02 Mai 2020, 10:57:02
So, bitte nochmal ziehen.
Kommt leider immer mal wieder im Laufe des Gefechts vor.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Wolle02 am 02 Mai 2020, 11:20:24
Kein Ding. Funktioniert jetzt super.

Vielen herzlichen Dank.

Gruß
Wolle
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: knopf_piano am 02 Mai 2020, 11:42:22
noch  nicht ganz.
bei stop eines laufenden Countdowns wird der nicht "resumed" sonder läuft im hintergrund weiter.
Bei continue steht der in hintergrund weitergezählte werd in der watch
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 02 Mai 2020, 11:44:33
Zitat
bei stop eines laufenden Countdowns wird der nicht "resumed" sonder läuft im hintergrund weiter.
Bei continue steht der in hintergrund weitergezählte werd in der watch
Ja, das war Absicht. Steht für "continue" auch so in der Hilfe.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: knopf_piano am 02 Mai 2020, 11:48:38
oh, ok rtfm,
dann hätt ich einen change request. :-)
neues set-command mit "resume"
machbar?
Greets
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 02 Mai 2020, 11:50:33
Zitatneues set-command mit "resume"
ich schau mal ...  :)
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 02 Mai 2020, 12:25:10
Moin,

habe es mir jetzt auch mal installiert. Läuft super.

Kleine Kosmetik in der Hilfe:
countDownInit <hh> <mm> <ss>
Setzt die Sterzeit einer
müsste wohl Startzeit heißen.

@knopf_piano
Als workaround countDownInit einfach auf 0 0 0 setzen.

LG

Andreas

Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 02 Mai 2020, 14:46:02
Ich habe noch folgende Set-Funktionalität für die beiden Stoppuhrvarianten eingebaut und etwas Bugfixing betrieben:

* alarmHMS <hh> <mm> <ss>
Setzt die Alarmzeit im Format hh-Stunden(24), mm-Minuten und ss-Sekunden.
Erreicht die Zeit den definierten Wert, wird ein Event des Readings "alarmed" erstellt.
Die Stoppuhr hält an diesem Wert an.
Wird eine CountDown-Stoppuhr mit "coninue" fortgesetzt, erfolgt ein nochmaliger alarmed-Event beim Erreichen der Zeit 00:00:00.
(default: 0 0 0)

Dieses Set-Kommando ist nur bei einer Uhr vom Modell "digital" mit gesetztem Attribut digitalDisplayPattern = stopwatch | countdownwatch vorhanden.

    Beispiel
    set <name> alarmHMS 0 30 10

Für countdownwatch gibt es auch das "reset" Kommando.

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 03 Mai 2020, 10:32:14
Hallo Uhrenfreunde,

für "stopwatch" ist nun ein resume Setter vorhanden. Dafür habe ich "continue" entfernt.
Es verträgt sich nicht wenn man z.B. resume und danach vllt. ein continue verwendet. Aber ich glaube die Verwendung von resume ist generell sinnvoller für eine Stoppuhr.

Für die Countdown Watch muss ich es noch implementieren, ist noch unverändert zur Zeit.

Bei allen Stoppuhren gibt es nun auch ein "alarmHMSdel" um eine gesetzte Alarmzeit zu löschen.

Kleiner Nachtrag:  alarmHMS habe ich zu "alarmHMSset" umbenannt. Gibt nun damit alarmHMSset und alarmHMSdel ... passt besser zusammen.

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 03 Mai 2020, 13:36:51
resume ist nun auch für countdownwatch verfügbar. Den Setter "continue" habe ich komplett entfernt.

VG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: LuckyDay am 03 Mai 2020, 14:15:48
Frage?
bei mir zeigt die VERSION immer noch--> VERSION    0.9.0
Internals:
   DEF        Digital
   FUUID      5eac8580-f33f-8631-d9bc-5bb966963385c533
   MODEL      Digital
   NAME       Uhr
   NR         112
   STATE      initialized
   TYPE       Watches
   VERSION    0.9.0
   .attraggr:
   .attrminint:
   READINGS:
     2020-05-03 13:55:32   state           initialized
Attributes:
   group      Uhr
   hideDisplayName 1
   room       Testroom,test


sollte aber 13 sein
Auszug aus der 60_Watches

# Versions History intern
my %Watches_vNotesIntern = (
  "0.13.0" => "03.05.2020  set resume for countdownwatch, set 'continue' removed ",
  "0.12.0" => "03.05.2020  set resume for stopwatch, new 'alarmHMSdel' command for stop watches, alarmHMS renamed to 'alarmHMSdelset' ",
  "0.11.0" => "02.05.2020  alarm event stabilized, reset command for 'countdownwatch', event alarmed contains alarm time ",
  "0.10.0" => "02.05.2020  renamed 'countDownDone' to 'alarmed', bug fix ",
  "0.9.0"  => "02.05.2020  new attribute 'timeSource' for selection of client/server time ",


und b.

Ich verwende F18 style
und da muss man explizit z.B.
attr Uhr group Uhr

um es per dragging  positionieren zu können.
nur als Info

Danke :)
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 03 Mai 2020, 17:53:43
Zitat
Frage?
bei mir zeigt die VERSION immer noch--> VERSION    0.9.0
Ja, lag an der Sortierroutine noch aus 2018. 
Habe jetzt gesamte Gerüst des Moduls auf aktuellen Stand gebracht inklusive Umstellung auf Packages und Support für Meta.pm, d.h. für den FHEM Installer von Loredo.

Liegt wieder im contrib.

Bezüglich f18 ist es wohl allgemein so, dass ein Device einer Gruppe zugeordnet sein muss um es per Drag positionieren zu können ?
Habe mir zum Test auch gerade eine solche Instanz angelegt. Verwende sonst nur default Style zur Entwicklung und für die produktiven Wandtablets den dark-Style mit Dashboard.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: knopf_piano am 03 Mai 2020, 18:55:39
fein isses,
danke!
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 03 Mai 2020, 19:14:42
Zitatfein isses,
danke!
:D

Mal eine allgemeine Frage...
Als ich das Modul vor zwei Jahren mal für mich gebastelt hatte, wollte ich einfach nur auf den Wandtabletts eine Uhr im FHEM Dashboard angezeigt haben.

Welche Use cases seht ihr denn bei euch für das Modul ?

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: LuckyDay am 03 Mai 2020, 19:19:18
ZitatBezüglich f18 ist es wohl allgemein so, dass ein Device einer Gruppe zugeordnet sein muss um es per Drag positionieren zu können ?

Normalerweise gruppiert Fhemweb auch ohne F18, wenn keine group angegeben ist
nach Modulnamen --> also hier Watches

Bei F18 wird kann man, wenn man dragging akitiv schaltet die Gruppen frei positionieren auf dem Bildschirm.

Ich wollte nur Info geben, ob das jetzt ein Bug Ist kann ich nicht beantworten.

Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: LuckyDay am 03 Mai 2020, 19:22:28
Ich habe endlich wieder eine Uhr , nochmals danke

Mit F18 ging die "alte" Bahnhofsuhr, statt Fhemlogo nicht mehr!

deswegen Freude bei mir über das Modul  ;D
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 03 Mai 2020, 19:44:38
Moin

ich nutze es zum Einen auch als Uhr und den Countdown als Restlaufanzeige u.a. für die Waschmaschine.

Wäre es eigentlich sehr schwierig, statt der 7 die 16-Segmentanzeige zu implementieren? Dann könnte man den Textmodus stärker nutzen. Nur ne Frage, kein Wunsch (oder doch  ::) ).

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 03 Mai 2020, 19:50:02
ZitatWäre es eigentlich sehr schwierig, statt der 7 die 16-Segmentanzeige zu implementieren?
Für jemanden der sich mit Javascript auskennt wäre es vermutlich kein Hexenwerk. Ich bin da noch nicht so firm ... aber arbeite dran.  ;)
Ich behalte es im Hinterkopf. Vllt. gelingt es mir wenn ich etwas tiefer eingedrungen bin.
Wäre bestimmt eine feine Sache...

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 03 Mai 2020, 21:28:25
ZitatWäre es eigentlich sehr schwierig, statt der 7 die 16-Segmentanzeige zu implementieren?
Ich habe die wichtige Stelle bereits entdeckt, denke das kriege ich hin.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 Mai 2020, 11:24:01
Ich habe eine neue Version in mein contrib geladen die eine Sechzehnsegmentanzeige realisiert und in diesem Zusammenhang noch einiges mehr an Einstellungsmöglichkeiten bei Digitalanzeigen bietet.

Auszug Hilfe was ergänzt ist:

digitalDigitAngle
Stellt den Neigungswinkel der dargestellten Zeichen ein.
(default: 9)

digitalDigitDistance
Stellt den Zeichenabstand ein.
(default: 2)

digitalDigitHeight
Stellt die Zeichenhöhe ein.
(default: 20)

digitalDigitWidth
Stellt die Zeichenbreite ein.
(default: 12)

digitalSegmentDistance
Legt den Abstand zwischen den Segmenten fest.
(default: 0.5)

digitalSegmentType
Schaltet die Segmentanzahl der Digitalanzeige um.
(default: 7)

digitalSegmentWidth
Verändert die Breite der einzelnen Segmente.
(default: 1.5)

Bei Textanzeige sollte man auf jeden Fall auf sechzehn Segmente umschalten. Dann kann man auch einen solchen Text wie im Anhang darstellen. Den default habe ich bei 7 gelassen da ich finde, dass die Uhrdarstellung (was nach dem Define der Standard ist) so besser aussieht.

Bei Erreichen einer eingestellten Alarmzeit stoppt die  Digitaluhr nicht mehr automatisch. Das kann man mit einem Notify als Reaktion auf den erstellten Alarmevent selbst machen wenn man möchte.

Hoffe es gefällt euch  :)

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 04 Mai 2020, 13:54:07
Moin,

Super. Danke für die schnelle Umsetzung.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 04 Mai 2020, 13:58:44
Moin,

leider kommt jetzt nach Ablaufen des Countdowns kein Stop-Event mehr, nur noch beim Stoppen von Hand.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 Mai 2020, 14:24:15
Hallo Andreas,

zieh dir die Version nochmal, ich hatte inzwischen noch etwas weiter gemacht.
Leere auch mal den Browser Cache.

Ansonsten sollte es im Eventmonitor so aussehen:


2020-05-04 14:17:44.267 Watches DigiText starttime: 1588594664235
2020-05-04 14:17:44.267 Watches DigiText started
2020-05-04 14:17:53.347 Watches DigiText alarmed: 00:00:05
2020-05-04 14:17:53.347 Watches DigiText stopped
2020-05-04 14:18:08.295 Watches DigiText resumed
2020-05-04 14:18:14.338 Watches DigiText alarmed: 00:00:00
2020-05-04 14:18:14.357 Watches DigiText stopped


Das Beispiel zählt ab Start runter, alermiert bei 5 Sekunden Restzeit, wird durch notify gestoppt, dann mit Hand resumed und stoppt automatisch bei 0 mit stopped-Event.

LG
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Wolle02 am 04 Mai 2020, 15:09:34
ZitatMal eine allgemeine Frage...
Als ich das Modul vor zwei Jahren mal für mich gebastelt hatte, wollte ich einfach nur auf den Wandtabletts eine Uhr im FHEM Dashboard angezeigt haben.

Ich habe schon lange so einen praktischen CountDown Timer vermisst, der mir auch schön die noch verbleibende Restzeit anzeigt. Aber auch für die normalen Uhren finde ich ein Anwendungseckchen ;-)
Ich könnte mir schon vorstellen, dass da noch ein paar mehr Leute "Bedarf" hätten, wenn das Modul bekannter wäre.
Vielleicht solltest du über ein offizielles Einchecken nachdenken?

Auf jeden Fall vielen Dank für das Modul !!!


Gruß
Wolle
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 Mai 2020, 15:25:01
ZitatVielleicht solltest du über ein offizielles Einchecken nachdenken?
Ja, ich denke darüber nach. Ich schaue in der Statistik nach wieviel User das Modul nutzen. Zur Zeit sind es 15, meist ist die Dunkelziffer etwas höher.
Ich möchte einfach nur sicher sein keine groben Schnitzer mehr eingebaut zu haben und wenn alles soweit rund läuft mache ich das sicherlich auch. Deswegen sind die Rückmeldungen der Anwender auch so wichtig.

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 04 Mai 2020, 17:55:56
Moin Heiko,
habe mir jetzt noch mal die aktuelle Version von 15:48 Uhr gezogen.
So sieht es bei mir im Eventmonitor aus, wenn ich per notify stoppe:
2020-05-04 17:47:49 Watches Countdown alarmed: 0
2020-05-04 17:47:49 Watches Countdown starttime: 1588607269068
2020-05-04 17:47:49 Watches Countdown started
2020-05-04 17:48:11 Watches Countdown alarmed: 00:00:00
2020-05-04 17:48:11 Watches Countdown stopped
2020-05-04 17:48:12 Watches Countdown alarmed: 00:00:00


Und so, wenn ich erst per Hand stoppe:
2020-05-04 17:50:37 Watches Countdown alarmed: 0
2020-05-04 17:50:37 Watches Countdown starttime: 1588607437959
2020-05-04 17:50:37 Watches Countdown started
2020-05-04 17:50:59 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:00 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:01 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:03 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:04 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:05 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:05 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:06 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:06 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:06 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:06 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:07 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:07 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:07 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:07 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:07 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:08 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:08 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:08 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:08 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:08 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:09 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:09 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:09 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:09 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:10 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:10 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:10 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:10 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:10 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:11 Watches Countdown alarmed: 00:00:00
2020-05-04 17:51:11 Watches Countdown stopped
2020-05-04 17:51:11 Watches Countdown alarmed: 00:00:00


LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 Mai 2020, 18:06:38
Hi Andreas,

habe 17:40 das letzte mal upgedated. Zieh nochmal bitte.
Benutzt du Client oder Serverzeit ?
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 Mai 2020, 18:10:10
Vergiss es ... bei mir kommt das Gleiche wenn ich keinen Alarmpunkt mit alarmHMSset  gesetzt habe.
Ich ergründe das ...
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 04 Mai 2020, 18:14:04
Vorher hatte es funktioniert. Zumindest, bevor Du die Segmentauswahl hinzugefügt hattest. Kann leider nicht sagen, ob direkt danach nicht mehr, oder erst später.
Im Contrib finde ich übrigens nur die Version von 15:48 Uhr, auch nach Browserrefresh mit F5.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 Mai 2020, 18:28:56
So, jetzt nochmal bitte Andreas.
Wegen der Zeit nicht wundern. SVN hat UTC, d.h. mein eben gemachter Update dürfte mit ca. 16:25 drin stehen.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 04 Mai 2020, 18:41:48
Moin Heiko,

jetzt geht es wieder.

Wäre es eigentlich möglich, im Textmodus den Text mit set zu setzen statt als Atribut? Dann hätte man bei wechselnden Texten nicht immer das blöde Fragezeichen. Geht aber natürlich auch so.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 Mai 2020, 19:06:04
ZitatWäre es eigentlich möglich, im Textmodus den Text mit set zu setzen statt als Atribut?
Na klar, das baue ich um. Ist ohnehin besser wenn man Text z.B. mit einem Notify o.ä. wechselnd einblenden will.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 Mai 2020, 20:53:08
Der Text kann nun mit

set <name> displayTextSet <Text>

gesetzt und mit dem Setter "displayTextDel" gelöscht werden.
Das Attribut "digitalDisplayText" ist entfernt.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 04 Mai 2020, 21:09:23
Moin,

Du bist ja schneller als die Polizei erlaubt. Wenn jetzt noch ( ganz vorsichtig angefragt) statt Play vielleicht Text oder ähnlich neutrales nach dem Löschen erscheinen würde, fände ich es perfekt. K.A., wie Du oder die anderen Nutzer darüber denken.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 Mai 2020, 21:19:33
"Text" geht zwar nicht (default 7-Segmentanzeige), aber ich habe den Standardtext einfach auf "----" gesetzt.
Denke das ist neutral genug.  :D

Contrib ist upgedated.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 05 Mai 2020, 14:39:21
Für den Textmodus der Digitalanzeige habe ich noch einen Laufschriftmodus implementiert und auch die Möglichkeit die angezeigte Anzahl der Textstellen per Attribut festzulegen.
Dadurch bleibt die Größe der Textanzeige erhalten wenn man wechselnde Texte zur Anzeige bringt. Der Text muß natürlich reinpassen  ;) oder aber man schaltet auf Laufschrift um.  :)

* digitalTextDigitNumber <Anzahl>
Wenn <Anzahl> > 0 wird die Anzahl der Stellen einer Textanzeige (digitalDisplayPattern = text) fest eingestellt. Wenn <Anzahl> = 0 oder nicht gesetzt erfolgt die Festlegung automatisch. In diesem Fall erfolgt eine Adaption der Zeichengröße an die Anzahl abhängig von der eingestellten Displaygröße (siehe htmlattr).
(default: 0)

* digitalTextTicker
Schaltet den Laufschriftmodus einer Textanzeige (digitalDisplayPattern = text) ein bzw. aus.
(default: 0)

Liegt als V0.17.0 im contrib.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 05 Mai 2020, 15:18:47
Super, als ob Du Gedanken lesen könntest. Hatte mich nur nicht getraut, dass auch noch vorzuschlagen.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 05 Mai 2020, 15:26:05
Ja, manchmal habe ich solche Intuitionen  :D

Was ich noch vorhabe zu implementieren ist:

- Support für mehrere Alarmzeiten, vllt. 3 insgesamt
- Alarmeventerstellung auch für Analoguhren

Das erstmal soweit. Dann muß ich mich auch mal wieder um meine anderen Module kümmern.  ;)

LG,
Heiko

Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 05 Mai 2020, 15:36:43
Dann hätte ich noch eine Anregung, wenn es nicht zu umständlich ist. Eventuell den Ticker auch per set setzen. Jetzt läuft die Schrift ja auch, wenn der Text passen würde. Ansonsten könnte man dann selber beim Setzen des Textes (z.B. per DOIF) sagen, wenn der Text mehr Zeichen enthält als in DigitNumber eingestellt, dann schalte Laufschrift ein und zeig den Text an, ansonsten Laufschrift aus.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 05 Mai 2020, 15:40:34
Das ist eine sehr gute Idee Andreas.
Ich muss mir nur durch den Kopf gehen lassen ob ich dann generell auf das Attr verzichte oder quasi mit einem Setter überschreibbar mache.
Das denke ich mir noch aus und melde mich wieder mit einer Version ...
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 06 Mai 2020, 10:20:01
Moin,

das hat nun etwas länger gedauert, aber die neue Version ist nun im contrib.

Ich hatte noch ein Problem festgestellt, dass der gesetzte Text erst mit einem Browser Refresh aktiviert wurde. Das musste ich zunächst lösen. Jetzt kann der Text und der Laufschriftmodus mit einem Setter (auch über ein at, notify, what else..) ein- und ausgeschaltet werden. Das vorherige Attribut 'digitalTextTicker' habe ich entfernt.

* textTicker on | off
Schaltet den Laufschriftmodus einer Textanzeige (siehe Attribut digitalDisplayPattern) ein bzw. aus.
(default: off)

In dem Zusammenhang habe ich die default Schrift "----" nun komplett gelöscht. Ist also per default keine Anzeige vorhanden.
Es gab bei Umschalten unschöne Effekte, dass kurzzeitig das Pattern "----" aufblitzte ... hat mich gestört.  ;)

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 06 Mai 2020, 14:26:58
Kleiner Tipp ...
Wenn ihr euch eine Auswahlliste vorgefertigter Texte für "displayTextSet" hinterlegen wollt, geht das mit widgetoverride folgendermaßen:


attr Digitalanzeige widgetOverride displayTextSet:Ein#Test,Noch#ein#Test,Und#noch#einer,Und#ein#letzter#Test#in#der#Liste


Die Auswahl steht dann als Drop-Down-Liste im Setter displayTextSet zur Verfügung.

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 07 Mai 2020, 09:50:01
Mit der Version 0.20.0 im contrib kann nun auch eine Alarmzeit für die Analoguhren (Station, Modern) gesetzt werden.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 08 Mai 2020, 21:20:25
Ich habe noch einiges an Optimierungen und Bugfixes eingebaut.
Sollte sich jetzt langsam dem Endstand nähern.  :)

Unter anderem sind die Setter alarmHMSset / alarmHMSdel gekürzt auf alarmSet / alarmDel. Bitte beachten !

LG
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 09 Mai 2020, 21:22:39
Die Darstellung des linken Randes der digitalen Textanzeige habe ich noch nachgebessert. Außerdem kann man die Randabstände nun mit einem Attribut einstellen:

* digitalBorderDistance
Linker und rechter Abstand der digitalen Textanzeige vom Hintergrundrand.
(default: 8px) 

VG
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 09 Mai 2020, 21:44:14
Ich warte mal, was Dir sonst noch einfällt. Im Moment funktioniert bei mir alles so, wie ich es brauche.
Dürfte kurz vorm Einchecken sein.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 09 Mai 2020, 21:49:29
Sind wirklich nur noch Kleinigkeiten bzw. kosmetische Korrekturen.
Ansonsten sollte es das wirklich gewesen sein. Ist ja nur ein kleines Hilfsmodul und soll es auch blieben.
Die Laufschriftanzeige finde ich gut und habe sie jetzt auch als Wetterticker auf den Wandtabletts im Einsatz.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: LuckyDay am 10 Mai 2020, 00:05:15
Zitat von: DS_Starter am 09 Mai 2020, 21:49:29

Die Laufschriftanzeige finde ich gut und habe sie jetzt auch als Wetterticker auf den Wandtabletts im Einsatz.

LG,
Heiko

Bitte mal zeigen  :)
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 10 Mai 2020, 07:36:06
Guten Morgen,

ZitatBitte mal zeigen 

Gerne, das ist leicht und schnell gemacht.
Erstmal ein Watch-Device als Digitalanzeige definiert und eingestellt:

define DigiText Watches digital
attr DigiText alias aktuelle Wettermeldungen
attr DigiText digitalColorBackground 000000
attr DigiText digitalColorDigits E8D574
attr DigiText digitalDigitAngle 9.0
attr DigiText digitalDigitDistance 2.0
attr DigiText digitalDigitHeight 6.9
attr DigiText digitalDigitWidth 5.0
attr DigiText digitalDisplayPattern text
attr DigiText digitalSegmentDistance 0.0
attr DigiText digitalSegmentType 16
attr DigiText digitalSegmentWidth 0.8
attr DigiText digitalTextDigitNumber 30
attr DigiText hideDisplayName 1
attr DigiText htmlattr width="650" height="30"
attr DigiText room Haustechnik->Uhren

setstate DigiText initialized
setstate DigiText 2020-05-10 06:38:52 displayText Leicht bewoelkt bei aktuell 12 Grad * Wind 3 km/h
setstate DigiText 2020-05-06 10:00:05 displayTextTicker on
setstate DigiText 2020-05-10 07:03:27 state initialized


Die ganzen Attribute sind Einstellungen für die Darstellung wie z.B. Text- und Hintergrundfarbe, Segmentstärken, Größen usw.
Wichtig für die Textanzeigen ist der 16-Segment Modus (digitalSegmentType). Die meisten der Attribute kann man bequem über einen Schieberegler oder Picker auswählen.

Mit einem "set DigiText textTicker on (off)" schaltet man je nach Geschmack den Laufschriftmodus an oder aus. Geht auch dynamisch z.B. in Abhängigkeit der Zeichenzahl ... what ever ...

Nachdem das Gerüst steht, kommt der Content dran.
Den erzeuge ich mit einem einfachen notify aus den Readings eines Weather-Devices:


define N.MyWetter.set.Digitext notify MyWetter:temperature:.* {
                          my $pre = "";;\
                          my $sep = "*";;\
                          my $t = "aktuell ".ReadingsVal ($NAME, "temp_c",     "n.a.")." Grad";;\
                          my $w = "Wind ".   ReadingsVal ($NAME, "wind_speed", "n.a.")." km/h";;\
                          my $c =            ReadingsVal ($NAME, "condition",  "n.a.");;\
                          $c =~ s/ü|Ü/ue/g;;\
                          $c =~ s/ä|Ä/ae/g;;\
                          $c =~ s/ö|Ö/oe/g;;\
                          $c =~ s/ß/ss/g;;\
                          CommandSet (undef, "DigiText displayTextSet $pre $c bei $t $sep $w $pre");;\
                          return;;\
                        }

attr N.MyWetter.set.Digitext room Haustechnik->Uhren



Das Weather Device bietet ja sehr viele Informationen. Ich habe mir mal drei rausgepickt die arrangiert und zusammen
auf dem Display als umlaufende Laufschrift angezeigt werden.
Umlaute muss man in Vokale umwandeln. Sie können nicht dargestellt werden.

Im Anhang sieht man nochmal die Definition und dann einen Ausschnitt aus einem Dashboard so wie ich es dann Live
benutze.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 24 Mai 2020, 09:44:54
Das Modul habe ich nun ins FHEM Repo eingecheckt und wird ab morgen früh mit dem normalen Update ausgeliefert.

VG
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Erich Fromm am 25 Mai 2020, 22:55:41
Hallo.

Ich bin gerade über das Modul gestolpert, da ich gerne die Verzögerung via "wait" aus einem DOIF anzeigen möchte. Siehe https://fhem.de/commandref_DE.html#DOIF_wait (https://fhem.de/commandref_DE.html#DOIF_wait).

Frage: wie kann im "countDownInit" des Watches auf die Readings eines DOIF zugegriffen werden? ... oder allgemeiner: wie kann im "countDownInit" des Watches auf die Readings eines anderen Devices zugegriffen werden?
Und ... welche Berechnungen sind möglich?
Konkret: im "wait" des DOIF hat es Sekunden. Wie werden die Sekunden aus dem DOIF in "countDownInit <hh> <mm> <ss>" umgewandelt?

Beispiel: ein DOIF Readings mit Namen "CountDownTest" und mit Wert 900 (Sekunden) soll zu einem "set <name> countDownInit 00 15 00 werden".

Grüße, Erich
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 25 Mai 2020, 23:16:51
Hallo Erich,

ZitatBeispiel: ein DOIF Readings mit Namen "CountDownTest" und mit Wert 900 (Sekunden) soll zu einem "set <name> countDownInit 00 15 00 werden".

diese Umwandlung musst du selbst in einem kleinen Script vornehmen.
Das Modul erwartet als Eingabe im Set countDownInit:

set <name> countDownInit <h> <min> <sec>

Sollte es von allgemeinem Interesse sein an dieser Stelle auch "nur" Sekunden angeben zu können, würde ich diese Möglichkeit im Modul einbauen.

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Erich Fromm am 25 Mai 2020, 23:33:36
Hallo.

Danke für die prompte Rückmeldung.

Ich denke ich brauche hier eine Hilfestellung ...

... wie ist die Syntax für den Zugriff auf die Readings eines anderen Devices? Zum Beispiel wie bei DOIF mit
"Status werden mit [<devicename>], Readings mit [<devicename>:<readingname>], Internals mit [<devicename>:&<internal>] angegeben".
Funktioniert ein?
set myWatch countDownInit 00 [myDOIF:myWatchMinutes] 00

... und wie funktionieren Berechnungen? Zum Beispiel wie bei DOIF mit "Berechnungen können in geschweiften Klammern erfolgen. Aus Kompatibilitätsgründen, muss die Berechnung unmittelbar mit einer runden Klammer beginnen. Innerhalb der Perlberechnung können Readings, Status oder Internals wie gewohnt in eckigen Klammern angegeben werden.".
Funktioniert?
set myWatch countDownInit 00 {([myDOIF:myWatch])/60} 00

Vorab vielen Dank.

Grüße, Erich
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 25 Mai 2020, 23:56:32
Zitat... wie ist die Syntax für den Zugriff auf die Readings eines anderen Devices?
In Perl-Routinen verwendet man

ReadingsVal ("<Device>", "<Reading>", "<Default-Wert>")

Mit DOIF kenne ich mich nicht aus, das benutze ich nicht.

Aber ich glaube es ist einfacher wenn ich morgen die Möglichkeit vorsehe, direkt Sekunden an dieser Stelle eingeben zu können und die Umrechnung im Modul selbst vorzunehmen.  ;)
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 26 Mai 2020, 10:28:15
Moin,

ich weis nicht, wie die anderen Nutzer es sehen, aber ich finde es gerade gut, daß man nicht erst umrechnen muss, sondern direkt Stunden und Minuten eingeben kann.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Wolle02 am 26 Mai 2020, 10:41:29
Vielleicht kann man das ja durch ein Attribut wählbar machen?
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 26 Mai 2020, 10:45:01
Moin,

Zitatich weis nicht, wie die anderen Nutzer es sehen, aber ich finde es gerade gut, daß man nicht erst umrechnen muss, sondern direkt Stunden und Minuten eingeben kann.

Ja, sehe ich auch so. Bleibt auch genauso erhalten. Würde nur vorsehen, wenn man statt der bisherigen Pflicht

  hh mm ss 

nur eine

  <Zahl>

eingibt, die Eingabe als Sekunden gewertet und intern umgerechnet wird in die Form "hh mm ss".
Damit bliebe das bisherige Verhalten unangetastet was mir wichtig ist.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Erich Fromm am 26 Mai 2020, 14:27:18
Zitat von: DS_Starter am 25 Mai 2020, 23:56:32
In Perl-Routinen verwendet man

ReadingsVal ("<Device>", "<Reading>", "<Default-Wert>")

Mit DOIF kenne ich mich nicht aus, das benutze ich nicht.

Aber ich glaube es ist einfacher wenn ich morgen die Möglichkeit vorsehe, direkt Sekunden an dieser Stelle eingeben zu können und die Umrechnung im Modul selbst vorzunehmen.  ;)

Vorab schon einmal Dankeschön  :)

D.h. nach Anpassung/Umstellung wäre so etwas denkbar?

set myWatch countDownInit {ReadingsVal ("myDOIF", "myWatchInitValueInSeconds", "0")}


Grüße,
Erich
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 26 Mai 2020, 18:41:46
Hallo zusammen,

in meinem contrib befindet sich vor die neue Version.
Möglich ist jetzt:

set <name> countDownInit <hh> <mm> <ss> | <Sekunden>

Setzt die Startzeit einer CountDown-Stoppuhr. Das Format kann sein <hh> Stunden, <mm> Minuten und <ss> Sekunden oder alternativ nur eine Angabe in Sekunden.
Dieses Set-Kommando ist nur bei einer digitalen CountDown-Stoppuhr vorhanden.

    Beispiel
    set <name> countDownInit 0 30 10
    set <name> countDownInit 3600

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.
Ich checke die Version heute Abend noch ein und ist dann morgen früh im Update verfügbar.

@Erich, du kannst es ja schonmal ausprobieren. Wie gesagt, DOIF kenne ich nicht weil noch nie benötigt. Aber in einer Perl-Routine würde man es z.B. so machen:


{
  my $val = AttrNum ("myDOIF", "myWatchInitValueInSeconds", "0");
  fhem("set <Watch-Device> countDownInit $val");
}


Viel Spaß beim testen.

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 26 Mai 2020, 19:33:16
Moin,

falls er wirklich das wait haben möchte, braucht er AttrNum.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 26 Mai 2020, 19:37:05
So wie jetzt im obigen Post ?
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 26 Mai 2020, 19:55:58
Müsste klappen. Sonst muss @Erich Fromm einen neuen Thread aufmachen.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 26 Mai 2020, 20:06:00
Moin,

neue Version getestet. Funktioniert.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Erich Fromm am 27 Mai 2020, 22:10:30
Zitat von: DS_Starter am 26 Mai 2020, 18:41:46
@Erich, du kannst es ja schonmal ausprobieren. Wie gesagt, DOIF kenne ich nicht weil noch nie benötigt. Aber in einer Perl-Routine würde man es z.B. so machen:

{
  my $val = AttrNum ("myDOIF", "myWatchInitValueInSeconds", "0");
  fhem("set <Watch-Device> countDownInit $val");
}


Dankeschön, Heiko.

... ich stehe hier immer noch auf dem Schlauch. Ignorieren wir doch mal das DOIF. Wie würde es bei einem notify funktionieren?

define myWatchNotify notify <SuchmusterIrgendwas> <Anweisung>


Wie wäre <Anweisung> zu formulieren, wenn mit Anweisung ein "set myWatch countDownInit <Variable>" erfolgen soll?

Gruß, Erich
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 27 Mai 2020, 22:35:46
Hallo Erich,

im Prinzip so wie ich es oben geschrieben habe. Hier als Beispiel mit 900 Sekunden:


define myWatchNotify notify <SuchmusterIrgendwas> {
  my $val = 900;
  fhem("set myWatch countDownInit $val");
}


Die Variable $val kannst du natürlich aus einem ReadingsVal, AttrVal etc. ableiten, sofern das Ergebnis eine ganze Zahl ist.

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: osid-timo am 31 Mai 2020, 12:23:14
Hallo,
eine weitere tolle Funktion.
Ich würde die Funktion nutzen um die Zeit mitzustoppen, verschiedene Geräte Laufzeiten zu überwachen.
Wie kann man bei einer Stopuhr auf die erreichte Zeit zugreifen, ein Reading konnte ich noch nicht finden.

In einem DOIF möchte ich die erreichte Zeit, auch nach mehreren Stopps auswerten.

Gruß Osid-timo
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 31 Mai 2020, 13:07:34
ZitatWie kann man bei einer Stopuhr auf die erreichte Zeit zugreifen, ein Reading konnte ich noch nicht finden.

Die Uhr(en) sind JavaScript-basierend und laufen im Browser ab wobei es natürlich Kommunikation mit dem FHEM-Server für bestimmte Funktionen gibt.
Ich könnte die erreichte Stoppzeit in ein Reading schreiben wenn die Stoppuhr angehalten wird. Der Wert wäre aber kumulierend, würde also nach einem resume und erneuten Stop die insgesamt gestoppte Zeit enthalten.

Wenn es das ist was du bräuchtest, könnte ich es sicherlich einbauen.
Habe ich dich richtig verstanden ?

Grüße,
Heiko 
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: osid-timo am 31 Mai 2020, 16:02:17
Hallo Heiko,
Vollkommen richtig verstanden, es ist genau das was ich suche

Gruß Oswald
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 31 Mai 2020, 16:06:24
Hallo Oswald,

alles klar, ich melde mich mit einer Testversion. Bin erstmal mit etwas anderem beschäftigt, aber ich mache das zeitnah.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 03 Juni 2020, 23:21:10
Hallo Oswald,

ich habe deine Anregung umgesetzt. In der Stopwatch gibt es nun das Readin stoptime.
Die neue Version ist morgen früh im Regelupdate enthalten,

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: osid-timo am 05 Juni 2020, 15:09:00
Hallo Heiko,
danke für die Funktionsintegration
ein kleines Thema gibt es noch: nach einem Reset ist das Reading stoptime weg und nicht 00:00:00.
Damit ist eine Abfrage in einem DOIF nicht möglich

DOELSEIF (([PumpeStoppUhr1:stoptime] lt "00:03:00") or ["$SELF:P_mybutton: on"] )
(( IF ([PumpeStoppUhr1:stoptime] eq "00:00:00") (set PumpeStoppUhr1 start) ELSE (set PumpeStoppUhr1 resume) ##gewünschte Laufzeit noch nicht abgelaufen


ist diese Änderung noch möglich?

Gruß Oswald
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 05 Juni 2020, 15:26:17
Zitatist diese Änderung noch möglich?
Kann ich machen, dauert aber etwas weil ich momentan keine Zeit habe.

Kannst du inzwischen nicht abfragen auf


(( IF (![PumpeStoppUhr1:stoptime])....


Das ist nur sinngemäß, ich kenne und nutze DOIF nicht. Deswegen wird die Syntax vermutlich falsch sein.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 06 Juni 2020, 14:38:07
Moin,

ich habe hier https://forum.fhem.de/index.php?topic=111866 in den Codeschnipseln mal einen Thread aufgemacht, wo man Anwendungsbeispiele für die countdownwatch einstellen kann.

Das erste Beispiel für eine mögliche Anzeige des DOIF-Wait-Timers ist auch schon eingestellt.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: osid-timo am 07 Juni 2020, 09:48:30
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 08 Juni 2020, 20:39:45
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

Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 08 Juni 2020, 20:57:14
Moin,

von mir aus kann es so bleiben wie es ist.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 30 Juli 2020, 00:20:12
Gibt es die Möglichkeit, dass die Readings die Sekunden mitzählen? Würde das gerne in FTUI nutzen.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 30 Juli 2020, 00:35:38
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.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 30 Juli 2020, 02:21:46
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.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag 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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 31 Juli 2020, 11:35:51
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?
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 31 Juli 2020, 13:16:30
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.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 31 Juli 2020, 13:42:47
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.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 31 Juli 2020, 13:49:10
Leere doch mal deinen Browsercache -> JavaScript !
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 31 Juli 2020, 16:57:57
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 02 August 2020, 21:26:01
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.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 02 August 2020, 22:25:40
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.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 02 August 2020, 23:02:57
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 ?
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 03 August 2020, 01:52:01
Zitat von: DS_Starter am 02 August 2020, 23:02:57
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 ?

Mittlerweile bekomme ich das Reading angezeigt.
Internals:
   DEF        Digital
   FUUID      5f21ef78-f33f-1e7a-44a0-a7d6db1c376bed2a
   FVERSION   60_Watches.pm:v0.26.0-s22507/2020-08-01
   MODEL      DIGITAL
   NAME       Uhr
   NR         65
   STATE      stopped
   TYPE       Watches
   HELPER:
     PACKAGE    FHEM::Watches
     VERSION    0.26.0
   OLDREADINGS:
   READINGS:
     2020-08-03 01:48:19   alarmed         0
     2020-08-03 01:48:38   currtime        00:02:22
     2020-08-03 01:48:19   starttime       1596412099816
     2020-08-03 01:48:32   state           stopped
     2020-08-03 01:48:48   stoptime        00:02:31
Attributes:
   DbLogExclude .*
   digitalColorBackground 1F1F1F
   digitalColorDigits E95D0F
   digitalDisplayPattern stopwatch
   digitalSegmentType 7
   digitalSegmentWidth 2.5
   htmlattr   width="350" height="100"
   timeAsReading 1
   verbose    5


FHEM ist aktuell.

Im Log steht nichts.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 03 August 2020, 09:37:40
Also ich sehe bei dir immer noch kein Reading alarmTime.  ;)

Vielleicht kann jemand anders deine Definition mal ausprobieren. Bei mir läuft sie einwandfrei und ich wüsste nicht wo ich ansetzen könnte. Habe bei mir auch mehr als eine Stoppuhr definiert. Gegenseitige Beeinflussung scheidet demnach auch aus.

LG
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 03 August 2020, 10:28:09
Zitat von: DS_Starter am 03 August 2020, 09:37:40
Also ich sehe bei dir immer noch kein Reading alarmTime.  ;)

Vielleicht kann jemand anders deine Definition mal ausprobieren. Bei mir läuft sie einwandfrei und ich wüsste nicht wo ich ansetzen könnte. Habe bei mir auch mehr als eine Stoppuhr definiert. Gegenseitige Beeinflussung scheidet demnach auch aus.

LG
Falsche list, hier:
Internals:
   DEF        Digital
   FUUID      5f21ef78-f33f-1e7a-44a0-a7d6db1c376bed2a
   FVERSION   60_Watches.pm:v0.26.0-s22507/2020-08-01
   MODEL      DIGITAL
   NAME       Uhr
   NR         65
   STATE      stopped
   TYPE       Watches
   HELPER:
     PACKAGE    FHEM::Watches
     VERSION    0.26.0
   OLDREADINGS:
   READINGS:
     2020-08-03 09:57:45   alarmTime       00:01:24
     2020-08-03 09:57:48   alarmed         0
     2020-08-03 09:57:55   currtime        00:00:19
     2020-08-03 09:57:48   starttime       1596441468350
     2020-08-03 09:57:55   state           stopped
     2020-08-03 09:57:56   stoptime        00:00:20
Attributes:
   DbLogExclude .*
   digitalColorBackground 1F1F1F
   digitalColorDigits E95D0F
   digitalDisplayPattern stopwatch
   digitalSegmentType 7
   digitalSegmentWidth 2.5
   htmlattr   width="350" height="100"
   timeAsReading 1
   verbose    5


Jetzt beginnt er bei 13 Sekunden mit dem zählen.

Ich habe den RAW Code auf einem anderen Server importiert, und das gleiche Problem.
defmod Uhr Watches Digital
attr Uhr DbLogExclude .*
attr Uhr digitalColorBackground 1F1F1F
attr Uhr digitalColorDigits E95D0F
attr Uhr digitalDisplayPattern stopwatch
attr Uhr digitalSegmentType 7
attr Uhr digitalSegmentWidth 2.5
attr Uhr htmlattr width="350" height="100"
attr Uhr timeAsReading 1
attr Uhr verbose 5
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 03 August 2020, 12:47:56
Ich ahne etwas. Die Startzeit der Stoppwatch wird beim Start im Reading starttime gespeichert um daraus die abgelaufene Zeit zu ermitteln. Diese Zeit wird vom FHEM Server geliefert.
Wenn dein Client nicht zeitsynchronisiert ist, hast du vermutlich diese Diskrepanz. Vergleiche mal die Zeitsynchronisation von Server und Client.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 04 August 2020, 00:53:43
Ich habe start und den date BEfehl auf dem Server fast gleichzeitig ausgeführt. Zeit sollte aber passen.


Internals:
   DEF        Digital
   FUUID      5f27c473-f33f-50ef-a3b2-ebf1368742551569
   FVERSION   60_Watches.pm:v0.26.0-s22507/2020-08-01
   MODEL      DIGITAL
   NAME       Uhr
   NR         1025
   STATE      started
   TYPE       Watches
   HELPER:
     PACKAGE    FHEM::Watches
     VERSION    0.26.0
   OLDREADINGS:
   READINGS:
     2020-08-04 00:52:03   alarmed         0
     2020-08-04 00:52:16   currtime        00:00:12
     2020-08-04 00:52:03   starttime       1596495123575
     2020-08-04 00:52:03   state           started
Attributes:
   DbLogExclude .*
   digitalColorBackground 1F1F1F
   digitalColorDigits E95D0F
   digitalDisplayPattern stopwatch
   digitalSegmentType 7
   digitalSegmentWidth 2.5
   event-on-change-reading .*
   htmlattr   width="350" height="100"
   timeAsReading 1
   verbose    5


Di 4. Aug 00:52:04 CEST 2020
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 04 August 2020, 08:00:01
Das passt schon, aber das meinte ich nicht. Du müsstest die Ausgabe von date auf dem Server mit der Zeitangabe auf deinem Client (PC) vergleichen. Idealerweise solten sich beide regelmäßig mit einem Zeitdienst bzw. NTP-Server synchronisieren. Dann laufen die auch nicht auseinander.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 10 August 2020, 22:56:58
Hallo zusammen,

ich habe der Stoppuhr und der Countdownwatch einen kleinen Satz Steuerbuttons spendiert. Damit kann man auf der Weboberfläche die grundlegendsten Funktionen start, stop, resume, reset ausführen.

Und noch zwei Attribute wenn man die Tasten nicht braucht oder deren Größe verändern möchte.

controlButtonSize
Ändert die Größe der Steuerdrucktasten sofern der Uhrentyp über Steuerdrucktasten verfügt.

hideButtons
Verbirgt die Steuerdrucktasten sofern der Uhrentyp über Steuerdrucktasten verfügt.


Liegt erstmal in meinem contrib zum manuellen Download.

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 11 August 2020, 00:04:54
Zitat von: DS_Starter am 04 August 2020, 08:00:01
Das passt schon, aber das meinte ich nicht. Du müsstest die Ausgabe von date auf dem Server mit der Zeitangabe auf deinem Client (PC) vergleichen. Idealerweise solten sich beide regelmäßig mit einem Zeitdienst bzw. NTP-Server synchronisieren. Dann laufen die auch nicht auseinander.
Das war auch gleich. Ich habe den Timer auf einem anderen Client gestartet. Danach lauft es auf allen erstmal richtig.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: TWART016 am 11 August 2020, 00:10:28
Zitat von: DS_Starter am 10 August 2020, 22:56:58
Hallo zusammen,

ich habe der Stoppuhr und der Countdownwatch einen kleinen Satz Steuerbuttons spendiert. Damit kann man auf der Weboberfläche die grundlegendsten Funktionen start, stop, resume, reset ausführen.

Und noch zwei Attribute wenn man die Tasten nicht braucht oder deren Größe verändern möchte.

controlButtonSize
Ändert die Größe der Steuerdrucktasten sofern der Uhrentyp über Steuerdrucktasten verfügt.

hideButtons
Verbirgt die Steuerdrucktasten sofern der Uhrentyp über Steuerdrucktasten verfügt.


Liegt erstmal in meinem contrib zum manuellen Download.

Grüße,
Heiko

Sieht gut aus. Nur beim Start und Resume wird am Anfang ganz kurz eine andere Zeit angezeigt. Manchmal -50 / +50% / 1min. Kann aber nicht sagen was genau.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 11 August 2020, 00:17:00
Zitat
Nur beim Start und Resume wird am Anfang ganz kurz eine andere Zeit angezeigt. Manchmal -50 / +50% / 1min. Kann aber nicht sagen was genau.
Das beobachte ich bei mir auch. Ist nur bei Betätigung über die Tasten so. Wird die Funktion über die normalen "set ... xxx" ausgeführt, gibt es diese Beobachtung nicht. Mal schauen ob ich das noch verbessern kann. Momentan ist mir der Zusammenhang noch unklar.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 12 August 2020, 11:29:24
Ich denke ich habe diese zufälligen Zeitanzeige jetzt eliminiert.
Version liegt wieder im contrib zum Test.

LG
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 12 August 2020, 23:16:14
Die neue Version ist eingecheckt und morgen früh im Update enthalten.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 08 Januar 2021, 17:55:58
Hallo Heiko,

ich wollte das Modul Watches als Countdown benutzen, erhalte aber, sobald ich hideButton=0 einstelle, einen Fehler (Bild1). Danach taucht noch ein weiterer Fehler auf. Aber ich nehme an das dies ein Folgefehler ist (Bild2).


defmod Schaltuhr Watches Digital
attr Schaltuhr DbLogExclude .*
attr Schaltuhr digitalDisplayPattern countdownwatch
attr Schaltuhr hideButtons 0
attr Schaltuhr room Test
attr Schaltuhr verbose 5

setstate Schaltuhr initialized
setstate Schaltuhr 2021-01-08 17:44:59 state initialized


Viele Grüße
Karlheinz
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 08 Januar 2021, 18:58:02
Hallo Karlheinz,

ich habe deine Watch Definition bei mir mal nachgestellt.
Habe bei mir keinen Fehler feststellen können. Erst dachte ich dass bei dir sscam_tooltip.js fehlt aber das war natürlich Unfug.  ;)

Ich habe es mit dem default Style von FHEMWEB gestest. Soweit ich es sehe, verwendest du es auch.
Hast du den Browsercache schonmal gelöscht ?
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: rischbiter123 am 08 Januar 2021, 19:51:42
Moin Karlheinz,

unter welchem BS rufst du den Browser auf? Ich frage nur, weil ich unter Android auch einen Javascript-Fehler bekomme, wenn ich in der DEF-Box etwas ändern will. Kann aber natürlich auch sein, dass es damit gar nichts zu tun hat.

LG

Andreas
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 08 Januar 2021, 20:07:56
Hi Andreas,

habe es unter Android auch gerade getestet (Firefox) .... kein Fehler.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 08 Januar 2021, 20:15:04
Hallo Heiko,

habs mal mit dem Internet Browser und auch mit Safari probiert. Gleiches Ergebnis. Ein Unterschied zum Aufruf von FHEM gibt es bei mir. Ich unterscheide Prod und Testsystem:
http://xxx.xxx.x.xx:8083/fhem_live bzw. http://xxx.xxx.x.xx:8083/fhem_test

@Andreas
FHEM läuft auf zwei Raspis:

Prod: Linux raspberrypi3 4.19.66-v7+ und Test: Linux raspi3bplus 5.4.72-v7+

Viele Grüße
Karlheinz
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 08 Januar 2021, 20:20:15
Das könnte ein Grund sein. Du hast dann sicherlich unter ./opt eine unterschiedliche Verzeichnisstruktur.
Kannst du die kurz skizzieren wenn es so ist ?
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 08 Januar 2021, 20:45:38
Die Verzeicnisstruktur habe ich eigentlich nicht verändert. Auf die schnelle z.B. /opt/fhem/www/pgm2

Kommen momentan allerdings nicht dazu mehr Infos zu liefern. Das wird heute erst spät möglich sein.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 08 Januar 2021, 20:53:12
/opt/fhem/www/pgm2  passt.

Ein List vom global device wäre auch noch hilfreich.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 08 Januar 2021, 21:13:41
Hier mein global Device:

attr global userattr DbLogExclude DbLogInclude DbLogValueFn:textField-long alexaName alexaProactiveEvents:1,0 alexaRoom attributesExclude cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fp_Grundriss genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock,scene homebridgeMapping:textField-long icon msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue sortby webCmd webCmdLabel:textField-long widgetOverride
attr global DbLogExclude .*
attr global altitude xxx
attr global autoload_undefined_devices 1
attr global autosave 0
attr global language DE
attr global latitude xx.xxxxxx
attr global logfile /opt/fhem/log/fhem-%Y-%m.log
attr global longitude xx.xxxxxx
attr global modpath .
attr global motd none
attr global room System
attr global showInternalValues 1
attr global statefile log/fhem.save
attr global updateInBackground 1
attr global userReadings FeatureLevel { $featurelevel }
attr global verbose 3

setstate global no definition
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 08 Januar 2021, 21:44:44
Passt auch ... modpath. Hatte aber inzwischen nachgeschaut dass ich modpath im Modul berücksichtigt habe. Isst so und passt soweit auch. Hab momentan keine Idee.
Ist es auch bei anderen MODELS so, also stopwatch etc. ?
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 08 Januar 2021, 23:27:24
Bei stopwatch kommt der gleiche Fehler.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 09 Januar 2021, 07:54:45
Guten Morgen,

ich habe zwar nicht herausgefunden wodurch bei dir/(euch) der JS-Fehler verursacht wird, aber habe die relevante Stelle im Modul anders gestaltet und hoffe damit das Problem beseitigt zu haben.
Bei mir hat es ja auch vor der Anpassung funktioniert.

Liegt zum Test in meinem contrib.
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
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Wolle02 am 09 Januar 2021, 10:33:39
Mal als Rückmeldung von mir:
Ich habe deine Contribänderung nicht eingespielt, hab also die ganz normale Version installiert.
Bei mir kommen mit hideButtons 1 keinerlei Fehler, sowohl auf dem Produktivsystem als auch auf dem Testsystem. Auch im Logfile ist nichts zu erkennen.

Soll nix heißen.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 09 Januar 2021, 10:48:07
Danke für die Info. Geht mir genauso. Konnte diesen JS-Fehler bei mir überhaupt nicht reproduzieren. Deswegen war ich auch ziemlich ratlos. Meine Änderung kannst du aber trotzdem mal implementieren. Dadurch ist der Code etwas schlanker geworden und ich übernehme es vermutlich ohnehin ins Repo.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 09 Januar 2021, 11:20:05
Hab die Testversion eingebaut. Es taucht kein Fehler mehr auf. Die Tooltips werden jetzt angezeigt und die Buttons funtionieren auch.
Danke für die schnelle Lösung.

Ein kleiner Schönheitsfehler taucht bei mir allerdings noch auf: Beim Versuch das Watches-Device zu editieren geht etwas schief und es wird die Startseite von FHEM angezeigt.  Mche ich ein "list Schaltuhr" und klicke dann dort den Link Schaltuhr an, dann wird alles korrekt angezeigt.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 09 Januar 2021, 11:40:24
Hallo Karlheinz,

danke für die Rückinfo. Ich checke das Modul ein und ist morgen früh im Update enthalten.

ZitatBeim Versuch das Watches-Device zu editieren geht etwas schief und es wird die Startseite von FHEM angezeigt
Das habe ich ehrlich gesagt nicht verstanden was du meinst.
Kannst du es vllt. nochmal genauer beschreiben bzw. dokumentieren ?
Seltsame Dinge passieren bei dir  ;)

LG

Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 09 Januar 2021, 12:19:57
Tja, ist halt manchmal so mit den seltsamen Dingen.  ;-)

Ich hab mal die Abfolge der Screenschots angehängt.
1. Bild: Anzeige des Devices im Room
2. Bild: Nach anklicken vom Link Schaltuhr im Room
3. Bild: Anzeige nach "list Schaltuhr"
4. Bild: Anzeige des Devices Schaltuhr

Ich hoffe jetzt ist es verständlicher.

Das Verhalten tritt nur bei diesem Device auf. Bei allen anderen Devices habe ich kein Problem mit dem Aufruf.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 09 Januar 2021, 12:44:22
...ist übrigens auch so, wenn hideButtons auf 1 steht. Im Log gibt es keine Fehlermeldung.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 09 Januar 2021, 12:53:38
Ja, danke. Jetzt ist es eindeutig was du meinst. Das hat mit dem JS jetzt nichts zu tun.

Ich denke das ist deiner besonderen Art geschuldet wie du Test / Prod adressierst.
Mein Link ist so definiert:


href="/fhem?detail=...."


Bei dir ist es aber nicht /fhem sondern /fhem_live bzw. /fhem_test.

Es gibt bestimmt eine FHEMWEB Variable welche ich statt "/fhem" verwenden kann. Vielleicht schaffe ich es heute noch, dann melde ich mich nochmal.

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 09 Januar 2021, 13:07:46
Das entsprechende Attr für den Aufruf kannst du im FHEMWEB-Device setzten. Bei mir dementsprechend "attr WEB_HTTPS webname fhem_live".

Zur Info: Da ich über ein Reverse-Proxy auf meine beiden FHEM-Systeme zugreife, unterscheide ich über diesen Weg. Ich wollte halt alle anderen Definitionen in beiden Systemen gleich haben.

Lass dir Zeit. Es hat keine Eile, da ein Aufruf über list ja funktioniert.

Viele Grüße
Karlheinz
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 09 Januar 2021, 13:17:55
Ich denke du findest die entsprechende Definition in

$FW_ME

When using FHEMWEB, you have to specify a base path in all requests; this value is stored in the variable $FW_ME and defaults to /fhem. The user may change it by setting the webname attribute.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 09 Januar 2021, 13:33:02
Jepp, genau die ist es. Habe ich auch in meinen anderen Modulen wie 49_SSCam so verwendet.
Frag mich mal warum hier nicht ...  :o

Liegt wieder im contrib zum Test.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 09 Januar 2021, 13:40:13
Prima, geht! Ich glaube die Zeile 570 würde auch noch diese Änderung vertragen. ;-)

          $ret .= qq{Watch <a href="/fhem?detail=$d">$d</a> is disabled};

Viele Grüße und danke für die schnelle Änderung.
Karlheinz
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 09 Januar 2021, 14:08:10
Klar, hab ich auch noch nachgezogen. Liegt im contrib und ich checke die Änderung dann auch noch ein.

Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: khk123 am 09 Januar 2021, 14:40:47
Super! :)
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Sany am 26 April 2021, 21:07:36
Hallo Heiko,

großes Lob für das Watches-modul. Lassen sich schöne Uhren damit anzeigen.
Auf der fhem-WEB-Oberfläche läuft das prima. Ich möchte meine Oberfläche allerdings auf DOIF-ui_Table umstellen. Da klappt das mit Watches leider nicht. Ich kann zwar eine Uhr innerhalb einer Gruppe anzeigen lassen, bei ui_Table besteht aber die Möglichkeit, eine "Tabelle" als Grundgerüst zu nehmen und verschiedene Sachen auch nebeneinander zu plazieren.
ui_Table kann eigentlich alles möglich anzeigen, eben auch einfach html. Gibt es eine Möglichkeit, dass ich mir ein WatchesDevice definiere und auf das Ergebnis als html zugreife? Ich muss gestehen, die Mechanismen mit Javascript und html und was wo hin muss habe ich noch nicht durchschaut, aber vielleicht kannst Du was dazu sagen.

Hier https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Eigene_uiTable-Funktionen_programmieren (https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Eigene_uiTable-Funktionen_programmieren) ist gleich am Anfang der Beispieldefinition ein Weg gezeigt, eine Funktion, die html zurückliefert, einzubinden.

Würde mich freuen, wenn Du da mal einen BLick drauf werfen könntest.

Vielen Dank!

Sany
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 26 April 2021, 21:59:26
Hallo Sany,

Zitat
Gibt es eine Möglichkeit, dass ich mir ein WatchesDevice definiere und auf das Ergebnis als html zugreife?

Eigentlich sollte das machbar sein. Allerdings hatte ich es bisher nicht für den Nutzer so vorgesehen.
Um eine html zurück zu bekommen, könnte man theoretisch folgende Funktion nutzen


  FHEM::Watches::modernWatch ("BlueHand")


"BlueHand" wäre der Name eines definierten Watches-Device. Diese Funktion liefert HTML-Code mit eingebetteten JS zurück.
Wie man das in uiTable einbindet weiß ich allerdings nicht, nutze weder DOIF noch uiTable.
modernWatch könnte auch stationWatch oder digitalWatch je nach Typ des definierten Devices.

Wenn ich den Link richtig interpretiere, müsste man einfach


return(<HTML-code>) angeben, also

return( FHEM::Watches::modernWatch ("BlueHand") )


"BlueHand" wäre natürlich durch ein Device in deinem FHEM zu ersetzen.
Probier mal, vllt. klappt das ja sogar.  ;)

LG,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Sany am 26 April 2021, 22:39:58
funktiniert prima!

ich habs mal im DOIF-Bereich beschrieben, wie man ein Watches-Device dann in uiTable einbauen kann. Passt dort eher hin.
https://forum.fhem.de/index.php/topic,120681.msg1152634.html#msg1152634 (https://forum.fhem.de/index.php/topic,120681.msg1152634.html#msg1152634)

Nochmals vielen Dank!

Sany
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: megadodopublications am 15 Februar 2022, 19:45:30
Hallo zusammen,

bin gerade über diese hübsche Erweiterung gestolpert. Sehr fein, kann ich mir gut als Basis für die Restlaufzeit der Waschmaschine vorstellen, Anzeige zB in FTUI.

Zwei Fragen:
1.) wenn ich timeAsReading einschalte, bekomme ich beim Countdown sekündlich von currtime ein Event - erstmal ok, aber auf einem belasteten System würde ich mir wünschen, dass nur alle x Zeiteinheiten ein Event generiert wird.
Ein
event-on-change-reading mit currtime:10
war nicht erfolgreich. (ja, nur ein Versuch, ich habe nicht wirklich erwartet, dass es so einfach sein wird..)

2.) die Events werden scheinbar nur generiert, wenn der Timer aktuell von einem Browser angezeigt wird.
Fenster zu - keine Events, aber der Countdown läuft trotzdem weiter... magisch :-)
aber für eine Anzeige in FTUI benötige ich zumindest alle x Zeiteinheiten eines.

Welche Möglichkeiten habe ich?

Vielen Dank vorab
Ralph.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 15 Februar 2022, 20:11:50
Hallo Ralph,

oh je, ist schon lange her dass mal eine Frage zu dem Modul gestellt wurde ;-)

Also das Modul funktioniert teilweise mit JavaScipt und Perl-Bestandteilen und ist insofern anders als "normale" Module.
Deswegen ist es auf die laufende Browser (JavaScript) Komponente angewiesen.

Wenn du nur alle 5 Sekunden einen Event haben möchtest, kannst du setzen:


event-min-interval  currtime:5


Wie gesagt, klappt das nur mit laufender Browser-Komponente. Hast du ja auch bereits festgestellt.
Bisschen Magie ist schon dabei :)

Grüße,
Heiko
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: megadodopublications am 15 Februar 2022, 20:46:42
Dankeschön !
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Brause am 16 Februar 2022, 04:35:42
Als Anregung mal meine Eieruhr fürs TabletUI.

Der Browser auf dem TabletUI angezeigt wird läuft ja sowieso
Habe ein separates WEB definiert, das im Endeffekt nur die Uhr anzeigt.

defmod WEB_Eier FHEMWEB 8887 global
attr WEB_Eier CORS 1
attr WEB_Eier Css input, #logo, #menu, #textInput {\
display: none !important;;\
}\
\
#content {\
left: 0px !important;;\
top:  0px !important;;\
}\
attr WEB_Eier HTTPS 1
attr WEB_Eier alias WEB_Eier Lokal 8887
attr WEB_Eier defaultRoom EierUhr
attr WEB_Eier group FHEM-WEB
attr WEB_Eier hiddenroom save,Tablet-UI,Unsorted,Everything,Logfile,Commandref,Remote doc,Edit files,Select style,Event monitor
attr WEB_Eier hiddenroomRegexp \b(?!.*Uhr\b)\w+
attr WEB_Eier longpoll websocket
attr WEB_Eier stylesheetPrefix default


und im TabletUI dann als iframe eingebunden.
<iframe src="https://192.168.6.249:8887/fhem" style="width:150;height:50;border:0; border:none;margin-left: 130px;" width="150" height="50"></iframe>

wenn die Uhr nicht angezeigt werden soll, kann man auch höhe und breite von dem Iframe auch auf 0 setzen.

Achso nochwas.
Das Iframe sollte nur in einem Browser/Tablet eingebunden sein, sonst kann es zu lustigen Zeitsprüngen kommen.
Bei mir halt nur auf dem WandTablet in der Küche.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Invers am 11 März 2022, 08:55:12
Ist es möglich, die Uhr positionierbar zu machen?
Mir fehlen dafür die Anfasser im Style f18.
Falls das so nicht möglich ist, wäre dann eine Positionsangabe wie z.B. im Flurplan möglich?
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 11 März 2022, 09:08:55
Kann man doch schon machen:

- die Uhr einer Gruppe zuweisen
- in Style "Dagging active" setzen
- die Uhr positionieren
- "Dagging active" ausschalten

Sollte so passen.

LG
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Invers am 11 März 2022, 09:16:38
Danke, habe ich inzwischen so gemacht.
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: Panik am 14 Februar 2023, 09:09:09
Hallo,

ich finde die Uhr recht gut.

Frage: ist es möglich diese noch um eine Datumsanzeige zu erweitern?

Stelle mir das Format dann so vor für die Digitaluhr "%A, %d.%B %Y %H:%M:%S"
Titel: Antw:60_Watches - Modul für eine Analog/Digital-Uhr
Beitrag von: DS_Starter am 15 Februar 2023, 11:37:25
Möglich ist soetws sicherlich.
Allerdings bin ich im JavaScript Umfeld nicht so fit um eine solche Anpassung problemlos und ohne viel Zeiteinsatz umsetzen zu können.

Die Uhren Impementierung basiert auf dieser Veröffentlichung: http://www.3quarks.com/de/Segmentanzeige/index.html

Möglicherweise habe ich mal die Zeit mich intensiver damit zu befassen.
Ansonsten nehme ich Patchvorschläge gern entgegegen.

LG