Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)

Scheduled Pinned Locked Moved Tester
appdark-modeiqontrolresponsivevisvisualisierungvisualizationwidget
7.6k Posts 296 Posters 7.0m Views 201 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • s.bormannS s.bormann

    @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

    @mucki sagte in [Neuer Adapter] Visualisierung iQontrol:

    @s-bormann
    Das scheint die Unterschiede zwischen Homematic und nicht Homematic Thermostate zu erklären.

    Kann es aber sein, dass Homematic IP hier noch einmal anders gestrickt ist? Ich habe diverse Homematic IP Heizkörperthermostate und zusätzlich IP Wandthermostate.

    Folgende Problematik erfahre ich bei beiden (Beispiel anhand Wandthermostat HMIP-WTH-2):

    1. es gibt kein Objekt „AUTO_MODE“ -> um zwischen Auto und Manuell umzuschalten, kann man CONTROL_MODE direkt auf 0 oder 1 setzen (funktioniert).
    2. Boost und Party Modus muss man in der Tat am eigenen Objekt auf True setzen. CONTROL_MODE auf 2 oder 3 zu setzen hat keine Auswirkungen.

    Wenn ich die bisherigen Angaben richtig verstanden habe ist somit weder die Geräteklasse Thermostat noch die Geräteklasse Thermostat-Homematic die richtige, oder habe ich einen Denkfehler?

    Oha, jetzt wird es also richtig komplex. Normale Thermostate, HM-Thermostate und HMIP-Thermostate unterscheiden sich alle UND sie unterscheiden sich noch mal, wenn sie über FHEM eingebunden werden 😵
    Werde mich mal mit folgender Lösung beschäftigen:
    iQontrol beschreibt den Datenpunkt CONTROL_MODE, es sei denn, es findet einen eigenen Datenpunkt für AUTO_MODE, MANU_MODE etc..., dann beschreibt es eben diesen Datenpunkt. Das könnte dann etwas universeller sein...

    Hi,
    habe es in der 0.2.2 mal versucht, so umzusetzen. Klappt es? Bitte berichten!
    LG

    dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    wrote on last edited by
    #1741

    @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

    Hi,
    habe es in der 0.2.2 mal versucht, so umzusetzen. Klappt es? Bitte berichten!
    LG

    Welches Thermostat soll dann bei HMIP genommen werden ? (Thermostat oder Homematic Thermostat ? )
    Ich habe es eben mal kurz mit Homematic Thermostat probiert, dann öffnete sich bei Klick auf das Heizungssymbol oder die Kachel gar nix mehr. (die Anzeige stand auf undefiniert)

    1 Reply Last reply
    0
    • s.bormannS s.bormann

      @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

      @mucki sagte in [Neuer Adapter] Visualisierung iQontrol:

      @s-bormann
      Das scheint die Unterschiede zwischen Homematic und nicht Homematic Thermostate zu erklären.

      Kann es aber sein, dass Homematic IP hier noch einmal anders gestrickt ist? Ich habe diverse Homematic IP Heizkörperthermostate und zusätzlich IP Wandthermostate.

      Folgende Problematik erfahre ich bei beiden (Beispiel anhand Wandthermostat HMIP-WTH-2):

      1. es gibt kein Objekt „AUTO_MODE“ -> um zwischen Auto und Manuell umzuschalten, kann man CONTROL_MODE direkt auf 0 oder 1 setzen (funktioniert).
      2. Boost und Party Modus muss man in der Tat am eigenen Objekt auf True setzen. CONTROL_MODE auf 2 oder 3 zu setzen hat keine Auswirkungen.

      Wenn ich die bisherigen Angaben richtig verstanden habe ist somit weder die Geräteklasse Thermostat noch die Geräteklasse Thermostat-Homematic die richtige, oder habe ich einen Denkfehler?

      Oha, jetzt wird es also richtig komplex. Normale Thermostate, HM-Thermostate und HMIP-Thermostate unterscheiden sich alle UND sie unterscheiden sich noch mal, wenn sie über FHEM eingebunden werden 😵
      Werde mich mal mit folgender Lösung beschäftigen:
      iQontrol beschreibt den Datenpunkt CONTROL_MODE, es sei denn, es findet einen eigenen Datenpunkt für AUTO_MODE, MANU_MODE etc..., dann beschreibt es eben diesen Datenpunkt. Das könnte dann etwas universeller sein...

      Hi,
      habe es in der 0.2.2 mal versucht, so umzusetzen. Klappt es? Bitte berichten!
      LG

      O Offline
      O Offline
      ok1
      wrote on last edited by
      #1742

      @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

      Hi,
      habe es in der 0.2.2 mal versucht, so umzusetzen. Klappt es? Bitte berichten!
      LG

      Ich habe 2 Szenarien durchgespielt - leider ohne Erfolg, CONTROL_MODE wird nicht geschrieben.
      Im Einzelnen:

      Zunächst habe ich die von mir ausserhalb von FHEM angelegten Datenpunkte AUTO_MODE und BOOST_MODE wieder gelöscht. Somit verbleibt nur CONTROL_MODE.

      b7e5fa59-557f-4ee4-8d11-10cd75f26f4f-image.png
      Dieser hat folgende RAW:

      {
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1568133924280,
        "common": {
          "name": "CONTROL_MODE",
          "role": "text",
          "type": "string",
          "read": true,
          "write": true,
          "custom": {
            "iqontrol.0": {
              "enabled": true,
              "readonly": false,
              "invert": false,
              "confirm": false,
              "unit": "",
              "unit_zero": "",
              "unit_one": "",
              "min": "",
              "max": "",
              "step": "",
              "type": "string",
              "role": "",
              "targetValueId": "",
              "states": {
                "auto": "AUTO-MODE",
                "manual": "MANU-MODE",
                "boost": "BOOST-MODE"
              }
            }
          }
        },
        "native": {},
        "acl": {
          "object": 1638,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "state": 1638
        },
        "_id": "javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.CONTROL_MODE",
        "type": "state"
      }
      
      1. Szenario: mit Angabe des separat angelegten Datenpunkts in IQontrol:
        4f934b38-cc87-4250-bc89-06d8df601625-image.png
        Modaler Dialog öffnet sich korrekt mit Anzeige der Modi, der Datenpunkt CONTROL_MODE wird aber nicht beschrieben
        1c65de7b-956a-40ac-914c-5281ec5c4a29-image.png

      2. Szenario: in IQontrol wieder zurück auf ursprüglichen FHEM-Datenpunkt
        2bf9d95e-f3da-4dbb-9a21-f6541c9a46b4-image.png
        mit der originalen RAW-Definiton vom FHEM-Adapter:

      fhem.0.Thermostat_Studio_1_Clima.controlMode
      {
        "_id": "fhem.0.Thermostat_Studio_1_Clima.controlMode",
        "type": "state",
        "common": {
          "name": "Thermostat_Studio_1_Clima controlMode",
          "type": "string",
          "role": "state",
          "read": true,
          "write": true,
          "states": {
            "auto": "auto",
            "manual": "manual",
            "boost": "boost",
            "day": "day",
            "night": "night"
          }
        },
        "native": {
          "Name": "Thermostat_Studio_1_Clima",
          "Attribute": "controlMode",
          "possibleSets": true,
          "states": true,
          "Readings": true
        },
        "from": "system.adapter.fhem.0",
        "user": "system.user.admin",
        "ts": 1557337130616,
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      und entspr. Berechtigungsfreigabe
      118ed07a-c373-4e52-8ba0-380f289be5af-image.png

      Modaler Dialog öffnet sich korrekt mit Anzeige der Modi, der Datenpunkt wird aber nicht beschrieben
      1c65de7b-956a-40ac-914c-5281ec5c4a29-image.png

      Also noch leider keine Erfolgsmeldung. Die Anzeige des Modalen Dialogs funktioniert bereits, es fehlt nur noch der schreibende Teil in den Datenpunkt. Ich würde mich sehr freuen, wenn Du dir das noch einmal anschauen könntest. VG, ok

      s.bormannS O 2 Replies Last reply
      0
      • O ok1

        @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

        Hi,
        habe es in der 0.2.2 mal versucht, so umzusetzen. Klappt es? Bitte berichten!
        LG

        Ich habe 2 Szenarien durchgespielt - leider ohne Erfolg, CONTROL_MODE wird nicht geschrieben.
        Im Einzelnen:

        Zunächst habe ich die von mir ausserhalb von FHEM angelegten Datenpunkte AUTO_MODE und BOOST_MODE wieder gelöscht. Somit verbleibt nur CONTROL_MODE.

        b7e5fa59-557f-4ee4-8d11-10cd75f26f4f-image.png
        Dieser hat folgende RAW:

        {
          "from": "system.adapter.admin.0",
          "user": "system.user.admin",
          "ts": 1568133924280,
          "common": {
            "name": "CONTROL_MODE",
            "role": "text",
            "type": "string",
            "read": true,
            "write": true,
            "custom": {
              "iqontrol.0": {
                "enabled": true,
                "readonly": false,
                "invert": false,
                "confirm": false,
                "unit": "",
                "unit_zero": "",
                "unit_one": "",
                "min": "",
                "max": "",
                "step": "",
                "type": "string",
                "role": "",
                "targetValueId": "",
                "states": {
                  "auto": "AUTO-MODE",
                  "manual": "MANU-MODE",
                  "boost": "BOOST-MODE"
                }
              }
            }
          },
          "native": {},
          "acl": {
            "object": 1638,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator",
            "state": 1638
          },
          "_id": "javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.CONTROL_MODE",
          "type": "state"
        }
        
        1. Szenario: mit Angabe des separat angelegten Datenpunkts in IQontrol:
          4f934b38-cc87-4250-bc89-06d8df601625-image.png
          Modaler Dialog öffnet sich korrekt mit Anzeige der Modi, der Datenpunkt CONTROL_MODE wird aber nicht beschrieben
          1c65de7b-956a-40ac-914c-5281ec5c4a29-image.png

        2. Szenario: in IQontrol wieder zurück auf ursprüglichen FHEM-Datenpunkt
          2bf9d95e-f3da-4dbb-9a21-f6541c9a46b4-image.png
          mit der originalen RAW-Definiton vom FHEM-Adapter:

        fhem.0.Thermostat_Studio_1_Clima.controlMode
        {
          "_id": "fhem.0.Thermostat_Studio_1_Clima.controlMode",
          "type": "state",
          "common": {
            "name": "Thermostat_Studio_1_Clima controlMode",
            "type": "string",
            "role": "state",
            "read": true,
            "write": true,
            "states": {
              "auto": "auto",
              "manual": "manual",
              "boost": "boost",
              "day": "day",
              "night": "night"
            }
          },
          "native": {
            "Name": "Thermostat_Studio_1_Clima",
            "Attribute": "controlMode",
            "possibleSets": true,
            "states": true,
            "Readings": true
          },
          "from": "system.adapter.fhem.0",
          "user": "system.user.admin",
          "ts": 1557337130616,
          "acl": {
            "object": 1636,
            "state": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          }
        }
        

        und entspr. Berechtigungsfreigabe
        118ed07a-c373-4e52-8ba0-380f289be5af-image.png

        Modaler Dialog öffnet sich korrekt mit Anzeige der Modi, der Datenpunkt wird aber nicht beschrieben
        1c65de7b-956a-40ac-914c-5281ec5c4a29-image.png

        Also noch leider keine Erfolgsmeldung. Die Anzeige des Modalen Dialogs funktioniert bereits, es fehlt nur noch der schreibende Teil in den Datenpunkt. Ich würde mich sehr freuen, wenn Du dir das noch einmal anschauen könntest. VG, ok

        s.bormannS Offline
        s.bormannS Offline
        s.bormann
        Most Active
        wrote on last edited by s.bormann
        #1743

        Hm, schade, dann werde ich wohl noch mal ran müssen.

        1 Reply Last reply
        0
        • s.bormannS s.bormann

          @mucki Hi, wie @dslraser schon gesagt hat, irritiert mich auch die Schreibweise des States-Properties. Habe ich so auch noch nicht gesehen, eigentlich hat es bislang immer die Form states: {key: value, key2: value2, ...} gehabt.
          Das ist aber glaube ich nicht das Problem hier. Ich denke es liegt daran, dass ich das Battery-Symbol so programmiert habe, dass es entweder auf booleans reagiert (true = anzeigen, false = verstecken) oder auf numbers. Bei numbers wird das Symbol angezeigt, wenn der Wert <10% (auf der Skala von min...max) ist. Um es ans Laufen zu bekommen, mache folgendes:
          Lege im Custom (Schraubenschlüssel-Icon) den type auf booelan fest. Nicht invertieren. Dann sollte es gehen.
          LG

          M Offline
          M Offline
          mucki
          wrote on last edited by
          #1744

          @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

          ype auf booelan fest. Nicht invertieren. D

          Also nur so? Damit erscheint leider ebenfalls immer das Symbol mit der schwachen Batterie (ob invertiert oder nicht).
          Bildschirmfoto 2019-09-14 um 14.10.15.png

          s.bormannS 1 Reply Last reply
          0
          • L Offline
            L Offline
            luder
            wrote on last edited by
            #1745

            Hallo,

            ich lese hier schon länger intensiv mit, den Adapter finde ich wirklich sehr gelungen.
            Z.Zt. verwende ich eine Oberfläche Vis im "Material Design" von Uhula .

            Stelle mir jetzt die Frage ob ich umstellen sollte, 2 Oberflächen parallel wollte ich nicht verwenden.
            Bevor ich umsteige noch ein paar kurze Fragen:

            • ist geplant noch weitere Grundkacheln (z.B. 3fache Breite einer aktuellen) zu erstellen, dachte z.B. an eine Uhr, Wetterinfos, usw.
            • gibt es eine Möglichkeit eine Kachel mit einem Link zu einer anderen Seite zu setzen
            • kann man in Zukunft ggf. auch Bilder von einer Webcam darstellen

            Brauche das alles nicht Morgen, doch bevor ich umstelle wäre es interesant zu wissen ob sowas überhaupt geplant ist.

            VG
            luder

            Marco LaserM 1 Reply Last reply
            0
            • O ok1

              @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

              Hi,
              habe es in der 0.2.2 mal versucht, so umzusetzen. Klappt es? Bitte berichten!
              LG

              Ich habe 2 Szenarien durchgespielt - leider ohne Erfolg, CONTROL_MODE wird nicht geschrieben.
              Im Einzelnen:

              Zunächst habe ich die von mir ausserhalb von FHEM angelegten Datenpunkte AUTO_MODE und BOOST_MODE wieder gelöscht. Somit verbleibt nur CONTROL_MODE.

              b7e5fa59-557f-4ee4-8d11-10cd75f26f4f-image.png
              Dieser hat folgende RAW:

              {
                "from": "system.adapter.admin.0",
                "user": "system.user.admin",
                "ts": 1568133924280,
                "common": {
                  "name": "CONTROL_MODE",
                  "role": "text",
                  "type": "string",
                  "read": true,
                  "write": true,
                  "custom": {
                    "iqontrol.0": {
                      "enabled": true,
                      "readonly": false,
                      "invert": false,
                      "confirm": false,
                      "unit": "",
                      "unit_zero": "",
                      "unit_one": "",
                      "min": "",
                      "max": "",
                      "step": "",
                      "type": "string",
                      "role": "",
                      "targetValueId": "",
                      "states": {
                        "auto": "AUTO-MODE",
                        "manual": "MANU-MODE",
                        "boost": "BOOST-MODE"
                      }
                    }
                  }
                },
                "native": {},
                "acl": {
                  "object": 1638,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator",
                  "state": 1638
                },
                "_id": "javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.CONTROL_MODE",
                "type": "state"
              }
              
              1. Szenario: mit Angabe des separat angelegten Datenpunkts in IQontrol:
                4f934b38-cc87-4250-bc89-06d8df601625-image.png
                Modaler Dialog öffnet sich korrekt mit Anzeige der Modi, der Datenpunkt CONTROL_MODE wird aber nicht beschrieben
                1c65de7b-956a-40ac-914c-5281ec5c4a29-image.png

              2. Szenario: in IQontrol wieder zurück auf ursprüglichen FHEM-Datenpunkt
                2bf9d95e-f3da-4dbb-9a21-f6541c9a46b4-image.png
                mit der originalen RAW-Definiton vom FHEM-Adapter:

              fhem.0.Thermostat_Studio_1_Clima.controlMode
              {
                "_id": "fhem.0.Thermostat_Studio_1_Clima.controlMode",
                "type": "state",
                "common": {
                  "name": "Thermostat_Studio_1_Clima controlMode",
                  "type": "string",
                  "role": "state",
                  "read": true,
                  "write": true,
                  "states": {
                    "auto": "auto",
                    "manual": "manual",
                    "boost": "boost",
                    "day": "day",
                    "night": "night"
                  }
                },
                "native": {
                  "Name": "Thermostat_Studio_1_Clima",
                  "Attribute": "controlMode",
                  "possibleSets": true,
                  "states": true,
                  "Readings": true
                },
                "from": "system.adapter.fhem.0",
                "user": "system.user.admin",
                "ts": 1557337130616,
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                }
              }
              

              und entspr. Berechtigungsfreigabe
              118ed07a-c373-4e52-8ba0-380f289be5af-image.png

              Modaler Dialog öffnet sich korrekt mit Anzeige der Modi, der Datenpunkt wird aber nicht beschrieben
              1c65de7b-956a-40ac-914c-5281ec5c4a29-image.png

              Also noch leider keine Erfolgsmeldung. Die Anzeige des Modalen Dialogs funktioniert bereits, es fehlt nur noch der schreibende Teil in den Datenpunkt. Ich würde mich sehr freuen, wenn Du dir das noch einmal anschauen könntest. VG, ok

              O Offline
              O Offline
              ok1
              wrote on last edited by ok1
              #1746

              @ok1 sagte in [Neuer Adapter] Visualisierung iQontrol:

              Also noch leider keine Erfolgsmeldung. Die Anzeige des Modalen Dialogs funktioniert bereits, es fehlt nur noch der schreibende Teil in den Datenpunkt. Ich würde mich sehr freuen, wenn Du dir das noch einmal anschauen könntest. VG, ok

              Ich habe mit der Debug-Console F12 weitergesucht.
              Die Variablenfehler (nicht gesetzt, undefined) treten nicht mehr auf. Aber es scheint noch bei der Erkennung, ob ausschließlich der Datenpunkt CONTROL_MODE vorhanden ist noch etwas nicht zu funktionieren.

              Bei Aufruf des Views wird tatsächlich nur der Datenpunkt

              Fetched Object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.CONTROL_MODE
              

              gelesen.

              Aber bei Aufruf der Dialog-Box versucht IQontrol immer noch die AUTO_MODE, MANU_MODE und BOOST_MODE zu beschreiben, obwohl sie nicht mehr exisitieren.

              46af5ff0-ff4e-484d-af78-e4c2d026b405-image.png
              (siehe die FetchObjects im roten Rahmen, und die setStates mit den Pfeilen wenn man die Buttons klickt)

              Hier das gesamte Log über Aufruf des Views und der Dialog-Box:

              index.js:467 Socket connected - getStarted
              index.js:583 Fetched Object: iqontrol.0.Options
              index.js:522 Options received.
              index.js:644 Fetch object: iqontrol.0.Toolbar.0000__Home
              index.js:650 Fetched Object: iqontrol.0.Toolbar.0000__Home
              index.js:644 Fetch object: iqontrol.0.Toolbar.0001__Rooms
              index.js:650 Fetched Object: iqontrol.0.Toolbar.0001__Rooms
              index.js:644 Fetch object: iqontrol.0.Toolbar.0002__Functions
              index.js:650 Fetched Object: iqontrol.0.Toolbar.0002__Functions
              index.js:526 Toolbar received.
              index.js:543 Toolbar sorted.
              index.js:545 Toolbar rendered.
              index.js:2352 renderView iqontrol.0.Views.Studio, updateOnly: false
              index.js:644 Fetch object: iqontrol.0.Views.Studio
              index.js:555 Home rendered.
              index.js:650 Fetched Object: iqontrol.0.Views.Studio
              index.js:644 Fetch object: iqontrol.0.Views.Studio.0000__Thermostate
              index.js:650 Fetched Object: iqontrol.0.Views.Studio.0000__Thermostate
              index.js:5287 resizeDevicesToFitScreen with zoom-factor 0.9344262295081968
              index.js:644 Fetch object: iqontrol.0.Views.Home
              index.js:3407 12 states fetched while rendering view. Updating view.
              index.js:2352 renderView iqontrol.0.Views.Studio, updateOnly: updateOnlyAfterFetchingStatesWhileRenderingView
              index.js:644 Fetch object: fhem.0.Thermostat_Studio_1_Clima.desired-temp
              index.js:644 Fetch object: fhem.0.Thermostat_Studio_1_Clima.measured-temp
              index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.CONTROL_MODE
              index.js:644 Fetch object: fhem.0.Thermostat_Studio_1_Clima.boostTime
              index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioPartyModus
              index.js:644 Fetch object: fhem.0.Thermostat_Studio_1.battery
              index.js:644 Fetch object: fhem.0.Thermostat_Studio_1.Activity
              index.js:650 Fetched Object: iqontrol.0.Views.Home
              index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1_Clima.desired-temp
              index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1_Clima.measured-temp
              index.js:650 Fetched Object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.CONTROL_MODE
              index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1_Clima.boostTime
              index.js:650 Fetched Object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioPartyModus
              index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1.battery
              index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1.Activity
              index.js:3431 Starting marquee observer
              index.js:644 Fetch object: iqontrol.0.Views.Home.0000__ioBroker uptime
              index.js:650 Fetched Object: iqontrol.0.Views.Home.0000__ioBroker uptime
              index.js:644 Fetch object: iqontrol.0.Views.Functions
              index.js:654 Object not found
              index.js:549 Toolbar Pressuremenus created
              index.js:3489 PRESSURE start
              index.js:3514 	PRESSURE change 0.02|0
              index.js:3514 	PRESSURE change 0.04|0.02
              index.js:3514 	PRESSURE change 0.06|0.04
              index.js:3514 	PRESSURE change 0.08|0.06
              index.js:3514 	PRESSURE change 0.1|0.08
              index.js:3514 	PRESSURE change 0.12000000000000001|0.1
              index.js:3514 	PRESSURE change 0.14|0.12000000000000001
              index.js:3514 	PRESSURE change 0.16|0.14
              index.js:3514 	PRESSURE change 0.18|0.16
              index.js:3472 CLICK
              index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.MANU_MODE
              index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.AUTO_MODE
              index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.BOOST_MODE
              index.js:644 Fetch object: fhem.0.Thermostat_Studio_1_Clima.ValvePosition
              index.js:654 Object not found
              index.js:3504 PRESSURE end
              index.js:654 Object not found
              index.js:654 Object not found
              index.js:5101 4 additional states fetched while rendering dialog.
              index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1_Clima.ValvePosition
              index.js:692 >>>>>> setState javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.AUTO_MODE: true --> true
              index.js:720        converted state to string. New value is: true
              index.js:1238 >> ack: false val: true newVal: true
              index.js:1238 >> ack: false val: true newVal: true
              index.js:692 >>>>>> setState javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.MANU_MODE: 5 --> 5
              index.js:720        converted state to string. New value is: 5
              index.js:1238 >> ack: false val: 5 newVal: 5
              index.js:1238 >> ack: false val: 5 newVal: 5
              index.js:692 >>>>>> setState javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.BOOST_MODE: true --> true
              index.js:720        converted state to string. New value is: true
              index.js:1238 >> ack: false val: true newVal: true
              index.js:1238 >> ack: false val: true newVal: true
              index.js:784 << preventUpdate dexpired.
              index.js:784 << preventUpdate dexpired.
              index.js:784 << preventUpdate dexpired.
              
              

              VG,ok

              s.bormannS 1 Reply Last reply
              0
              • L luder

                Hallo,

                ich lese hier schon länger intensiv mit, den Adapter finde ich wirklich sehr gelungen.
                Z.Zt. verwende ich eine Oberfläche Vis im "Material Design" von Uhula .

                Stelle mir jetzt die Frage ob ich umstellen sollte, 2 Oberflächen parallel wollte ich nicht verwenden.
                Bevor ich umsteige noch ein paar kurze Fragen:

                • ist geplant noch weitere Grundkacheln (z.B. 3fache Breite einer aktuellen) zu erstellen, dachte z.B. an eine Uhr, Wetterinfos, usw.
                • gibt es eine Möglichkeit eine Kachel mit einem Link zu einer anderen Seite zu setzen
                • kann man in Zukunft ggf. auch Bilder von einer Webcam darstellen

                Brauche das alles nicht Morgen, doch bevor ich umstelle wäre es interesant zu wissen ob sowas überhaupt geplant ist.

                VG
                luder

                Marco LaserM Offline
                Marco LaserM Offline
                Marco Laser
                wrote on last edited by
                #1747

                @luder also zu dem ersten kann ich dir leider nix sagen, aber das zweite geht definitiv heute schon, als pop up oder in neuem Tab/Fenster und das dritte müsste auch gehen.

                1 Reply Last reply
                0
                • M mucki

                  @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

                  ype auf booelan fest. Nicht invertieren. D

                  Also nur so? Damit erscheint leider ebenfalls immer das Symbol mit der schwachen Batterie (ob invertiert oder nicht).
                  Bildschirmfoto 2019-09-14 um 14.10.15.png

                  s.bormannS Offline
                  s.bormannS Offline
                  s.bormann
                  Most Active
                  wrote on last edited by
                  #1748

                  @mucki sagte in [Neuer Adapter] Visualisierung iQontrol:

                  @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

                  ype auf booelan fest. Nicht invertieren. D

                  Also nur so? Damit erscheint leider ebenfalls immer das Symbol mit der schwachen Batterie (ob invertiert oder nicht).
                  Bildschirmfoto 2019-09-14 um 14.10.15.png

                  Habe in der neuen 0.2.3 ein Handling für diesen seltsamen states-string eingebaut. Vielleicht lag es daran?
                  Deaktiviere bitte noch mal den custom-dialog und speichere. Dann versuche noch einmal den type auf boolean festzulegen.
                  Klappt es jetzt?

                  1 Reply Last reply
                  0
                  • O ok1

                    @ok1 sagte in [Neuer Adapter] Visualisierung iQontrol:

                    Also noch leider keine Erfolgsmeldung. Die Anzeige des Modalen Dialogs funktioniert bereits, es fehlt nur noch der schreibende Teil in den Datenpunkt. Ich würde mich sehr freuen, wenn Du dir das noch einmal anschauen könntest. VG, ok

                    Ich habe mit der Debug-Console F12 weitergesucht.
                    Die Variablenfehler (nicht gesetzt, undefined) treten nicht mehr auf. Aber es scheint noch bei der Erkennung, ob ausschließlich der Datenpunkt CONTROL_MODE vorhanden ist noch etwas nicht zu funktionieren.

                    Bei Aufruf des Views wird tatsächlich nur der Datenpunkt

                    Fetched Object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.CONTROL_MODE
                    

                    gelesen.

                    Aber bei Aufruf der Dialog-Box versucht IQontrol immer noch die AUTO_MODE, MANU_MODE und BOOST_MODE zu beschreiben, obwohl sie nicht mehr exisitieren.

                    46af5ff0-ff4e-484d-af78-e4c2d026b405-image.png
                    (siehe die FetchObjects im roten Rahmen, und die setStates mit den Pfeilen wenn man die Buttons klickt)

                    Hier das gesamte Log über Aufruf des Views und der Dialog-Box:

                    index.js:467 Socket connected - getStarted
                    index.js:583 Fetched Object: iqontrol.0.Options
                    index.js:522 Options received.
                    index.js:644 Fetch object: iqontrol.0.Toolbar.0000__Home
                    index.js:650 Fetched Object: iqontrol.0.Toolbar.0000__Home
                    index.js:644 Fetch object: iqontrol.0.Toolbar.0001__Rooms
                    index.js:650 Fetched Object: iqontrol.0.Toolbar.0001__Rooms
                    index.js:644 Fetch object: iqontrol.0.Toolbar.0002__Functions
                    index.js:650 Fetched Object: iqontrol.0.Toolbar.0002__Functions
                    index.js:526 Toolbar received.
                    index.js:543 Toolbar sorted.
                    index.js:545 Toolbar rendered.
                    index.js:2352 renderView iqontrol.0.Views.Studio, updateOnly: false
                    index.js:644 Fetch object: iqontrol.0.Views.Studio
                    index.js:555 Home rendered.
                    index.js:650 Fetched Object: iqontrol.0.Views.Studio
                    index.js:644 Fetch object: iqontrol.0.Views.Studio.0000__Thermostate
                    index.js:650 Fetched Object: iqontrol.0.Views.Studio.0000__Thermostate
                    index.js:5287 resizeDevicesToFitScreen with zoom-factor 0.9344262295081968
                    index.js:644 Fetch object: iqontrol.0.Views.Home
                    index.js:3407 12 states fetched while rendering view. Updating view.
                    index.js:2352 renderView iqontrol.0.Views.Studio, updateOnly: updateOnlyAfterFetchingStatesWhileRenderingView
                    index.js:644 Fetch object: fhem.0.Thermostat_Studio_1_Clima.desired-temp
                    index.js:644 Fetch object: fhem.0.Thermostat_Studio_1_Clima.measured-temp
                    index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.CONTROL_MODE
                    index.js:644 Fetch object: fhem.0.Thermostat_Studio_1_Clima.boostTime
                    index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioPartyModus
                    index.js:644 Fetch object: fhem.0.Thermostat_Studio_1.battery
                    index.js:644 Fetch object: fhem.0.Thermostat_Studio_1.Activity
                    index.js:650 Fetched Object: iqontrol.0.Views.Home
                    index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1_Clima.desired-temp
                    index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1_Clima.measured-temp
                    index.js:650 Fetched Object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.CONTROL_MODE
                    index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1_Clima.boostTime
                    index.js:650 Fetched Object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioPartyModus
                    index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1.battery
                    index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1.Activity
                    index.js:3431 Starting marquee observer
                    index.js:644 Fetch object: iqontrol.0.Views.Home.0000__ioBroker uptime
                    index.js:650 Fetched Object: iqontrol.0.Views.Home.0000__ioBroker uptime
                    index.js:644 Fetch object: iqontrol.0.Views.Functions
                    index.js:654 Object not found
                    index.js:549 Toolbar Pressuremenus created
                    index.js:3489 PRESSURE start
                    index.js:3514 	PRESSURE change 0.02|0
                    index.js:3514 	PRESSURE change 0.04|0.02
                    index.js:3514 	PRESSURE change 0.06|0.04
                    index.js:3514 	PRESSURE change 0.08|0.06
                    index.js:3514 	PRESSURE change 0.1|0.08
                    index.js:3514 	PRESSURE change 0.12000000000000001|0.1
                    index.js:3514 	PRESSURE change 0.14|0.12000000000000001
                    index.js:3514 	PRESSURE change 0.16|0.14
                    index.js:3514 	PRESSURE change 0.18|0.16
                    index.js:3472 CLICK
                    index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.MANU_MODE
                    index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.AUTO_MODE
                    index.js:644 Fetch object: javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.BOOST_MODE
                    index.js:644 Fetch object: fhem.0.Thermostat_Studio_1_Clima.ValvePosition
                    index.js:654 Object not found
                    index.js:3504 PRESSURE end
                    index.js:654 Object not found
                    index.js:654 Object not found
                    index.js:5101 4 additional states fetched while rendering dialog.
                    index.js:650 Fetched Object: fhem.0.Thermostat_Studio_1_Clima.ValvePosition
                    index.js:692 >>>>>> setState javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.AUTO_MODE: true --> true
                    index.js:720        converted state to string. New value is: true
                    index.js:1238 >> ack: false val: true newVal: true
                    index.js:1238 >> ack: false val: true newVal: true
                    index.js:692 >>>>>> setState javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.MANU_MODE: 5 --> 5
                    index.js:720        converted state to string. New value is: 5
                    index.js:1238 >> ack: false val: 5 newVal: 5
                    index.js:1238 >> ack: false val: 5 newVal: 5
                    index.js:692 >>>>>> setState javascript.0.Heizungssteuerung.IQontrolThermostatStudioControlMode.BOOST_MODE: true --> true
                    index.js:720        converted state to string. New value is: true
                    index.js:1238 >> ack: false val: true newVal: true
                    index.js:1238 >> ack: false val: true newVal: true
                    index.js:784 << preventUpdate dexpired.
                    index.js:784 << preventUpdate dexpired.
                    index.js:784 << preventUpdate dexpired.
                    
                    

                    VG,ok

                    s.bormannS Offline
                    s.bormannS Offline
                    s.bormann
                    Most Active
                    wrote on last edited by
                    #1749

                    @ok1 So neue Version 0.2.3 ist online - nächster Versuch mit dem CONTROL_MODE.... Ich hoffe, es klappt! Sorry für dieses try'n'error.

                    dslraserD O 3 Replies Last reply
                    0
                    • s.bormannS s.bormann

                      @ok1 So neue Version 0.2.3 ist online - nächster Versuch mit dem CONTROL_MODE.... Ich hoffe, es klappt! Sorry für dieses try'n'error.

                      dslraserD Offline
                      dslraserD Offline
                      dslraser
                      Forum Testing Most Active
                      wrote on last edited by
                      #1750

                      @s-bormann sagte in [Neuer Adapter] Visualisierung iQontrol:

                      CONTROL_MODE.

                      bei mir funktioniert es nun. Es wird umgeschaltet.

                      Bildschirmfoto 2019-09-15 um 09.50.54.png

                      Jetzt eine neue Frage. Wenn ich den BOOST_STATE hinzufüge, dann geht der Dialog nicht auf ?
                      (HMIP)

                      {
                       "type": "state",
                       "common": {
                         "def": false,
                         "type": "boolean",
                         "read": false,
                         "write": true,
                         "role": "switch.boost",
                         "name": "Heizung Wohnzimmer INT0000001:1.BOOST_MODE"
                       },
                       "native": {
                         "MIN": false,
                         "OPERATIONS": 6,
                         "MAX": true,
                         "FLAGS": 1,
                         "ID": "BOOST_MODE",
                         "TYPE": "BOOL",
                         "DEFAULT": false,
                         "CONTROL": "HEATING_CONTROL_HMIP.BOOST_MODE"
                       },
                       "from": "system.adapter.hm-rpc.2",
                       "user": "system.user.admin",
                       "ts": 1568532780430,
                       "_id": "hm-rpc.2.INT0000001.1.BOOST_MODE",
                       "acl": {
                         "object": 1636,
                         "state": 1636,
                         "owner": "system.user.admin",
                         "ownerGroup": "system.group.administrator"
                       }
                      }
                      

                      s.bormannS 1 Reply Last reply
                      0
                      • s.bormannS s.bormann

                        @ok1 So neue Version 0.2.3 ist online - nächster Versuch mit dem CONTROL_MODE.... Ich hoffe, es klappt! Sorry für dieses try'n'error.

                        dslraserD Offline
                        dslraserD Offline
                        dslraser
                        Forum Testing Most Active
                        wrote on last edited by dslraser
                        #1751

                        @s-bormann
                        hier noch aus der Console.

                        Mit hinzugefügten Boost_Staate

                        Bildschirmfoto 2019-09-15 um 10.03.13.png

                        ohne Boost_State, aber nach dem aktualisieren der Seite (automatik und manuall schalten funktioniert, es wird anscheinend nach boost_state gesucht, aber nicht gefunden ? )

                        Bildschirmfoto 2019-09-15 um 10.13.39.png

                        s.bormannS 1 Reply Last reply
                        0
                        • s.bormannS s.bormann

                          @ok1 So neue Version 0.2.3 ist online - nächster Versuch mit dem CONTROL_MODE.... Ich hoffe, es klappt! Sorry für dieses try'n'error.

                          O Offline
                          O Offline
                          ok1
                          wrote on last edited by
                          #1752

                          @s-bormann
                          ja, bei mir wird der Datenpunkt auch geschrieben ! Allerdings nur wenn er auch exakt CONTROL_MODE heisst.

                          Bei dem von mir selbst ausserhalb von FHEM angelegten Datenpunkts (weiter oben im Thread unter Szenario 1)
                          0c19806b-e79f-4e2b-b96a-aeb0976b67ff-image.png
                          funktioniert es. Dort habe ich den Datenpunkt genauso benannt.
                          Bei Wahl des entsprechenden vom FHEM-Adapter erzeugten Datenpunkts in FHEM (Szenario 2 == Normalfall)
                          99a455c1-5fee-44dd-ad73-4fca3b995f6b-image.png
                          liest IQontrol nicht den tatsächlichen Namen des Datenpunktes aus der IQontrol-Config, sondern überschreibt den Namen. Aus "controlMode" wird dann "CONTROL_MODE", was zu einem "undefined" Fehler im Javascript führt.
                          33294e28-fa9b-498e-a762-1a177fd94251-image.png

                          Also nur noch eine Kleinigkeit und dann sollte es funktionieren .... VG, ok

                          s.bormannS 1 Reply Last reply
                          0
                          • dslraserD Offline
                            dslraserD Offline
                            dslraser
                            Forum Testing Most Active
                            wrote on last edited by
                            #1753

                            @s-bormann

                            ich habe eben eine ganze Weile gesucht, warum ein neuer Button (Knopf) plötzlich anders funktioniert als alle anderen die ich bisher erstellt habe.

                            das steht bei allen "alten" Button die ich bisher erstellt habe.

                            javascript.0.01Heiko.Eigene_Datenpunkte.05Telegram.Eingangskamera: true --> true
                            index.js:720        converted state to boolean. New value is: true
                            

                            Bisher habe ich alle Button auf wurde aktualisiert in Blockly getriggert. Bisher habe ich auch nur Button gesehen die immer true sind und quasi nur aktualisiert werden.

                            In einem neuem Blockly (wo der Button exakt genau so erstellt wurde wie alle anderen vorher auch)
                            macht iQontol plötzlich das hier

                            javascript.0.01Heiko.Eigene_Datenpunkte.05Telegram.Standort_Heiko: true --> 
                            index.js:720        converted state to boolean. New value is: false
                            

                            Warum ist das jetzt so ?

                            Wenn ich jetzt auf wurde aktualisiert im Blockly triggere, dann wird zweimal aktualisiert, weil einmal von false auf true (converted) und dann wieder auf false.

                            Bug oder gewollt ?

                            s.bormannS 1 Reply Last reply
                            0
                            • dslraserD dslraser

                              @s-bormann

                              ich habe eben eine ganze Weile gesucht, warum ein neuer Button (Knopf) plötzlich anders funktioniert als alle anderen die ich bisher erstellt habe.

                              das steht bei allen "alten" Button die ich bisher erstellt habe.

                              javascript.0.01Heiko.Eigene_Datenpunkte.05Telegram.Eingangskamera: true --> true
                              index.js:720        converted state to boolean. New value is: true
                              

                              Bisher habe ich alle Button auf wurde aktualisiert in Blockly getriggert. Bisher habe ich auch nur Button gesehen die immer true sind und quasi nur aktualisiert werden.

                              In einem neuem Blockly (wo der Button exakt genau so erstellt wurde wie alle anderen vorher auch)
                              macht iQontol plötzlich das hier

                              javascript.0.01Heiko.Eigene_Datenpunkte.05Telegram.Standort_Heiko: true --> 
                              index.js:720        converted state to boolean. New value is: false
                              

                              Warum ist das jetzt so ?

                              Wenn ich jetzt auf wurde aktualisiert im Blockly triggere, dann wird zweimal aktualisiert, weil einmal von false auf true (converted) und dann wieder auf false.

                              Bug oder gewollt ?

                              s.bormannS Offline
                              s.bormannS Offline
                              s.bormann
                              Most Active
                              wrote on last edited by
                              #1754

                              @dslraser sagte in [Neuer Adapter] Visualisierung iQontrol:

                              @s-bormann

                              ich habe eben eine ganze Weile gesucht, warum ein neuer Button (Knopf) plötzlich anders funktioniert als alle anderen die ich bisher erstellt habe.

                              das steht bei allen "alten" Button die ich bisher erstellt habe.

                              javascript.0.01Heiko.Eigene_Datenpunkte.05Telegram.Eingangskamera: true --> true
                              index.js:720        converted state to boolean. New value is: true
                              

                              Bisher habe ich alle Button auf wurde aktualisiert in Blockly getriggert. Bisher habe ich auch nur Button gesehen die immer true sind und quasi nur aktualisiert werden.

                              In einem neuem Blockly (wo der Button exakt genau so erstellt wurde wie alle anderen vorher auch)
                              macht iQontol plötzlich das hier

                              javascript.0.01Heiko.Eigene_Datenpunkte.05Telegram.Standort_Heiko: true --> 
                              index.js:720        converted state to boolean. New value is: false
                              

                              Warum ist das jetzt so ?

                              Wenn ich jetzt auf wurde aktualisiert im Blockly triggere, dann wird zweimal aktualisiert, weil einmal von false auf true (converted) und dann wieder auf false.

                              Bug oder gewollt ?

                              Bug

                              gewollt

                              😉

                              Wird in der nächsten Version gefixed 🙂

                              1 Reply Last reply
                              1
                              • dslraserD dslraser

                                @s-bormann
                                hier noch aus der Console.

                                Mit hinzugefügten Boost_Staate

                                Bildschirmfoto 2019-09-15 um 10.03.13.png

                                ohne Boost_State, aber nach dem aktualisieren der Seite (automatik und manuall schalten funktioniert, es wird anscheinend nach boost_state gesucht, aber nicht gefunden ? )

                                Bildschirmfoto 2019-09-15 um 10.13.39.png

                                s.bormannS Offline
                                s.bormannS Offline
                                s.bormann
                                Most Active
                                wrote on last edited by
                                #1755

                                @dslraser sagte in [Neuer Adapter] Visualisierung iQontrol:

                                @s-bormann
                                hier noch aus der Console.

                                Mit hinzugefügten Boost_Staate

                                Bildschirmfoto 2019-09-15 um 10.03.13.png

                                ohne Boost_State, aber nach dem aktualisieren der Seite (automatik und manuall schalten funktioniert, es wird anscheinend nach boost_state gesucht, aber nicht gefunden ? )

                                Bildschirmfoto 2019-09-15 um 10.13.39.png

                                Hi,
                                kannst Du mal bitte in der Console bei der Fehlermeldung auf das index.js:1223 klicken und schauen, wo genau in der Zeile der Fehler ist? Im Moment sehe ich noch nicht, wo genau der Fehler steckt.

                                dslraserD 1 Reply Last reply
                                0
                                • s.bormannS s.bormann

                                  @dslraser sagte in [Neuer Adapter] Visualisierung iQontrol:

                                  @s-bormann
                                  hier noch aus der Console.

                                  Mit hinzugefügten Boost_Staate

                                  Bildschirmfoto 2019-09-15 um 10.03.13.png

                                  ohne Boost_State, aber nach dem aktualisieren der Seite (automatik und manuall schalten funktioniert, es wird anscheinend nach boost_state gesucht, aber nicht gefunden ? )

                                  Bildschirmfoto 2019-09-15 um 10.13.39.png

                                  Hi,
                                  kannst Du mal bitte in der Console bei der Fehlermeldung auf das index.js:1223 klicken und schauen, wo genau in der Zeile der Fehler ist? Im Moment sehe ich noch nicht, wo genau der Fehler steckt.

                                  dslraserD Offline
                                  dslraserD Offline
                                  dslraser
                                  Forum Testing Most Active
                                  wrote on last edited by
                                  #1756

                                  @s-bormann

                                  function updateState(stateId, ignorePreventUpdate){
                                  	//Invert (ioBroker -> iQontrol - the opposite way is inside setState-Function)
                                  	if(usedObjects[stateId]  && typeof usedObjects[stateId].common !== udef && typeof usedObjects[stateId].common.custom !== udef && typeof usedObjects[stateId].common.custom[namespace] !== udef && typeof usedObjects[stateId].common.custom[namespace].invert !== udef && usedObjects[stateId].common.custom[namespace].invert == true) {
                                  		if(states[stateId] && typeof states[stateId].val !== udef && !states[stateId].isInverted) switch(typeof states[stateId].val){
                                  			case "boolean":
                                  			console.log("Inverting boolean state " + stateId + " from " + states[stateId].val + "...");
                                  			states[stateId].val = !states[stateId].val;
                                  			states[stateId].isInverted = true;
                                  			console.log("...to " + states[stateId].val);
                                  			break;
                                  			
                                  			case "number":
                                  			console.log("Inverting number state " + stateId + " from " + states[stateId].val + "...");
                                  			if(typeof usedObjects[stateId] !== udef && typeof usedObjects[stateId].common.min !== udef) var min = usedObjects[stateId].common.min;
                                  			if(typeof usedObjects[stateId] !== udef && typeof usedObjects[stateId].common.custom !== udef && typeof usedObjects[stateId].common.custom[namespace] !== udef && typeof usedObjects[stateId].common.custom[namespace].min !== udef && usedObjects[stateId].common.custom[namespace].min !== "") result.min = usedObjects[stateId].common.custom[namespace].min;
                                  			if(typeof usedObjects[stateId] !== udef && typeof usedObjects[stateId].common.max !== udef) var max = usedObjects[stateId].common.max;
                                  			if(typeof usedObjects[stateId] !== udef && typeof usedObjects[stateId].common.custom !== udef && typeof usedObjects[stateId].common.custom[namespace] !== udef && typeof usedObjects[stateId].common.custom[namespace].max !== udef && usedObjects[stateId].common.custom[namespace].max !== "") result.max = usedObjects[stateId].common.custom[namespace].max;
                                  			if(typeof min !== udef && typeof max !== udef){
                                  				states[stateId].val = max - (states[stateId].val - min);
                                  				states[stateId].isInverted = true;
                                  				console.log("...to " + states[stateId].val);
                                  			} else {
                                  				console.log("...aborted inverting, because min or max is missing");
                                  			}
                                  			break;
                                  			
                                  			case "string":
                                  			console.log("Inverting string state " + stateId + " is not supported!");
                                  			break;	
                                  
                                  			default:
                                  			console.log("Inverting state " + stateId + " is impossible - type not known: " + typeof states[stateId].val);
                                  		}
                                  	}
                                  	if(preventUpdate[stateId]){
                                  		console.log(">> ack: " + states[stateId].ack + " val: " + states[stateId].val + " newVal: " + preventUpdate[stateId].newVal);
                                  	}
                                  	if (preventUpdate[stateId] && states[stateId].ack && typeof states[stateId].val != udef && states[stateId].val != null && states[stateId].val.toString() == preventUpdate[stateId].newVal.toString()) { //An ack-true value has reached the new value - preventUpdate can be cancelled
                                  		console.log("<< ack-val reached new val: preventUpdate regular ended.");
                                  		$("[data-iQontrol-Device-ID='" + preventUpdate[stateId].deviceId + "'] .iQontrolDeviceLoading").removeClass("active");
                                  		clearTimeout(preventUpdate[stateId].timerId);
                                  		delete preventUpdate[stateId];
                                  	}
                                  	if(viewUpdateFunctions[stateId]) for (i = 0; i < viewUpdateFunctions[stateId].length; i++){
                                  		if(!preventUpdate[stateId] || ignorePreventUpdate) {
                                  			viewUpdateFunctions[stateId][i](stateId);
                                  		}
                                  	}
                                  	if(dialogUpdateFunctions[stateId]) for (i = 0; i < dialogUpdateFunctions[stateId].length; i++){
                                  		if(!preventUpdate[stateId] || ignorePreventUpdate == "ignorePreventUpdateForDialog") {
                                  			dialogUpdateFunctions[stateId][i](stateId);
                                  		}
                                  	}
                                  }
                                  
                                  
                                  s.bormannS 1 Reply Last reply
                                  0
                                  • dslraserD dslraser

                                    @s-bormann

                                    function updateState(stateId, ignorePreventUpdate){
                                    	//Invert (ioBroker -> iQontrol - the opposite way is inside setState-Function)
                                    	if(usedObjects[stateId]  && typeof usedObjects[stateId].common !== udef && typeof usedObjects[stateId].common.custom !== udef && typeof usedObjects[stateId].common.custom[namespace] !== udef && typeof usedObjects[stateId].common.custom[namespace].invert !== udef && usedObjects[stateId].common.custom[namespace].invert == true) {
                                    		if(states[stateId] && typeof states[stateId].val !== udef && !states[stateId].isInverted) switch(typeof states[stateId].val){
                                    			case "boolean":
                                    			console.log("Inverting boolean state " + stateId + " from " + states[stateId].val + "...");
                                    			states[stateId].val = !states[stateId].val;
                                    			states[stateId].isInverted = true;
                                    			console.log("...to " + states[stateId].val);
                                    			break;
                                    			
                                    			case "number":
                                    			console.log("Inverting number state " + stateId + " from " + states[stateId].val + "...");
                                    			if(typeof usedObjects[stateId] !== udef && typeof usedObjects[stateId].common.min !== udef) var min = usedObjects[stateId].common.min;
                                    			if(typeof usedObjects[stateId] !== udef && typeof usedObjects[stateId].common.custom !== udef && typeof usedObjects[stateId].common.custom[namespace] !== udef && typeof usedObjects[stateId].common.custom[namespace].min !== udef && usedObjects[stateId].common.custom[namespace].min !== "") result.min = usedObjects[stateId].common.custom[namespace].min;
                                    			if(typeof usedObjects[stateId] !== udef && typeof usedObjects[stateId].common.max !== udef) var max = usedObjects[stateId].common.max;
                                    			if(typeof usedObjects[stateId] !== udef && typeof usedObjects[stateId].common.custom !== udef && typeof usedObjects[stateId].common.custom[namespace] !== udef && typeof usedObjects[stateId].common.custom[namespace].max !== udef && usedObjects[stateId].common.custom[namespace].max !== "") result.max = usedObjects[stateId].common.custom[namespace].max;
                                    			if(typeof min !== udef && typeof max !== udef){
                                    				states[stateId].val = max - (states[stateId].val - min);
                                    				states[stateId].isInverted = true;
                                    				console.log("...to " + states[stateId].val);
                                    			} else {
                                    				console.log("...aborted inverting, because min or max is missing");
                                    			}
                                    			break;
                                    			
                                    			case "string":
                                    			console.log("Inverting string state " + stateId + " is not supported!");
                                    			break;	
                                    
                                    			default:
                                    			console.log("Inverting state " + stateId + " is impossible - type not known: " + typeof states[stateId].val);
                                    		}
                                    	}
                                    	if(preventUpdate[stateId]){
                                    		console.log(">> ack: " + states[stateId].ack + " val: " + states[stateId].val + " newVal: " + preventUpdate[stateId].newVal);
                                    	}
                                    	if (preventUpdate[stateId] && states[stateId].ack && typeof states[stateId].val != udef && states[stateId].val != null && states[stateId].val.toString() == preventUpdate[stateId].newVal.toString()) { //An ack-true value has reached the new value - preventUpdate can be cancelled
                                    		console.log("<< ack-val reached new val: preventUpdate regular ended.");
                                    		$("[data-iQontrol-Device-ID='" + preventUpdate[stateId].deviceId + "'] .iQontrolDeviceLoading").removeClass("active");
                                    		clearTimeout(preventUpdate[stateId].timerId);
                                    		delete preventUpdate[stateId];
                                    	}
                                    	if(viewUpdateFunctions[stateId]) for (i = 0; i < viewUpdateFunctions[stateId].length; i++){
                                    		if(!preventUpdate[stateId] || ignorePreventUpdate) {
                                    			viewUpdateFunctions[stateId][i](stateId);
                                    		}
                                    	}
                                    	if(dialogUpdateFunctions[stateId]) for (i = 0; i < dialogUpdateFunctions[stateId].length; i++){
                                    		if(!preventUpdate[stateId] || ignorePreventUpdate == "ignorePreventUpdateForDialog") {
                                    			dialogUpdateFunctions[stateId][i](stateId);
                                    		}
                                    	}
                                    }
                                    
                                    
                                    s.bormannS Offline
                                    s.bormannS Offline
                                    s.bormann
                                    Most Active
                                    wrote on last edited by
                                    #1757

                                    @dslraser Mach mal bitte einen Screenshot, statt das raus zu kopieren, denn eigentlich müsste der Fehler rot unterstrichen sein (aktuell weiß ich nur, dass der Fehler in Zeile 1223 steckt, aber nicht, an welcher Stelle in dieser Zeile)

                                    dslraserD 1 Reply Last reply
                                    0
                                    • s.bormannS s.bormann

                                      @dslraser Mach mal bitte einen Screenshot, statt das raus zu kopieren, denn eigentlich müsste der Fehler rot unterstrichen sein (aktuell weiß ich nur, dass der Fehler in Zeile 1223 steckt, aber nicht, an welcher Stelle in dieser Zeile)

                                      dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      wrote on last edited by
                                      #1758

                                      @s-bormann
                                      geht nicht alles drauf, aber hier ist es unterstrichen

                                      Bildschirmfoto 2019-09-15 um 22.03.13.png

                                      s.bormannS 1 Reply Last reply
                                      0
                                      • O ok1

                                        @s-bormann
                                        ja, bei mir wird der Datenpunkt auch geschrieben ! Allerdings nur wenn er auch exakt CONTROL_MODE heisst.

                                        Bei dem von mir selbst ausserhalb von FHEM angelegten Datenpunkts (weiter oben im Thread unter Szenario 1)
                                        0c19806b-e79f-4e2b-b96a-aeb0976b67ff-image.png
                                        funktioniert es. Dort habe ich den Datenpunkt genauso benannt.
                                        Bei Wahl des entsprechenden vom FHEM-Adapter erzeugten Datenpunkts in FHEM (Szenario 2 == Normalfall)
                                        99a455c1-5fee-44dd-ad73-4fca3b995f6b-image.png
                                        liest IQontrol nicht den tatsächlichen Namen des Datenpunktes aus der IQontrol-Config, sondern überschreibt den Namen. Aus "controlMode" wird dann "CONTROL_MODE", was zu einem "undefined" Fehler im Javascript führt.
                                        33294e28-fa9b-498e-a762-1a177fd94251-image.png

                                        Also nur noch eine Kleinigkeit und dann sollte es funktionieren .... VG, ok

                                        s.bormannS Offline
                                        s.bormannS Offline
                                        s.bormann
                                        Most Active
                                        wrote on last edited by
                                        #1759

                                        @ok1 sagte in [Neuer Adapter] Visualisierung iQontrol:

                                        @s-bormann
                                        ja, bei mir wird der Datenpunkt auch geschrieben ! Allerdings nur wenn er auch exakt CONTROL_MODE heisst.

                                        Bei dem von mir selbst ausserhalb von FHEM angelegten Datenpunkts (weiter oben im Thread unter Szenario 1)
                                        0c19806b-e79f-4e2b-b96a-aeb0976b67ff-image.png
                                        funktioniert es. Dort habe ich den Datenpunkt genauso benannt.
                                        Bei Wahl des entsprechenden vom FHEM-Adapter erzeugten Datenpunkts in FHEM (Szenario 2 == Normalfall)
                                        99a455c1-5fee-44dd-ad73-4fca3b995f6b-image.png
                                        liest IQontrol nicht den tatsächlichen Namen des Datenpunktes aus der IQontrol-Config, sondern überschreibt den Namen. Aus "controlMode" wird dann "CONTROL_MODE", was zu einem "undefined" Fehler im Javascript führt.
                                        33294e28-fa9b-498e-a762-1a177fd94251-image.png

                                        Also nur noch eine Kleinigkeit und dann sollte es funktionieren .... VG, ok

                                        Alles klar, stimmt, werde ich in der nächsten Version anpassen.

                                        1 Reply Last reply
                                        0
                                        • dslraserD dslraser

                                          @s-bormann
                                          geht nicht alles drauf, aber hier ist es unterstrichen

                                          Bildschirmfoto 2019-09-15 um 22.03.13.png

                                          s.bormannS Offline
                                          s.bormannS Offline
                                          s.bormann
                                          Most Active
                                          wrote on last edited by
                                          #1760

                                          @dslraser sagte in [Neuer Adapter] Visualisierung iQontrol:

                                          @s-bormann
                                          geht nicht alles drauf, aber hier ist es unterstrichen

                                          Bildschirmfoto 2019-09-15 um 22.03.13.png

                                          Hmm, seltsam. Wenn ich es richtig verstehe, dann ist das Objekt xxx.common.custom zwar definiert (!== "undefined") aber null. Diese Konstellation hatte ich vorher noch nicht - habe aber mal eine Anpassung der Zeile in diese Richtung vorgenommen.

                                          Wenn das so ist, dann wird der Fehler aber auch an anderer Stelle auftreten, denn Zeilen mit exakt diesem Aufbau gibt es in iQontrol haufenweise...

                                          Naja, fixen wir dann alles nach und nach weg 🙂

                                          Neue Version folgt gleich, dann schauen wir mal, ob es dann geht.

                                          dslraserD 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          529

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe