Ankündigung

Einklappen
Keine Ankündigung bisher.

Integration smartVISU -> ioBroker -> Homematic

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

    Integration smartVISU -> ioBroker -> Homematic

    Hallo,
    seit einiger Zeit gibt es bei der Integration smartVISU -> ioBroker -> Homematic Probleme u.a. mit Dimmer, da ioBroker wohl restriktiver geworden ist.
    Jedenfalls erhalte ich beim setzen eines Dimmerwertes folgende Fehlermeldung in ioBroker:
    State value to set for "hm-rpc.0.KEQXXXXXXX.1.LEVEL" has to be type "number" but received type "string"
    Mit basic.stateswitch sollte hier z.B. eine 100 gesetzt werden.
    Kennt jemand das Problem und hat eine Lösung? Mir ist nicht ganz klar, ob dies in smartVISU oder ioBroker gefixt werden kann.

    Viele Grüße und besten Dank
    Stefan

    #2
    Hi Stefan,

    da ich gerade unterwegs bin, kann ich nur mit dem Widget Assistent online testen. Damit kann ich sehen, dass Zahlen innerhalb von smartVISU immer in den Typ "number" gewandelt werden - auch wenn man sie im Widget in Hochkommata angibt. Dies passiert allerdings erst bei "widget.update". Es kann also sein, dass vorher das Senden über den Websocket noch im Typ "string" passiert, wenn Du Zahlen in Hochkommata angibst. Du müsstest mal ausprobieren, ob der Typ passt, wenn Du die Hochkommata weglässt.

    Gruß
    Wolfram
    Zuletzt geändert von wvhn; 13.06.2022, 20:13.

    Kommentar


      #3
      Hallo Wolfram,
      danke für die Antwort. Ich verwende z.B. folgenden Aufruf:
      {{ basic.stateswitch(id~'on', item, 'mini', 100, '', 'On', 'icon0') }}
      (die 100 ohne Hochkomma) mit der Hoffnung, dass dadurch die Nummer 100 geschickt wird. Im expandierten HTML Code sehe ich allerdings folgendes:
      <a data-widget="basic.stateswitch" data-val="100" data-index="0" data-col="icon0" class="ui-btn ui-mini ui-corner-all ui-btn-inline ui-first-child">On</a>

      Ich bin allerdings noch auf der Version 3.1.

      Viele Grüße
      Stefan

      Kommentar


        #4
        Hallo Stefan,

        es kommt auf den JavaScript-Teil des Widgets an, weil dort die Konvertierung stattfindet. Du kannst im Treiber io_iobroker.js hinter der Zeile 65 (Master v3.2.2) eine Konsolenausgabe einfügen, um Dir den Typ des items beim Senden auf den Websocket anzeigen zu lassen:
        Code:
        if (io.checkConnected) {        /** Zeile 65 */
            console.log (typeof val);
        Gruß
        Wolfram

        Kommentar


          #5
          Hallo Wolfram,
          danke für den Tip. Leider kommt sowohl bei stateswitch als auch bei slider die Ausgabe "string".

          Viele Grüße
          Stefan

          Kommentar


            #6
            Dann kannst Du mal versuchen, anstelle oder auch direkt vor der eingefügten Konsolenausgabe nochmal eine Umwandlung zu machen:
            Code:
            if ($.isNumeric(val))
                val = val * 1.0;
            Der ioBroker-Treiber ist die einzige Stelle in smartVISU, an der die Bibliothek socket.io verwendet wird. Mit der Bibliothek und mit den übertragenen Formaten kenne ich mich nicht aus. Deshalb kann ich hier nur ungetestete Vorschläge machen.

            Gruß
            Wolfram

            Kommentar


              #7
              Hallo Wolfram,
              danke für den Tipp. Damit scheint es zu gehen. Ich hatte an der gleiche Stelle schon mal was für boolsche Werte (true/false) gemacht.

              Viele Grüße
              Stefan

              Kommentar

              Lädt...
              X