Shelly Plus 1 PM wie geht getDeviceInfo

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

  • laut der Hilfeseite "shelly-api-docs.shelly.cloud/gen2/Scripts/ShellyScriptLanguageFeatures#shellygetdeviceinfo" gibt der Aufruf von

    Shelly.getDeviceInfo() ein DeviceInfo Objekt zurück. Syntaktisch kann man das auch hinschreiben. let di=Shelly.GetDeviceInfo();

    Aber es kommt die Fehlermeldung "Calling not callable".

    Der Web Aufruf bringt folgende Ausgabe.

    {"name":null,"id":"shellyplus1pm-441793cfbc64","mac":"441793CFBC64","model":"SNSW-001P16EU","gen":2,"fw_id":"20221024-142010/0.11.4-ga1906a2","ver":"0.11.4","app":"Plus1PM","auth_en":false,"auth_domain":null}

    Diese hatte ich auch als Objekt erwartet. Alle Shelly.call Aufrufe bringen auch kein Result Objekt. Wie kommt man an die Ausgabe der Web Anfrage z.B. http://<ip>/rpc/* heran.

    Der Aufruf von

    let id=Shelly.getCurrentScriptId();

    print ("Id=",id);

    geht dagegen.

    Firmware : 0.12.0



  • Klingt für mich nach einem Bug. Ich werde heute nachmittag mal probieren, ob ich das nachstellen kann.

    Hast du mal im DebugLog geschaut ob da weitere Infos drin sind?

    Probier es mal mit folgendem Code, das klappt bei einem Shelly Plus I4 mit Firmware 0.12.0 problemlos. Groß- und Kleinschreibung bei getDeviceInfo beachtet?

    Code
    let di=Shelly.getDeviceInfo();
    print(di.id);

    >100 Shellies, darunter so gut wie alles was der Hersteller produziert hat. ;)
    :!: ich beantworte grundsätzlich keine Fragen per persönlicher Nachricht:!:

    6 Mal editiert, zuletzt von Seven of Nine (3. Januar 2023 um 04:57)

  • Unter dem Reiter Diagnostik gibt es den Punkt "Download debug log" -wenn ich das mache kommt eine Datei mit folgendem Inhalt:

    No logged data. You need to start the logging functionality in order to fetch device logs.

    Es gibt auch den Punkt "Download Device Data"- Hier kommt eine Datei mit der Ausgabe von getDeviceInfo.

    Wo starte ich die logging functionality? Das Debugging habe ich ja schon an.

  • settings - debug - websocket debug im Webinterface aktivieren müsste es sein.

    >100 Shellies, darunter so gut wie alles was der Hersteller produziert hat. ;)
    :!: ich beantworte grundsätzlich keine Fragen per persönlicher Nachricht:!:

  • habe ich ja aktiviert. Hier taucht eine URL auf wo man ein log lesen kann. ws://<SHELLY_HOST>/debug/log 

    Kann mal jemand sagen was das Protokoll ws ist und welcher Rechner Shelly_Host ist. Der lokale shelly ist sicher nicht gemeint.

    Eine Anleitung für das Vorgehen wäre hilfreich.

  • Dieses Thema enthält 3 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.