Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. Ich kann keine Homematic Kaneelen zu Enums addieren, nur States

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Ich kann keine Homematic Kaneelen zu Enums addieren, nur States

Geplant Angeheftet Gesperrt Verschoben Error/Bug
9 Beiträge 3 Kommentatoren 1.6k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • V Offline
    V Offline
    vegetto
    schrieb am zuletzt editiert von
    #1

    Hallo,

    vor einige Tagen laufe ich ohne CCU: ich verwende das Raspberry HomeMatic Funkmodul und hmcom.

    Bevor meine Migration hatte ich mit dem hm-rega Adaptors alle meine CCU Räumen in iobroker importiert. Die Importiertierte enum.rooms inkludieren "nur" die Channels, nicht die States.

    Jetzt versuche ich in iobroker neue Homematic Geräten zu meine Räumen zu addieren. Leider kann ich dort keine Channels selektieren, nur die States haben Checkboxes. Das mach danach aber mit meinem JavaScript Problemen.

    Zum Beispiel brauche ich hm-rpc.0.xxxxxx:2 zu der Gruppe zu addieren und nicht hm-rpc.0.xxxxxx:2.SETPOINT.
    827_selectionproblem.png

    1 Antwort Letzte Antwort
    0
    • eric2905E Offline
      eric2905E Offline
      eric2905
      schrieb am zuletzt editiert von
      #2

      Hi,

      moment, verstehe ich Dich richtig:

      Du willst im ioBroker bestimmte Geräte bestimmten Räumen zuordnen?

      Das geht doch, meines Wissens, nur auf der CCU.

      Oder habe ich Dich da jetzt völlig falsch verstanden?

      Gruß,

      Eric

      Roses are red, violets are blue,

      if I listen to metal, my neighbours do too

      1 Antwort Letzte Antwort
      0
      • Jey CeeJ Online
        Jey CeeJ Online
        Jey Cee
        Developer
        schrieb am zuletzt editiert von
        #3

        @Eric: Ganze Geräte lassen sich nicht unter ioBroker hinzufügen, aber die einzelnen Datenpunkte schon.

        @vegetto: Nein zurzeit geht das nicht, man muss alle Datenpunkte einzeln hinzufügen. Was für ein Problem genau hast du?

        Persönlicher Support
        Spenden -> paypal.me/J3YC33

        1 Antwort Letzte Antwort
        0
        • V Offline
          V Offline
          vegetto
          schrieb am zuletzt editiert von
          #4

          Danke für die schnelle Antwort!

          Wenn ich die States addiere, funktioniert danach das $ - Selector in Javascript nicht:

          $('state[id=.SETPOINT](rooms='livingRoom')').each(function(id, i){
                  log(id);
                  //registerTermostat(roomName, id);
              });
          
          

          Ich habe alle States von meinem Thermostat zu der "LivingRoom" Raum addiert, aber das Selector findet es nicht. Für die andere Enums, die ich vom CCU importiert habe, geht es.

          1 Antwort Letzte Antwort
          0
          • Jey CeeJ Online
            Jey CeeJ Online
            Jey Cee
            Developer
            schrieb am zuletzt editiert von
            #5

            Ok, interessant. Ich hab noch nie die Aufzählung in einem Script benutzt.

            Kannst du mir mal den Funktionierenden code posten und etwas erklären damit ich das bei mir nachbauen kann.

            Wäre sehr nett von dir.

            Persönlicher Support
            Spenden -> paypal.me/J3YC33

            1 Antwort Letzte Antwort
            0
            • V Offline
              V Offline
              vegetto
              schrieb am zuletzt editiert von
              #6

              Das komplettes Script ist etwas lang. Es mach das Folgendes:
              <list type="decimal">4. Such alle Thermostanten für jedes Raum in iobroker

              1. Für jedes Thermostat gibt es ein Temperatur abhängig von Haus State (ich habe mein State Machine in anderem Thread gepostet). Setz das SETPOINT für das Thermostat

              2. Findet ob ein Fersternsensor in gleiches Zimmer gibt. Wenn ja, registriere nach Änderungen so das Tempertur gesenkt werden kann, wenn das Fenster auf ist. Ja, dass kann man auch mit eine direkte Verbindung machen aber dann halten die Akus in Thermostat nicht so lang.

              Sag mir bitte, ob Du mehr Info brauchst.

              Danke!

              `var TEMPERATURES_ID="javascript.0.roomTemperatures";
              var STATE_PREVIEW_ID="javascript.0.homeStatePreview"/*homeStatePreview*/;
              var DEFAULT_TEMP=21;
              var OPEN_WINDOW_TEMP=12;
              var ICON="../hm-rpc/icons/42_hm-cc-tc_thumb.png";
              
              //Register all rooms
              rooms = getEnums('rooms');
              for (var i in rooms){
                  var roomName = rooms[i].name;
                  log("ROOM: "+roomName);
                  $('state[id=.SETPOINT](rooms='+roomName+')').each(function(id, i){
                      //log(id);
                      registerTermostat(roomName, id);
                  });
              }
              
              function registerTermostat(roomName, termostatTempId){
                  log("Registering termostat for room "+roomName);
                  //Create grouping states
                  createState(TEMPERATURES_ID, 0 ,true, {role:"roomTemperatures",icon:ICON});
                  var roomTemperatures4Termostat = TEMPERATURES_ID+"."+roomName;
                  createState(roomTemperatures4Termostat, 0, true, {role:"roomTemperatures",icon:ICON});
              
                  //Get the state names from STATE_PREVIEW
                  homeStates = getObject(STATE_PREVIEW_ID).common.states;
                  for (var state in homeStates) {
                      //Create variable to store temperature for this room and state
                      var stateName=TEMPERATURES_ID+"."+roomName+"."+homeStates[state];
                      createState(stateName,
                                  DEFAULT_TEMP,
                                  false,
                                  {role:"roomTemperatures",
                                   unit: "°C",
                                   icon: ICON,
                                   desc: "Temperature for room "+roomName+" and state "+homeStates[state]
                                  });
                      //log("VALUE: "+JSON.stringify(getState(stateName)));
                      //Register for changes in this variable
                      on(stateName, cb(setTemperature));
                  }
              
                  //Register window states
                  var windowIDs = [];
                  $('state[id=.STATE](rooms='+roomName+')').each(function(id, i){
                      var object = getObject(id);
                      if(object.native.CONTROL == "DOOR_SENSOR.STATE") {
                          log("Detected window ("+roomName+"):"+getObject(id).common.name+" - "+id);
                          windowIDs.push(id);
                          on(id, cb(setTemperature));
                      }
                  });
              
                  //Register for changes in home state
                  on(STATE_PREVIEW_ID, cb(setTemperature));
              
                  //Set current temperature for this room
                  setTemperature();
              
                  //Function that sets the temperature for this room
                  function setTemperature(){
                      //Are windows open?
                      var windowsOpen = false;
                      for (var i in windowIDs){
                          windowsOpen |= getState(windowIDs[i]).val;
                      }
              
                      if ( windowsOpen) {
                          log ("Target temp for "+roomName+": "+OPEN_WINDOW_TEMP+" (OPEN WINDOW)");
                          setStateIfChanged(termostatTempId,OPEN_WINDOW_TEMP);
                      } else {
                          //Retrieve target temperature for this state
                          var previewState = getState(STATE_PREVIEW_ID).val;
                          var previewStateName = homeStates[previewState];
                          var targetTemperateState = getState(roomTemperatures4Termostat+"."+previewStateName);
                          //If we just create the state, then it might still not be available -> use DEFAULT_TEMP
                          var targetTemperate = targetTemperateState ? targetTemperateState.val  : DEFAULT_TEMP ;
              
                          //Convert to float
                          targetTemperate = parseFloat(targetTemperate);
              
                          //Set temperature
                          log ("Target temperature for "+roomName+" and previewState "+previewStateName+" is "+targetTemperate);
                          setStateIfChanged(termostatTempId,targetTemperate);
                      }
              
                  }
              
              }` [/i][/i]
              
              1 Antwort Letzte Antwort
              0
              • eric2905E Offline
                eric2905E Offline
                eric2905
                schrieb am zuletzt editiert von
                #7

                @Jey Cee:

                @Eric: Ganze Geräte lassen sich nicht unter ioBroker hinzufügen, aber die einzelnen Datenpunkte schon. `
                Das ist mir schon klar, ich hatte nur gefragt, ob ich das erste Posting richtig verstanden habe.

                @vegetto:

                Haben die anderen Geräte, bei denen es funktioniert, auch einen Unterstrich ("_") im Namen?

                Gruß,

                Eric

                Roses are red, violets are blue,

                if I listen to metal, my neighbours do too

                1 Antwort Letzte Antwort
                0
                • V Offline
                  V Offline
                  vegetto
                  schrieb am zuletzt editiert von
                  #8

                  @eric2905:

                  @Jey Cee:

                  @Eric: Ganze Geräte lassen sich nicht unter ioBroker hinzufügen, aber die einzelnen Datenpunkte schon. `
                  @vegetto:

                  Haben die anderen Geräte, bei denen es funktioniert, auch einen Unterstrich ("_") im Namen?

                  Eric `

                  Ja, haben sie: bei mir heissen sie alle thermostat_ <room name="">Z.B. dieses Raum (von CCU importiert) funktioniert: da sind alle Teilen type="channel".</room>
                  827_enum_works.png

                  1 Antwort Letzte Antwort
                  0
                  • V Offline
                    V Offline
                    vegetto
                    schrieb am zuletzt editiert von
                    #9

                    Ok, ich habe es gefunden: es hat nicht mit Stated oder Kannelen zu tun sondern mit dem Raum ID. Das Problem ist im iobroker admin UI:

                    • das id wird bei Raum addieren/editieren immer zu Kleinschrift geändert. Z.B. mein "Livingroom" würde zu "livingroom" verändert.

                    • der Raum "Name" kann nicht editiert werden: bei mir heisst "Livingroom" und damit passt es nicht mit dem ID. Dann habe ich versucht es zu "livingroom" zu ändern aber das geht nicht: es bleibt "Livingroom".

                    Ich habe iobroker gestoppt, die Räumen in /opt/iobroker/iobroker-data/objects.json editiert, dort die Räumen ID und Nammen in sync gebracht, iobroker gestartet und jetzt läuft alles wieder.

                    Könnte jemand bitte verifizieren, ob das Problem reproduziert werden kann? Dann würde ich ein Defekt aufmachen und vielleicht schauen, ob ich ein Pull Request schaffe.

                    Danke!
                    3476_log.txt

                    1 Antwort Letzte Antwort
                    0
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    670

                    Online

                    32.7k

                    Benutzer

                    82.3k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe