[FHEM-Tablet-UI] WeekdayTimer Widget

Begonnen von svenson08, 24 Januar 2016, 18:39:21

Vorheriges Thema - Nächstes Thema

ChrisK

Zitat von: svenson08 am 17 Februar 2016, 06:02:21
@Thorsten Pferdekaemper
Hmmm... hat mir keine Ruhe gelassen. Kannst du das Widget aus dem Anhang testen, hab gerade nicht die Möglichkeit dazu. In deinem Fall müsstest du das Attribut data-sortcmdlist mit false setzen.
Ob data-sortcmdlist funktioniert kann ich grad auch nicht testen, aber dem Code nach zu urteilen funktioniert die Sortierung weiterhin nicht korrekt wenn man über die Labels sortiert. Die beiden angepassten Sortierungen oben gesehen?

Thorsten Pferdekaemper

Zitat von: ChrisK am 17 Februar 2016, 09:13:27
Ob data-sortcmdlist funktioniert kann ich grad auch nicht testen, aber dem Code nach zu urteilen funktioniert die Sortierung weiterhin nicht korrekt wenn man über die Labels sortiert. Die beiden angepassten Sortierungen oben gesehen?
Ich verstehe immer noch nicht, warum Du über die Labels sortieren willst. Gib sie doch einfach gleich in der richtigen Reihenfolge an.
FUIP

ChrisK

Zitat von: Thorsten Pferdekaemper am 17 Februar 2016, 09:43:17
Ich verstehe immer noch nicht, warum Du über die Labels sortieren willst. Gib sie doch einfach gleich in der richtigen Reihenfolge an.
Ich will Sie nicht sortieren, denn ich benutze dieses Widget gar nicht.
Im Moment ist das Widget aber so aufgesetzt, dass standardmäßig die Sortierung aktiviert ist ("data-sortcmdlist: Standard ist an (true)") und dementsprechend falsch sortiert, wenn man Label/Code Pärchen angibt, aber die Sortierung nicht bewusst deaktiviert.

Aber ich halte mich einfach wieder hier raus, will ja keinem was aufdrücken.

l3skon3

#33
Hallo,

hab jetzt auch die Sortierung auskommetiert, dadurch habe ich "in meinem Fall" das gewünschte Ergebnis.

Die Datei im Anhang von Post#29 hat leider nicht funktioniert.

Also mir langt es eigentlich schon wenn ich die Reihenfolge durch Anlegen des data-cmdlist beeinflussen kann.

Gruss

Daniel

svenson08

ZitatAber ich halte mich einfach wieder hier raus, will ja keinem was aufdrücken.

@ChrisK
Ich seh das etwas anders. Du drückst, zumindest mir, nichts auf. Für die konstruktive Verbesserung bin ich dankbar. Ist nicht an allen stellen im Forum so. Was ich verbessern kann und nicht ganz gegen meinen ursprünglichen Anwendungszweck ist baue ich ein bzw. passe ich an. Wenn ich, so wie von dir, schon die Verbesserung auf dem Silbertablett bekomme ist es um so besser.

@All the Rest
im Anhang eine neue Version. Wenn mir jemand Feedback geben könnte wäre das gut, bin mal wieder leider nicht in nähe meines SmartHome ....
data-sortcmdlist kann nun MANUELL, WERT oder TEXT sein. Manuell, keine autom. Sortierung. WERT sortiert nach dem Wert, TEXT nach dem Anzeigetext. Damit sollten jeder, auch ich, seine Sortierung einstellen können. Default ist TEXT.

@Thorsten Pferdekaemper
kannst du die IE11 Tauglichkeit prüfen?

Thorsten Pferdekaemper

Zitat von: svenson08 am 17 Februar 2016, 19:59:56data-sortcmdlist kann nun MANUELL, WERT oder TEXT sein. Manuell, keine autom. Sortierung. WERT sortiert nach dem Wert, TEXT nach dem Anzeigetext. Damit sollten jeder, auch ich, seine Sortierung einstellen können. Default ist TEXT.
Also ich habe das mal ausprobiert...
  WERT sortiert meiner Meinung nach nach dem Anzeigetext
  TEXT sortiert nach dem Wert
   MANUAL sortiert nach dem Anzeigetext
  Wenn ich data-sortcmdlist weglasse, dann ist es so sortiert, wie in data-cmdlist angegeben.
Das ist wohl nicht ganz so wie gedacht, oder?
Nach Betrachtung des Codings: Es muss wohl MANUELL statt MANUAL heißen. Mit MANUELL klappt's.

Die Sortierung muss wohl so aussehen:

            if (attr_sortcmdlist != "MANUELL" ) {
                if (attr_sortcmdlist == "WERT" ) {
arr_cmdlist.sort(function(a, b){return a[1] - b[1];});  //Gesamte Befehlliste sortieren nach Werten
}else{
// alles andere, d.h. "TEXT" ist default
arr_cmdlist.sort(function(a, b){return a[0].localeCompare(b[0])});  //Gesamte Befehlliste sortieren nach Anzeigetext
}
            };

Da warst Du wohl mit den vielen "!=" etwas verwirrt.
Außerdem hast Du den Default auf "MANUELL" gesetzt. In init stand das hier:

            elem.data('sortcmdlist',    $(this).data('sortcmdlist') || "MANUELL");

Mir persönlich käme das ja entgegen, aber die Änderung wäre nicht so ganz abwärtskompatibel. Ich hab's auf TEXT geändert, dann klappt auch das.       

Zitat
@Thorsten Pferdekaemper
kannst du die IE11 Tauglichkeit prüfen?
Ja, das funktioniert.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
hier ist noch die von mir geänderte Version, siehe Anhang.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
mal noch eine Anmerkung oder eine Anregung zur Diskussion: Das Widget erzeugt ja so etwas wie

defmod sz_HeizungOpTimer WeekdayTimer de 1234560|00:00|20 12345|06:00|22 60|08:00|22 1234560|23:00|20

Das ist ohne ein "save" in FHEM natürlich nach dem nächsten Restart wieder weg. Hat da jemand mal eine gute Idee?
Von einem automatischen "save" halte ich eigentlich wenig, da ich die fhem.cfg stabil halten möchte, ggf. sogar auf einem Readonly-Dateisystem.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
hat eigentlich jemand Interesse daran, dem Teil auch weekprofile beizubringen statt nur WeekdayTimer?
Damit könnte man dann direkt die Temperaturlisten diverser Heizungsthermostate steuern.
...oder hat das sogar schon jemand versucht?
Gruß,
   Thorsten
FUIP

ChrisK

Zitat von: Thorsten Pferdekaemper am 18 Februar 2016, 23:43:29
...
hat eigentlich jemand Interesse daran, dem Teil auch weekprofile beizubringen statt nur WeekdayTimer?
Damit könnte man dann direkt die Temperaturlisten diverser Heizungsthermostate steuern.
...
Daran hätte ich in der Tat Interesse!

In den Thread hier hatte ich am Anfang nur geguckt, weil ich dachte, dass es genau darum geht ;)

benz_freak

Hallo ich bekommes es nicht zum laufen
<td>
<div style="position:absolute; bottom:0; right:0;"
          data-type="wdtimer"
          data-device="RolloEsszimmerTimer"
          data-style="round"
          data-theme="dark"
          data-title="NAME"
          data-cmdlist='{"Auf":"0","Zu":"100","10%":"10","20%":"20","30%":"30","40%":"40","50%":"50","60%":"60","70%":"70","80%":"80","90%":"90"}'>
        <div data-type="button" class="cell small readonly" data-icon="oa-edit_settings" data-background-icon="fa-square-o"
        data-on-color="#505050" data-on-background-color="#505050">
</div>
        </div>
</td>


