[73_GardenaSmartBridge, 74_GardenaSmartDevice] - Module für Gardena Smart System

Begonnen von CoolTux, 05 August 2017, 23:17:06

Vorheriges Thema - Nächstes Thema

jsChris

Hi,

bei mir kam gestern wieder dieser Fehler:
Can't use an undefined value as a HASH reference at ./FHEM/73_GardenaSmartBridge.pm line 500.

Ich hatte mich vorhin auch mal an einen schnellen Patch gemacht. Vielleicht ist das ja brauchbar?

Wie ich an deiner neuen Version sehe, hast du param im Verdacht kein Hash zu sein, ich eher eval { decode_json($data) }->{errors}. Ich konnte es aber leider gestern Abend nicht mehr ausprobieren und du wirst deinen Code sicher besser kennen :)


sub ErrorHandling($$$) {

    my ( $param, $err, $data ) = @_;

    my $hash  = $param->{hash};
    my $name  = $hash->{NAME};
    my $dhash = $hash;

    $dhash = $modules{GardenaSmartDevice}{defptr}{ $param->{'device_id'} }
      unless ( not defined( $param->{'device_id'} ) );

    my $dname = $dhash->{NAME};

    if ( defined($err) ) {
        if ( $err ne "" ) {

            readingsBeginUpdate($dhash);
            readingsBulkUpdate( $dhash, "state", "$err" )
              if ( ReadingsVal( $dname, "state", 1 ) ne "initialized" );

            readingsBulkUpdate( $dhash, "lastRequestState", "request_error",
                1 );

            if ( $err =~ /timed out/ ) {

                Log3 $dname, 5,
"GardenaSmartBridge ($dname) - RequestERROR: connect to gardena cloud is timed out. check network";
            }

            elsif ($err =~ /Keine Route zum Zielrechner/
                or $err =~ /no route to target/ )
            {

                Log3 $dname, 5,
"GardenaSmartBridge ($dname) - RequestERROR: no route to target. bad network configuration or network is down";

            }
            else {

                Log3 $dname, 5,
                  "GardenaSmartBridge ($dname) - RequestERROR: $err";
            }

            readingsEndUpdate( $dhash, 1 );

            Log3 $dname, 5,
"GardenaSmartBridge ($dname) - RequestERROR: GardenaSmartBridge RequestErrorHandling: error while requesting gardena cloud: $err";

            delete $dhash->{helper}{deviceAction}
              if ( defined( $dhash->{helper}{deviceAction} ) );

            return;
        }
    }

    if ( $data eq "" and exists( $param->{code} ) and $param->{code} != 200 ) {

        readingsBeginUpdate($dhash);
        readingsBulkUpdate( $dhash, "state", $param->{code}, 1 )
          if ( ReadingsVal( $dname, "state", 1 ) ne "initialized" );

        readingsBulkUpdateIfChanged( $dhash, "lastRequestState",
            "request_error", 1 );

        if ( $param->{code} == 401 and $hash eq $dhash ) {

            if ( ReadingsVal( $dname, 'token', 'none' ) eq 'none' ) {
                readingsBulkUpdate( $dhash, "state", "no token available", 1 );
                readingsBulkUpdateIfChanged( $dhash, "lastRequestState",
                    "no token available", 1 );
            }

            Log3 $dname, 5,
              "GardenaSmartBridge ($dname) - RequestERROR: " . $param->{code};

        }
        elsif ( $param->{code} == 204
            and $dhash ne $hash
            and defined( $dhash->{helper}{deviceAction} ) )
        {

            readingsBulkUpdate( $dhash, "state", "the command is processed",
                1 );
            InternalTimer( gettimeofday() + 5, "FHEM::GardenaSmartBridge::getDevices", $hash, 1 );

        }
        elsif ( $param->{code} != 200 ) {

            Log3 $dname, 5,
              "GardenaSmartBridge ($dname) - RequestERROR: " . $param->{code};
        }

        readingsEndUpdate( $dhash, 1 );

        Log3 $dname, 5,
            "GardenaSmartBridge ($dname) - RequestERROR: received http code "
          . $param->{code}
          . " without any data after requesting gardena cloud";

        delete $dhash->{helper}{deviceAction}
          if ( defined( $dhash->{helper}{deviceAction} ) );

        return;
    }

    my $data_errors = 0;
    my $decode_json_data;
    if( defined($data) ) {
      eval { $decode_json_data = decode_json($data) };
      if(
        $decode_json_data &&
        ref($decode_json_data) eq 'HASH' &&
        defined( $decode_json_data->{errors} )
      ) {
        $data_errors = 1;
      }
    }

    if (
        (
            ( $data =~ /Error/ or $data_errors )
        )
        and ref($param->{code}) eq 'HASH'
        and exists( $param->{code} )
      )
    {
        readingsBeginUpdate($dhash);
        readingsBulkUpdate( $dhash, "state", $param->{code}, 1 )
          if ( ReadingsVal( $dname, "state", 0 ) ne "initialized" );

        readingsBulkUpdate( $dhash, "lastRequestState", "request_error", 1 );

        if ( $param->{code} == 400 ) {
            if ( $decode_json_data ) {
                if ( ref( $decode_json_data->{errors} ) eq "ARRAY" )
                {
                    readingsBulkUpdate(
                        $dhash,
                        "state",
                        $decode_json_data->{errors}[0]{error} . ' '
                          . $decode_json_data->{errors}[0]{attribute},
                        1
                    );
                    readingsBulkUpdate(
                        $dhash,
                        "lastRequestState",
                        $decode_json_data->{errors}[0]{error} . ' '
                          . $decode_json_data->{errors}[0]{attribute},
                        1
                    );
                    Log3 $dname, 5,
                        "GardenaSmartBridge ($dname) - RequestERROR: "
                      . $decode_json_data->{errors}[0]{error} . " "
                      . $decode_json_data->{errors}[0]{attribute};
                }
            }
            else {
                readingsBulkUpdate( $dhash, "lastRequestState",
                    "Error 400 Bad Request", 1 );
                Log3 $dname, 5,
"GardenaSmartBridge ($dname) - RequestERROR: Error 400 Bad Request";
            }
        }
        elsif ( $param->{code} == 503 ) {

            Log3 $dname, 5,
"GardenaSmartBridge ($dname) - RequestERROR: Error 503 Service Unavailable";
            readingsBulkUpdate( $dhash, "state", "Service Unavailable", 1 );
            readingsBulkUpdate( $dhash, "lastRequestState",
                "Error 503 Service Unavailable", 1 );

        }
        elsif ( $param->{code} == 404 ) {
            if ( defined( $dhash->{helper}{deviceAction} ) and $dhash ne $hash )
            {
                readingsBulkUpdate( $dhash, "state", "device Id not found", 1 );
                readingsBulkUpdate( $dhash, "lastRequestState",
                    "device id not found", 1 );
            }

            Log3 $dname, 5,
              "GardenaSmartBridge ($dname) - RequestERROR: Error 404 Not Found";

        }
        elsif ( $param->{code} == 500 ) {

            Log3 $dname, 5,
              "GardenaSmartBridge ($dname) - RequestERROR: check the ???";

        }
        else {

            Log3 $dname, 5,
              "GardenaSmartBridge ($dname) - RequestERROR: http error "
              . $param->{code};
        }

        readingsEndUpdate( $dhash, 1 );

        Log3 $dname, 5,
            "GardenaSmartBridge ($dname) - RequestERROR: received http code "
          . $param->{code}
          . " receive Error after requesting gardena cloud";

        delete $dhash->{helper}{deviceAction}
          if ( defined( $dhash->{helper}{deviceAction} ) );

        return;
    }

    readingsSingleUpdate( $hash, 'state', 'connected to cloud', 1 )
      if ( defined( $hash->{helper}{locations_id} ) );
    ResponseProcessing( $hash, $data );
}

CoolTux

Hallo Chris,

Ich gebe Dir Recht. $param ist Unsinn da ich das ja selbst fütter. Es muss dem zu folge $data sein.
Ich danke Dir


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

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

kkoeniger

Kannst Du bitte vllt. auch gleich "disable 0" ermöglichen - derzeit lässt sich nur "1" einstellen, danke.
LG,
Karl

CoolTux

Da disable 0 das selbe ist wie deleteattr kann man auch gleich deleteattr 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

kkoeniger

Das ist mir klar.
Aber nach Abstürzen wäre es (für mich) einfacher das in der CFG zu ändern (ja, ich weiß ...., nur ausnahmsweise).
LG,
Karl

jupzup

Zitat von: CoolTux am 07 Mai 2019, 10:52:13
HEUTE KEIN UPDATE MACHEN!!!!!!!!!!!!!!!!!!!

Erst morgen bitte

Leider jetzt erst gelesen nachdem ich das Update machte, weil FHEM heute Mittag wieder komplett abgestürzt war.
Bridge connected sich mit dem heutigen Update gar nicht mehr....wird aber mit dem morgigen Update bestimmt wieder gehen oder ?

Vielen Dank !!

CoolTux

Du dürftest aktuell gar keine Bridge haben. Also bitte nicht speichern.
Entweder backup zurück spielen oder die aktuellste Version aus dem SVN laden.
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

jupzup

Stimmt....Logfile ist lauter Fehler. Bin jetzt nicht so fit was FHEM anbelangt daher kenne ich die SVN Update Variante nicht. Die Config hatte ich nicht extra gespeichert aber einen Restart gemacht.

Kann ich denn morgen das Update über die normale Variante wieder machen und die Bridge ist dann wieder da ? Restore habe ich eben geprüft sind 3 Backups da aber alle alt bzw. aus 2018.

Vielen Dank !!

Lofgile
2019.05.07 18:50:29 1: reload: Error:Modul 73_GardenaSmartBridge deactivated:
syntax error at ./FHEM/73_GardenaSmartBridge.pm line 503, near "$data
        (
            "
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 508.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 509.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 509.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 510.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 512.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 514.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 515.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 516.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 517.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 520.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 522.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 523.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 527.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 529.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 530.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 533.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 534.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 535.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 536.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 540.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 542.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 543.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 546.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 548.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 549.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 550.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 551.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 555.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 556.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 556.
Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/73_GardenaSmartBridge.pm line 556.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 558.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 559.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 563.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 564.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 567.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 569.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 570.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 575.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 576.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 577.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 580.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 582.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 583.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 584.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 587.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 588.
syntax error at ./FHEM/73_GardenaSmartBridge.pm line 591, near "}"
./FHEM/73_GardenaSmartBridge.pm has too many errors.

2019.05.07 18:50:29 0: syntax error at ./FHEM/73_GardenaSmartBridge.pm line 503, near "$data
        (
            "
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 508.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 509.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 509.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 510.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 512.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 514.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 515.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 516.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 517.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 520.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 522.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 523.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 527.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 529.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 530.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 533.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 534.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 535.
Global symbol "$data" requires explicit package name (did you forget to declare "my $data"?) at ./FHEM/73_GardenaSmartBridge.pm line 536.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 540.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 542.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 543.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 546.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 548.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 549.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 550.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 551.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 555.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 556.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 556.
Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/73_GardenaSmartBridge.pm line 556.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 558.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 559.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 563.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 564.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 567.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 569.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 570.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 575.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 576.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 577.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 580.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 582.
Global symbol "$dname" requires explicit package name (did you forget to declare "my $dname"?) at ./FHEM/73_GardenaSmartBridge.pm line 583.
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?) at ./FHEM/73_GardenaSmartBridge.pm line 584.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 587.
Global symbol "$dhash" requires explicit package name (did you forget to declare "my $dhash"?) at ./FHEM/73_GardenaSmartBridge.pm line 588.
syntax error at ./FHEM/73_GardenaSmartBridge.pm line 591, near "}"
./FHEM/73_GardenaSmartBridge.pm has too many errors.

2019.05.07 18:50:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_GardenaSmartDevice.pm line 149.
2019.05.07 18:50:30 1: GardenaSmartDevice (Water_Control) - no I/O device
2019.05.07 18:50:30 3: GardenaSmartDevice (Water_Control) - defined GardenaSmartDevice with DEVICEID: f2e74044-9ff2-4db0-97ef-2dc75fba9817
2019.05.07 18:50:30 1: Including ./log/fhem.save
2019.05.07 18:50:30 3: No I/O device found for Water_Control
2019.05.07 18:50:30 1: configfile: Cannot load module GardenaSmartBridge
Please define GardenaSmart 5cc9b4f3-f33f-920c-c647-5bd91c0fd8a25b45 first

CoolTux

Eigentlich wird im normal Fall immer ein restore Ordner angelegt.
restoreDir

Schau mal was da bei Dir drin steht.
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

jupzup

Ok hab's gefunden es gab noch einen Ordner Update. Restore ist durch und Bridge ist wieder da und läuft auch.

Vielen Dank!!

ufo-hans

Leider hat es mit der aktuellsten Version bei mir heute trotzdem wieder die Fehlermeldung im Logfile gegeben:

Can't use an undefined value as a HASH reference at ./FHEM/73_GardenaSmartBridge.pm line 500.

    if ( defined($data)
        and $data
        and
        (
            ( $data =~ /Error/ )
            or defined( eval { decode_json($data) }->{errors} )
        )
      )
    {


Ich bin zwar selbst des Programmierens ein klein wenig kundig, jedoch nicht sehr Perl-fit... Könnte es sein, dass alle Kriterien der if-Abfrage ausgewertet werden, auch wenn bereits das Erste zum Abbruch führt? Ich glaube das Ganze heisst "vollständige boolsche Auswertung". Das würde erklären, warum es da weiterhin knallt...

Lg, Hans.

Axxl

Bei mir hat es heute auch wieder einen Absturz gegeben..

Can't use an undefined value as a HASH reference at ./FHEM/73_GardenaSmartBridge.pm line 500.


CoolTux

Dann müssen wir das noch etwas ausschmücken

if ( defined($data)
        and $data
        and
        (
            ( $data =~ /Error/ )
            or ( defined( eval { decode_json($data) } )
              and defined( eval { decode_json($data) }->{errors}) )
        )
      )


Kann das bitte einmal jemand testen?
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

Kenneth

Zitat von: Axxl am 20 Mai 2019, 12:53:44
Bei mir hat es heute auch wieder einen Absturz gegeben..

Can't use an undefined value as a HASH reference at ./FHEM/73_GardenaSmartBridge.pm line 500.

Bei mir auch


Gesendet von iPhone mit Tapatalk
Intel NUC @Ubuntu > FHEM 5.8
HM-LAN, NanoCul, Signalduino
EchoDot, Gardena Sileno, XT1, Somfy RTS
TabletUI