Text aus Wert eines Readings entfernen

Begonnen von uwirt, 27 November 2023, 15:41:20

Vorheriges Thema - Nächstes Thema

uwirt

Folgendes "Problem":
Der Wert eines Readings mit dem Namen AS_DISKFREE ist 44.53G und ich möchte gerne das Reading mit demselben Namen mit dem Wert 44.53 (nur Zahlen, ohne das G).

Ich kann mit
attr pistatus userReadings DISKFREE:AS_DISKFREE:.* { ReadingsNum($name,"AS_DISKFREE",0) }den Wert ohne das "G" erhalten.

Aber wie kann ich die Bezeichnung AS_DISKFREE behalten?
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

MadMax-FHEM

FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

betateilchen

attr pistatus userReadings bla:AS_DISKFREE:.*[KMGT]$ { fhem("sleep 0.1;; setreading pistatus AS_DISKFREE ".ReadingsNum($name,"AS_DISKFREE",0));; }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

uwirt

Thank you for your suggestions.

It works using:
attr pistatus userReadings AS_DISKFREE { ReadingsNum($name,"AS_DISKFREE",0) }
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

betateilchen

Ein userReading ohne einen vernünftigen Trigger ist ganz schlechter Stil.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

uwirt

Zitat von: betateilchen am 27 November 2023, 17:19:24Ein userReading ohne einen vernünftigen Trigger ist ganz schlechter Stil.


Ich werde dann den Rat befolgen.

Wie wäre denn die Lösung wenn es nicht nur um ein Reading sondern noch zwei zusätzliche mit demselben "G" zuviel handelt (AS_DISKSIZE und AS_DISKUSE)?
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

betateilchen

commandref lesen kann helfen:

ZitatuserReadings
A comma-separated list of definitions of user-defined readings. Each definition has the form:
<reading>[:<trigger>] [<modifier>] { <perl code> }

Du kannst beliebig viele userReadings anlegen (deshalb trägt das Attribut ja auch eine Pluralform)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!