Raw-Wert eines Counters in ein Reading ?

Begonnen von Bartimaus, 25 Februar 2016, 11:38:40

Vorheriges Thema - Nächstes Thema

Bartimaus

Moin,

hat jemand nen Tip wie ich den RAW-Wert eines Counters (OWCOUNT) in ein eigenes Reading packen kann ?
Der RAW-Wert lässt sich mit get <device> raw <Counter>

abfragen

LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Bennemannc

Hallo,

dafür gibt es userReadings - sind in der commandref erklärt.
Als zweite Alternative wäre da eine Perl sub in der 99_myUtils. Ich denke aber mit userReading sollte das zu machen sein.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Bartimaus

Hallo Christoph,

danke für den Tip. An UserReadings dachte ich auch schon, habe auch dazu in der Commandref nachgelesen, hatte das aber so verstanden das man damit nur weitere Readings aus bereits vorhandenen Readings generieren kann  :o
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

CoolTux



my $counterwert = fhem "get <device> raw <Counter>";


schau mal ob das so geht.
Musst natürlich bisschen Perl rumpacken. Am besten in eine 99_myUtils
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bartimaus

Auf die Schnelle via iPad probiert:

[attr <device> userReadings ZaehlerA {fhem "get <device> raw A"}

blockiert mein FHEM mit:

OWCOUNT: Could not get values from device device>, reason: OWCOUNT: Could not get values from device <device>, reason: OWX_ASYNC_Schedule: Master not Active

:'(
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

CoolTux

Ich wüsste nur die Lösung welche ich Dir oben ansatzweise gegeben habe. Bisschen Perlkenntnis ist aber Voraussetzung
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bartimaus

Danke, bin nur ein technisch interessierter Laie, dh. habe keine Perlkenntnisse, würde aber gerne dazulernen....
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

marvin78

Aber <device> hast du schon durch deinen Namen ersetzt!?

CoolTux

Zitat von: Bartimaus am 25 Februar 2016, 15:34:14
Danke, bin nur ein technisch interessierter Laie, dh. habe keine Perlkenntnisse, würde aber gerne dazulernen....

Das finde ich wirklich gut. Gibt ja zum Glück viel Lesestoff zu Perl im Internet. Na dann viel Erfolg.
Und wenn Du fragen hast, einfach fragen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bartimaus

#9
Sodele, bin "etwas" weiter.

In die 99_MyUtils habe ich wie folgt eingefügt:

### Ermittlung des rohen Counterwertes
sub StromCounterA($)
{
my ($counterwert) = fhem "get <device> raw A";
}


Dann ein DOIF welches alle 5min aufgerufen wird. Darin dann ein Userreading:

userReadings RAW {StromCounterA($name)}

Das Reading "RAW" sehe ich nun im DOIF, allerdings nur mit dem Wert "1", der sich nicht ändert.

Hat noch jemand nen Tip ?

Rufe ich in der CommandZeile "get <device> raw A" auf, erhalte ich den aktuellen Wert (105223)

Edit: Hm, im Logfile sehe ich den RAW-Wert des Counters. Jetzt muss er nur noch in das Reading rein....
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Bartimaus

LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Bennemannc

Hallo,

schreib mal bevor Du die } machst.
return $counterwert;
Sonst berechnet die Funktion nur und gibt den Wert nicht an das aufrufende Element zurück.

Gruß Christoph

BTW in der letzten Zeile der 99_MyUtils muss "1;" stehen.
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Bartimaus

#12
Hallo Christoph,

danke. Jetzt wird der Wert zwar geschrieben, aber die komplette Ausgabe, und zwar so:

OWCOUNT: <device>.raw A => 2058244

Wie kann ich das formatieren damit ich nur den Zahlenwert habe ?
Hast Du da noch einen Tip bitte ?

Stateformat mit sprintf ?
Sinnvoller wäre es doch den gewünschten (Zahlen)wert direkt in der MyUtils in das aufzurufende Element zu übergeben, oder ?
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bartimaus

Danke, könnte helfen.

Filtert mir aber die Dezimalzahl aus dem Devicenamen heraus... :'(
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly