New FHEM Tablet UI

Begonnen von setstate, 22 Februar 2015, 23:37:24

Vorheriges Thema - Nächstes Thema

drhirn

Zitat von: setstate am 16 Januar 2016, 21:45:51
Update: New Widget: Spinner

Sehr cool! Danke vielmals!

bmwfan

Hallo,
bin immer noch dabei, mir das FTUI einzurichten. Dabei habe ich ein Problem mit den Aktualisierungen am Tablet bzw. am PC, wenn ich Änderungen in einer *.html-Datei mache.
Ich ändere die Dateien am PC in NotePad + und schiebe sie mit Filezilla auf den Raspi. Dann mach ich auf dem Tablet HannsPad 13,3" im offenen Browserfenster (der vorinstallierte Browser) einen reload. Leider ist nur in ca. 50 % der Fälle die Änderung auch tatsächlich sichtbar. In den restlichen Fällen wird nach wie vor das Bild vor der Änderung angezeigt, obwohl die Datei auf dem Raspi das neueste Änderungsdatum zeigt. Scheinbar wird es nicht frisch geladen sondern dann aus einem Cache gezogen. Irgendwann (Zeitraum kann ich nicht sagen, da ich dann am PC den Browser aufmache um weiterzumachen) ist dann das geänderte Bild vorhanden. Dasselbe Verhalten habe ich am PC, so dss ich immer beide am Laufen habe und hoffe, dass auf einem der Geräte das Bild aktualisiert ist. So ist das aber sehr umständlich und unbefriedigend.

Habe auch schon den Browser geschlossen und neu gestartet, aber derselbe Effekt.

Weis jemand, wie man erreichen kann dass die Änderungen immer sofort sichtbar sind?

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

roman1528

Zitat von: setstate am 16 Januar 2016, 21:45:51
Update: New Widget: Spinner

Moin. Sehr geiles Teil. Vielen Dank!

Wollte es für meinen Pioneer AVR einsetzen. Leider für mich ohne Funktion.
Normalerweise unterstützen Pioneer AVR das direkte setzen eine Lautstärke. Nur meiner leider nicht. Auch nocht über eine TelNet-Konsole. Der Befehl dafür wird einfach nicht verstanden.

Gibt es also eventuell die Möglichkeit dass ich mit + und - Befehle senden kann wie "set avr volumeUp" / "set avr volumeDown" und der Spinner trotzdem ein Reading (volume) ausliest und anzeigt?

Das wäre total super :)

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

hillbicks

Zitat von: setstate am 17 Januar 2016, 08:34:20
Der Spinner speichert seinen Wert nicht. Er kommt nach einem Refresh immer direkt von FHEM.
Hast du data-get und data-set angegeben? Da muss man explizit tun, wenn man nicht mit STATE arbeitet.


        <div data-type="spinner"
            data-device="AvReceiver"
            data-get="volume"
            data-set="volume"
            data-max="70">
        </div>


Ok, das ist schonmal gut zu wissen fuer den Receiver. Ich hab aber noch ein paar Fragen:

1) Was heisst Refresh in dem Zusammenhang? Nur wenn der Wert geaendert wird? Wenn ich die Seite neu lade ist die Anzeige leer, wenn ich + oder - druecke geht es bei data-min los. Hast Du das auf dem Schirm?
2) Du hast geschrieben das spinner immer einen Moment wartet bevor es die Werte an fhem schickt. Wenn ich fuer den Receiver einmal klicke um die Lautstaerke zu erhoehen, dann wird die Zahl im Widget um einen erhoeht, aber Receiver wird die Lautstaerke aber nicht erhoeht. Es wird ein Volume command geschickt, es bleibt aber unveraendert. Erst wenn ich zweimal klicke, wird die Lautstaerke um 1 erhoeht. Ich hab in der README gesehen das beim data-step noch ** dran sind und ich vermute es haengt damit zusammen.
3) Der Receiver zeigt am Display selbst nicht Volumestraight an, sondern Volume, also den eigentlichen db Wert. Der ist natuerlich negativ. Kannst du data-min und data-max dahingehend kompatibel machen? Ich will damit grade nicht weiter experimentieren, denn in Zusammenhang mit 1) sind mir fast die Boxen um die Ohren geflogen. (Ein Klick ging direkt auf maximale Lautstaerke)

Danke nochmal fuer Deine Arbeit, das hebt FHEM auf die naechste Stufe!

setstate

@hillbicks:
1.: So ist das nicht richtig und sollte so auch nicht auftreten. Bei mir ist das nicht so. Hat das Problem noch jemand? Ich brauche noch mehr Info, wie ich das bei mir simulieren kann. Wie sehen deine Parameter aus?
2.: Kann ich auch nicht nachvollziehen. data-step steht per default auf 1. Was passiert, wenn du den gesendeten Befehl per FHEM Commandline sendest? Reagiert der Receiver dann auch nur jedes zweite mal?
3.: sollte kein Problem sein. Funktioniert bei mir:
        data-max="-10"
        data-min="-99"

drhirn

Also, für meinen Yamaha-Receiver sieht das ganze so aus und funktioniert wunderbar:


<div data-type="spinner"
data-device="RXV777"
data-get="volumeStraight"
data-set="volumeStraight"
data-min="-60"
data-max="-20"
data-step="0.5"
data-unit="db"
data-icon-left="fa-volume-down"
data-icon-right="fa-volume-up"
class="valueonly fullsize centered">
</div>

aloz77

Mir ist noch etwas aufgefallen. Wenn ich ein Reading mit deletereading entferne, wird der alte Wert im Label weiterhin angezeigt. Selbst nach einem Reload der Seite wird es weiterhin angezeigt, als wäre der alte Wert noch da. Irgendwas läuft da IMHO noch nicht optimal.

setstate

Zitat von: roman1528 am 17 Januar 2016, 12:31:24
Moin. Sehr geiles Teil. Vielen Dank!

Wollte es für meinen Pioneer AVR einsetzen. Leider für mich ohne Funktion.
Normalerweise unterstützen Pioneer AVR das direkte setzen eine Lautstärke. Nur meiner leider nicht. Auch nocht über eine TelNet-Konsole. Der Befehl dafür wird einfach nicht verstanden.

Gibt es also eventuell die Möglichkeit dass ich mit + und - Befehle senden kann wie "set avr volumeUp" / "set avr volumeDown" und der Spinner trotzdem ein Reading (volume) ausliest und anzeigt?

Das wäre total super :)

Grüße^^

Da kann nicht klappen, durch den Zähler, die Verzögerungen usw. Die Werte würde ganz schnell auseinander laufen. Oder man baut ganz viele IFs ein, was das Ganze unübersichtlich macht und unschön ist.

Einfachen wäre es doch, das Aussehen mit anderen Widget zu simulieren:

Push+Label:

    <div style="width:200px;border-radius: 30px;" class="bg-gray">
        <div data-type="push"
            data-device="dummy1"
            data-set-on="volumeDown"
            data-background-icon="none"
            data-icon="fa-volume-down"
            data-off-color="#aaa"
            class="col-1-5"></div>
        <div data-type="label"
            data-device="dummy1"
            data-get="volume"
            class="col-2-5 large"></div>
        <div data-type="push"
            data-device="dummy1"
            data-set-on="volumeUp"
            data-background-icon="none"
            data-off-color="#aaa"
            data-icon="fa-volume-up"
            class="col-1-5"></div>
    </div>


Push + Level:

    <div style="width:200px;border-radius: 30px;" class="bg-gray">
        <div data-type="push"
            data-device="dummy1"
            data-set-on="volumeDown"
            data-background-icon="none"
            data-icon="fa-volume-down"
            data-off-color="#aaa"
            class="col-1-5"></div>
        <div data-type="level"
            data-device="dummy1"
            data-get="volume"
            data-width="80"
            data-height="8"
            class="inline horizontal"
            id="spinnersimu"></div>
        <div data-type="push"
            data-device="dummy1"
            data-set-on="volumeUp"
            data-background-icon="none"
            data-off-color="#aaa"
            data-icon="fa-volume-up"
            class="col-1-5"></div>
    </div>


für den Level bräuchte man noch etwas Spezial-Tune in der fhem-tablet-ui-user.css


div#spinnersimu .level_horizontal {
margin:6px 0px 25px 0px !important;
}

setstate

Zitat von: aloz77 am 17 Januar 2016, 17:24:42
Mir ist noch etwas aufgefallen. Wenn ich ein Reading mit deletereading entferne, wird der alte Wert im Label weiterhin angezeigt. Selbst nach einem Reload der Seite wird es weiterhin angezeigt, als wäre der alte Wert noch da. Irgendwas läuft da IMHO noch nicht optimal.

Mit der aktuellen Art der Implementierung ist das nicht möglich, alle Readings sind im Cache und die Widgets bekommen nur ein Update, wen sich der Wert ändert. Fehlende Reading sind ein Problem.
Es gab schon Ideen mit Expiredates zu arbeiten, aber ich schau mal, ob man doch irgendwie sehen herausbekommen kann, ob ein Reading fehlt.

roman1528

Zitat von: setstate am 17 Januar 2016, 19:55:25
Da kann nicht klappen, durch den Zähler, die Verzögerungen usw. Die Werte würde ganz schnell auseinander laufen. Oder man baut ganz viele IFs ein, was das Ganze unübersichtlich macht und unschön ist.

Einfachen wäre es doch, das Aussehen mit anderen Widget zu simulieren:

Super ich danke dir. Dann bleib ich bei meinen Push-Widgets. Da die Anzeige des Volume-Readings auch nicht 100% mit dem Wert auf dem AVR übereinstimmt (Berechnungsfehler im Modul).

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

tomster

Servus setstate!

gibt es beim Spinner-Widget eigentlich auch einen Parameter, der die "Geschwindigkeit" der Value-Änderung beim "longpress" beeinflusst? Klar, indirekt ginge das über den data-step, aber ich sehe in der Praxis unterschiedliche Anforderungen bei unterschiedlichen Anwendungen.
Bei Lautstärkeänderungen fände ich es unangenehm, wenn man mit dem Slider "überschiesst" und das Widget setzt dann nach dem Delay-Timer das Volume auf den zu hohen Wert. Bei der Temperatur ist es wohl weniger kritisch, wenn auch nervig, wenn man ein paar Mal hin-und-her fahren muss, um den richtigen Wert zu treffen.

Selbst im Widget-Code zu wurschteln finde ich immer semi-ideal, weil die Änderungen nach dem nächsten Update wieder weg sind...

Loredo

Ich erlaube mir mal einen Cross-Post im Bezug auf eine Installations- und Update-Problematik:
http://forum.fhem.de/index.php/topic,47626.0.html
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Achim

Hallo setstate,

ich würde gerne die "Original Icons" für das Weather-Widget für Proplanta verwendet. Lässt sich das irgendwie in das Widget mit einbauen?

für den Download der Icons hat "Hexenmeister" ein Script geschrieben http://forum.fhem.de/index.php/topic,31160.msg297505.html#msg297505

Viele Grüße
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

Lichti

Hab gerade mit TABLET UI angefangen und bin dabei mich einzuarbeiten.

Habe folgendes definiert:

    <div class="doublebox-v">
        <div data-type="push" data-device="SqueezeBoxRadio"
             data-icon="fa-chevron-up"
             data-set="volumeUp">
        </div>
        <div data-type="push" data-device="SqueezeBoxRadio"
            data-icon="fa-chevron-down"
            data-set="volumeDown">
        </div>
    </div>

Die PUSH-Tasten funktionieren aber nicht.
Wenn ich dafür SWITCH nehme, geht es. Allerdings bleibt dann der Knopf hell.

Was mach ich da falsch ?

Gruß

setstate

data-set-on="volumeUp"
data-set ist für die Angabe eines Readings.