Widget für weekprofile

Begonnen von Thorsten Pferdekaemper, 03 März 2016, 22:28:58

Vorheriges Thema - Nächstes Thema

SamNitro

#30
Habe das selbe problem beim weekdaytimer Versuch das mal:

Zitathabe heraus gefunden wenn ich
data-type="button"
benutze kann ich es nicht auf mobilen geräten starten, mit der neuen Version auch nicht mal mehr auf dem Mac.

Sobald ich einen
data-type="symbol"
benutze funktioniert es auf allen Geräten.

Gruß Patrick


Edit: Oh hast du ja schon geschrieben :))
Dann liegt es also nicht an den widget's selber...
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Gizmoh

Super Arbeit, gefällt mir echt gut :-)
Gibt es evtl die Möglichkeit hier eine Version des Widgets für die FTUI 2.2 zu bekommen? Mit der aktuellen version bekommt man beim initialisieren nu den Fehler "loadplugin is not defined".

Damle und Grüße
Gizmoh

Kremmy

Hallo,
erst mal schönen Dank für die Erstellung des widgets.
habe leider das gleiche Problem wie namor: unter dem Dialog werden Jahreszahlen, Monatszahlen, ... aufgelistet.
siehe beigefügtes Bild.Hat jemand eine Lösung dafür ?

LHBL2003

#33
Hallo,

als Familienvater habe ich die letzten Tage Stück für Stück versucht das Weekprofil mal zum laufen zu bekommen.
Leider hatte dies erst nicht geklappt. Nun habe ich mir etwas mehr Zeit genommen und siehe da, wenn man auf dem Knopf drück, passiert auch etwas :)
Falls andere das selbe Problem haben, möchte ich hier einmal den Beitrag kurz zusammenfassen.
Bei mir gibt es dazu 7 Erkenntnisse:

