FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: LB am 03 November 2022, 15:41:54

Titel: Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: LB am 03 November 2022, 15:41:54
Ich habe auch schon die Lösung des Problems gefunden: die URL hat sich geändert. Leider bin ich mit der Versionsverwaltung nicht so firm, daher hier das nötige Update:

(...)
sub GSI_ApiRequest {
        my ($hash) = @_;
        my $plz = $hash->{'ZIP'};
        my $param = {
                'hash'          =>              $hash,
                'url'           =>              "https://api.corrently.io/v2.0/gsi/prediction?zip=$plz",
                'timeout'       =>              30,
                'callback'      =>              \&GSI_ApiResponse
        };
        HttpUtils_NonblockingGet($param);
};
(...)

Hoffe, es hilft.
Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: CoolTux am 03 November 2022, 15:48:49
Scheint kein offizielles Modul zu sein. Gibt es hierzu einen Thread?
Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: JoWiemann am 03 November 2022, 15:57:07
Zitat von: CoolTux am 03 November 2022, 15:48:49
Scheint kein offizielles Modul zu sein. Gibt es hierzu einen Thread?

Ja, hier: https://forum.fhem.de/index.php?topic=108327.0

Das Modul befindet sich im SVN, aber kein Maintainer in der MAINTAINER.txt. Ich habe hier: https://forum.fhem.de/index.php?topic=108327.0 mal eine Anfrage gestellt.

Grüße Jörg
Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: CBSnake am 23 November 2022, 06:59:36
Zitat von: LB am 03 November 2022, 15:41:54
Ich habe auch schon die Lösung des Problems gefunden: die URL hat sich geändert.
Hoffe, es hilft.

Hi,

ja es tut erstmal wieder, merci :-)

Grüße
Achim
Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: Gisbert am 23 November 2022, 19:40:43
ZitatIch habe auch schon die Lösung des Problems gefunden: die URL hat sich geändert.

Hallo LB,

ich hatte leider kein Glück mit deiner Änderung. Ich hab das Modul per reload neu geladen.

Gibt es noch etwas zu beachten, beim Device selbst etwa?

Viele Grüße Gisbert
Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: betateilchen am 08 Januar 2023, 14:59:46
Der folgende patch korrigiert nicht nur die hartkodierte url, sondern schafft auch ein zusätzliches Attribut 'apiurl', mit dem bei künftigen Änderungen die interne url vom Anwender überschrieben werden kann. Damit kann die Wartezeit bis zu einer weiteren Moduländerung überbrückt werden.


Index: /opt/fhem/FHEM/59_GSI.pm
===================================================================
--- /opt/fhem/FHEM/59_GSI.pm    (revision 27003)
+++ /opt/fhem/FHEM/59_GSI.pm    (working copy)
@@ -39,7 +39,7 @@
        $hash->{'UndefFn'}                              = 'GSI_Undef';
        $hash->{'NotifyFn'}                             = 'GSI_Notify';
        $hash->{'FW_detailFn'}                  = 'GSI_FW_detailFn';
-       $hash->{'AttrList'}                             = "continuous:1,0 $readingFnAttributes ";
+       $hash->{'AttrList'}                             = "continuous:1,0 apiurl $readingFnAttributes ";
        $hash->{'NOTIFYDEV'}                    = 'TYPE=Global';
        return undef;
};
@@ -236,10 +236,13 @@

sub GSI_ApiRequest {
        my ($hash) = @_;
-       my $plz = $hash->{'ZIP'};
+       my $name = $hash->{'NAME'};
+       my $zip = $hash->{'ZIP'};
+       my $url = AttrVal($name,'apiurl',"https://api.corrently.io/v2.0/gsi/prediction?zip=").$zip;
+       Log3($hash,4,"GSI $name: $url");
        my $param = {
                'hash'          =>              $hash,
-               'url'           =>              "https://api.corrently.io/core/gsi?plz=$plz",
+               'url'           =>              $url,
                'timeout'       =>              30,
                'callback'      =>              \&GSI_ApiResponse
        };
@@ -722,6 +725,10 @@
                                <li>60..100: green</li>
                        </ul>
                </li>
+               <a name="apiurl"></a>
+               <li>apiurl<br>
+                       The internal API url can be overwritten by this attribute.
+               </li>
                <a name="continuous"></a>
                <li>continuous<br>
                        if set to 0 readings will be updated on hourly base. Otherwise readings will be continuously updated with interpolated values.
Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: Gisbert am 08 Januar 2023, 21:17:32
Hallo betateilchen,

ZitatDer folgende patch korrigiert ...
Ich nehme an, dass der Patch sich an Entwickler oder den Modulautor richtet und nicht an Anwender wie mich.
Heißt es dass ich abwarten muss, bis der Patch eingespielt wurde? Wie dem auch sei, herzlichen Dank für deinen Einsatz.

Viele Grüße Gisbert
Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: betateilchen am 08 Januar 2023, 21:44:34
Ich habe Dir meine Modulversion hier angehängt.
Vielleicht hilft Dir das weiter, bis das Modul offiziell angepasst wurde.

Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: Gisbert am 09 Januar 2023, 19:09:50
Hallo betateilchen,
ich danke dir, jetzt läuft das Device wieder.
Noch ein Hinweis für andere Interessierte, das folgende Attribut muss definiert werden:
attr <Device> apiurl https://api.corrently.io/v2.0/gsi/prediction?zip=
Viele Grüße Gisbert
Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: betateilchen am 09 Januar 2023, 21:54:28
Zitat von: Gisbert am 09 Januar 2023, 19:09:50
Noch ein Hinweis für andere Interessierte, das folgende Attribut muss definiert werden:

Das ist Unfug, das Attribut muss nicht angelegt werden.
Zumindest nicht, solange sich die URL nicht wieder geändert hat.
Titel: Antw:Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr
Beitrag von: Gisbert am 10 Januar 2023, 21:38:59
Danke für die Richtigstellung.
Ich war wohl zu ungeduldig, dann hatte ich die falsche API erwischt, und es kamen keine Updates rein, schließlich die richtige, und dann nahm ich fälschlicherweise an, dass man dies im Attribut definieren muss.
Da das Ergebnis wie erwartet war, dachte ich, dass mein Ansatz richtig war. Es kommt ja nicht alle Tage vor, dass ein Fehler keine Konsequenz hat.
Viele Grüße Gisbert