98_CustomReadings.pm

Begonnen von P.A.Trick, 31 August 2014, 16:30:11

Vorheriges Thema - Nächstes Thema

joco

Hallo
der letzte Eintrag ist zwar schon etwas her, aber ich versuche es hier mal ...

mal abgesehen davon dass einige Beispiele (zB aus der commandref) nicht mehr funktionieren, habe ich hier etwas merkwürdiges

sd_used:qx(df -h | grep /dev/root | cut -f4 | /bin/sed -r 's/[\t ]+/,/g' | cut -d ',' -f2 2>&1), \

diese Zeile verursacht einen ERROR. Ich soll doch gefälligst eine Klammer zu machen ?????

gebe ich das so in der shell (Terminal) ein funktioniert das

was übersehe ich hier ??
für einen Tip wäre ich dankbar ...

amenomade

Shafft er wirklich dieses customReading so zu kreieren, oder kreiert er dann Quatsch-Readings?

Das Problem ist wahrscheinlich, dass in readingDefinitions das Koma ein Trennzeichen zwischen mehrere Definitionen ist.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

joco

Hallo amenomade,

boah !!!  Vielen Dank !!!
Was habe ich da schon für Kombinationen ausprobiert ....

Ich dachte weil der Trenner etc in Hochkomma steht wäre das shell-only

um allen Eventualitäten auszuweichen habe ich jetzt den Unterstrich probiert
und siehe da -- es funktioniert !!!!

Begeisterung zu später Stunde

perez

#93
Hallo,

warum wird bei mir die Datei-Größe nicht angezeigt, ist es noch aktuell? Alle andere Befehle gehen ohne Probleme.
Laut Wiki ist es ja möglich: https://wiki.fhem.de/wiki/CustomReadings

attr myReadings readingDefinitions fhem_backup_folder_size:qx(du -ch /opt/fhem/backup | grep total | cut -d 't' -f1 2>&1)

Bekomme keine Werte, Feld bleibt leer.
Danke!

amenomade

Schau mal in der Log

Und Du kannst auch zuerst den Befehl in einer Console testen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Loctite

Zitat von: perez am 11 Januar 2021, 22:14:11

attr myReadings readingDefinitions fhem_backup_folder_size:qx(du -ch /opt/fhem/backup | grep total | cut -d 't' -f1 2>&1)

Bekomme keine Werte, Feld bleibt leer.
Danke!

Falls es noch jemand interessiert da ich gerade selber verzweifelt gesucht habe:

In dem Beispiel wird nach den Wörtern "total" und dann nach dem Buchstaben "t" gesucht.
Bei einem deutschen System heißt es aber "insgesamt".

Testen über die Konsole mit :
du -ch /opt/fhem/backup

Deshalb wird nichts angezeigt. Richtig ist es mit

attr myReadings readingDefinitions fhem_backup_folder_size:qx(du -ch /opt/fhem/backup | grep insgesamt | cut -d 'i' -f1 2>&1)

Anstelle von -ch kann auch -mc benutzt werden. Dann ist die Einheit nicht mehr dabei und es wird nur eine reine Zahl ausgegeben.

Torxgewinde

@Loctite:
Da solche Fehler beim greppen öfters vorkommen, sobald man die Übersetzungen nutzt, kann man sich auch einfach den Befehl auf Englisch lokalisieren lassen. Die Umgebungsvariable LC_ALL ist dafür nützlich.

LC_ALL=C du -ch /opt/fhem/backup | grep total

lynckmeister

Hallo zusammen, ich habe mit em Customreading ein merkwürdiges Problem. Wenn ich versuche ein mit Customreading angelegtes reading mit ReadingsVal auszulesen, werd mir grundsätzlich der defaultwert ausgegeben.

Hier mein Device das ich mit Customreading anlege:

Internals:
   FUUID      6628d395-f33f-c4df-34ac-523cd4ded1f917f3
   NAME       CAR
   NR         969
   STATE      27 %
   TYPE       CustomReadings
   eventCount 1606
   READINGS:
     2024-08-23 08:45:49     Charging      true
     2024-08-23 08:45:49    DoorLocked     true
     2024-08-23 08:45:49    PlugedTo       2
     2024-08-23 08:45:49    hoodOpen       false
     2024-08-23 08:47:41   Load_Phase      3
     2024-08-23 08:47:41   Load_Power      4140
     2024-08-23 08:45:49   Range           122
     2024-08-23 08:45:49   SOC             27
     2024-08-23 08:45:49   batteryCharge12v 91
     2024-08-23 08:45:49   state           OK
Attributes:
   interval   240
   readingDefinitions SOC:qx(jq '.engine.batteryChargeHV' /home/pi/blueblinky/vehicle_status.json),Range:qx(jq '.engine.range' /home/pi/blueblinky/vehicle_status.json),batteryCharge12v:qx(jq '.engine.batteryCharge12v' /home/pi/blueblinky/vehicle_status.json),  Charging:qx(jq '.engine.charging' /home/pi/blueblinky/vehicle_status.json), PlugedTo:qx(jq '.engine.plugedTo' /home/pi/blueblinky/vehicle_status.json), DoorLocked:qx(jq '.chassis.locked' /home/pi/blueblinky/vehicle_status.json), hoodOpen:qx(jq '.chassis.hoodOpen' /home/pi/blueblinky/vehicle_status.json)


Und hier meine Abfrage in einem at Command:

my $carlock  = ReadingsVal('CAR','DoorLocked','undef');
{Log 1,"dorlocked=$carlock"};

es wird immer undef geloggt...


In diesem Thread beschreibt einer das gleiche Problem : https://forum.fhem.de/index.php?topic=101506.0


Nutzt hier jemand ReadingsVal ??

Wzut

Dein List ist leider nicht in code Tags eingeschlossen, daher kann meine Vermutung falsch sein :
Dein List hat von oben nach unten einen Versatz -> Charging zwei Zeichen , die nächsten drei Readings noch jeweils eines.
Kann es sein das dein Reading DoorLocked ein führendes Leerzeichen (oder anderes) hat ?
Dann wäre es klar warum ReadingsVal('CAR','DoorLocked','undef') nur undef liefern kann.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher