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. ioBroker Allgemein
  4. [Frage] Samsung Klimaanlage Adapter

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

[Frage] Samsung Klimaanlage Adapter

Scheduled Pinned Locked Moved ioBroker Allgemein
36 Posts 17 Posters 7.4k Views 12 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.
  • B bishop

    @peter_b

    soweit komme ich bei mir nicht.
    Ich bekomme

    Z:\ioBroker\homebridge-samsung-airconditioner-master>python Server8889.py
    Traceback (most recent call last):
      File "Server8889.py", line 1, in <module>
        from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
    ModuleNotFoundError: No module named 'BaseHTTPServer'
    
    P Offline
    P Offline
    peter_b
    wrote on last edited by peter_b
    #15

    @bishop
    Ich bin absoluter Anfänger was iobroker betrifft deshalb suche ich hier Hilfe.
    Installiert habe ich homebridge und Plugin nach dieser Anleitung
    https://developer.aliyun.com/mirror/npm/package/homebridge-samsung-smart-aircon/v/0.2.1
    Ich finde sie besser und informativer als die unter dem Link hier im Forum.
    Das Script Server8889.py startet bei mir und horcht, so weit so gut. Nur die Verbindung zum meinem Gerät über curl will nicht klappen.
    Versuche mal die o.g. Anleitung, vielleicht kappt es besser.

    M 1 Reply Last reply
    0
    • P peter_b

      @bishop
      Ich bin absoluter Anfänger was iobroker betrifft deshalb suche ich hier Hilfe.
      Installiert habe ich homebridge und Plugin nach dieser Anleitung
      https://developer.aliyun.com/mirror/npm/package/homebridge-samsung-smart-aircon/v/0.2.1
      Ich finde sie besser und informativer als die unter dem Link hier im Forum.
      Das Script Server8889.py startet bei mir und horcht, so weit so gut. Nur die Verbindung zum meinem Gerät über curl will nicht klappen.
      Versuche mal die o.g. Anleitung, vielleicht kappt es besser.

      M Offline
      M Offline
      mwp007
      wrote on last edited by
      #16

      @peter_b und ?

      Muss mich jetzt auch für ne Klima entscheiden. Die Samsung kann ich schnell haben auf Daikin muss ich warten. Wär gut wenn das Samsung Zeug irgendwie läuft.

      1 Reply Last reply
      0
      • S Offline
        S Offline
        stoepselinho
        wrote on last edited by
        #17

        gibt es hier schon was neues wegen eines Adapters? bekomme das mit Homebridge irgendwie nicht hin

        1 Reply Last reply
        0
        • Mr. BurnsM Offline
          Mr. BurnsM Offline
          Mr. Burns
          wrote on last edited by
          #18

          Meine Samsung Anlage ist über Modbus in ioBroker integriert. Ich nutze ein Multi-Split-Gerät mit einer Kommunikationskarte MIMB13B und einem Intensis Modbus TCP Gateway.

          Kommunikation klappt mit allen Innengeräten hervoragend.
          Ein Adapter, welcher direkt mit dem Samsung Protokoll spricht wäre natürlich deutlich preiswerter und unkomplizierter

          S M 2 Replies Last reply
          0
          • Mr. BurnsM Mr. Burns

            Meine Samsung Anlage ist über Modbus in ioBroker integriert. Ich nutze ein Multi-Split-Gerät mit einer Kommunikationskarte MIMB13B und einem Intensis Modbus TCP Gateway.

            Kommunikation klappt mit allen Innengeräten hervoragend.
            Ein Adapter, welcher direkt mit dem Samsung Protokoll spricht wäre natürlich deutlich preiswerter und unkomplizierter

            S Offline
            S Offline
            stoepselinho
            wrote on last edited by
            #19

            @mr-burns
            meine ist aktuelle nur über WLAN erreichbar mit der smart things app

            1 Reply Last reply
            0
            • Mr. BurnsM Mr. Burns

              Meine Samsung Anlage ist über Modbus in ioBroker integriert. Ich nutze ein Multi-Split-Gerät mit einer Kommunikationskarte MIMB13B und einem Intensis Modbus TCP Gateway.

              Kommunikation klappt mit allen Innengeräten hervoragend.
              Ein Adapter, welcher direkt mit dem Samsung Protokoll spricht wäre natürlich deutlich preiswerter und unkomplizierter

              M Offline
              M Offline
              Mazze
              wrote on last edited by
              #20

              @mr-burns said in [Frage] Samsung Klimaanlage Adapter:

              MIMB13B

              Hej,

              was hat das Modbus gekostet ? und wozu dient die Kommunikationskarte ? Ich finde die für mein Außengerät nicht, kann es sein das die mittlgerweile verbaut sind ?

              Mr. BurnsM 1 Reply Last reply
              0
              • M Mazze

                @mr-burns said in [Frage] Samsung Klimaanlage Adapter:

                MIMB13B

                Hej,

                was hat das Modbus gekostet ? und wozu dient die Kommunikationskarte ? Ich finde die für mein Außengerät nicht, kann es sein das die mittlgerweile verbaut sind ?

                Mr. BurnsM Offline
                Mr. BurnsM Offline
                Mr. Burns
                wrote on last edited by
                #21

                @mazze
                Sorry für die späte Antwort. Die Modbus Kommunikation ist schon unverhältnismäßig teuer.
                https://forum.iobroker.net/topic/2659/samsung-klimaanlage?_=1624459788988

                Die Kommunikationskarte wird benötigt um mit dem (Intesis-Box) Gateway auf den internen Kommunikationsbus von Samsung (F1/F2 zw. Außen- und Innengerät) zuzugreifen.

                Es kann aber sein, da meine Anlage schon etwas älter ist, das diese Kommunikation mittlerweile veraltet ist. Das Modbus bereits integriert ist könnte natürlich sein, kann ich mir aber nicht richtig vorstellen. RS485 und das Modbusprotokoll ist eine Kommunikationsschnittstelle welche für industrielle Anwendungen verwendet wird.

                Sprich am besten mal mit deinem Kältetechniker, dieser kann bei MTF Service (Samsung Partner) anfragen und bekommen im Gegensatz zu Privatpersonen auch Auskunft.

                Gruß

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  Schranzistor
                  wrote on last edited by
                  #22

                  Hi
                  das Thema ist schon etwas älter, aber ich bin bei der suche auf dieses gestoßen.

                  Anscheinend gibt es einige Wege diese in IOB zu integrieren, ist aber mit etwas aufwand verbunden....
                  Dieser weg ist meines Erachtens wirklich einfach.
                  Deswegen wollte ich mal Feedback geben wie ich sie in eingebunden habe.

                  Meine 2 Samsung Windfree Geräte sind in der Smartthings APP und diese lassen sich jetzt über den HAM Adapter mit diesem Plugin Steuern homebridge-samsung-air-conditioner-smart-things
                  Auf dieser Seite ist eigentlich alles recht einfach erklärt.
                  Plugin im HAM installieren und dort dann den Token eintragen, den Rest macht das Plugin.
                  Mann bekommt dann im IOB Objekte zum steuern

                  MFG

                  B M 2 Replies Last reply
                  0
                  • S Schranzistor

                    Hi
                    das Thema ist schon etwas älter, aber ich bin bei der suche auf dieses gestoßen.

                    Anscheinend gibt es einige Wege diese in IOB zu integrieren, ist aber mit etwas aufwand verbunden....
                    Dieser weg ist meines Erachtens wirklich einfach.
                    Deswegen wollte ich mal Feedback geben wie ich sie in eingebunden habe.

                    Meine 2 Samsung Windfree Geräte sind in der Smartthings APP und diese lassen sich jetzt über den HAM Adapter mit diesem Plugin Steuern homebridge-samsung-air-conditioner-smart-things
                    Auf dieser Seite ist eigentlich alles recht einfach erklärt.
                    Plugin im HAM installieren und dort dann den Token eintragen, den Rest macht das Plugin.
                    Mann bekommt dann im IOB Objekte zum steuern

                    MFG

                    B Offline
                    B Offline
                    bishop
                    wrote on last edited by
                    #23

                    @schranzistor
                    Danke für die Info, gleich mal probiert und siehe da DP sind da 🙂

                    Hast du eine Info über die DP, Temp einstellen z.b. funktioniert bei mir nicht.

                    S 1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      stoepselinho
                      wrote on last edited by
                      #24

                      wo bekommt man denn den Token her?

                      B 1 Reply Last reply
                      0
                      • S stoepselinho

                        wo bekommt man denn den Token her?

                        B Offline
                        B Offline
                        bishop
                        wrote on last edited by
                        #25

                        @stoepselinho

                        Hier Installation Punkt 4

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          stoepselinho
                          wrote on last edited by
                          #26

                          aber wie genau macht man das da?
                          ich sehe unter my device die Klimaanlage. ist das dann die Network ID?

                          und was genau muss man in die config.json schreiben?

                          B 1 Reply Last reply
                          0
                          • S stoepselinho

                            aber wie genau macht man das da?
                            ich sehe unter my device die Klimaanlage. ist das dann die Network ID?

                            und was genau muss man in die config.json schreiben?

                            B Offline
                            B Offline
                            bishop
                            wrote on last edited by
                            #27

                            @stoepselinho
                            einfach bei dem Link den ich gepostet habe, bei 4. auf token klicken und sich mit dem SamsungAcc oder Smartthing Acc anmelden.Dann sollte man sich ein Token erstellen lassen können!

                            1 Reply Last reply
                            0
                            • B bishop

                              @schranzistor
                              Danke für die Info, gleich mal probiert und siehe da DP sind da 🙂

                              Hast du eine Info über die DP, Temp einstellen z.b. funktioniert bei mir nicht.

                              S Offline
                              S Offline
                              Schranzistor
                              wrote on last edited by
                              #28

                              @bishop
                              Hi bei mir lassen sich auch nicht alle Punkte steuern.... (vielleicht kommt da noch was)
                              Oder du Fragst mal beim Entwickler nach.

                              Aber für mich reicht der Ein/Aus Punkt "Daweil" vollkommen aus, da ich im Haus Externe Temperatur Sensoren habe,
                              und ich damit recht gut reagieren kann.

                              MFG

                              K 1 Reply Last reply
                              0
                              • S Schranzistor

                                @bishop
                                Hi bei mir lassen sich auch nicht alle Punkte steuern.... (vielleicht kommt da noch was)
                                Oder du Fragst mal beim Entwickler nach.

                                Aber für mich reicht der Ein/Aus Punkt "Daweil" vollkommen aus, da ich im Haus Externe Temperatur Sensoren habe,
                                und ich damit recht gut reagieren kann.

                                MFG

                                K Offline
                                K Offline
                                Koenigpils
                                wrote on last edited by
                                #29

                                @schranzistor

                                Hallo iobroker

                                Ich brauche Hilfe komme alleine nicht weiter.
                                Homebridge mit plugin ist installiert aber ich kann unter Objekte keine Klimaanlage finden.
                                Für Tipps währe ich sehr dankbar.
                                2022-03-30 14:11:42.992 - error: javascript.0 (800) Alias subscription error. Please check your alias definitions: sourceId=system.adapter.ham.0.inputCount, sourceObj={"_id":"system.adapter.ham.0.inputCount","type":"state","common":{"name":"ham.0 events input counter","desc":"State's inputs in 15 seconds","type":"number","read":true,"write":false,"role":"state","unit":"events/15 seconds"},"native":{},"from":"system.adapter.ham.0","ts":1648624294193,"acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"user":"system.user.admin"}
                                2022-03-30 16:02:27.453 - info: host.iobroker-pi "system.adapter.ham.0" enabled
                                2022-03-30 16:02:27.727 - info: host.iobroker-pi instance system.adapter.ham.0 started with pid 11727
                                2022-03-30 16:02:32.348 - info: ham.0 (11727) starting. Version 4.0.2 in /opt/iobroker/node_modules/iobroker.ham, node: v14.19.0, js-controller: 4.0.21
                                2022-03-30 16:02:32.406 - info: ham.0 (11727) Need to install/update homebridge@1.3.4
                                2022-03-30 16:02:32.409 - info: ham.0 (11727) npm install homebridge@1.3.4 --production --loglevel error (System call)
                                2022-03-30 16:03:46.259 - info: ham.0 (11727) + homebridge@1.3.4
                                added 291 packages from 163 contributors and audited 292 packages in 67.465s

                                2022-03-30 16:03:47.664 - info: ham.0 (11727)
                                50 packages are looking for funding
                                run npm fund for details

                                2022-03-30 16:03:47.668 - info: ham.0 (11727) found 0 vulnerabilities

                                2022-03-30 16:03:47.737 - info: ham.0 (11727) Install/Update the following Libraries: homebridge-samsung-air-conditioner-smart-things
                                2022-03-30 16:03:47.739 - info: ham.0 (11727) Install/Update homebridge-samsung-air-conditioner-smart-things
                                2022-03-30 16:03:47.740 - info: ham.0 (11727) All Libraries installed/updated
                                2022-03-30 16:13:59.632 - info: host.iobroker-pi stopInstance system.adapter.ham.0 (force=false, process=true)
                                2022-03-30 16:13:59.648 - info: ham.0 (11727) Got terminate signal TERMINATE_YOURSELF
                                2022-03-30 16:13:59.649 - info: host.iobroker-pi stopInstance system.adapter.ham.0 send kill signal
                                2022-03-30 16:13:59.653 - info: ham.0 (11727) cleaned everything up...
                                2022-03-30 16:13:59.668 - info: ham.0 (11727) terminating
                                2022-03-30 16:13:59.671 - info: ham.0 (11727) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                                2022-03-30 16:14:00.315 - info: host.iobroker-pi instance system.adapter.ham.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
                                2022-03-30 16:14:02.798 - info: host.iobroker-pi instance system.adapter.ham.0 started with pid 12639
                                2022-03-30 16:14:08.197 - info: ham.0 (12639) starting. Version 4.0.2 in /opt/iobroker/node_modules/iobroker.ham, node: v14.19.0, js-controller: 4.0.21
                                2022-03-30 16:14:08.286 - info: ham.0 (12639) Need to install/update homebridge@1.3.4
                                2022-03-30 16:14:08.294 - info: ham.0 (12639) Install/Update the following Libraries: homebridge-samsung-air-conditioner-smart-things
                                2022-03-30 16:14:08.296 - info: ham.0 (12639) Install/Update homebridge-samsung-air-conditioner-smart-things
                                2022-03-30 16:14:08.299 - info: ham.0 (12639) All Libraries installed/updated
                                2022-03-30 16:39:46.032 - info: info.0 (1204) Reading/updating systemdata.
                                2022-03-30 16:39:47.517 - info: info.0 (1204) cpu Temp res = {"main":55.844,"cores":[],"max":55.844,"socket":[],"chipset":null}
                                2022-03-30 16:47:50.887 - info: admin.0 (2425) Request actual repository...
                                2022-03-30 16:4

                                1 Reply Last reply
                                0
                                • the-masterplanT Offline
                                  the-masterplanT Offline
                                  the-masterplan
                                  wrote on last edited by the-masterplan
                                  #30

                                  Bei mir hat das mit HomeBridge auch irgendwie nicht geklappt. Habe mir dann drei Javascripts mit entsprechenden Datenpunkten erstellt, um die WindFree Anlagen zu steuern. Nutze dafür die API von Samsung. Man muss sich einmal einen Token ("HIER_TOKEN_EINTRAGEN") generieren und zusammen mit der jeweiligen Geräte ID ("ID_DER_JEWEILIGEN_INNENEINHEIT") in den in den Skripten hinterlegen:
                                  Skript zum Abrufen von Daten:

                                  schedule('*/10 * * * * *',function(){
                                  	var request = require("request")
                                  	var settings = {
                                  	  "url": "https://api.smartthings.com/v1/devices/ID_DER_JEWEILIGEN_INNENEINHEIT/status",
                                  	  "method": "GET",
                                  	  "timeout": 0,
                                  	  "headers": {
                                  		"Authorization": "Bearer HIER_TOKEN_EINTRAGEN"
                                  	  }
                                  	};
                                  	request(settings, function(error, response, body){        
                                  		var jsonresult = JSON.parse(body);
                                  		var maincomp = jsonresult.components.main	
                                             setState('0_userdata.0.Klimaanlagen.Gästezimmer.Temperatur', maincomp.temperatureMeasurement.temperature.value, true);
                                  		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.relative_Luftfeuchtigkeit', maincomp.relativeHumidityMeasurement.humidity.value, true);
                                  		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Modus', maincomp.airConditionerMode.airConditionerMode.value, true);
                                             setState('0_userdata.0.Klimaanlagen.Gästezimmer.Soll-Temperatur', maincomp.thermostatCoolingSetpoint.coolingSetpoint.value, true);
                                  		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Zusatz-Modus_(Windfree)', maincomp["custom.airConditionerOptionalMode"].acOptionalMode.value, true);
                                  		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Gebläsegeschwindigkeit', maincomp.airConditionerFanMode.fanMode.value, true);
                                  		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Gebläse-Oszillation', maincomp.fanOscillationMode.fanOscillationMode.value, true);
                                             setState('0_userdata.0.Klimaanlagen.Gästezimmer.Switch', maincomp.switch.switch.value, true);
                                      });
                                  });
                                  

                                  Skript zum schreiben von Daten:

                                  on({id: new RegExp('0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Gebläse-Oszillation' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Gebläsegeschwindigkeit' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Modus' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Soll-Temperatur' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Switch' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Zusatz-Modus_\\(Windfree\\)' + "$"), change: "ne"}, async function (obj) {
                                  
                                  var https = require('follow-redirects').https;
                                  var fs = require('fs');
                                  
                                  var options = {
                                   'method': 'POST',
                                   'hostname': 'api.smartthings.com',
                                   'path': '/v1/devices/ID_DER_JEWEILIGEN_INNENEINHEIT/commands',
                                   'headers': {
                                     'Authorization': 'Bearer  HIER_TOKEN_EINTRAGEN',
                                     'Content-Type': 'application/json'
                                   },
                                   'maxRedirects': 20
                                  };
                                  
                                  var req = https.request(options, function (res) {
                                   var chunks = [];
                                  
                                   res.on("data", function (chunk) {
                                     chunks.push(chunk);
                                   });
                                  
                                   res.on("end", function (chunk) {
                                     var body = Buffer.concat(chunks);
                                   });
                                  
                                   res.on("error", function (error) {
                                     console.error(error);
                                   });
                                  });
                                  var postData = JSON.stringify({
                                   "commands": [
                                     {
                                       "component": "main",
                                       "capability": "thermostatCoolingSetpoint",
                                       "command": "setCoolingSetpoint",
                                       "arguments": [
                                         getState("0_userdata.0.Klimaanlagen.Gästezimmer.Soll-Temperatur").val
                                       ]
                                     },
                                      {
                                       "component": "main",
                                       "capability": "switch",
                                       "command": getState("0_userdata.0.Klimaanlagen.Gästezimmer.Switch").val,
                                       "arguments": [
                                       ]
                                     },
                                          {
                                           "component": "main",
                                           "capability": "airConditionerMode",
                                           "command": "setAirConditionerMode",
                                           "arguments": [
                                                getState("0_userdata.0.Klimaanlagen.Gästezimmer.Modus").val
                                             ]
                                         },
                                     {
                                           "component": "main",
                                           "capability": "airConditionerFanMode",
                                           "command": "setFanMode",
                                           "arguments": [
                                             getState("0_userdata.0.Klimaanlagen.Gästezimmer.Gebläsegeschwindigkeit").val
                                           ]
                                         },
                                          {
                                           "component": "main",
                                           "capability": "custom.airConditionerOptionalMode",
                                           "command": "setAcOptionalMode",
                                           "arguments": [
                                             getState("0_userdata.0.Klimaanlagen.Gästezimmer.Zusatz-Modus_(Windfree)").val
                                           ]
                                         },
                                          {
                                           "component": "main",
                                           "capability": "fanOscillationMode",
                                           "command": "setFanOscillationMode",
                                           "arguments": [
                                            getState("0_userdata.0.Klimaanlagen.Gästezimmer.Gebläse-Oszillation").val
                                           ]
                                         }
                                  
                                   ]
                                  });
                                  
                                  req.write(postData);
                                  
                                  req.end();});
                                  


                                  Skript zur automatischen Ausschalten des Displays der Inneneinheit:

                                  schedule('* * * * *',function(){
                                  var https = require('follow-redirects').https;
                                  var fs = require('fs');
                                  
                                  var options = {
                                   'method': 'POST',
                                   'hostname': 'api.smartthings.com',
                                   'path': '/v1/devices/ID_DER_JEWEILIGEN_INNENEINHEIT/commands',
                                   'headers': {
                                     'Authorization': 'Bearer HIER_TOKEN_EINTRAGEN',
                                     'Content-Type': 'application/json'
                                   },
                                   'maxRedirects': 20
                                  };
                                  
                                  var req = https.request(options, function (res) {
                                   var chunks = [];
                                  
                                   res.on("data", function (chunk) {
                                     chunks.push(chunk);
                                   });
                                  
                                   res.on("end", function (chunk) {
                                     var body = Buffer.concat(chunks);
                                   });
                                  
                                   res.on("error", function (error) {
                                     console.error(error);
                                   });
                                  });
                                  
                                  var postData = JSON.stringify({
                                   "commands": [
                                     {
                                       "component": "main",
                                       "capability": "execute",
                                       "command": "execute",
                                       "arguments": [
                                         "mode/vs/0",
                                         {
                                           "x.com.samsung.da.options": [
                                             "Light_On"
                                                       ]
                                         }
                                       ]
                                     }
                                   ]
                                  });
                                  
                                  req.write(postData);
                                  
                                  req.end();
                                  });
                                  

                                  Ein Datenpunkt sieht dann z.B. so aus:

                                  {
                                   "_id": "0_userdata.0.Klimaanlagen.Gästezimmer.Gebläsegeschwindigkeit",
                                   "type": "state",
                                   "common": {
                                     "name": "Gebläsegeschwindigkeit",
                                     "role": "",
                                     "type": "string",
                                     "desc": "Manuell erzeugt",
                                     "states": "auto:Auto;low:langsam;medium:mittel;high:schnell;turbo:Turbo",
                                     "read": true,
                                     "write": true
                                   }
                                  

                                  Mann muss für jede Inneneinheit alle drei Skripte anlegen und laufen lassen und ebenso die Dtaenpunkte. Sicher nicht die eleganteste Lösung und mit etwas Arbeit für das Anlegen verbunden, aber es funktioniert bei mir seit 2 Jahren sehr zuverlässig. Vielleicht kann man auch einen Adapter draus machen, aber davon habe ich (noch) keine Ahnung.

                                  Die richtigen Bezeichnungen für die unterschiedlichen Modi kann ich bei Bedarf nachliefern, lassen sich aber auch über die Datenpunkte auslesen

                                  Zum Testen von weiteren Befehlen, die ich noch nicht drin habe, kann ich Postman empfehlen. Damit kann man (auch wenn man keine Ahnung von REST hat) recht einfach Befehle an die Anlagen schicken und Daten abrufen.

                                  B 2 Replies Last reply
                                  0
                                  • the-masterplanT the-masterplan

                                    Bei mir hat das mit HomeBridge auch irgendwie nicht geklappt. Habe mir dann drei Javascripts mit entsprechenden Datenpunkten erstellt, um die WindFree Anlagen zu steuern. Nutze dafür die API von Samsung. Man muss sich einmal einen Token ("HIER_TOKEN_EINTRAGEN") generieren und zusammen mit der jeweiligen Geräte ID ("ID_DER_JEWEILIGEN_INNENEINHEIT") in den in den Skripten hinterlegen:
                                    Skript zum Abrufen von Daten:

                                    schedule('*/10 * * * * *',function(){
                                    	var request = require("request")
                                    	var settings = {
                                    	  "url": "https://api.smartthings.com/v1/devices/ID_DER_JEWEILIGEN_INNENEINHEIT/status",
                                    	  "method": "GET",
                                    	  "timeout": 0,
                                    	  "headers": {
                                    		"Authorization": "Bearer HIER_TOKEN_EINTRAGEN"
                                    	  }
                                    	};
                                    	request(settings, function(error, response, body){        
                                    		var jsonresult = JSON.parse(body);
                                    		var maincomp = jsonresult.components.main	
                                               setState('0_userdata.0.Klimaanlagen.Gästezimmer.Temperatur', maincomp.temperatureMeasurement.temperature.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.relative_Luftfeuchtigkeit', maincomp.relativeHumidityMeasurement.humidity.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Modus', maincomp.airConditionerMode.airConditionerMode.value, true);
                                               setState('0_userdata.0.Klimaanlagen.Gästezimmer.Soll-Temperatur', maincomp.thermostatCoolingSetpoint.coolingSetpoint.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Zusatz-Modus_(Windfree)', maincomp["custom.airConditionerOptionalMode"].acOptionalMode.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Gebläsegeschwindigkeit', maincomp.airConditionerFanMode.fanMode.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Gebläse-Oszillation', maincomp.fanOscillationMode.fanOscillationMode.value, true);
                                               setState('0_userdata.0.Klimaanlagen.Gästezimmer.Switch', maincomp.switch.switch.value, true);
                                        });
                                    });
                                    

                                    Skript zum schreiben von Daten:

                                    on({id: new RegExp('0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Gebläse-Oszillation' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Gebläsegeschwindigkeit' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Modus' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Soll-Temperatur' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Switch' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Zusatz-Modus_\\(Windfree\\)' + "$"), change: "ne"}, async function (obj) {
                                    
                                    var https = require('follow-redirects').https;
                                    var fs = require('fs');
                                    
                                    var options = {
                                     'method': 'POST',
                                     'hostname': 'api.smartthings.com',
                                     'path': '/v1/devices/ID_DER_JEWEILIGEN_INNENEINHEIT/commands',
                                     'headers': {
                                       'Authorization': 'Bearer  HIER_TOKEN_EINTRAGEN',
                                       'Content-Type': 'application/json'
                                     },
                                     'maxRedirects': 20
                                    };
                                    
                                    var req = https.request(options, function (res) {
                                     var chunks = [];
                                    
                                     res.on("data", function (chunk) {
                                       chunks.push(chunk);
                                     });
                                    
                                     res.on("end", function (chunk) {
                                       var body = Buffer.concat(chunks);
                                     });
                                    
                                     res.on("error", function (error) {
                                       console.error(error);
                                     });
                                    });
                                    var postData = JSON.stringify({
                                     "commands": [
                                       {
                                         "component": "main",
                                         "capability": "thermostatCoolingSetpoint",
                                         "command": "setCoolingSetpoint",
                                         "arguments": [
                                           getState("0_userdata.0.Klimaanlagen.Gästezimmer.Soll-Temperatur").val
                                         ]
                                       },
                                        {
                                         "component": "main",
                                         "capability": "switch",
                                         "command": getState("0_userdata.0.Klimaanlagen.Gästezimmer.Switch").val,
                                         "arguments": [
                                         ]
                                       },
                                            {
                                             "component": "main",
                                             "capability": "airConditionerMode",
                                             "command": "setAirConditionerMode",
                                             "arguments": [
                                                  getState("0_userdata.0.Klimaanlagen.Gästezimmer.Modus").val
                                               ]
                                           },
                                       {
                                             "component": "main",
                                             "capability": "airConditionerFanMode",
                                             "command": "setFanMode",
                                             "arguments": [
                                               getState("0_userdata.0.Klimaanlagen.Gästezimmer.Gebläsegeschwindigkeit").val
                                             ]
                                           },
                                            {
                                             "component": "main",
                                             "capability": "custom.airConditionerOptionalMode",
                                             "command": "setAcOptionalMode",
                                             "arguments": [
                                               getState("0_userdata.0.Klimaanlagen.Gästezimmer.Zusatz-Modus_(Windfree)").val
                                             ]
                                           },
                                            {
                                             "component": "main",
                                             "capability": "fanOscillationMode",
                                             "command": "setFanOscillationMode",
                                             "arguments": [
                                              getState("0_userdata.0.Klimaanlagen.Gästezimmer.Gebläse-Oszillation").val
                                             ]
                                           }
                                    
                                     ]
                                    });
                                    
                                    req.write(postData);
                                    
                                    req.end();});
                                    


                                    Skript zur automatischen Ausschalten des Displays der Inneneinheit:

                                    schedule('* * * * *',function(){
                                    var https = require('follow-redirects').https;
                                    var fs = require('fs');
                                    
                                    var options = {
                                     'method': 'POST',
                                     'hostname': 'api.smartthings.com',
                                     'path': '/v1/devices/ID_DER_JEWEILIGEN_INNENEINHEIT/commands',
                                     'headers': {
                                       'Authorization': 'Bearer HIER_TOKEN_EINTRAGEN',
                                       'Content-Type': 'application/json'
                                     },
                                     'maxRedirects': 20
                                    };
                                    
                                    var req = https.request(options, function (res) {
                                     var chunks = [];
                                    
                                     res.on("data", function (chunk) {
                                       chunks.push(chunk);
                                     });
                                    
                                     res.on("end", function (chunk) {
                                       var body = Buffer.concat(chunks);
                                     });
                                    
                                     res.on("error", function (error) {
                                       console.error(error);
                                     });
                                    });
                                    
                                    var postData = JSON.stringify({
                                     "commands": [
                                       {
                                         "component": "main",
                                         "capability": "execute",
                                         "command": "execute",
                                         "arguments": [
                                           "mode/vs/0",
                                           {
                                             "x.com.samsung.da.options": [
                                               "Light_On"
                                                         ]
                                           }
                                         ]
                                       }
                                     ]
                                    });
                                    
                                    req.write(postData);
                                    
                                    req.end();
                                    });
                                    

                                    Ein Datenpunkt sieht dann z.B. so aus:

                                    {
                                     "_id": "0_userdata.0.Klimaanlagen.Gästezimmer.Gebläsegeschwindigkeit",
                                     "type": "state",
                                     "common": {
                                       "name": "Gebläsegeschwindigkeit",
                                       "role": "",
                                       "type": "string",
                                       "desc": "Manuell erzeugt",
                                       "states": "auto:Auto;low:langsam;medium:mittel;high:schnell;turbo:Turbo",
                                       "read": true,
                                       "write": true
                                     }
                                    

                                    Mann muss für jede Inneneinheit alle drei Skripte anlegen und laufen lassen und ebenso die Dtaenpunkte. Sicher nicht die eleganteste Lösung und mit etwas Arbeit für das Anlegen verbunden, aber es funktioniert bei mir seit 2 Jahren sehr zuverlässig. Vielleicht kann man auch einen Adapter draus machen, aber davon habe ich (noch) keine Ahnung.

                                    Die richtigen Bezeichnungen für die unterschiedlichen Modi kann ich bei Bedarf nachliefern, lassen sich aber auch über die Datenpunkte auslesen

                                    Zum Testen von weiteren Befehlen, die ich noch nicht drin habe, kann ich Postman empfehlen. Damit kann man (auch wenn man keine Ahnung von REST hat) recht einfach Befehle an die Anlagen schicken und Daten abrufen.

                                    B Offline
                                    B Offline
                                    bishop
                                    wrote on last edited by
                                    #31

                                    @maximilian-garbe

                                    hast du aktuell das Script noch am laufen? Ich versuche mich gerade daran, aber wenn ich dein Script zum abrufen der Daten starte bekomme ich ein:

                                    javascript.0
                                    2022-06-10 11:13:00.190	error	Error in request callback: SyntaxError: Unexpected end of JSON input
                                    
                                    schedule('*/10 * * * * *',function(){
                                    	var request = require("request")
                                    	var settings = {
                                    	  "url": "https://api.smartthings.com/v1/devices/8bfb8f48-6b2h-4235-a53c-ab5a58a8abgf/status",
                                    	  "method": "GET",
                                    	  "timeout": 0,
                                    	  "headers": {
                                    		"Authorization": "Bearer ad3ade5e-c833-4559-bc95-d85d4f14928d"
                                    	  }
                                    	};
                                    	request(settings, function(error, response, body){        
                                    		var jsonresult = JSON.parse(body);
                                    		var maincomp = jsonresult.components.main	
                                               setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Temperatur', maincomp.temperatureMeasurement.temperature.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.relative_Luftfeuchtigkeit', maincomp.relativeHumidityMeasurement.humidity.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Modus', maincomp.airConditionerMode.airConditionerMode.value, true);
                                               setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Soll-Temperatur', maincomp.thermostatCoolingSetpoint.coolingSetpoint.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Zusatz-Modus_(Windfree)', maincomp["custom.airConditionerOptionalMode"].acOptionalMode.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Gebläsegeschwindigkeit', maincomp.airConditionerFanMode.fanMode.value, true);
                                    		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Gebläse-Oszillation', maincomp.fanOscillationMode.fanOscillationMode.value, true);
                                               setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Switch', maincomp.switch.switch.value, true);
                                        });
                                    });
                                    

                                    token und id sind geändert!

                                    Centurytt 0C 1 Reply Last reply
                                    0
                                    • the-masterplanT the-masterplan

                                      Bei mir hat das mit HomeBridge auch irgendwie nicht geklappt. Habe mir dann drei Javascripts mit entsprechenden Datenpunkten erstellt, um die WindFree Anlagen zu steuern. Nutze dafür die API von Samsung. Man muss sich einmal einen Token ("HIER_TOKEN_EINTRAGEN") generieren und zusammen mit der jeweiligen Geräte ID ("ID_DER_JEWEILIGEN_INNENEINHEIT") in den in den Skripten hinterlegen:
                                      Skript zum Abrufen von Daten:

                                      schedule('*/10 * * * * *',function(){
                                      	var request = require("request")
                                      	var settings = {
                                      	  "url": "https://api.smartthings.com/v1/devices/ID_DER_JEWEILIGEN_INNENEINHEIT/status",
                                      	  "method": "GET",
                                      	  "timeout": 0,
                                      	  "headers": {
                                      		"Authorization": "Bearer HIER_TOKEN_EINTRAGEN"
                                      	  }
                                      	};
                                      	request(settings, function(error, response, body){        
                                      		var jsonresult = JSON.parse(body);
                                      		var maincomp = jsonresult.components.main	
                                                 setState('0_userdata.0.Klimaanlagen.Gästezimmer.Temperatur', maincomp.temperatureMeasurement.temperature.value, true);
                                      		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.relative_Luftfeuchtigkeit', maincomp.relativeHumidityMeasurement.humidity.value, true);
                                      		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Modus', maincomp.airConditionerMode.airConditionerMode.value, true);
                                                 setState('0_userdata.0.Klimaanlagen.Gästezimmer.Soll-Temperatur', maincomp.thermostatCoolingSetpoint.coolingSetpoint.value, true);
                                      		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Zusatz-Modus_(Windfree)', maincomp["custom.airConditionerOptionalMode"].acOptionalMode.value, true);
                                      		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Gebläsegeschwindigkeit', maincomp.airConditionerFanMode.fanMode.value, true);
                                      		   setState('0_userdata.0.Klimaanlagen.Gästezimmer.Gebläse-Oszillation', maincomp.fanOscillationMode.fanOscillationMode.value, true);
                                                 setState('0_userdata.0.Klimaanlagen.Gästezimmer.Switch', maincomp.switch.switch.value, true);
                                          });
                                      });
                                      

                                      Skript zum schreiben von Daten:

                                      on({id: new RegExp('0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Gebläse-Oszillation' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Gebläsegeschwindigkeit' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Modus' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Soll-Temperatur' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Switch' + "$|" + '0_userdata\\.0\\.Klimaanlagen\\.Gästezimmer\\.Zusatz-Modus_\\(Windfree\\)' + "$"), change: "ne"}, async function (obj) {
                                      
                                      var https = require('follow-redirects').https;
                                      var fs = require('fs');
                                      
                                      var options = {
                                       'method': 'POST',
                                       'hostname': 'api.smartthings.com',
                                       'path': '/v1/devices/ID_DER_JEWEILIGEN_INNENEINHEIT/commands',
                                       'headers': {
                                         'Authorization': 'Bearer  HIER_TOKEN_EINTRAGEN',
                                         'Content-Type': 'application/json'
                                       },
                                       'maxRedirects': 20
                                      };
                                      
                                      var req = https.request(options, function (res) {
                                       var chunks = [];
                                      
                                       res.on("data", function (chunk) {
                                         chunks.push(chunk);
                                       });
                                      
                                       res.on("end", function (chunk) {
                                         var body = Buffer.concat(chunks);
                                       });
                                      
                                       res.on("error", function (error) {
                                         console.error(error);
                                       });
                                      });
                                      var postData = JSON.stringify({
                                       "commands": [
                                         {
                                           "component": "main",
                                           "capability": "thermostatCoolingSetpoint",
                                           "command": "setCoolingSetpoint",
                                           "arguments": [
                                             getState("0_userdata.0.Klimaanlagen.Gästezimmer.Soll-Temperatur").val
                                           ]
                                         },
                                          {
                                           "component": "main",
                                           "capability": "switch",
                                           "command": getState("0_userdata.0.Klimaanlagen.Gästezimmer.Switch").val,
                                           "arguments": [
                                           ]
                                         },
                                              {
                                               "component": "main",
                                               "capability": "airConditionerMode",
                                               "command": "setAirConditionerMode",
                                               "arguments": [
                                                    getState("0_userdata.0.Klimaanlagen.Gästezimmer.Modus").val
                                                 ]
                                             },
                                         {
                                               "component": "main",
                                               "capability": "airConditionerFanMode",
                                               "command": "setFanMode",
                                               "arguments": [
                                                 getState("0_userdata.0.Klimaanlagen.Gästezimmer.Gebläsegeschwindigkeit").val
                                               ]
                                             },
                                              {
                                               "component": "main",
                                               "capability": "custom.airConditionerOptionalMode",
                                               "command": "setAcOptionalMode",
                                               "arguments": [
                                                 getState("0_userdata.0.Klimaanlagen.Gästezimmer.Zusatz-Modus_(Windfree)").val
                                               ]
                                             },
                                              {
                                               "component": "main",
                                               "capability": "fanOscillationMode",
                                               "command": "setFanOscillationMode",
                                               "arguments": [
                                                getState("0_userdata.0.Klimaanlagen.Gästezimmer.Gebläse-Oszillation").val
                                               ]
                                             }
                                      
                                       ]
                                      });
                                      
                                      req.write(postData);
                                      
                                      req.end();});
                                      


                                      Skript zur automatischen Ausschalten des Displays der Inneneinheit:

                                      schedule('* * * * *',function(){
                                      var https = require('follow-redirects').https;
                                      var fs = require('fs');
                                      
                                      var options = {
                                       'method': 'POST',
                                       'hostname': 'api.smartthings.com',
                                       'path': '/v1/devices/ID_DER_JEWEILIGEN_INNENEINHEIT/commands',
                                       'headers': {
                                         'Authorization': 'Bearer HIER_TOKEN_EINTRAGEN',
                                         'Content-Type': 'application/json'
                                       },
                                       'maxRedirects': 20
                                      };
                                      
                                      var req = https.request(options, function (res) {
                                       var chunks = [];
                                      
                                       res.on("data", function (chunk) {
                                         chunks.push(chunk);
                                       });
                                      
                                       res.on("end", function (chunk) {
                                         var body = Buffer.concat(chunks);
                                       });
                                      
                                       res.on("error", function (error) {
                                         console.error(error);
                                       });
                                      });
                                      
                                      var postData = JSON.stringify({
                                       "commands": [
                                         {
                                           "component": "main",
                                           "capability": "execute",
                                           "command": "execute",
                                           "arguments": [
                                             "mode/vs/0",
                                             {
                                               "x.com.samsung.da.options": [
                                                 "Light_On"
                                                           ]
                                             }
                                           ]
                                         }
                                       ]
                                      });
                                      
                                      req.write(postData);
                                      
                                      req.end();
                                      });
                                      

                                      Ein Datenpunkt sieht dann z.B. so aus:

                                      {
                                       "_id": "0_userdata.0.Klimaanlagen.Gästezimmer.Gebläsegeschwindigkeit",
                                       "type": "state",
                                       "common": {
                                         "name": "Gebläsegeschwindigkeit",
                                         "role": "",
                                         "type": "string",
                                         "desc": "Manuell erzeugt",
                                         "states": "auto:Auto;low:langsam;medium:mittel;high:schnell;turbo:Turbo",
                                         "read": true,
                                         "write": true
                                       }
                                      

                                      Mann muss für jede Inneneinheit alle drei Skripte anlegen und laufen lassen und ebenso die Dtaenpunkte. Sicher nicht die eleganteste Lösung und mit etwas Arbeit für das Anlegen verbunden, aber es funktioniert bei mir seit 2 Jahren sehr zuverlässig. Vielleicht kann man auch einen Adapter draus machen, aber davon habe ich (noch) keine Ahnung.

                                      Die richtigen Bezeichnungen für die unterschiedlichen Modi kann ich bei Bedarf nachliefern, lassen sich aber auch über die Datenpunkte auslesen

                                      Zum Testen von weiteren Befehlen, die ich noch nicht drin habe, kann ich Postman empfehlen. Damit kann man (auch wenn man keine Ahnung von REST hat) recht einfach Befehle an die Anlagen schicken und Daten abrufen.

                                      B Offline
                                      B Offline
                                      bishop
                                      wrote on last edited by
                                      #32

                                      @the-masterplan

                                      kannst du mir bitte helfen mit deinem Schreiben Script!?!

                                      er reagiert auf keine änderung der Datenpunkte. Sie werden alle geschrieben und ändern sich auch.
                                      Aber wenn ich den Datenpunkt selber ändere tut sich nichts.

                                      1 Reply Last reply
                                      0
                                      • S Schranzistor

                                        Hi
                                        das Thema ist schon etwas älter, aber ich bin bei der suche auf dieses gestoßen.

                                        Anscheinend gibt es einige Wege diese in IOB zu integrieren, ist aber mit etwas aufwand verbunden....
                                        Dieser weg ist meines Erachtens wirklich einfach.
                                        Deswegen wollte ich mal Feedback geben wie ich sie in eingebunden habe.

                                        Meine 2 Samsung Windfree Geräte sind in der Smartthings APP und diese lassen sich jetzt über den HAM Adapter mit diesem Plugin Steuern homebridge-samsung-air-conditioner-smart-things
                                        Auf dieser Seite ist eigentlich alles recht einfach erklärt.
                                        Plugin im HAM installieren und dort dann den Token eintragen, den Rest macht das Plugin.
                                        Mann bekommt dann im IOB Objekte zum steuern

                                        MFG

                                        M Offline
                                        M Offline
                                        marc_ackermann
                                        wrote on last edited by
                                        #33

                                        @schranzistor ich bekomme es leider nicht gebacken… HAM Adapter installiert, Plugin installiert, Token erstellt und alles aus der Sample Config in die Konfiguration (inkl. Token) kopiert.

                                        Aber irgendwie wird die AC nicht angezeigt. Könntest du freundlicherweise Deine Config hier posten? Es ist schon die Config in den Einstellungen von Adapter oder?IMG_8727.jpeg IMG_8726.jpeg IMG_8725.jpeg IMG_8724.jpeg

                                        1 Reply Last reply
                                        0
                                        • B bishop

                                          @maximilian-garbe

                                          hast du aktuell das Script noch am laufen? Ich versuche mich gerade daran, aber wenn ich dein Script zum abrufen der Daten starte bekomme ich ein:

                                          javascript.0
                                          2022-06-10 11:13:00.190	error	Error in request callback: SyntaxError: Unexpected end of JSON input
                                          
                                          schedule('*/10 * * * * *',function(){
                                          	var request = require("request")
                                          	var settings = {
                                          	  "url": "https://api.smartthings.com/v1/devices/8bfb8f48-6b2h-4235-a53c-ab5a58a8abgf/status",
                                          	  "method": "GET",
                                          	  "timeout": 0,
                                          	  "headers": {
                                          		"Authorization": "Bearer ad3ade5e-c833-4559-bc95-d85d4f14928d"
                                          	  }
                                          	};
                                          	request(settings, function(error, response, body){        
                                          		var jsonresult = JSON.parse(body);
                                          		var maincomp = jsonresult.components.main	
                                                     setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Temperatur', maincomp.temperatureMeasurement.temperature.value, true);
                                          		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.relative_Luftfeuchtigkeit', maincomp.relativeHumidityMeasurement.humidity.value, true);
                                          		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Modus', maincomp.airConditionerMode.airConditionerMode.value, true);
                                                     setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Soll-Temperatur', maincomp.thermostatCoolingSetpoint.coolingSetpoint.value, true);
                                          		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Zusatz-Modus_(Windfree)', maincomp["custom.airConditionerOptionalMode"].acOptionalMode.value, true);
                                          		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Gebläsegeschwindigkeit', maincomp.airConditionerFanMode.fanMode.value, true);
                                          		   setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Gebläse-Oszillation', maincomp.fanOscillationMode.fanOscillationMode.value, true);
                                                     setState('0_userdata.0.Klimaanlagen.Schlafzimmer.Switch', maincomp.switch.switch.value, true);
                                              });
                                          });
                                          

                                          token und id sind geändert!

                                          Centurytt 0C Offline
                                          Centurytt 0C Offline
                                          Centurytt 0
                                          wrote on last edited by Centurytt 0
                                          #34

                                          @bishop

                                          Hast du den Fehler gefunden ? die Frage kann ich aber auch selber beantworten. Das hätte so nie geklappt.

                                          Hier der Code der funktioniert:

                                          const request = require("request");
                                          
                                          // Define your SmartThings API configuration
                                          const smartThingsConfig = {
                                            url: "https://api.smartthings.com/v1/devices/xxxxxx/status",
                                            method: "GET",
                                            timeout: 0,
                                            headers: {
                                              Authorization: "Bearer xxxxxxx",
                                            },
                                          };
                                          
                                          // Function to make the API request and set states
                                          function fetchDataAndSetStates() {
                                            let response; // Declare response variable here
                                          
                                            request(smartThingsConfig, function (error, res, body) {
                                              response = res; // Assign the response to the variable
                                          
                                              if (error) {
                                                console.error("Error making the request:", error);
                                                return;
                                              }
                                          
                                              const statusCode = response.statusCode;
                                              if (statusCode === 401) {
                                                console.error("Unauthorized access: Check your authorization token.");
                                                // You might want to take additional actions here, such as obtaining a new token.
                                              } else if (statusCode !== 200) {
                                                console.error(`Received non-200 status code: ${statusCode}`);
                                                // Handle other non-200 status codes as needed.
                                                return;
                                              }
                                          
                                              try {
                                                const jsonResult = JSON.parse(body);
                                                const mainComp = jsonResult.components.main;
                                          
                                                // Check if the expected properties exist before accessing them
                                                  
                                               setState('0_userdata.0.Klimaanlage.Klima.Temperatur', mainComp.temperatureMeasurement.temperature.value, true);
                                               setState('0_userdata.0.Klimaanlage.Klima.relative_Luftfeuchtigkeit', mainComp.relativeHumidityMeasurement.humidity.value, true);
                                               setState('0_userdata.0.Klimaanlage.Klima.Modus', mainComp.airConditionerMode.airConditionerMode.value, true);
                                               setState('0_userdata.0.Klimaanlage.Klima.Soll-Temperatur', mainComp.thermostatCoolingSetpoint.coolingSetpoint.value, true);
                                               setState('0_userdata.0.Klimaanlage.Klima.Zusatz-Modus_(Windfree)', mainComp["custom.airConditionerOptionalMode"].acOptionalMode.value, true);
                                               setState('0_userdata.0.Klimaanlage.Klima.Gebläsegeschwindigkeit', mainComp.airConditionerFanMode.fanMode.value, true);
                                               setState('0_userdata.0.Klimaanlage.Klima.Gebläse-Oszillation', mainComp.fanOscillationMode.fanOscillationMode.value, true);
                                               setState('0_userdata.0.Klimaanlage.Klima.Switch', mainComp.switch.switch.value, true);
                                          
                                            // Repeat the same checks for other properties...
                                          
                                              } catch (parseError) {
                                                console.error("Error parsing API response as JSON:", parseError);
                                                console.error("Response body:", body); // Log the response body for debugging
                                              }
                                            });
                                          }
                                          
                                          // Schedule the fetchDataAndSetStates function to run every 10 seconds
                                          setInterval(fetchDataAndSetStates, 10000);
                                          
                                          
                                          T 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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          530

                                          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