Evaluierungsversion 2.2

Begonnen von setstate, 17 März 2016, 10:40:13

Vorheriges Thema - Nächstes Thema

harry66

dann werde ich mal auf Spurensuche gehen, danke für den Tip  :D 
BananaPI, RPI, nanoCUL433, RCS 1000 N Comfort, Dect200, Powerline546E, MAX!Cube, 7xMAX! HT's,3xMAX!FK HMLAN, HM-LC-Bl1PBU-FM, HM-LC-Sw4-Ba-PCB Relay Karte,  LW12, Sqeezelite, TabletUI=Kindel 8" FireHD+Handy,AmazonEcho

roman1528

Betreffend #linkname:

Gerade nochmal ein Update gezogen. Nun läuft das einwandfrei. Vielen Dank.

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

setstate

Das gds ist schon etwas verzwickt ...
Werden wirklich einzelne Readings separat upgedated? Also muss man jeden einzelnen für mögliche Updates subscriben? Oder reicht es wenn man die Anzahl beobachtet und nur bei Änderung alles neu zeichnet? Wenn sich aber nur die Description des Readings ab und an ändert oder die Startzeit des Unwetters, müssen wir alle Readings mit addReading hinzufügen und bei Update darauf filtern. Hattest du ja schon angefangen, aber in der update Funktion fehlt noch Schleife für 'I' Variable

roman1528

#318
Moin.
Im Prinzip reicht es auf "a_count" zu lauschen.
Dann würde ich aber wahrscheinlich noch "GDS_CAPDATA_READ" (Unix-Time) mit beobachten. Wenn nämlich nach einer Aktualisierung wieder z.B. 2 (neue) Warnungen vorhanden sind. Damit beide aktualisiert werden.
Wobei es Sinn macht im GDS-Modul "attr <name> event-on-update-reading .*" zu setzen. GDS ist nämlich sehr sparsam was das feuern von Events angeht und es muss so oder so manuell aktualisiert werden (at).
Hänge gleich noch einen Screenshot an um zu verdeutlichen wie es normalerweise aussieht.

Grüße^^

EDIT: Screenshots added.
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

setstate

Das macht vieles einfacher und spart Resourcen.
Somit braucht man nur diese beiden Readings mit addReading hinzufügen und in der Update Funktion darauf filtern. Wenn später ein Update reinkommt, kann man dann trotzdem alle anderen Readings durchgehen und anzeigen. Es sind ja immer alle Readings verfügbar. addReading ist wirklich nur für das Subscriben auf die Update Notifikation.

roman1528

#320
Zitat von: setstate am 27 April 2016, 10:44:27
Das macht vieles einfacher und spart Resourcen.
Somit braucht man nur diese beiden Readings mit addReading hinzufügen und in der Update Funktion darauf filtern. Wenn später ein Update reinkommt, kann man dann trotzdem alle anderen Readings durchgehen und anzeigen. Es sind ja immer alle Readings verfügbar. addReading ist wirklich nur für das Subscriben auf die Update Notifikation.

Die Readings sind nur verfügbar sofern "a_count" > 0 ist.
Und selbst "a_count" existiert bei 0 nur per userReadings bzw. notify -> setreading, da GDS kein "a_count"-Event erzeugt. (Somit auf per userReadings nicht aktualisiert wird....

Es ist wie gesagt etwas verzwickt mit GDS, weil das Modul ein etwas anderes Leben lebt.

EDIT:

Spiele gerade nochmal etwas mit GDS rum.
Ich teste gerade ob es nicht reicht wenn man "a_count" verwendet unter fogenden Vorrausetzungen.

attr GDS userReadings a_count { ReadingsVal('GDS','a_count','0') }
attr GDS event-on-change-reading a_count
attr GDS event-on-update-reading a_count
attr GDS gdsUseAlerts 1


Erfolgreich, wenn: a_count immer als Reading existiert UND immer ein Event im Event-Monitor erzeugt wird.

Somit wäre auch die für das GDS-Widget vorrausgesetzte Konfiguration des GDS-Modul's deutlich einfacher.

Grüße^^

EDIT 2:

Mir fällt noch was ein.

Irgendein Widget kann doch darauf reagieren ob ein Reading vorhanden ist oder nicht. Genau das brauchen wir.

attr GDS event-on-change-reading a_count
attr GDS event-on-update-reading a_count
attr GDS gdsUseAlerts 1

Als Vorraussetzung beibehalten um wirklich alles mitzubekommen. Damit sollte man nichts verpassen.

Event: a_count.* -> ? a_count vorhanden -> true, alle anderen Readings holen und ausgeben.
                                                             -> false, idle -> Keine Warnungen vorhanden.

GDS gds a_count 0 wird auf jeden Fall gefeuert, auch wenn a_count anschließend nicht als Reading vorhanden ist.

Grüße^^
P.S. hoffe das kann man verstehen XD
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

setstate

Zitat von: roman1528 am 27 April 2016, 11:10:36
...
P.S. hoffe das kann man verstehen XD

Nö, aber das gds Widget ist ja eh deine Baustelle.  ;)

Ich wollte nur den Hinweis geben: addReading für das, dessen Events man belauschen will. Anzeigen kann man dann alles, da alle Devices und Readings bekannt sind.

SvenJust

Zitat von: setstate am 26 April 2016, 10:19:18
Wie äußert sich der Fehler? Man kann nicht mehr auf eine Unterseite wechseln, wenn diese nicht mit class="prefetch" schon vorher geladen wurde?

Mit class="prefetch" tritt der Fehler nicht mehr auf, danke! Durch den Fehler wurden die Buttons ohne farbigen Hintergrund dargestellt.
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

roman1528

#323
Zitat von: setstate am 27 April 2016, 12:31:44
Nö, aber das gds Widget ist ja eh deine Baustelle.  ;)

Ich wollte nur den Hinweis geben: addReading für das, dessen Events man belauschen will. Anzeigen kann man dann alles, da alle Devices und Readings bekannt sind.

Ah ok cool... ja.. dann mach ich mich da gleich mal ran...  :-[

Was ganz anderes.

Wenn man die Seite zum ersten mal aufruft, wird ja ein shortPoll ausgeführt. Bis dieser Fertig ist und die Widgets aktualisiert wurden ist eine Bedienung ja quasi unmöglich.
Kann man da nicht den #shade aktivieren und z.B. fa-spinner "fa-pulse" lassen?  ;D

Wenn der erste shortPoll (Full refresh done) durch ist fa-spinner weg und #shade.hide().

Ich finde das hätte was... Habe schon mal geschaut nur möchte ich ungern in der fhem-tablet-ui.js rumbasteln, noch weiß ich an welcher Stelle ich ansetzen sollte...

Grüße^^

EDIT:

Noch 'ne Frage wegen GDS: attribute lesen ging doch auch irgendwie oder? Um fest zu stellen ob gdsUseAlerts gesetzt ist.
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

SvenJust

Zitat von: SvenJust am 27 April 2016, 12:45:53
Mit class="prefetch" tritt der Fehler nicht mehr auf, danke! Durch den Fehler wurden die Buttons ohne farbigen Hintergrund dargestellt.

Mein Geschreibsel war falsch, der Fehler tritt weiterhin auf, ich hatte nur den fraglichen JS-Code (https://forum.fhem.de/index.php/topic,50945.msg444329.html#msg444329) auskommentiert, dann tritt der Fehler nicht auf. Ich lege einen Screenshot bei.

Die Pagebuttons werden mit fünf data-templetes eingebunden:
<li data-row="9" data-col="1" data-sizex="1" data-sizey="1" data-template="menu_b_1.html"></li>
<li data-row="9" data-col="2" data-sizex="1" data-sizey="1" data-template="menu_b_2.html"></li>
<li data-row="9" data-col="3" data-sizex="1" data-sizey="1" data-template="menu_b_3.html"></li>
<li data-row="9" data-col="4" data-sizex="1" data-sizey="1" data-template="menu_b_4.html"></li>
<li data-row="9" data-col="5" data-sizex="1" data-sizey="1" data-template="menu_b_5.html"></li>

Das menu_b_3.html sieht aus, wie folgt:
<!-- KLIMA UND BESCHATTUNG -->
<header>KLIMA</header>
<div data-type="circlemenu" class="top-space cell circlemenu" data-direction="top" data-circle-radius="90">
<ul class="menu">
<li><div data-type="pagebutton" data-icon="oa-control_building_control" data-off-color="rgb(42,42,42)" data-off-background-color="rgb(170,105,0)" data-background-icon="fa-circle" class="prefetch"></div></li>
<li><div data-type="pagebutton" data-url="index_33.html" data-icon="oa-sani_heating" data-off-color="rgb(42,42,42)" data-off-background-color="rgb(170,105,0)" data-background-icon="fa-circle"  class="prefetch"></div></li>
<li><div data-type="pagebutton" data-url="index_34.html" data-icon="oa-vent_ventilation_control" data-off-color="rgb(42,42,42)" data-off-background-color="rgb(170,105,0)" data-background-icon="fa-circle"  class="prefetch"></div></li>
<li><div data-type="pagebutton" data-url="index_32.html" data-icon="oa-fts_sunblind" data-off-color="rgb(42,42,42)" data-off-background-color="rgb(170,105,0)" data-background-icon="fa-circle" class="prefetch"></div></li>
</ul>
</div>


Die Pagebuttons aus menu_b_2.html funktionieren:
<!-- WETTER -->
<header>WETTER</header>
<div data-type="circlemenu" class="top-space cell circlemenu" data-direction="top" data-circle-radius="120">
<ul class="menu">
<li><div data-type="pagebutton" data-icon="oa-weather_cloudy_light" data-off-color="rgb(42,42,42)" data-off-background-color="rgb(170,105,0)" data-background-icon="fa-circle"  class="prefetch"></div></li>
<li><div data-type="pagebutton" data-url="index_20.html" data-icon="fa-sun-o" data-off-color="rgb(42,42,42)" data-off-background-color="rgb(170,105,0)" data-background-icon="fa-circle" class="prefetch"></div></li>
<li><div data-type="pagebutton" data-url="index_23.html" data-icon="fa-area-chart" data-off-color="rgb(42,42,42)" data-off-background-color="rgb(170,105,0)" data-background-icon="fa-circle" class="prefetch"></div></li>
<li><div data-type="pagebutton" data-url="index_2.html" data-icon="oa-weather_rain" data-off-color="rgb(42,42,42)" data-off-background-color="rgb(170,105,0)" data-background-icon="fa-circle" class="prefetch"></div></li>
<li><div data-type="pagebutton" data-url="index_21.html" data-icon="oa-weather_wind" data-off-color="rgb(42,42,42)" data-off-background-color="rgb(170,105,0)" data-background-icon="fa-circle" class="prefetch"></div></li>
</ul>
</div>


Ich sehe eigentlich keinen Unterschied in der Definition.
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

roman1528

#325
So... mit O


<div data-type="gds" data-device="GDS-Device"></div>


Parameter:
data-max: Legt die maximale Anzahl an angezeigten Warungen fest. Standard: 10

Class:
Alle bekannten Klassen (small, medium, large, big, bigger...) um die Schriftgröße zu ändern.

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

setstate

Spitze! Gute Arbeit. Code sehe ich mir dann auch noch an

roman1528

#327
 :) :)

Danke. Hab auch reichlich rumgeflucht..  ;D

Bin jetzt gerade wieder bei meinm AnalogClock-DoppeltUndDreifach-Lade-Problem... sch...ande blöde  >:(

Ich galube ich mache erstmal den Screensaver soweit fit, dass man dort auch Swiper einbinden kann. und zwar so, dass man die dahinterliegenden nicht sieht.

ggf. komme ich da dann auch nochmal auf dich zurück wegen den z-index'n des swiper... aber mal abwarten.

EDIT:
Okay.. das hat also nix mit dem Screensaver zu tun würde ich sagen.

Eher mit dem Swiper, der nicht darauf klar kommt dass er irgendwo anders drin steckt... müsstest du vielleicht mal schauen was das sein kann. Pagination ist völlig durcheineinander und autoplay läuft nicht.

z-index der Swiper-Klassen werden in der screensaver.css überschrieben.. also angezeigt wird alles.

Screensaver-Widget kommt demnächst per Pull-Request :)
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

setstate

Zitat von: roman1528 am 27 April 2016, 12:50:43
Wenn man die Seite zum ersten mal aufruft, wird ja ein shortPoll ausgeführt. Bis dieser Fertig ist und die Widgets aktualisiert wurden ist eine Bedienung ja quasi unmöglich.
Kann man da nicht den #shade aktivieren und z.B. fa-spinner "fa-pulse" lassen?  ;D

Wenn der erste shortPoll (Full refresh done) durch ist fa-spinner weg und #shade.hide().

Ich finde das hätte was... Habe schon mal geschaut nur möchte ich ungern in der fhem-tablet-ui.js rumbasteln, noch weiß ich an welcher Stelle ich ansetzen

Die initiale ShortPoll Abfrage passiert doch asynchron im Hintergrund. Ich kann da schon etwas schalten währenddessen. Shade oder Spinner muss an dieser Stelle nicht sein, denke ich.

skuggy

Hallo zusammen,

update all funktioniert bei mir nicht, ich erhalte folgende Meldung:

     
2016.04.27 18:56:24 1 : RMDIR: ./restoreDir/2016-02-01
2016.04.27 18:56:25 1 : UPD www/tablet_eval/content_lights.html
2016.04.27 18:56:25 1 : open ./www/tablet_eval/content_lights.html failed: Permission denied, trying to restore the previous version and aborting the update
...Gruß skuggy

FHEM 5.6 auf Raspberry Pi 2, HM-CFG-LAN, 8x HM-LC-Bl1PBU-FM, 5 x HM-CC-RT-DN, 1 x HM-LC-Sw1-Ba-PCB, 1 x HM-RC-4-2, 1 x JeeLink Clone, 10 x TX29DTH-IT, Fritzbox 7270