Neues Modul readingsGroup

Begonnen von Niko, 24 August 2013, 11:59:11

Vorheriges Thema - Nächstes Thema

Niko

Aua, ich hoffe ich verstehe "refresh" jetzt falsch.

Beispiel:

Ich habe auf der Logger Seite 3 Max Heizkörper Thermostate. Diese übermitteln ca. alle 5 Minuten ihre Temperatur per Fhem2Fhem.

Auf der Server Seite habe ich einen Raum mit einer readingsGroup, welche die Temperaturen der 3 Thermostate enthält. Wenn ich diesen Raum jetzt aufrufe (Thermostate haben seit Start von FHEM schon einmal die Temperaturen übermittelt), sehe ich dann die Temperatur?

Falls ja: Jetzt mache ich eine "refresh" der Seite (F5). Was sehe ich dann?

Wenn ich beim Aufruf des Raums die (letzten) Temperaturen nicht sehe macht das wenig Sinn. Dann spar Dir besser die Arbeit (deshalb hatte ich zu Anfang geschrieben "wenn dies überhaupt möglich ist").

Gehe jetzt kurz zum Abendessen. So wie ich dich heute erlebt habe ist die Antwort danach schon da :-)

VG Niko

justme1968

das dachte ich mir schon :)

wie gesagt die readingsGroup speichert keine werte. nicht kurzfristig und noch nicht mal temporär. d.h. nach dem refresh wären die werte leer bis wieder passende events kommen. sorry.

wenn du dir irgendetwas 'merken' willst brauchst du noch andere module dazu. z.b. ein dummy den du mit den werten in einem notify befüllst. ein dummy würde auch für mehrere räume reichen.

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

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

justme1968

wenn die readingsGroup das erste mal angezeigt wird werden die aktuellen readings aus dem device genommen. wenn sich am device die readings ändern wird die readingsGroup automatisch aktualisiert.

@niko: das ist sozusagen genau der grund warum es bei fhem2fhem nicht geht. ich habe kein device aus dem ich die aktuellen werte lesen kann. ausser du legst sie z.b. in einem dummy ab.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Niko

Hallo Andre,

dann spar Dir bitte die Mühe betreff Fhem2Fhem.

Ich werde trotzdem bei mir auf readingsGroup umstellen. Ich werde einfach meine Routine so umstellen, dass Sie alles "mitschreibt" (was über Fhem2Fhem kommt) und nicht mehr modulweise arbeitet. Aus diesen Werten werde ich dann verschiedene readingsGroup füttern.

Was für mich noch hilfreich wäre, ist ein "stateFormat" für readingsGroup. Ich nutze dies um bei meinen "attr group" ein Art Überschrift zu erzeugen. Wenn dies aber nicht zu Deinem Modul passt oder viel Arbeit bedeutet, kein Problem, ich kann dies auch anders lösen.

Nachmals vielen Dank für die beiden Änderungen heute und Deine Bereitschaft neue Ideen aufzunehmen!

Viele Grüße Niko

Niko

Hallo,

Die Sachen mit dem StateFormat möchte ich zurücknehmen. Bei genauerem Nachdenken passt dies überhaupt nicht zu dem Modul. Sorry dafür.

Ich habe jetzt einige Sachen bei mir auf readingsGroup umgestellt, als Anzeige für die Familie. Von dieser kam noch der Wunsch nach einer Sortierung. Ich habe im original Beitrag zu readingsFormat hierzu etwas gefunden, dies ist aber anscheinend nicht weiter verfolgt worden. Es wäre schön wenn dies noch möglich wäre. Aber wie bei meinen anderen Bitten auch; wenn dies nicht möglich ist oder zuviel Arbeit macht oder auch nur nicht gewünscht ist: kein Problem und vollstes Verständnis.

VG Niko

justme1968

wegen dem stateFormat wollte sowieso fragen was du genau gemeint hast :)

die zeilen werden in der reihenfolge dargestellt wie du sie in der definition angegeben hast. wenn du eine bestimmte sortierung möchtest musst du es in genau dieser reihenfolge in der definition angeben.

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

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

Niko

Alles klar, verstanden

... und abermals danke

VG Niko

Elektrolurch

Hallo Andre,

danke für den Tipp. Kann es aber sein, dass man nur ein userReadings pro Device definieren kann?
Ich habe da versucht, an den FBCallMonitor zwei userReadings, eins für entgangene Anrufe, eins für eingehende Anrufe anzuhängen und es sieht so aus, dass die Definition des zweiten das erste überschreibt. Auch an der grafischen Oberfläche lässt sich ja eigentlich nur ein userReading definieren, da der Name des Readings ja im Textfeld zusammen mit der Perlanweisung steht.
 Wenn dem so ist, dann müssten doch dummys her...

Elektrolurch
configDB und Windows befreite Zone!

justme1968

pro device gibt es natürlich nur ein userReadings attribut. darin kannst du aber mit komma getrennt beliebig viele readings erzeugen.

