Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  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.8k

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

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

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.
  • 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
                          • dslraserD dslraser

                            @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 Offline
                            s.bormannS Offline
                            s.bormann
                            Most Active
                            wrote on last edited by s.bormann
                            #1761

                            @dslraser sagte in [Neuer Adapter] Visualisierung iQontrol:

                            @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"
                             }
                            }
                            

                            Achso, trotz des eben besprochenen Fixes der Zeile 1223:
                            Der BOOST_STATE ist nicht der BOOST_MODE (davon hast Du den RAW geschickt).
                            Im BOOST_STATE wird beim HM (nicht-IP) die verbleibende BOOST-Zeit angegeben:

                            996100b1-43e9-4b3c-b99c-2ea1995b1c07-image.png

                            Ich weiß nicht, ob es diesen Datenpunkt bei HM-IP auch gibt??

                            LG

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

                              @dslraser sagte in [Neuer Adapter] Visualisierung iQontrol:

                              @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"
                               }
                              }
                              

                              Achso, trotz des eben besprochenen Fixes der Zeile 1223:
                              Der BOOST_STATE ist nicht der BOOST_MODE (davon hast Du den RAW geschickt).
                              Im BOOST_STATE wird beim HM (nicht-IP) die verbleibende BOOST-Zeit angegeben:

                              996100b1-43e9-4b3c-b99c-2ea1995b1c07-image.png

                              Ich weiß nicht, ob es diesen Datenpunkt bei HM-IP auch gibt??

                              LG

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

                              @s-bormann
                              diese gibt es bei HMIP

                              Bildschirmfoto 2019-09-15 um 22.20.51.png

                              s.bormannS 1 Reply Last reply
                              0
                              • dslraserD dslraser

                                @s-bormann
                                diese gibt es bei HMIP

                                Bildschirmfoto 2019-09-15 um 22.20.51.png

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

                                @dslraser Dann wäre es wohl BOOST_TIME.
                                Echt blöd von EQ3, dass die die Datenpunkte teilweise umbenannt und im Detail anders gestaltet haben beim Vergleich von HM und HM-IP...

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

                                  @dslraser Dann wäre es wohl BOOST_TIME.
                                  Echt blöd von EQ3, dass die die Datenpunkte teilweise umbenannt und im Detail anders gestaltet haben beim Vergleich von HM und HM-IP...

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

                                  @s-bormann
                                  aber Boost, so wie in Deinem Bild (blau=aktiv) bekomme ich auch nicht angezeigt

                                  s.bormannS 1 Reply Last reply
                                  0
                                  • dslraserD dslraser

                                    @s-bormann
                                    aber Boost, so wie in Deinem Bild (blau=aktiv) bekomme ich auch nicht angezeigt

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

                                    @dslraser Wie ist der RAW von CONTROL_MODE?

                                    dslraserD 1 Reply Last reply
                                    0
                                    • s.bormannS Offline
                                      s.bormannS Offline
                                      s.bormann
                                      Most Active
                                      wrote on last edited by
                                      #1766

                                      0.2.4 ist raus.
                                      @dslraser Ich denke, damit geht auch der CONTROL_MODE für HM-IP einschließlich BOOST. Bin man gespannt auf Eure Rückmeldung. Der Teufel steckt ja bekanntlich im Detail :)
                                      VG

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

                                        0.2.4 ist raus.
                                        @dslraser Ich denke, damit geht auch der CONTROL_MODE für HM-IP einschließlich BOOST. Bin man gespannt auf Eure Rückmeldung. Der Teufel steckt ja bekanntlich im Detail :)
                                        VG

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

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

                                        0.2.4 ist raus.
                                        @dslraser Ich denke, damit geht auch der CONTROL_MODE für HM-IP einschließlich BOOST. Bin man gespannt auf Eure Rückmeldung. Der Teufel steckt ja bekanntlich im Detail
                                        VG

                                        ja, der Teufel steckt wie immer im Detail, deshalb zwischendurch auch von mir ein herzliches Dankeschön für Deinen klasse Adapter und deine hartnäckige Arbeit und Zeit, diesen fehlerfrei zu machen ! Es funktioniert jetzt auch bei mir. Sämtliche Modi werden über den FHEM-Datenpunkt controlMode durchgeschaltet.

                                        Zum Thema Partymodus beim Homematic-Thermostat HM-CC-RT-DN habe ich ein kleines Demo-Script geschrieben, wie über einen separaten Datenpunkt der Command-String in der Notation "PARTY_MODE_SUBMIT" zu "controlParty" umgeschrieben werden kann und damit den Party-Modus steuert. Das Script lässt sich natürlich beliebig und allgemeingültig ausbauen, z.B. um sämtliche Party-Modes aller Thermostate zu steuern, usw.

                                        /*Umschreiben des IQontrol PARTY_MODE_SUBMIT String in Homematic controlParty String 
                                            PARTY_MODE_SUBMIT = "partyModeTemperature,StartTime,StartDay,StartMonth,StartYear,StopTime,StopDay,StopMonth,StopYear"
                                            Bsp: PARTY_MODE_SUBMIT=27,1170,15,9,19,1410,15,9,19
                                            controlParty Grad StartDay StartTime StopDay StopTime
                                            Bsp: controlParty 16 06.12.13 16:30 09.12.13 05:00
                                        */ 
                                        
                                        createState('javascript.0.Heizungssteuerung.IQontrolThermostatStudioPartyModus.PARTY_MODE_SUBMIT',false);
                                        
                                        on({id:'javascript.0.Heizungssteuerung.IQontrolThermostatStudioPartyModus.PARTY_MODE_SUBMIT',change:'ne'}, function (obj) {
                                             PartyModeSubmit2ControlParty(); 
                                        });
                                        
                                        
                                        function PartyModeSubmit2ControlParty () {
                                        
                                            var state = getState('javascript.0.Heizungssteuerung.IQontrolThermostatStudioPartyModus.PARTY_MODE_SUBMIT').val;
                                            var PARTY_MODE_SUBMIT = state.split(',');
                                        
                                            var degrees = PARTY_MODE_SUBMIT[0];
                                            var StartDay = PARTY_MODE_SUBMIT[2]+"."+PARTY_MODE_SUBMIT[3] + "."+ PARTY_MODE_SUBMIT[4];
                                            var StartTime = Math.floor(PARTY_MODE_SUBMIT[1]/60) + ":" + PARTY_MODE_SUBMIT[1] % 60;
                                            var StopDay = PARTY_MODE_SUBMIT[6]+"."+PARTY_MODE_SUBMIT[7] + "." + PARTY_MODE_SUBMIT[8];
                                            var StopTime = Math.floor(PARTY_MODE_SUBMIT[5]/60) + ":" + PARTY_MODE_SUBMIT[5] % 60; 
                                            
                                            var controlParty = degrees + " " + StartDay + " " +  StartTime + " " +  StopDay + " " +  StopTime;
                                            console.log("Umrechnung IQontrol Partytime: PARTY_MODE_SUBMIT= " + getState('javascript.0.Heizungssteuerung.IQontrolThermostatStudioPartyModus.PARTY_MODE_SUBMIT').val + " --> controlParty= " + controlParty); 
                                        
                                            setState('fhem.0.Thermostat_Studio_1_Clima.controlParty', controlParty);
                                        }
                                        
                                        

                                        VG,ok

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

                                          @dslraser Wie ist der RAW von CONTROL_MODE?

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

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

                                          @dslraser Wie ist der RAW von CONTROL_MODE?

                                          {
                                           "from": "system.adapter.hm-rpc.2",
                                           "user": "system.user.admin",
                                           "ts": 1568583351760,
                                           "common": {
                                             "name": "Heizung Wohnzimmer INT0000001:1.CONTROL_MODE",
                                             "type": "number",
                                             "role": "indicator",
                                             "def": 0,
                                             "min": 0,
                                             "max": 3,
                                             "read": false,
                                             "write": true,
                                             "custom": {
                                               "iqontrol.0": {
                                                 "enabled": true,
                                                 "readonly": false,
                                                 "invert": false,
                                                 "confirm": false,
                                                 "unit": "",
                                                 "unit_zero": "",
                                                 "unit_one": "",
                                                 "min": 0,
                                                 "max": 3,
                                                 "step": "",
                                                 "type": "number",
                                                 "role": "",
                                                 "targetValueId": "",
                                                 "states": {
                                                   "0": "automatik",
                                                   "1": "manuell"
                                                 }
                                               }
                                             }
                                           },
                                           "native": {
                                             "ID": "CONTROL_MODE",
                                             "TYPE": "INTEGER",
                                             "CONTROL": "HEATING_CONTROL_HMIP.CONTROL_MODE",
                                             "MIN": 0,
                                             "OPERATIONS": 2,
                                             "MAX": 3,
                                             "FLAGS": 1,
                                             "DEFAULT": 0
                                           },
                                           "acl": {
                                             "object": 1636,
                                             "owner": "system.user.admin",
                                             "ownerGroup": "system.group.administrator",
                                             "state": 1636
                                           },
                                           "_id": "hm-rpc.2.INT0000001.1.CONTROL_MODE",
                                           "type": "state"
                                          }
                                          

                                          {
                                           "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": 1568583351763,
                                           "_id": "hm-rpc.2.INT0000001.1.BOOST_MODE",
                                           "acl": {
                                             "object": 1636,
                                             "state": 1636,
                                             "owner": "system.user.admin",
                                             "ownerGroup": "system.group.administrator"
                                           }
                                          }
                                          

                                          {
                                           "type": "state",
                                           "common": {
                                             "def": 0,
                                             "type": "number",
                                             "read": true,
                                             "write": false,
                                             "min": 0,
                                             "max": 2048,
                                             "name": "Heizung Wohnzimmer INT0000001:1.BOOST_TIME"
                                           },
                                           "native": {
                                             "MIN": 0,
                                             "OPERATIONS": 5,
                                             "MAX": 2048,
                                             "FLAGS": 1,
                                             "ID": "BOOST_TIME",
                                             "TYPE": "INTEGER",
                                             "DEFAULT": 0
                                           },
                                           "from": "system.adapter.hm-rpc.2",
                                           "user": "system.user.admin",
                                           "ts": 1568583351761,
                                           "_id": "hm-rpc.2.INT0000001.1.BOOST_TIME",
                                           "acl": {
                                             "object": 1636,
                                             "state": 1636,
                                             "owner": "system.user.admin",
                                             "ownerGroup": "system.group.administrator"
                                           }
                                          }
                                          

                                          CONTOL_MODE funktioniert bei mir. BOOST funktioniert nicht.

                                          s.bormannS 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

                                          791

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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