Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehlerhaftes Verhalten von (py?)homematic

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Fehlerhaftes Verhalten von (py?)homematic

    Hallo zusammen,

    ich habe ein Problem mit dem homematic Plugin:

    Das Item sieht wie folgt aus:
    Code:
    SollTemperatur:
        name: Soll Temperatur
        alexa_actions: "SetTargetTemperature AdjustTargetTemperature"
        history: true
        database: yes
        type: num
        visu_acl: rw
        hm_address: PEQ47114711
        hm_function: SET_TEMPERATURE
    Um das Problem zu vereinfachen, kann man den Wert über das Backend "Items" einstellen.

    Das Thermostat arbeitet in 0.5 Grad schritten.

    Wenn ich jetzt den Item Wert auf 21.5 setze, funktioniert alles.
    Problem: Wenn ich den Wert auf 21 (oder 21.0) setze, wird der Wert nicht übertragen. Log Meldung:
    Code:
    2020-10-03 10:17:33 ERROR pyhomematic.devicetypes.generic HMGeneric.setValue: SET_TEMPERATURE on PEQ47114711:4 Exception: <Fault -1: 'Failure'>
    Workaround: Ich setze nicht auf 21.0 sondern 21.0001 Grad.

    Das reale Problem kommt aus der Visu device.rtr, da habe ich jetzt den "step" auf 0.499999 gestellt, was den gleichen Effekt hat.

    Aus den Logiken hatte ich ein ähnlichs Problem, das habe ich dann gelöst, in dem ich nicht den Wert sondern 'float(value)' gesetzt habe.
    Irgendwo kann also jemand nicht mit dem "Integer" umgehen.

    Kann man evtl. das Item so konfigurieren, dass es nur mit floats arbeitet statt integern?

    Ansonsten hilft der "Workaround" evtl. auch anderen

    #2
    Schon mal mit eval: float(value) probiert?

    Kommentar


      #3
      Wenn Du den Page Cache in SV ausschaltest, kannst Du in der Entwicklerkonsole des Browsers die Kommunikation zwischen SV und shNG mitlesen. Was sendet die SV denn dort, wenn der Sollwert im RTR auf 21,0°C gestellt wird? „21“ oder „21.0“?

      In der Konsole kannst Du auch Werte verändern:
      Code:
      io.write(“Dein.item.Name“,“21.0“)
      und so den Unterschied zwischen „21“ und „21.0“ ausprobieren.

      Dieser Versuch sollte uns Hinweise geben, wo wir zur Lösung ansetzen müssen.

      Gruß
      Wolfram

      Kommentar

      Lädt...
      X