Welches Widget für Eingabe einer Uhrzeit?

Begonnen von bmwfan, 13 Februar 2016, 12:11:04

Vorheriges Thema - Nächstes Thema

setstate

Zitat von: bmwfan am 13 Februar 2016, 18:43:52
Klappt auch. Sehr schön.

Jetzt würde ich noch gerne die schon eingegebenen Zeiten laden und das Feld nicht mit 0 vorbelegen. Das scheint mir aber nicht so einfach zu sein, da das widget "input" ja gar nicht weis, was beim Widget "select" ausgewählt (Jalousie, welche Zeit) wurde. Gibt es auch dafür eine Lösung?
Die einfache wäre, in einem Label-Feld die aktuelle Zeit anzuzeigen, aber auch da stellt sich die Farge wie die ausgewählte Jalousie und Zeit als Parameter dynamisch zu übergeben.

Gruß Jürgen

Das war nicht so einfach und bringt einige Umbauten mit. Es läuft jetzt bei mir, aber ich teste noch etwas ...

setstate

Zitat von: Haecksler am 14 Februar 2016, 12:59:31

@setstate: Zum einstellen der Zeit via Spinner-Widget wäre es schon, wenn diese im Kreislaufen würden, sprich wenn man z.B. bei der Minuteneinstellung von 59 wieder auf 0 springen könnte.
Siehst du da eine Möglichkeit dies ohne großen Aufwand zum implementieren?

Gruß,
Stefan

Habe ich jetzt eingebaut. Einzuschalten mit class="circulate"


setstate

Zitat von: setstate am 14 Februar 2016, 23:38:30
Das war nicht so einfach und bringt einige Umbauten mit. Es läuft jetzt bei mir, aber ich teste noch etwas ...

Das Update ist jetzt durch. Man kann jetzt data-device="#sendDev" data-get="#sendParam" auch beim Input Widget auf andere Elemente verweisen.
Damit ändert sich das Reading des Input mit dem Ändern des Select Wertes und der aktuelle Wert des Readings wird geholt.


<li data-row="1" data-col="4" data-sizex="2" data-sizey="2">
    <header>SELECT</header>
    <div data-type="select" data-items='["dummy1","dummy2","dummy3","dummy4"]' id="sendDev" class="notransmit w3x"></div>
    <div data-type="select" data-items='["STATE","warn1","warn2","webCmd","room"]' id="sendParam" class="notransmit w3x"></div>
    <div data-type="input" data-device="#sendDev" data-get="#sendParam" id="sendValue" data-value="127" class="notransmit w3x centered"></div>
    <div data-type="link" class="round centered"
         data-width="80" data-height="40"
         data-color="white"
         data-background-color="green"
         data-icon="fa-feed"
         data-device="#sendDev"
         data-set="#sendParam"
         data-value="#sendValue">
        OK
    </div>
</li>

Haecksler

Zitat von: setstate am 15 Februar 2016, 00:11:52
Habe ich jetzt eingebaut. Einzuschalten mit class="circulate"
Funktioniert perfekt. Danke!

bmwfan

Hallo setstate,
Danke für die schnelle Umsetzung. Bekomme beim Update allerdings die Meldung:
2016.02.19 20:54:05 1 : UPD www/tablet/js/widget_famultibutton.js
2016.02.19 20:54:06 1 : UPD www/tablet/js/widget_input.js
2016.02.19 20:54:06 1 : open ./www/tablet/js/widget_input.js failed: Permission denied, trying to restore the previous version and aborting the update
.

Hast Du eine Vermutung, woran das liegt?

Die Daten werden daher auch nicht ausgelesen. Speichern geht.

Gruß Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

setstate

Dann hast du die Datei /www/tablet/js/widget_input.js mit einem anderen User hin kopiert, und der fhem User ist nicht in der gleichen Gruppe, bzw. die Rechteeinstellung für den Ordner erlaubt das nicht.

Lösche die /www/tablet/js/widget_input.js einfach weg und starte das Update nochmal

bmwfan

Hallo setstate,

geht alles wie gewünscht. Sogar das Eingabefenster schließt nach Betätigen der Return-Taste. Super.

Finde ich ein sehr nützliches Widget.

Gruß Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

bmwfan

Jetzt muss ich den Thread noch einmal ausgraben.

Folgendes Problem: Wenn ich in FHEM einen Jalousiefahrzeit ändere, wird es auf dem tablet erst angezeigt, wenn ich Tablet-UI neu aufrufe (reload). Selbst ein Wechsel der angezeigten Seite reicht nicht aus. Wenn ich im Widget die Zeit ändere, wird sie sofort in FHEM angezeigt.

Wie kann ich erreichen, dass nicht nur nach FHEM geschrieben wird, sondern auch Änderungen in FHEM angezeigt werden, ohne TabletUI neu zu starten?

Der Code:
<header>JALOUSIEN FAHRZEITEN</header>
<div data-type="select"
data-items='["du_Jal_time_KU_Ost","du_Jal_time_KU_Fenster","du_Jal_time_KU_Sued","du_Jal_time_WZ_Fest_Ost","du_Jal_time_WZ_Fest_Sued","du_Jal_time_WZ_Schiebetuer","du_Jal_time_WZ_Fest_SuedWest","du_Jal_time_WZ_Fest_West"]'
data-alias='["Küche Ostterasse","Küche Fenster","Küche Südterasse","WZ Fest Ost","WZ Fest Süd","WZ Schiebetür","WZ Fest Garten","WZ Fest Straße"]'
id="sendDev"
class="notransmit w3x">
</div>
<div data-type="select"
data-items='["Zeit_auf_Arbeit","Zeit_auf_WE","Zeit_ab"]'
data-alias='["Hoch Arbeiten Petra","Hoch Zuhause Petra","Schliessen"]'
id="sendParam"
class="notransmit w3x">
</div>
<div data-type="input"
data-device="#sendDev"
data-get="#sendParam"
id="sendValue"
data-value="0"
class="notransmit w3x centered">
</div>
<div data-type="link" class="round centered"
data-width="80" data-height="40"
data-color="white"
data-background-color="green"
data-icon="fa-feed"
data-device="#sendDev"
data-set="#sendParam"
data-value="#sendValue">
OK
</div>


Gruß Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

setstate

Ich habe mal das Inputwidget verbessert, dass bei Änderung sofort ein Update geholt wird

bmwfan

Sehr schön. Danke für die schnelle Reaktion. Geht.

Gruß Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

firefoxx123

Hi, ich habe noch ein Problem zu diesem Thema. Wenn ich versuche eine Zeit zu setzen, wird in fhem nichts geschrieben, d.h. im log steht auch nix.
Wo mach ich den Fehler?

<div data-type="select"
data-items='["EG_Jalousie_runter","EG_Jalousie_rauf","dummy1","dummy2"]'
id="sendDev"
class="notransmit w3x">
</div>
<div data-type="select"
                        data-items='["STATE","dummy11","dumm12"]'
id="sendParam"
class="notransmit w3x">
</div>
<div data-type="input"
data-device="#sendDev"
data-get="#sendParam"
id="sendValue"
data-value="0"
class="notransmit w3x centered">
</div>
<div data-type="link" class="round centered"
data-width="80" data-height="40"
data-color="white"
data-background-color="green"
data-icon="fa-feed"
data-device="#sendDev"
data-set="#sendParam"
data-value="#sendValue">
OK
</div>


VG
Thomas
FHEM auf Raspberry
HMLAN für HM-LC-Bl1PBU-FM

moonsorrox

#26
Zitat von: Haecksler am 13 Februar 2016, 14:00:37
Ich benutze das Spinner-Widget, funktioniert eigentlich ganz gut.

wie schreibst du es in FHEM, in ein Dummy...
Ich habe dies nämlich auch, nur bekommt die Weboberfläche es nicht mit und zeigt den Wert nicht an, aber in der Ausführung übernimmt er die Zeit.... Ich hoffe du verstehst was ich meine... :)

Hier mal der Code eines dummy aus dem defmod:
defmod du_RolloZeitWZ_hoch dummy
attr du_RolloZeitWZ_hoch alias Rollläden WZ - Zeit Öffnen - Wochentag
attr du_RolloZeitWZ_hoch devStateIcon .*:rc_BLANK
attr du_RolloZeitWZ_hoch group Rollläden EG
attr du_RolloZeitWZ_hoch icon time_clock@#FF6D00
attr du_RolloZeitWZ_hoch room Automation,Wohnzimmer
attr du_RolloZeitWZ_hoch setList state:time
attr du_RolloZeitWZ_hoch sortby 10
attr du_RolloZeitWZ_hoch stateFormat Stunde:Minute
attr du_RolloZeitWZ_hoch webCmd state

setstate du_RolloZeitWZ_hoch 7:55
setstate du_RolloZeitWZ_hoch 2017-10-20 18:00:06 Minute 55
setstate du_RolloZeitWZ_hoch 2017-10-20 18:18:38 Stunde 7
setstate du_RolloZeitWZ_hoch 2017-10-20 18:19:29 state 07:55
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

firefoxx123

hi, ich schreibe direkt in den Timer (at). Ich werde mal deine Variante ausprobieren.

Danke
thomas
FHEM auf Raspberry
HMLAN für HM-LC-Bl1PBU-FM