Shelly: Passwort nach Restart verloren

Begonnen von FriendOfFHEM, 23 Januar 2020, 17:18:22

Vorheriges Thema - Nächstes Thema

FriendOfFHEM

Hallo Wissende,

ich habe folgendes Problem mit dem FHEM-Modul Shelly:

Innerhalb des Shelly-internen Web-Servers des Gerätes (hier: Shelly4Pro) kann man im Bereich "Internet & Security\Restrict Login" den Zugriff auf den Shelly mit Benutzernamen und Passwort absichern.

Im FHEM-Modul werden diese über
attr <Shelly-Device> shellyuser <Benutzername>
set <Shelly-Device> password <Passwort>

bekannt gegeben.

So weit, so gut. Dies funktioniert auch.

Sobald der FHEM-Server aber neu gestartet wird, vergisst das Shelly-Device das gesetzte Passwort und kann sich nicht mehr mit dem Shelly verbinden.
Wird das Passwort im Device über set <Shelly-Device> password <Passwort> wieder bekannt gegeben, funktioniert die Kommunikation wieder ohne Probleme.
Bis zum nächsten Neutart des FHEM-Servers...

Hat jemand eine Idee, woran das liegt und weiß Abhilfe?

Danke & Gruß
FriendOfFHEM

Wernieman

Nach dem Setzen gespeichert?
Gibt es keine Fehlermeldungen im Log? (Beim Setzen und/oder Speichern)?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Keynaan

Hallo Werniemann,

ich habe das selbe Verhalten. Nach jedem Neustart wird das Passwort vergessen.
Wenn ich es neu anlege, passiert im Logfile nichts.

Wenn es vergessen ist und keine Verbindung mehr hergestellt werden kann, steht folgendes im Logfile:
[Shelly_status]  has error http://<nutzername>:@<ip-Adresse>/status: malformed or unsupported URL

<nutzername> und <ip-Adresse> passen soweit. Wenn man mit dem Browser auf die URL geht, klappt es nach eingeben des Nutzernamens und Passwortes.
Per MQTT2 funktioniert auch alles wunderbar, von daher habe ich das bisher nicht weiter verfolgt.

Beste Grüße,
Keynaan
HM: HM-CC-RT-DN, HM-Sec-SCo, HM-TC-IT-WM-W-EU
Shelly: 1pm, flood
Rademacher: DUOFERN Rolläden
Intertechno: unzählige 433MHz Steckdosenschalter
SONOS, PS4, BRAVIA, Harmony, HomeBridge, Tradfri, deCONZ, busware CUL, HOMBOT, ...

marvin78

@Keynaan und @FriendOfFHEM: Schaut doch mal in eure "uniquiID" Datei, ob das Kennwort dort ankommt. Dann ggf. auch direkt die Rechte auf diese Datei überprüfen.

Keynaan

In der "uniqueID" steht das pw korrekt drin. Die Rechte sind rw für den Nutzer und r für Gruppe und Other (- rw- r-- r--).

Was müssen die Rechte sein? Braucht es ausführbare Rechte?

Beste Grüße,
Keynaan
HM: HM-CC-RT-DN, HM-Sec-SCo, HM-TC-IT-WM-W-EU
Shelly: 1pm, flood
Rademacher: DUOFERN Rolläden
Intertechno: unzählige 433MHz Steckdosenschalter
SONOS, PS4, BRAVIA, Harmony, HomeBridge, Tradfri, deCONZ, busware CUL, HOMBOT, ...

mifrit00

Hallo,

da ich die selben Probleme mit dem Passwort habe, würde ich schon gerne wissen, wie man das Problem löst.
Habt ihr gefunden, woran es liegt?

vg
Micha

pre

Ditto.

Passwörter sind weg sobald ein Reload/Restart erfolgt. Neu setzten funktioniert auch nicht immer, da das 36_Shelly.pm ein Problem hat (Version 2020-19-05). Hab bisher immer mit sudo vi ... die Passwörter neu in die uniqueID Datei geschrieben (Da kamen sie nicht an)

Kann mir jemand den Mechanismus für die Passwörter und uniqueID Datei erklären? Dann kann ich vllt. den Fehler eingrenzen.

Ciao

Peter

Otto123

#7
Hi,

ich kenne mich mit dem shelly modul nicht aus, aber die Datei /opt/fhem/FHEM/FhemUtils/uniqueID (bzw. bei abweichender Config, siehe Doku global/keyFileName
FHEM Module speichern Passwörter und IDs in der Datei FHEM/FhemUtils/uniqueID. Um mehrere FHEM-Instanzen im gleichen Verzeichnis starten zu können, kann man dieses Attribut setzen, dessen Wert an FHEM/FhemUtils/ angehängt wird.)

- Wird typischerweise mit setKeyValue https://wiki.fhem.de/wiki/DevelopmentModuleAPI#setKeyValue beschrieben.
- Mit getKeyValue kann man die Werte zurücklesen. Jede andere hier benannte "händische" Methode erscheint mir völlig ungeeignet :(

Bei mir verwenden die Fritzbox Module diese Datei und ich lege meine sendEmail Passwörter dort ab. https://wiki.fhem.de/wiki/E-Mail_senden

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Prof. Dr. Peter Henning

ZitatJede andere hier benannte "händische" Methode erscheint mir völlig ungeeignet
Korrekt. Und im Modul liegt auch kein Fehler vor, genau so wird es gemacht.

Der angebliche Fehler ist für mich nicht nachvollziehbar.

LG

pah

Seli

Nachdem das Shelly-Passwort bei mir mehrfach verloren ging, betreibe ich diese wieder ohne Passwort. Ich kann daher zumindest bestätigen, dass da irgendwas nicht in Ordnung ist. Ob das mit einem Reboot zusammenhing, weiß ich nicht. Ist aber nicht ganz unwahrscheinlich.

Grüße,
Seli
Raspberry Pi 3, FHEM 5.8
CUL868 V3 (FS20/IT): FHT80TF|PIRI|PIRI-2|TFK|S4A-2|ST|SU|S8|HMS 100 WD|IT-1500|GRR-3500
HomeMatic HMLAN_UART: HM-CC-RT-DN|HM-SEN-MDIR-O|HM-SEC-SC-2|HM-TC-IT-WM-W-EU|HM-LC-SW4-PCB 4|HM-WDS-OTH|HM-OU-LED16|HM-RC-4-3
JeeLink v3c, Rademacher duoFern, Philips Hue

amenomade

#10
Zitat von: Prof. Dr. Peter Henning am 14 September 2020, 13:45:45
Korrekt. Und im Modul liegt auch kein Fehler vor, genau so wird es gemacht.

Der angebliche Fehler ist für mich nicht nachvollziehbar.

LG

pah

Die Löschung des Passworts mit
  my ($err, $sh_pw) = setKeyValue("SHELLY_PASSWORD_$name", undef);sollte nicht in der UndefFn Funktion stehen, sondern in der DeleteFn Funktion.

Z.B. werden bei einem "rereadcfg" alle Devices durch undefFn "undefiniert" (aber nicht von fhem.cfg gelöscht - hier muss man das Passwort nicht löschen, da das Device nach dem reload immer noch existieren wird) und dann durch Lesen der Konfig wieder kreiert.

Das passiert genauso beim Editieren der fhem.cfg durch die Fhem WebUI: beim Save macht er ein rereadcfg, mit den gleichen "Nebenwirkungen". Und oft glauben die fhem.cfg Editierer, dass das Restart von Fhem nach irgendwelcher Änderung den Fehler verursacht hat, obwohl es beim vorherigen Schritt (Speichern der fhem.cfg Datei) schon passiert ist

EDIT: übrigens... es fehlt mMn in deinem Modul auch eine RenameFn, um das Passwort zu übertragen..
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Prof. Dr. Peter Henning

Wo Du Recht hast, hast du Recht. Werde ich bei Gelegenheit umschaufeln. Oder ich lasse es so, um alle cfg-Editierer zu ärgern  8)

LG

pah

amenomade

Zitat von: Prof. Dr. Peter Henning am 15 September 2020, 12:43:57
Oder ich lasse es so, um alle cfg-Editierer zu ärgern  8)
Dein Modul, deine Entscheidung ;) :D Als Helfer im Forum stört es mich nicht, wenn Du die cfg-Editierer ärgerst! Ganz im Gegenteil!
Nur... rereadcfg ist zwar fraglich, aber rename würde ich doch sauber implementieren 8)

Und für alle Anfänger, die hier im Thread fhem.cfg editieren: bitte fhem.cfg nicht editieren! Nicht umsonst ist es standardmässig deaktiviert. Das ist in 99,9% der Fällen nicht notwendig, und hat noch andere Nebenwirkungen z.B. auf Timer oder Watchdogs oder sequence usw.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

pre

Zitat von: Prof. Dr. Peter Henning am 15 September 2020, 12:43:57
...Werde ich bei Gelegenheit umschaufeln...
LG

pah

Hallo pah,

und wenn Du dabei bist auch bitte den Umstand fixen, dass man um das Passwort zu setzten keinen shelly2 typ roller gesetzt haben darf. Ich habe das Gefühl Zeile 540 mit "$model =~ /shelly2.*/) && ($mode eq "roller")" schlägt vor Zeile 767 '$cmd eq "password"' zu.

Viele Grüße und Danke

Peter

Prof. Dr. Peter Henning

Zitatund wenn Du dabei bist auch bitte den Umstand fixen
Sofern mir bei diversen anderen Aufgaben noch Zeit bleibt und das Wetter zu schlecht für den Golfplatz ist, übernehme ich auch gerne noch Auftragsprogrammierungen zum üblichen Stundensatz für meinesgleichen. Wohin darf ich die Rechnung senden?

pah