für den fall der call history ist aber vermutlich eh ein notify besser. da kannst du auch  mit readingsBulkUpdate oder setreading auch mehrere neue readings anlegen.

du brauchst ganz sicher keine dummys dafür.

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

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

Elektrolurch

Hallo Andre,

Habe nun schon fleißig Dein Modul eingesetzt.

Aber mir ist etwas aufgefallen:
a) Wenn ich noheading 1 setze, erscheint der Name mit Link des ReadingsGroup nicht. So sollte es ja sein.
b) Setze ich nun das Attribut Group, so erscheint der Gruppennamen UND der Name des ReadingsGroup, d.h. noheading 1 wird nun ignoriert.
Auf der Übersichtseite möchte ich aber bei den Objekten möglichst keine Links haben und mit dem Group-Attribut die Darstellungsreiehenfolge setzen.

Ist das ein Fehler, dass das Group-Attribut das noheading 1 wieder überschreibt?

Und noch eine Frage (ich habe es noch nicht ausprobiert): Wie kann ich die Ausgabe eines Readings in ReadingsGroup in Abhängigkeit von seinem Wert unterdrücken?

Mir würde da jetzt nur einfallen "nostate = 1", "notime = 1" setzen und über ValueFormat und einer entsprechenden if-Abfrage ein "undef" zurückliefern.
Was macht ReadingsGroup mit einem "undef"? Oder Gibt es noch einen andere Möglichkeit?

Gruß


Elektrolurch


configDB und Windows befreite Zone!

justme1968

das noheading wird nicht ignoriert. die überschrift ist ja weg.

das was du links von der reading group siehst wird von fhem web erzeugt. darauf habe ich keinen einfluss. du kannst aber den alias auf  setzen. das ist ein leerzeichen ohne breite. das ist fast so gut wie nichts.

die komplette zeile kannst du nicht unterdrücken. den wert selber kannst du ausblenden in dem valueFormat einen leeren string zurück liefert wenn deine bedingung erfüllt ist.


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

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

Elektrolurch

Hallo Andre,

dann verstehe ich nicht ganz, was Heading ist? Wie setze ich denn eine zusätzliche Überschriftszeile? In der Kommanref steht dazu nichts. Ich dachte, es wäre der Name des Objektes, der über der Tabelle steht.
Ich habe da  Deinen alias String gesetzt und bekomme jetzt ein "&"  angezeigt, also noch nicht ganz leer...

Gruß

Elektrolurch (so heißt ein Stück von Kraftwerk, auf einer ihrer ersten LPs. Fäng so an: Volt, Watt, Amper, Strom.. ohne mich.... -> Rest weiß ich nicht mehr)

configDB und Windows befreite Zone!

Elektrolurch

Hallo Andre,

jetzt habe ich das mal mit dem Leerstring in ValueFormat ausprobiert:

Code:
{Value("$DEVICE") eq "present" ? KonvertiereZeit (ReadingsTimestamp("$DEVICE", "state", "???")):""}

Aber die $DEVICES, die noch auf "absent" stehen, werden trotzdem angezeigt, obwohl  da ja ein Leerstring zurückgeliefert wird.

Anwesend
#xFEFF;
Familie
17:23:56 06.09.2013
Harald
absent
Marina
17:40:28 06.09.2013


Gruß

Elektrolurch
configDB und Windows befreite Zone!

justme1968

schau dir das bild unten an:

- testGruppe ist der name der gruppe. steht über dem äußeren rahmen

- readgings Group über dem inneren rahmen -> das ist der name der readingsGroup den ich selber anzeige. den kannst du mit noheading ausblenden

- readingsGroup links neben dem inneren rahmen -> das ist der name der readingsGroup den fhemweb selber noch mal anzeigt. gegen den kann ich nichts machen.

das mit dem  geht vermutlich nicht wenn fhem es aus dem config file liest weil # das kommentar zeichen ist. nimm statdessen  

mach mal klammern um den test: {(Value("$DEVICE") eq "present") ? KonvertiereZeit (ReadingsTimestamp("$DEVICE", "state", "???")):""}


(siehe Anhang / see attachement)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Elektrolurch

Hallo Andre,

da kommt ja etwas lustiges Heraus:
Wohl für einen Normalsehenden kein sichtbares Zeichen, aber der Screenreader liest mir nun statt des Textes den dort stehenden Link vor auf das Objekt "Anwesenheit", also der ReadingsGroup. Na ja, dass ist der Unterschied zwischen Optik und Akustik....
Optisch weg, aber doch noch da...
Ok. die Klammern habe ich gesetzt, aber die "absent" stehen immer noch da.
ReadingsGroup liest doch jedesmal, wenn es aufgerufen wird, die Werte und wird nicht von den Readings getriggert. Die ändern sich ja im Augenblick nicht...
Oder mache ich da einen Denkfehler?

Hinweis: Leider nützen mir die Screenshots nichts, die müsste ich erst OCRlern.

Elektrolurch


configDB und Windows befreite Zone!