Modul 46_SmartPi.pm - Kommastellen bei den Readings

Begonnen von mrabdip, 28 November 2017, 16:25:38

Vorheriges Thema - Nächstes Thema

mrabdip

Hallo zusammen,

ich habe mir den SmartPI2 zugelegt und freue mich, dass es dafür auch ein FHEM-Modul gibt. Die Werte haben bei mir allerdings etliche
Nachkommastellen (bis zu acht). Kann man das ohne eigene Readings auch abändern, bzw. einstellen?

Hintergrund: Ich visualisiere mit TabletUI. Und da reichen mir 2 Stellen. Vielleicht ist die Frage auch dort besser aufgehoben. Ich weiß es leider nicht.

Grüße und Danke schonmal.
Fhem 5.8 auf Raspberry 3, KNX-Vollinstallation, Weinzierl-IP/KNX-Interface über KNXD, USB-RFXTRX, Youless110, SmartPI2, IP-Cams, FritzBox/DECT200, Tablet UI

CoolTux

Kannst Du mir mal bitte ein list vom Device geben das ich da eine Vorstellung habe wie das aus sieht.
Ich kann die stellen natürlich auch gerne auf 2 oder 3 Nachkommastellen einkürzen. Bisher schreibe ich die Rawwerte welche direkt vom SmartPi kommen als Reading.


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

mrabdip

Danke für die schnelle Antwort. Bei mir sieht das wie folgt aus.


     2017-11-28 16:41:38   datasetsTime    2017-11-28 16:41:35
     2017-11-26 13:51:24   lastRequestError 200
     2017-11-28 16:41:38   lastfetchTime   2017-11-28 16:41:38
     2017-11-25 13:42:52   latitude        52.3667
     2017-11-25 13:42:52   longitude       9.7167
     2017-11-28 16:41:38   phase1_Cosphi   0.9863081
     2017-11-28 16:41:38   phase1_Current  0.4019135
     2017-11-28 16:39:38   phase1_Frequency 49.97072
     2017-11-28 16:41:38   phase1_Power    95.43431
     2017-11-28 16:41:38   phase1_Voltage  227.2841
     2017-11-28 16:41:38   phase2_Cosphi   0.79657936
     2017-11-28 16:41:38   phase2_Current  0.41900396
     2017-11-28 16:41:38   phase2_Frequency 49.980476
     2017-11-28 16:41:38   phase2_Power    72.93464
     2017-11-28 16:41:38   phase2_Voltage  226.0736
     2017-11-28 16:41:38   phase3_Cosphi   0.81260836
     2017-11-28 16:41:38   phase3_Current  0.23293567
     2017-11-28 16:41:38   phase3_Frequency 49.980476
     2017-11-28 16:41:38   phase3_Power    62.529274
     2017-11-28 16:41:38   phase3_Voltage  227.7457
     2017-11-28 16:41:38   phase4_Current  0.63127095
     2017-11-28 16:41:38   serialNumber
     2017-11-25 13:42:52   smartPiName     House
     2017-11-28 16:41:38   state           done


Grüße
Fhem 5.8 auf Raspberry 3, KNX-Vollinstallation, Weinzierl-IP/KNX-Interface über KNXD, USB-RFXTRX, Youless110, SmartPI2, IP-Cams, FritzBox/DECT200, Tablet UI

CoolTux

Wenn keiner Einspruch erhebt würde ich das ganze auf 3 Nachkommastellen kürzen.
Ist das ok?
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

mrabdip

Fhem 5.8 auf Raspberry 3, KNX-Vollinstallation, Weinzierl-IP/KNX-Interface über KNXD, USB-RFXTRX, Youless110, SmartPI2, IP-Cams, FritzBox/DECT200, Tablet UI

JoWiemann

Wie wäre es mit einem Attribut für die Anzahl der Kommastellen. Dann kann der Anwender entscheiden was er braucht.


Gesendet von iPad mit Tapatalk

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

CoolTux

Zitat von: JoWiemann am 28 November 2017, 16:55:07
Wie wäre es mit einem Attribut für die Anzahl der Kommastellen. Dann kann der Anwender entscheiden was er braucht.


Gesendet von iPad mit Tapatalk

Grüße Jörg

Klingt nach einer vernünftigen Lösung  ;D
Ich denke so werde ich das machen.
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

mrabdip

Stimme ich zu.

Da fällt mir noch ein. Wo sind die derzeit möglichen Parameter eigentlich ersichtlich?
Ich habe das Modul mit define my_smartpi SmartPi 1.1.1.1 eingebunden. Ich wollte das Zeitintervall ändern (Standard ist ja 300).
Habe es analog zum LS110-Modul probiert define my_smartpi SmartPi 1.1.1.1 60 Das hat aber so nicht funktioniert.
In der commandreference habe ich nichts dazu gefunden.
Fhem 5.8 auf Raspberry 3, KNX-Vollinstallation, Weinzierl-IP/KNX-Interface über KNXD, USB-RFXTRX, Youless110, SmartPI2, IP-Cams, FritzBox/DECT200, Tablet UI

CoolTux

Attribut interval. Hatte ich damals in der Commandref vergessen. Also die Attribute. Werde ich noch nacharbeiten.
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

CoolTux

Ab morgen früh 8 Uhr steht über FHEM update eine neue Version bereit. Attribut decimalPlace
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

mrabdip

Hallo,

ich habe es gerade probiert und das neue Modul installiert. Allerdings bekomme ich den Fehler, dass das Modul SmartPi nicht geladen werden konnte. Fehler im Log:
2017.12.04 09:56:02 0: syntax error at ./FHEM/46_SmartPi.pm line 173, near "elsif"
syntax error at ./FHEM/46_SmartPi.pm line 187, near "}"
Global symbol "$attrName" requires explicit package name at ./FHEM/46_SmartPi.pm line 187, <$fh> line 250.
Global symbol "$cmd" requires explicit package name at ./FHEM/46_SmartPi.pm line 188, <$fh> line 250.
Global symbol "$hash" requires explicit package name at ./FHEM/46_SmartPi.pm line 189, <$fh> line 250.
Global symbol "$attrVal" requires explicit package name at ./FHEM/46_SmartPi.pm line 189, <$fh> line 250.
Global symbol "$hash" requires explicit package name at ./FHEM/46_SmartPi.pm line 192, <$fh> line 250.
Can't use global @_ in "my" at ./FHEM/46_SmartPi.pm line 201, near "= @_"
Global symbol "$hash" requires explicit package name at ./FHEM/46_SmartPi.pm line 202, <$fh> line 250.
syntax error at ./FHEM/46_SmartPi.pm line 222, near "}"
./FHEM/46_SmartPi.pm has too many errors.

Fhem 5.8 auf Raspberry 3, KNX-Vollinstallation, Weinzierl-IP/KNX-Interface über KNXD, USB-RFXTRX, Youless110, SmartPI2, IP-Cams, FritzBox/DECT200, Tablet UI

CoolTux

Hallo,

Vielen Dank für die Meldung. Da ist mi in der Tat eine Klammer abhanden gekommen

Alter Code

.....
if( $attrName eq "disable" ) {
        if( $cmd eq "set" ) {
            if( $attrVal eq "0" ) {
                readingsSingleUpdate ( $hash, "state", "enabled", 1 );
                Log3 $name, 3, "SmartPi ($name) - enabled";
            } else {
                RemoveInternalTimer($hash);
                readingsSingleUpdate ( $hash, "state", "disabled", 1 );
                Log3 $name, 3, "SmartPi ($name) - disabled";
            }
           
        } else {
            readingsSingleUpdate ( $hash, "state", "enabled", 1 );
            Log3 $name, 3, "SmartPi ($name) - enabled";
        }

       
    elsif( $attrName eq "disabledForIntervals" ) {
        if( $cmd eq "set" ) {
.....


So sollte es gehen

.......
if( $attrName eq "disable" ) {
        if( $cmd eq "set" ) {
            if( $attrVal eq "0" ) {
                readingsSingleUpdate ( $hash, "state", "enabled", 1 );
                Log3 $name, 3, "SmartPi ($name) - enabled";
            } else {
                RemoveInternalTimer($hash);
                readingsSingleUpdate ( $hash, "state", "disabled", 1 );
                Log3 $name, 3, "SmartPi ($name) - disabled";
            }
           
        } else {
            readingsSingleUpdate ( $hash, "state", "enabled", 1 );
            Log3 $name, 3, "SmartPi ($name) - enabled";
        }
    }
       
    elsif( $attrName eq "disabledForIntervals" ) {
        if( $cmd eq "set" ) {
.....


vor dem letzten elsif muss also noch eine geschweifte Klammer. Entweder Du wartest bis morgen früh 8 Uhr für das FHEM Update oder Du traust Dir zu das in der Moduldatei alleine zu korrigieren.
Danach die Moduldatei noch mal laden
reload 46_SmartPi




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

mrabdip

Hallo,

Danke für die Antwort. Dafür war anscheinend eine Klammer woanders noch zuviel. Vor dem elsif. } elsif( $attrName eq "interval" ) {
        if( $cmd eq "set" ) {
            $hash->{INTERVAL} = $attrVal;
           
        } else {
            $hash->{INTERVAL} = 300;
        }
    }


elsif( $attrName eq "interval" ) {
        if( $cmd eq "set" ) {
            $hash->{INTERVAL} = $attrVal;
           
        } else {
            $hash->{INTERVAL} = 300;
        }
    }


Habe es abgeändert und das Modul startet.

Und es funktioniert :) Vielen Dank!

READINGS:
     2017-12-04 11:31:27   datasetsTime    2017-12-04 11:31:26
     2017-12-04 11:26:59   lastRequestError 200
     2017-12-04 11:31:27   lastfetchTime   2017-12-04 11:31:27
     2017-12-04 11:30:47   latitude        52.3667
     2017-12-04 11:30:47   longitude       9.7167
     2017-12-04 11:31:27   phase1_Cosphi   0.75
     2017-12-04 11:30:47   phase1_Current  1.69
     2017-12-04 11:31:27   phase1_Frequency 49.98
     2017-12-04 11:31:27   phase1_Power    320.31
     2017-12-04 11:31:27   phase1_Voltage  227.52
     2017-12-04 11:31:27   phase2_Cosphi   0.93
     2017-12-04 11:31:27   phase2_Current  1.08
     2017-12-04 11:30:47   phase2_Frequency 49.97
     2017-12-04 11:31:27   phase2_Power    233.03
     2017-12-04 11:31:27   phase2_Voltage  234.74
     2017-12-04 11:31:27   phase3_Cosphi   0.96
     2017-12-04 11:31:27   phase3_Current  0.66
     2017-12-04 11:30:47   phase3_Frequency 49.97
     2017-12-04 11:31:27   phase3_Power    160.72
     2017-12-04 11:31:27   phase3_Voltage  235.06
     2017-12-04 11:31:27   phase4_Current  1.18
     2017-12-04 11:31:27   serialNumber
     2017-12-04 11:30:47   smartPiName     House
     2017-12-04 11:31:27   state           done
Fhem 5.8 auf Raspberry 3, KNX-Vollinstallation, Weinzierl-IP/KNX-Interface über KNXD, USB-RFXTRX, Youless110, SmartPI2, IP-Cams, FritzBox/DECT200, Tablet UI

CoolTux

Danke Dir. Habe das jetzt gerade gezogen. Stelle es nachher für das morgige Update bereit.
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