FW_devState() verwendung

Begonnen von justme1968, 11 Juli 2013, 11:05:57

Vorheriges Thema - Nächstes Thema

justme1968

die meldeung ist eben bei fs20 nicht aufgetreten. der refresh der seite aber schon.

im mommen erscheint die 5sec meldung aber auch bei homematic nicht. das verhalten mit den nicht passenden icons tritt aber trozdem auf.

angehängt die inform timer meldungen jeweils ein mal per click auf webCmd ausgelöst und ein mal per klick auf das icon. ich glaube die unterscheiden sich nicht.

FS20
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

gerade noch mal mit firefox getestet. gleicher effekt. hm devices bekommen das zweite update nicht mit. auch ohne die 5sec meldung.

zusätzlich sehe ich gerade das mein firefox auf dem mac statt dem svg icons überall jeweils den text "Created by potrace 1.8, written by Peter Selinger 2001-2007" anzeigt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Ich finde Martin@HM uebertreibt mit Events, mit einem HM Schalter hat FHEM mind. 8x mehr zu tun, als mit einem FS20. Wir sollten ihm zeigen, dass man readings auch ohne event setzen kann (4. Parameter bei readingsBulkUpdate auf 0 setzen), ich schreibe es per PM.

Da ich z.Zt. kein HM Schalter in Griff habe, habe ich versucht das Verhalten mit dummy&sleep zu reproduzieren, geht aber nicht so einfach, bzw. es funktioniert. Es hilft mir auch nicht wirklich, wenn Du die FW_roomStatesForInform Ausgabe zu einem swap Geraet, die events aber zu einem Homematic Schalter zeigst. Nach etwas Code-Untersuchung weiss ich jetzt, dass ich zusaetzlich die Daten auch vom FW_FlushInform benoetige.

Ich vermute folgendes:
fhemweb.js/longpoll benoetigt on bzw. off als STATE des Schalters, direkt im notifyFn von FHEMWEB.
CUL_HM triggert zwar on/off, aber das massgaebliche STATE wird vermutlich nach diesem notify (oder garnicht?) auf on gesetzt. Detailliert mit Geraet kann ich das Problem erst in ein paar Tagen pruefen.

Dein swap Log kann evtl. auf ein Problem mit NL hinweisen, falls du die debug Ausgabe direkt vor dem return eingebaut hast.

justme1968

das debug war direkt vor dem return. vom swap raum deshalb weil es im anderen raum leer war.

ich mach noch mal logs und debug ausgaben inklusive FW_FlushInform und swap raum.

ein unterschied zwischen hm oder swap und fs20 ist das der status als reaktion auf die antwort vom device gesetzt wird und nicht schon beim senden an das device. das laesst sich über du dummys vermutlich genau nicht abbilden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Pruef bitte auch, ob beim FW_notifyFn Aufruf swap STATE schon richtig gesetzt ist.

rudolfkoenig

Mit einem "einfachen" HM-LC-SW1-PL kann ich das Problem nicht nachvollziehen.

Ich kriege beim Schalten "nur" folgende Events:
2013-07-30 09:08:22.596 CUL_HM hm1 set_on
2013-07-30 09:08:22.750 CUL_HM hm1 level: 100 %
2013-07-30 09:08:22.750 CUL_HM hm1 deviceMsg: on (to CUL)
2013-07-30 09:08:22.750 CUL_HM hm1 on


Das Bild wechselt zuerst zur Lampe mit Ausrufungszeichen und dann zum Endergebnis.
Getestet mit FF, Chrome und telnet (als trigger).
Evtl. hat Martin@HM hier was wesentliches geaendert.

justme1968

ich habe eben noch ein wenig gespielt: ein HM-LC-SW1-PL liefert tatsächlich sehr viel weniger events als ein HM-LC-SW4-DR oder ein HM-LC-Bl1PBU-FM.

es liegt aber nicht an der anzahl der events eines devices sondern hängt vom raum ab in dem das device ist. wenn ich den HM-LC-SW1-PL im raum Büro lasse geht es. wenn ich ihn in den gleichen raum schiebe wie den HM-LC-SW4-DR aus dem log oben geht er nicht mehr. umgekehrt geht der HM-LC-SW4-DR wenn ich ihn in einen raum test schiebe dort plötzlich auch.

ich mache noch mal logs inklusive  FW_roomStatesForInform, ...

unabhängig davon zappelt die ganze web seite bei jedem schaltvorgang oder baut sich zum teil verzögert auf. das ist bei der xhr version besser.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

so... was lange wärt...

anbei eine erste version der readingsGroup.

die html ansicht geht erstmal nur in der detail ansicht oder kann mit 'readingsGroup_2html("<name>")' in einen weblink eingebettet werden.

definition wie beim weblink typ readings. also z.b. so: define test readingsGroup .* oder mit mehreren <device> bzw <device>:regex paramtern wenn es nicht so viel sein soll :).

das mapping muss aber ins attribut mapping und es wird %NAME ersetzt statt $NAME. die spezialargumente wie *noheader gehen noch nicht. die wandern auch noch in attribute. formatieren kommt auch später.

die neu ausgesendeten trigger sind zur zeit nur auf device ebene eingeschränkt. noch nicht auf readings ebene. d.h. es sind noch ein paar zu viel.

ist das eher so wie du es dir vorgestellt hat? das mit dem rot machen brauchst du nicht extra zu bauen. das geht direkt schon.

gruss
  andre

achja: die doku ist auch noch nicht fertig :)

edit: die angehängt version noch mal aktualisiert. die interne device liste wird jetzt bei define, rename und delete irgendeines devices aktualisiert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

> ist das eher so wie du es dir vorgestellt hat?

Prinzipiell ja, bis auf Details, siehe unten.

Es schaut bei mir noch komisch aus, da .*:battery mir eine Liste mit 6x battery anzeigt, damit weiss ich nicht welche Zeile was ist. Ich wuerde statt reading lieber  devname oder devname:reading sehen wollen.
Hoffentlich muss man hier nicht mapping verwenden. Apropos mapping: ich glaube Du musst ein Beispiel bringen, sonst versteht das kein Endbenutzer.

Das get verstehe ich nicht (schaut im Frontend komisch aus), und auch der Hinweis auf weblink ist mir schleierhaft (ja, es geht, aber wozu, direkt ist es doch einfacher), aber vlt. hat Du damit was vor, und da will ich nicht reinreden :)

justme1968

kommt alles noch :). das war nur in einer halben stunde aus drei anderen modulen zusammenkopiert und umbenannt um das mit dem triggern zu testen.

zur zeit muss man noch alles mappen. beispiele hier: Link.

defaults und doku werden natürlich noch benutzerfreundlicher.

ist es sinnvoll den weblink readings typ wieder zu entfernen wenn es so weit ist? man könnte ja erst mal einen hinweis einblenden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

> ist es sinnvoll den weblink readings typ wieder zu entfernen wenn es so weit ist?

Ja, darum wollte ich dich noch bitten :), ist mir bei fileplot/dbplot nach SVG schieben aufgefallen.

Aber erst nachdem dieses Modul eingecheckt ist.

justme1968

ich habe gerade eingebaut das man die html ausgabe ähnlich wie vei devStateStyle formatieren kann. ich habe dazu die attribute style,labelStyle und valueStyle. entweder als string wie bei devStateStyle oder als perl ausdruck der jeweils reading namen und wert übergeben bekommt. damit kann man dann z.b. entweder so etwas machen wie die reading werte rechtsbündig anzeigen oder in einer zusammenfassung von temperaturen das label oder den wert für warmwasser rot und für kaltwasser blau.  

damit könnte man dann z.b. in der readingsgroup alle batterie readings die nicht ok sind rot machen. oder die heitzungsgemperaturen die außerhalb des vorgegeben wertebereichs sind oder die bodenfeuchte der pflanzen die zu trocken sind oder ...

das geht für die namen und werte der readings unabhängig voneinander. dazu wäre es jetzt schön zum einen das rot einfärben beim longpoll update readingsweise abschaltbar zu machen und zum anderen dir farbe mit der eingefärbt wird vom wert abhängig zu machen.

das wertabhängig stylen kann ich zur zeit nur beim ersten auf aufbau der html seite. die farben oder formatierung soll sich aber natürlich dynamisch anpassen wenn sich die werte ändern. hast du eine idee wie man das mit dem longpoll mechanismus integriert?

wie wäre es das stylen der readings nicht nur in der readingsgroup zu erlauben sondern auch in der detail ansicht? wenn man so werte ausserhalb eines erlaubten bereichs leicht erkenne kann wäre das glaube ich allgemein recht praktisch. ebenso die {} erweiterung auch bei devStateStyle.

ein verweis auf die stylesheets reicht jetzt aber nicht weil die nicht dynamisch wertabhängig und auch nicht individuell für einzelne readings sind. für einen anwender ist es auch deutlich einfacher ein paar attribute zu setzen als stylesheets anzupassen.

edit: erste idee: beim automatisch rot machen nur den timestamp einfärben. und den wert nicht. dann kommt sich beides nicht in die quere.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

> beim automatisch rot machen nur den timestamp einfärben. und den wert nicht.

DAS kriegt man aber bestimmt per stylesheet hin :)

Ich meine natuerlich das Nichteinfaerben nur fuer readingGroup Werte.

justme1968

ich merke schon. du hat den komplizierten teil ignoriert :)

und auch dein einfachen teil bekommt man nicht per stylesheet hin. in fhemweb.js  wird hart für spalte 1 und 2 (wert und timestamp) class=changed gesetzt. das kann ich im stylesheet nicht spaltenweise wieder ausschalten. um nur den timestamp einzufärben darf man class=changed nur für spalte 2 setzen.

ich würde vorschlagen in einem aller ersten schritt fhemweb.js so zu ändern das class=changed nur für spalte 2 (den timestamp) gesetzt wird. dann wird nur der timestamp rot wenn das reading gesetzt wird. das ist aus mehreren gründen passend:
- die farbe sagt nur aus das der wert neu ist. nicht das er sich geändert hat.
- es ist weniger rot auf dem monitor.
- der wert kann anhand anderer kriterien engefärbt werden ohne das es durch longpoll überschrieben wird.

ich würde gerne für die readings group so wenig wie möglich sonderwege gehen. und das stylen der readings ist auch für die normale detail ansicht nett.

edit: ich kann die changed farben aus dem readingsGroup modul überschreiben. d.h. punkt drei von oben spielt keine rolle mehr. die ersten beiden fände ich persönlich aber immer noch relevant.

hast du eine idee wie man den anwender in die lage versetzen kann aus dem modul kriterien für dsa einfärben aus dem javascript longpoll zu konfigurieren ohne das er das stylesheet anfassen muss? mit den style attributen von oben geht es nur einmalig beim seitenaufbau.

anbei die aktuelle version mit etwas verbesserter doku. der weblink ist nicht mehr nötig. das wäre der stand den ich einchecken würde.  das einfärben per javasctipt wäre dann version 2. der patch um im weblink readings einen deprecated hinweis einzublenden kommt noch.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

noch einmal eine aktualisierte version:
- doku verbessert
- möglichkeit auch internal values anzuzeigen

und drei mal patches für doku und weblink.

wenn kein wiederspruch kommt würde ich die readingsGroup morgen einchecken. übernimmst du die drei patches?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968