list WD
Internals:
   CFGFN
   COMMAND
   CONDITION
   DEF        RolloEsszimmer de 1234560|09:06|50
   DEVICE     RolloEsszimmer
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       RolloEsszimmerTimer
   NR         219
   Profil 0: Sonntag 09:06:00 50
   Profil 1: Montag 09:06:00 50
   Profil 2: Dienstag 09:06:00 50
   Profil 3: Mittwoch 09:06:00 50
   Profil 4: Donnerstag 09:06:00 50
   Profil 5: Freitag 09:06:00 50
   Profil 6: Samstag 09:06:00 50
   STATE      active
   STILLDONETIME 0
   TYPE       WeekdayTimer
   Readings:
     2016-02-21 09:06:52   currValue       50
     2016-02-21 09:06:52   nextUpdate      2016-02-22 09:06:00
     2016-02-21 09:06:52   nextValue       50
     2016-02-21 09:06:52   state           active
   SWITCHINGTIMES:
     1234560|09:06|50
   Timer:
     Rolloesszimmertimer_settimerofday:
       HASH       RolloEsszimmerTimer
       MODIFIER   SetTimerOfDay
       NAME       RolloEsszimmerTimer_SetTimerOfDay


Ich denke es liegt am WD aber was muß ich hier noch machen einstellen?
MFG Benjamin

Thorsten Pferdekaemper

Hi,
tatsächlich funktioniert es bei mir auch nicht wirklich. Das Problem ist, dass der Rollladen so etwas wie "set Rollladen level 50" erwartet, aber es wird nur "set Rollladen 50" gesendet. Der WeekdayTimer kann eigentlich beliebige Kommandos, aber das wdtimer-Widget zerhaut jedesmal die entsprechende Definition.
Ich habe mir jetzt damit beholfen:

data-cmdlist='{"Auf":"up","Zu":"down","10%":"10","20%":"20","30%":"30","40%":"40","50%":"50","60%":"60","70%":"70","80%":"80","90%":"90"}'>

Damit funktioniert wenigstens "ganz auf" und "ganz zu". Für die Prozentangaben muss ich mir noch was überlegen. Vielleicht fällt auch jemand anderem etwas gescheites ein...
Gruß,
   Thorsten
FUIP

Jackeson

Hallo
frage kann die datei " widget_wdtimer.js" nicht mit Fillezilla in fhem/js ziehen?

würde es gerne testen :(
aller anfang ist schwer

benz_freak

Zitat von: Jackeson am 22 Februar 2016, 02:35:26
Hallo
frage kann die datei " widget_wdtimer.js" nicht mit Fillezilla in fhem/js ziehen?

würde es gerne testen :(
Holzhammer
chmod 777
Besser
chown

oder du legst die Datei in dein User Home und verschiebst mit root die datei dann nach JS

takaze

Zitat von: Thorsten Pferdekaemper am 21 Februar 2016, 11:12:12
Hi,
tatsächlich funktioniert es bei mir auch nicht wirklich. Das Problem ist, dass der Rollladen so etwas wie "set Rollladen level 50" erwartet, aber es wird nur "set Rollladen 50" gesendet. Der WeekdayTimer kann eigentlich beliebige Kommandos, aber das wdtimer-Widget zerhaut jedesmal die entsprechende Definition.
Ich habe mir jetzt damit beholfen:

data-cmdlist='{"Auf":"up","Zu":"down","10%":"10","20%":"20","30%":"30","40%":"40","50%":"50","60%":"60","70%":"70","80%":"80","90%":"90"}'>

Damit funktioniert wenigstens "ganz auf" und "ganz zu". Für die Prozentangaben muss ich mir noch was überlegen. Vielleicht fällt auch jemand anderem etwas gescheites ein...
Gruß,
   Thorsten

Hi Thorsten,

wie hast du den WD in fhem definiert? Hatte das Problem auch mit HM, da immer nur "set XY 21" gesendet wurde. Hab dann direkt in fhem bei der Definition von WD den Command gesetzt.

WZ.Thermostat_Climate de 12345|06:00|21.0 12345|08:00|17.0 60|08:00|21.0 60|23:45|17.0 12345|17:00|21.0 12345|23:45|17.0 {fhem("set $NAME controlManu $EVENT")}

Somit wird der richtige Befehl verschickt -> set XY controlManu 21

Sollte sich 1 zu 1 auf dein Problem übertragen lassen.

Grüße,
Florian
RPi 3B, Add-On Board mit 1.8" TFT LCD, FHEM V5.8, CULFW v1.65 RPIAddOn_CSM, Jeelink v3, Selbstbau CUL433 MHz (signalduino), z-Wave (Fibaro), 8'' WIN10 Wand-Infoboard mit FTUI