Beiträge von Gerhard_Unger

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.

    Hallo

    Ich habe das Problem bereits gelöst und will euch hier eine kleine Zusammenfassung meines Problems mit meiner Lösung posten!

    Umgebung

    • Shelly Gen2 / Gen3 (z. B. Shelly Plus 2PM)
    • Interner Temperatursensor
    • Shelly Script schreibt Temperatur in KVS
    • Excel VBA liest Werte über KSV.Get

    Problem

    Die Temperaturwerte sind am Shelly korrekt, aber in Excel falsch:

    • Shelly Web-Interface → korrekt
    • Shelly Script Konsole → korrekt
    • Browser-Abfrage http://<ip>/rpc/KVS.Get?key=temp_100 → korrekt
    • Excel zeigt veraltete oder komplett falsche Werte

    Beispiel:

    • Shelly Konsole: 53,4 °C
    • Excel: 14,7 °C

    Shelly Script

    Der Wert wird korrekt gespeichert und aktualisiert!

    Ursache

    Nicht Shelly, nicht der Sensor – sondern Excel/VBA.

    Die Hauptprobleme waren:

    1. HTTP-Caching
      • Excel verwendet bei identischen URLs zwischengespeicherte Antworten
    2. Falsche JSON-Prüfung
      • If Not JSON("value") Is Nothing → Objekt erforderlich
    3. Dezimaltrennzeichen ( . vs , )
    4. Kein Zeitstempel → keine Kontrolle, ob der Wert aktuell ist

    Lösung

    • Temperatur ausschließlich aus dem KVS lesen
    • URL mit Cache-Busting-Parameter versehen
    • JSON.Exists("value") verwenden
    • Optional Zeitstempel zur Kontrolle speichern

    VBA-Code

    Ergebnis

    • Excel-Wert = Shelly-Konsole = KVS-Wert
    • Keine veralteten Messungen mehr
    • Verhalten reproduzierbar und stabil

    Daher

    Shelly RPC & KVS funktionieren korrekt
    Sensorwerte sind zuverlässig
    Excel/VBA benötigt explizites Cache-Busting und saubere JSON-Behandlung

    Beim Auslesen von Shelly-KVS aus externen Systemen immer Caching verhindern!


    Ich mache die Abfrage der Sensoren mit folgenden Code:


    Ich arbeite mit den JSon Coverter von GITHUB

    https://github.com/VBA-tools/VBA-JSON

    Jedoch erhalte ich zum Teil Temperaturabweichungen zum Webinterface von bis zu 5°C, was ich mir nicht erklären kann!

    Ich habe bei meiner Heizungsanlage genau gesagt am Pufferspeicher einen Shelly Plus 2PM mit einem Add On verbaut, um mit 2 Temperatursensoren die Puffertemperatur unten und oben zu erfassen. Jetzt wollte ich mir mittels Excel VBA einen Datenlogger erstellen - was eigentlich ganz gut funktioniert, jedoch weichen die Daten welche ich aus dem JSON Container extrahiere doch einigermaßen extrem von den Werten der Weboberfläche des Shellys ab.

    Vielleicht hat jemand schon die selbe Erfahrung gemacht und kann mir Tipps geben wie ich vorgehen kann!