Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

justme1968

der link ist ja noch da. nur durch ein leerzeichen ersetzt. die akustik ist also genauer.

du musst im valueFormat ein leerzeichen zurückgeben statt dem leeren string. statt Value($DEVICE) kannst du direkt $VALUE verwenden.

es wird auch von den readings getriggert.

sorry wegen dem screenshot. aber ich habe immerhin nicht drin rum gemalt sondern versucht zu beschreiben.

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

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

Elektrolurch

Hallo Andre,

1. ok $VALUE vers Value("... hatte ich da verdrängt, gleich abgeändert und geht auch.
2. jetzt gebe ich statt "" ein " " (Leerzeichen an Readings Group zurück. Ergebnis: statt den Status mit "absent" auszugeben, wie vorher, kommt nun ein Leerzeichen.
Familie
17:23:56 06.09.2013
Harald
 
Marina
17:40:28 06.09.2013

-> Harald ist absent

(Natürlich in Tabelle! Aber ich kann mal mit Screenshots nichts anfangen).
Also, ein " " oder ein "" als Rückgabewert unterdrückt die Ausgabe des einzelnen Wertes wohl nicht?
->Creenshots: kein Problem - PCs kann ich auch so bedienen. Lerne seit ein paar Jahren um und Elektrik im Haus kann man ja auch umbauen. Da muss nur jemand sagen, wo Blau und Grün/gelb ist. Der Rest ist ja unkritisch :-)
Habe jetzt die gesamte Beleuchtung mit ca. 20 Dosen umgebaut....

Gruß
Elektrolurch
configDB und Windows befreite Zone!

justme1968

du kannst nur den wert an sich unterdrücken. nicht die ganze zeile weg lassen. dafür müßte ich mir noch was überlegen. ich weiss aber nicht ob es überhaupt richtig funktionieren kann weil es ja auch den update gibt der durch aktualisierte readings getriggert wird und da kann ich nicht einfach zeilen entfernen oder einfügen.

gruss
  andre

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

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

Elektrolurch

Ok. So siehts ja auch aus. Anliegend war: Dinge nicht darzustellen, die nicht relevant sind. (:_@ GUI Optimierung). Ich hatte da mal was mit notify und deleteattr room ausprobiert -> führt aber nach einem Neustart von fhem auch nicht zu konsistenten Ergebnissen.

Wenn man so ein "undef" oder ein "" als Unterdrücker der Ausgabezeile verwenden könnte... wäre aus meiner Sicht schon sinnvoll.

Elektrolurch

P.S.: Heia angesagt.
configDB und Windows befreite Zone!

justme1968

ab morgen kannst du undef zurück geben. dann wird die zeile ausgelassen. das funktioniert aber nur beim initialen aufbau. nicht beim nachträglichen update durch longpoll. ausgelassene zeilen werden auch per longpoll nicht wieder eingefügt.

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

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

Niko

Hallo Andre,

ich hoffe es ist nicht unverschämt, aber zwei Bitten hätte ich noch:

Einerseits die Verwendung von Perl Expressions nicht nur bei nameStyle und valueStyle sondern auch bei timestampStyle. Beim Timestamp würde ich gern in Abhängigkeit vom Reading mal nur den Tag, mal nur die Zeit, mal nur volle Stunden etc. darstellen. Grund dafür sind zeitliche Max/Min Werte also z.B. stärkste Stunde / schlechtester Tag.

Andererseits sind die Readings, wie in Fhem üblich verlinkt. Gerade "readingsGroup" bietet sich meiner Meinung nach aber für abgespeckt Versionen von Fhem an bei denen die User nichts verstellen können (z.B. meine Familie/Kinder :-) Durch die Links kommen die Anwender dann aber doch wieder an Stellen an denen ich sie nicht haben möchte, und dies selbst dann wenn ich die entsprechenden Module vorher mit "hiddengroup/hiddenroom" versteckt habe. Hier würde ich mir eine Einstellmöglichkeit "Verlinkung an/aus" (also wir z.B. noheading) wünschen.

Auch wenn es mit meinen Wünschen nichts werden sollte, Dir auf jeden Fall vielen Dank für das gute Modul!

VG Niko  

justme1968

ab morgen kannst du mit dem attribut nolinks die links unterdrücken.

zu timestampStyle:  das ist doch gar nicht dokumentiert :). timestampStyle hat das problem das es von longpoll überschrieben wird bzw. noch nicht dynamisch gesetzt werden kann wenn sich der wert per longpoll ändert.

das was du aber eigentlich möchtest ist timestampFormat. das gibt es noch gar nicht und ich muss auch erst  mal schauen ob das überhaupt geht weil die timestamps zur zeit automatisch von fhem erzeugt werden.

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

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

Elektrolurch

Hallo Nico,

ich habe das über ValueFormat gelöst, da kannst Du zurückgeben, was Du möchtest. Das ist ja gerade die Stärke des Moduls.

Beispiel:
define Alarmmelder readingsGroup [EO]G[012]_Bewegungsmelder:Alarmzeit
attr Alarmmelder alias Alarmmelder
attr Alarmmelder group Alarmanlage
attr Alarmmelder mapping { 'Alarmzeit' => '%ALIAS'}
attr Alarmmelder noheading 1
attr Alarmmelder notime 1
attr Alarmmelder room Automation,Haus
attr Alarmmelder valueFormat { KonvertiereZeit($VALUE);;}
In dem Fall steht schon in $VALUE die Zeit. Geht aber auch mit ReadingTimeStamp(.."state"..=

Leider geht seit dem gestrigen Update aber das "mapping" von der ReadingsGroup nicht mehr. Da wird nun immer das Pärchen <device>:<Trigger> angezeigt.  @Andre?
Am Freitag abend waren die alle noch ok, Samstags das Update eingespielt...

Gruß

Elektrolurch

configDB und Windows befreite Zone!

justme1968

das mapping habe ich gestern schon wieder repariert. wenn du heute ein update machst sollte wieder alles gehen.

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

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

Niko

Hallo

@Andre: Danke für die Link Geschichte

@Elektrolurch: Wenn ich das richtig verstehe nehme ich dann einen, wie immer auch aufbereiteten Zeit-String einfach mit in das Value Feld. Danke für den Tipp, das ist natürlich auch eine Lösung. Wobei ich ein eigenes Feld für die Zeit aus optischen Gründen vorziehen würde.

Das mit dem Mapping geht inzwischen (bei mir) wieder. Habe heute gegen Mittag ein Update gefahren.

Viele Grüße
Niko

Elektrolurch

Super und DANKE. nokinks ist auch super!
Werde das morgen gleich noch setzen und mir überlegen, wo ich noch überall ReadingsGroup sinnvoll einsetzen könnte.
So langsam geht das coden richtig locker von der Hand. Da in meiner 99_myutils schon fast 700 Zeilen waren, habe ich die jetzt auf drei Dateien 99_myutilsxxx aufgeteilt. Offensichtlich werden alle 99_myutils.* automatisch geladen.
Frage: Muss man beim "update" Befehl eine Option setzen, damit fhem automatisch wieder startet oder hängt sich das auf, da im Hintergrund noch die pings vom PRESENCE - Modul laufen?
Die habe ich nämlich im Verdacht, dass sich fhem bei längeren Aktivitäten dann aufhängt.
 
Gruß

Elektrolurch

configDB und Windows befreite Zone!

Elektrolurch

Hallo Nico,

ich fand das geradezu genial, mit dem Perlcode in ValueFormat kannst Du ja jetzt beliebige Variablen mischen.
Habe gestern begonnen, über den FB_CallMonitor die entgangenen Anrufe zu sammeln und die letzten fünf rollierenden in eine ReadingsGroup zu packen.
Bin mitten drin, da ja auch noch zu berücksichtigen ist, dass mehrere Anrufegleichzeitig eingehen können.... tricky... krieg ich aber schon hin. Und dann geht das über ValueFormat so aus:

08.09.2013 0123456 (Mustermann, Heinrich) entgangen bzw. Dauer: 0:30

Gruß

Elektrolurch
configDB und Windows befreite Zone!

stenny73

Hallo

Ich möchte mit readingsGroup die Batterien meiner Max Komponenten kontrollieren.

Hierzu habe ich

define Batterie readingsGroup .*:battery
attr Batterie room Log

angelegt. Jetzt bekomme ich es aber nicht hin einen Notify auf die readingsGroup anzulegen das mir eine Mail Morgens schickt wenn der Batterie zustand low ist.

Mein Versuch, erstmal nur gegen einen Dummy geht nicht

define Status_Batterie notify (BM_Kiosk_1:battery.*) { if ("%EVTPART1" eq "ok") {fhem('set BatterieLED on');}else { if ("%EVTPART1" eq "low") { fhem('set BatterieLED off'); } } }

Kann mir vielleicht einer helfen?
FHEM auf XEN, Ubuntu-Server 14.04   - HM-Lan - Max - ZWave -WS1080 -BlueTooth

FHEM auf Ubuntu-Server 14.04   - HM-LAN

FHEM auf Raspberry Pi   - CSM für Max - HM-USB - WiFi-LED

Elektrolurch

Hallo,

ich denke, dass ReadingsGroup kein notify bedienen wird, da es rein zur Anzeige dient.
Was Du brauchst, wäre wohl ein struct über alle Batterien.
Mit dem Attribut "behavior" kannst Du dann steuern, dass wenn eine Batterie leer geht, das struct auch auf leer geht und auf dem struct kannst Du ein notify definieren.
Du findest hierzu eine  Reihe von Eintragungen unter "Fensterkontakte gruppieren" oder "Anwesenheit überwachen".
Außerdem gibt es im wiki unter Codeschnipsel einen Batterieüberwacher.

Gruß


Elektrolurch
configDB und Windows befreite Zone!

stenny73

Danke. Dann versuche ich das mal....
FHEM auf XEN, Ubuntu-Server 14.04   - HM-Lan - Max - ZWave -WS1080 -BlueTooth

FHEM auf Ubuntu-Server 14.04   - HM-LAN

FHEM auf Raspberry Pi   - CSM für Max - HM-USB - WiFi-LED