FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: mrabdip am 28 November 2017, 16:25:38

Titel: Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: mrabdip am 28 November 2017, 16:25:38
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.
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: CoolTux am 28 November 2017, 16:28:49
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
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: mrabdip am 28 November 2017, 16:44:04
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
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: CoolTux am 28 November 2017, 16:46:10
Wenn keiner Einspruch erhebt würde ich das ganze auf 3 Nachkommastellen kürzen.
Ist das ok?
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: mrabdip am 28 November 2017, 16:49:09
Von mir aus ja  ;D

Grüße
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag 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
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: CoolTux am 28 November 2017, 16:59:47
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.
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: mrabdip am 28 November 2017, 17:00:45
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.
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: CoolTux am 28 November 2017, 17:06:08
Attribut interval. Hatte ich damals in der Commandref vergessen. Also die Attribute. Werde ich noch nacharbeiten.
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: CoolTux am 30 November 2017, 21:43:31
Ab morgen früh 8 Uhr steht über FHEM update eine neue Version bereit. Attribut decimalPlace
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: mrabdip am 04 Dezember 2017, 10:00:26
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.

Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: CoolTux am 04 Dezember 2017, 10:19:28
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
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: mrabdip am 04 Dezember 2017, 11:33:32
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
Titel: Antw:Modul 46_SmartPi.pm - Kommastellen bei den Readings
Beitrag von: CoolTux am 04 Dezember 2017, 11:40:36
Danke Dir. Habe das jetzt gerade gezogen. Stelle es nachher für das morgige Update bereit.