1. Man muss sich auf dem FHEM Forum einloggen, damit mann die Bilder und Dateien, die an den Beiträgen angehangen wurden auch sieht :D
2. Wenn man sich alles von den 3 Seiten zusammen sammelt und nur die letzten Dateiversionen benutzt, dann passiert auch etwas. :D
3. Ich bekomme es hin, das die Anzeige in der TabletUI richtig aussieht. (siehe Bilder / Beitrag)  ;D
4. Ich bekomme das Datumsproblem in den Griff. (siehe Bilder / Beitrag)  ;D
5. Bei Weekprofilen mit useTopics = 1 sollte man den Doppelpunkt nicht vergessen (siehe Bilder / Beitrag) ;D
6. Die Anzeige des Widgets funktioniert nicht auf einem iPad sondern nur auf einem PC / MAC. (Zumindest hatte dies jemand anderes glaube ich geschrieben und bei mir ist es auch so.) :(
7. Eine Auswahl der Profile im Weekprofile fehlt noch. :(

Device Anlegen:
Am Besten legt man sich hierfür erst einmal ein Test Weekprofile in Fhem an. Dieses sollte man dann erst einmal nicht verändern:
define TestWeekprofile weekprofile
Siehe: Fhem TabletUI Weekprofile 01.png

Benötigte Dateien:
Benötigt werden die drei Dateien, die man downloaden kann, wenn man sich hier eingeloggt hat:
...\tablet\css\fhem-tablet-ui-wdtimer.css
...\tablet\css\fhem-tablet-ui-weekprofile.css
...\tablet\js\widget_weekprofile.js

Achtung:
Zur widget_weekprofile.js ist zu sagen, dass in meinem FHEM System diese Datei schon vorhanden war. Allerdings gibt es ab Zeile 428 einen unterschied.
In der zuletzt hier geposteten Datei gibt es folgende Zeile nicht:
  if (typeof date !== Object) {return;}
Entweder benutzt Ihr die Angehängte Datei oder Ihr löscht diese Zeile in euer Datei.

Dadurch reagiert der Button überhaupt erst.

Verweis in Index.html bzw. Header:
In meiner index.html habe ich im Heder <head> den Verweis auf das folgende Stylesheet fhem-tablet-ui-weekprofile.css hinzugefügt. Ist dieser nicht vorhanden, so hat das Weekprofile keine Ränder / keinen Hintergrund etc. Es würde also nur der blanke Text im Raum stehen:

<head>
...
<link rel="stylesheet" href="css/fhem-tablet-ui-weekprofile.css" />
...


Widget Hinzufügen und Konfigurieren:
Das anlegen meines Weekprofile Buttons sieht wie folgt aus:
Update 27.12.2016: Wurde von Paul verbessert. Seine Verbesserung data-type="button" nach data-type="symbol" habe ich hier mit übernommen.

                <li class="halbTransparent border-right" data-row="1" data-col="11" data-sizex="1" data-sizey="1">
                    <div id="weekprofile_ftui" style="position:absolute; bottom:0; right:0;"
                        data-type="weekprofile"
                        data-device="Das Weekprofile Device hier eintragen z.B. TestWeekprofile"
                        data-profile="Den Profilnamen hier eintragen z.B. default, master, Urlaub usw."
                        data-style="round"
                        data-theme="dark"
                        data-title="Heizung Schlafzimmer">
                        <div data-type="symbol" 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>
                </li>


Siehe: Fhem TabletUI Weekprofile 02.png

Ergebnisse:

Alles Gut:
Nachdem man die oben angegebenen Schritte durchgeführt hat, sollte es wie folgt aussehen:
Siehe: Fhem TabletUI Weekprofile 03.png

Probleme bei Komplexen Zeitschaltungen?
Wird die Zeitschaltung komplexer, so bekommt man wohl das Problem, das die Datumsauflistung unter dem Widget auftritt.
Zudem wechselt diese Angabe, wenn man irgendwo ins Freie klickt.

Siehe:
Fhem TabletUI Weekprofile 04.png
Fhem TabletUI Weekprofile 05.png
Fhem TabletUI Weekprofile 06.png
Fhem TabletUI Weekprofile 07.png

......Vorübergehende Fehlerbehebung!?!:
Hierzu habe ich evtl. eine Lösung gefunden, die dafür sorgt, dass die Datumsangaben nicht mehr unterhalb angezeigt werden.
Allerdings weiß ich nicht, was der Entwickler sich dabei gedacht hat. Es kann also sein, dass dafür irgend etwas anderes nicht mehr funktioniert.

Öffne die widget_weekprofile.js Datei und suche die Funktion:

   
        function weekprofile_setActions(elem,device,style){
        //Verwendete Plugins aktivieren
        weekprofile_setDateTimePicker(elem, device, style); //DateTimePicker Plugin zuweisen
        // Aktionen zuweisen
        weekprofile_setDeleteAction(elem, device); //Löschen-Schalter Aktion
        weekprofile_setAddLineAction(elem, device); //"Plus"-Schalter Aktion
        weekprofile_setDeleteLineAction(elem, device); //"Minus"-Schalter Aktion
        weekprofile_setTimeChangedAction(elem, device); // Zeit geaendert
        weekprofile_setTempChangedAction(elem, device); // Temperatur geaendert
    };


Kommentiere diese Zeile aus:
//weekprofile_setDateTimePicker(elem, device, style); //DateTimePicker Plugin zuweisen
und hoffe, dass dies dir nichts anderes kaputt macht. (Zumindest kann ich weiterhin speichern.)

Das setzen des DateTimePickers soll wohl eine anzeige von Stunden und Minuten durchführen. Allerdings weiß ich noch nicht wo das eingesetzt wird.
Aktuell kann ich mir das Widget auch nicht auf einem iPad anzeigen lassen, so das dies von Nöten währe.
Evtl. war / ist dies dazu gedacht, dass man nicht manuell die Uhrzeit eingeben kann, sondern nur auswählen sollte.

Weekprofile mit useTopics = 1:
Also solche Weekprofile, wo man mehrere Thermostate zusammen fassen kann, um viele Thermostate auf einmal mit unterschiedlichen Weekprofilen zu steuern. Siehe: Fhem TabletUI Weekprofile 08.png (Beachte die zwei Drop Down listen: Arbeit, Esszimmer)
Sollte man hier folgende Fehlermeldung bekommen:

Error
widget_weekprofile.js:428
SyntaxError: JSON Parse error: Unexpected identifier "profile"

Dann hat man sein widget falsch eingerichtet.

Mann muss die beiden Auswahlboxen durch ein Doppelpunkt verknüpfen.
Also in meinem Bild z.B. Arbeit:Esszimmer

Beispiel des HTML Codes:

                <li class="halbTransparent border-right" data-row="1" data-col="11" data-sizex="1" data-sizey="1">
                    <div id="weekprofile_ftui" style="position:absolute; bottom:0; right:0;"
                        data-type="weekprofile"
                        data-device="Das Weekprofile Device mit dem useTopics = 1 bei mir heist es einfach weekprofile"
                        data-profile="Arbeit:Esszimmer"
                        data-style="round"
                        data-theme="dark"
                        data-title="Heizung Schlafzimmer">
                        <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>
                </li>


...Analyse für die, die es verstehen möchten:
Das Problem wird im JavaScript widget_weekprofile.js ausgelöst.
Und zwar in der Funktion weekprofile_getProfiles(
hier gibt es die folgende Zeile:
cmd: "get "+attr_device+" profile_data "+attr_profile,

Würde man diesen FHEM Befehl auf ein normales Weekprofile Device ausführen z.B.:
get TestWeekprofile profile_data default

Dann bekommt man z.B. folgendes Ergebnis:
{"Sat":{"temp":["18.0"],"time":["24:00"]},"Sun":{"temp":["18.0"],"time":["24:00"]},"Thu":{"time":["24:00"],"temp":["18.0"]},"Fri":{"time":["24:00"],"temp":["18.0"]},"Tue":{"time":["24:00"],"temp":["9.5"]},"Mon":{"time":["04:00","05:00","06:00","07:00","24:00"],"temp":["13.5","5.0","7.0","8.0","18.0"]},"Wed":{"temp":["9.5"],"time":["24:00"]}}

Würde man es auf einem Weekprofile mit dem Attribut useTopics = 1 falsch angeben, so bekommt man die Meldung:
"profile default not found"
Gibt man es richtig an:
get weekprofile profile_data Arbeit:Esszimmer
Dann bekommt man auch so ein Ergebnis wie oben.
Info:"weekprofile" ist in meinem Fall ein weekprofile Device Siehe Fhem TabletUI Weekprofile 08.png.

Fazit:
Ich würde behaupten bei mir geht jetzt schon mal eine ganze Menge.

Zwei Aufgaben sind nach meiner Meinung noch offen:
1. Steuerung vom iPad. (Update 27.12.2016: Wurde von Paul verbessert. Siehe oben.)
2. Auswahl der profile im Weekprofile.

Aber das nich mehr heute, gute Nacht. :)

Mit freundlichen Grüßen
Denis Hempel

Analyse von 22:02 bis 00:34 :D

Garbsen

Hochachtung an LHBL2003!

Nicht nur, dass Du Dich da so reinkniest, sondern auch gut den Stand der Dinge zusammenfasst.
Leider reichen meine bescheidenen mit Learning by doing erworbenen Kenntnisse nicht aus, hier konstruktiv etwas beizutragen.
Trotzdem hilft es vielleicht, wenn ich Dir bestätigen kann, dass auch bei mir auf dem iPad die Anzeige des Widgets nicht funktioniert. Wäre toll, wenn Du das lösen könntest.
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

bjoernbo

Schade trotz der tollen Anleitung funktioniert das ganze nicht. Weder in Chrome, Safari noch im Firefox wird mit überhaupt irgendetwas angezeigt! Obwohl ich mich nach deiner Anleitung orientiert habe. Ich finde es verwunderlich das eigentlich alles WIDGET's einwandfrei unabhängig vom gewähltem Browser funktionieren, außer "WEEKPROFILE" bei sovielen Leute für Probleme sorgt. Schade, denn das WIDGET its eigentlich ziemlich genial, wenn es laufen würde. Ich werde mal weiter recherchieren woran es hängt.
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

LHBL2003

#36
Guten Abend,

Ich habe gerade etwas entdeckt. Nachdem ich mal mein iPad via Mac gedebuggt habe, habe ich festgestellt, dass ich nichts feststelle.
Allerdings hatte ich nach etwa 60 klicks (tutchs) auf einmal doch das Weekprofile. Ich konnte es erst nicht nachstellen, aber jetzt auf einmal doch.
Klickt doch mal unten rechts und zwar nicht auf das Icon und auch nicht auf den Rand, sonder etwas daneben. (Siehe Foto)
Und auf einmal bekommt man auch auf dem iPad in Safari und Firefox das Weekprofile auf.
Jetzt muss man nur noch das Problem im Code eingrenzen.
Wobei das Problem nicht im Java Script selbst sondern im eingearbeiteten HTML sein wird.

Aber nicht mehr heute.

Gruß Denis Hempel

paul79

Zitat von: LHBL2003 am 19 Dezember 2016, 23:12:07
Guten Abend,

Ich habe gerade etwas entdeckt. Nachdem ich mal mein iPad via Mac gedebuggt habe, habe ich festgestellt, dass ich nichts feststelle.
Allerdings hatte ich nach etwa 60 klicks (tutchs) auf einmal doch das Weekprofile. Ich konnte es erst nicht nachstellen, aber jetzt auf einmal doch.
Klickt doch mal unten rechts und zwar nicht auf das Icon und auch nicht auf den Rand, sonder etwas daneben. (Siehe Foto)
Und auf einmal bekommt man auch auf dem iPad in Safari und Firefox das Weekprofile auf.
Jetzt muss man nur noch das Problem im Code eingrenzen.
Wobei das Problem nicht im Java Script selbst sondern im eingearbeiteten HTML sein wird.

Aber nicht mehr heute.

Gruß Denis Hempel

Hallo,

habe gerade heraus gefunden wenn man in den HTML Code den data-type von Button in Symbol ändert lässt es sich besser öffnen.

                <li class="halbTransparent border-right" data-row="1" data-col="11" data-sizex="1" data-sizey="1">
                    <div id="weekprofile_ftui" style="position:absolute; bottom:0; right:0;"
                        data-type="weekprofile"
                        data-device="Das Weekprofile Device mit dem useTopics = 1 bei mir heist es einfach weekprofile"
                        data-profile="Arbeit:Esszimmer"
                        data-style="round"
                        data-theme="dark"
                        data-title="Heizung Schlafzimmer">
                        <div data-type="symbol" 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>
                </li>


Gruß Paul
FHEM5.7 auf Pi3
Busware CUL433 (IT), JeeLink Lacrosse, HM-MOD-RPI-PCB, HM, TabletUI

LHBL2003

Hi Paul,

deine Lösung funktioniert bei mir auch. Sehr gut gemacht, Danke :)

Gruß Denis

l05443

Hallo,

habe das Widget auch eingerichtet. Danke für die tolle Arbeit!

In FHEM direkt klappt alles einwandfrei (anzeigen und einstellen). In Tablet-UI klappt das anzeigen auch einwandfrei, jedoch kann ich nichts einstellen. Wenn ich auf Plus, Minus und der Mülleimer klicke passiert gar nichts. Wenn ich eine Temperatur oder Zeit ändere und speichere übernimmt er es nicht.

Mein Code:

<div id="weekprofile_ftui" style="position:absolute; top:1; right:0;"
data-type="weekprofile"
data-device="Martin.Heizung.Timer"
data-profile="master"
data-style="round"
data-theme="dark"
data-title="Küche Heizung">
<div data-type="button" class="cell small readonly"
data-icon="fa-calendar"
data-on-color="grey"
data-background-icon=""
data-on-background-color="#505050">
</div>
</div>


Das weekprofile in FHEM heisst "Martin.Heizung.Timer" und das Profil "master".

Jmd. eine Idee?


Grüße

Martin

kud

Bei mir kann man keine Zeiten einstellen.

Ist das Problem bekannt?

viper2033

Ich habe mir jetzt auch einen Weekprofile angelegt, leider bekomme ich folgende Meldungen bei starten des TabletUi:

ncaught SyntaxError: Unexpected token P in JSON at position 0
    at JSON.parse (<anonymous>)
    at Object.<anonymous> (widget_weekprofile.js:428)
    at j (jquery.min.js:2)
    at Object.fireWith [as resolveWith] (jquery.min.js:2)
    at x (jquery.min.js:4)
    at XMLHttpRequest.b (jquery.min.js:4)

Was könnte das sein?

paul79

Hallo viper2033,

schau mal nach Antwort 33 von LHBL2003.

Gruß Paul
FHEM5.7 auf Pi3
Busware CUL433 (IT), JeeLink Lacrosse, HM-MOD-RPI-PCB, HM, TabletUI

kud

Ich benötige noch immer einen Tip, warum das Dropdown für die Zeiten sich nicht öffnet.
Das Temperaturdropdown geht auf und ich sehe blassblaue Gradzahlen auf weißen Hintergrund. Hmm ???

Vielleicht hift ein Screenshot weiter ?

viper2033

Hallo Paul,

ich habe mir den Beitrag angesehen, auch schon vorher. Leider kann ich dort keinen Zusammenhang mit meiner Fehlermeldung finden. Vielleicht stehe ich auch voll auf dem Schlauch :-)