Autor Thema: Shelly Reboot  (Gelesen 2983 mal)

Offline psycho160

  • Full Member
  • ***
  • Beiträge: 107
Shelly Reboot
« am: 21 Mai 2021, 19:48:40 »
Hi,

teile hier ein für mich sehr nützliches Snippet, dass ich mir geschrieben habe mit folgender Funktion:

Wenn ich meine AccessPoints Update oder aus irgendeinem Grund neu starte sind ab und zu nicht mehr alle Shellys mit dem "stärksten" AP verbunden. Dann starte ich alle meine Shellys neu, damit sie sich wieder zum Besten AP verbinden.

Dazu  einfach folgenden Code in die 99_myUtils.pm:
sub shellyRestart {
foreach my $shelly (devspec2array("TYPE=MQTT2_DEVICE:FILTER=id=[s|S]helly.*")) {
my $ip = ReadingsVal($shelly, "ip", "0");
Log 3, "Sende Reboot an: $shelly ($ip)";

# create request for every shelly

# Settings
my $URL         = qq{http://$ip/reboot};

my $param = {
url           => $URL,
method        => 'GET',
#user        => $username,
#pwd        => $password,
hideurl => 0,
shelly => $shelly,
timeout       =>  4,
callback   => \&ShellyReboot_ParseHttpResponse
};
# uncomment for debug
#Log3 'ShellyReboot-Fn', 3, 'NonBlocking GET: ' . Dumper($param);
HttpUtils_NonblockingGet($param);
  }
return "ShellyReboot started - See Log for Infos";
}

# Callback ShellyRestart
sub ShellyReboot_ParseHttpResponse($)
{
    my ($param, $err, $data) = @_;
    my $name = $param->{shelly};

    if($err ne "")
    {
        Log3 $name, 3, "$name : error while requesting ".$param->{url}." - $err";
    }
    elsif($data ne "")    {
        Log3 $name, 5, "url ".$param->{url}." returned: $data";

        # An dieser Stelle die Antwort parsen / verarbeiten mit $data
my $decoded_data = eval { decode_json($data) };
if ($@){
Log3 "ShellyReboot", 3, "ShellyReboot Error: decode_json failed, invalid json. error: $@ ";
}else{
Log3 "ShellyReboot", 3,"ShellyReboot OK: $name - Info: " . $decoded_data->{'ok'};
}
    }
}

Dann in der FHEM Commandozeile {shellyRestart} eingeben und schon starten alle neu.

Vielleicht kanns ja jemand gebrauchen.

lg
« Letzte Änderung: 21 Mai 2021, 21:49:03 von psycho160 »
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Offline supernova1963

  • Sr. Member
  • ****
  • Beiträge: 534
Antw:Shelly Reboot
« Antwort #1 am: 25 Mai 2021, 07:07:16 »
Hi @psycho160,

vielen Dank für's teilen.

lg

Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2788
Antw:Shelly Reboot
« Antwort #2 am: 25 Mai 2021, 09:15:35 »
Von mir auch Dank, ich lege es mal in die Interessenliste :-)
Nachdem ich jetzt den Tipp mit dem Energiezähler beim Shelly bekommen habe würde ein regelmäßiger Reset für eine neue Anmeldung eventuell sinn machen, da ich den ein oder anderen time out im Log sehe.

VG
   Christian
« Letzte Änderung: 25 Mai 2021, 09:17:31 von ch.eick »
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline caldir65

  • Full Member
  • ***
  • Beiträge: 427
Antw:Shelly Reboot
« Antwort #3 am: 04 Juli 2021, 16:50:09 »
Moin,

auch von mir Danke dafür.

Wie startest Du neu? Manuel per Befehl, oder wird das bei Dir über fhem detektiert und ein Reboot ausgelöst?

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse ThinClient 8GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2788
Antw:Shelly Reboot
« Antwort #4 am: 05 Juli 2021, 10:33:13 »
Wie startest Du neu? Manuel per Befehl, oder wird das bei Dir über fhem detektiert und ein Reboot ausgelöst?
Wenn fhem die Verbindung verloren hat kann es doch nicht neu starten.
Ich habe da mal eine Option in den Shelly Einstellungen gesehen, nutze es jedoch nicht selber.
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline psycho160

  • Full Member
  • ***
  • Beiträge: 107
Antw:Shelly Reboot
« Antwort #5 am: 05 Juli 2021, 11:50:57 »
Nein, ich sehe am Access Point bzw. WLAN Controller wo welcher Shelly mit der jeweiligen Empfangsstärke verbunden ist. Wenn ich bemerke, dass einige nicht mit dem stärksten AP verbunden sind (eben aus den oben genannten Gründen) dann gebe ich den Befehl manuell ein und alle Shellys suchen sich dann wieder den "stärksten" AP.

Die Verbindung zu Fhem geht dabei nie verloren, ist nur vor dem Reboot nicht immer ideal.
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Offline caldir65

  • Full Member
  • ***
  • Beiträge: 427
Antw:Shelly Reboot
« Antwort #6 am: 05 Juli 2021, 20:00:34 »
Die Verbindung zu Fhem geht dabei nie verloren, ist nur vor dem Reboot nicht immer ideal.

Naja, wenn die Verbindung verloren ginge, wäre ja auch schlecht  ;)
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse ThinClient 8GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

 

decade-submarginal