[Gelöst] Komma+Leerzeichen-separierte Liste mit 98_monitoring.pm bei error?

Begonnen von Gisbert, 27 Juli 2019, 16:41:57

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo igami,

ich nutze dein Modul 98_monitoring.pm.
Wenn man warning und error als stateformat ausgibt, kann es sein, dass man eine längere Zeile bekommt, z.B. so:
Buienradar,RollladenSchlafzimmerSebastian,Wassermelder
Auf kleinen Handybildschirmen ist dann der Zeilenumbruch willkürlich in einem Device und nicht beim Komma.
Könnte man statt des Kommas nicht ein Leerzeichen aus geben oder ein Komma gefolgt von einem Leerzeichen?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Gisbert

Hallo,

wenn ich in dieser Zeile im Modul:
readingsBulkUpdate($hash, $list, join(",", sort(keys %readings)));
"," durch ", " (also Komma und Leerzeichen) ersetze, dann bekomme ich eine Komma + Leerzeichen getrennte Ausgabe.

Das Problem ist jetzt, dass diese Liste nicht mehr gelöscht wird, wenn die errors und warnings nicht mehr zutreffen.

Gibt es jemand der sich den Code von 98_monitoring.pm anschauen und mir helfen kann?

Viele​ Grüße​ Gisbert​

Edit:
Der händische Befehl
set <monitoringdevice> clear all
löscht alle Einträge, immerhin.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

igami

Zitat von: igami am 23 Juli 2019, 20:12:29
Für die menschen lesbare Form gibt es das Attribut errorReturn bzw. warningReturn. Beispiele zur Nutzung finden sich in der Commandref und hier im Thread. Falls du dennoch schwierigkeiten bei der Umsetzung hast melde dich noch mal. Falls du es alleine hinbekommst teile deine Lösung hier mit anderen.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Gisbert

Hallo igami,

durch Suchen mit den Stichworten "split fhem" bin ich auf diesen Beitrag von dir gestoßen, der mich zur Lösung geführt hat:
https://forum.fhem.de/index.php/topic,58059.msg494877.html#msg494877
{my $ret = AttrVal(...); $ret =~ s/<suchen>/<ersetzen>/g; return $ret}

In meinem konkreten Fall lautet das Attribut für ein userReading, bei dem aus dem Reading "error" durch einen Zeilenumbruch statt eines Kommas ein userReading erstellt wird, wie folgt:
attr device userReadings myFehler {my $ret = ReadingsVal("device","error","");; $ret =~ s/,/\n/g;; return $ret}

Viele Grüße Gisbert

Noch eine Ergänzung:
Falls man das Attribut stateformat benuzten möchte, um die Liste auszugeben, dann muss man den html code für einen Zeilenumbruch nehmen: also statt "\n" "<br>".
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome