Modul 59_GSI.pm arbeitet seit 1.11. nicht mehr

Begonnen von LB, 03 November 2022, 15:41:54

Vorheriges Thema - Nächstes Thema

LB

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.
FritzBox 7390 mit FHZ1300, CUL, 1Wire, RS485 und FS20, FHT, zur Heizungssteuerung und PV-Anlagenüberwachung.

CoolTux

Scheint kein offizielles Modul zu sein. Gibt es hierzu einen Thread?
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

JoWiemann

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
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

CBSnake

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
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

betateilchen

#7
Ich habe Dir meine Modulversion hier angehängt.
Vielleicht hilft Dir das weiter, bis das Modul offiziell angepasst wurde.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY