Skip to content
  • 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
  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.2k

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

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

[Frage] Samsung Klimaanlage Adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
36 Beiträge 17 Kommentatoren 7.4k Aufrufe 12 Watching
  • Ä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.
  • Mr. BurnsM Offline
    Mr. BurnsM Offline
    Mr. Burns
    schrieb am zuletzt editiert von
    #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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #19

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

      1 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Schranzistor
            schrieb am zuletzt editiert von
            #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 Antworten Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                stoepselinho
                schrieb am zuletzt editiert von
                #24

                wo bekommt man denn den Token her?

                B 1 Antwort Letzte Antwort
                0
                • S stoepselinho

                  wo bekommt man denn den Token her?

                  B Offline
                  B Offline
                  bishop
                  schrieb am zuletzt editiert von
                  #25

                  @stoepselinho

                  Hier Installation Punkt 4

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    stoepselinho
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • the-masterplanT Offline
                            the-masterplanT Offline
                            the-masterplan
                            schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                    0
                                    • Centurytt 0C Centurytt 0

                                      @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 Offline
                                      T Offline
                                      ToK
                                      schrieb am zuletzt editiert von
                                      #35

                                      Hi!
                                      Möchte ebenso zwei Samsung Windfree Geräte visualisieren.
                                      Diese sind im Smartthings hinterlegt und in der APP sichtbar und der Token ist angelegt.
                                      Dann den HAM V5.3.1 installiert und nachfolgend unter Homebridge das Plugin samsung-air-conditioner-smart-things wie folgt konfiguriert und installiert.

                                      {
                                          "platform": "homebridge-smartthings.SmartThings",
                                          "name": "homebridge-samsung-air-conditioner-smart-things",
                                          "token": "hier steht der Doken",
                                          "temperatureUnit": "C",
                                          "showHumidity": true,
                                          "windFreeSupported": true
                                      }
                                      

                                      Im IOB bekomme ich keine zusätzlichen Objekte angezeigt.
                                      Wo liegt da mein Fehler ??

                                      1 Antwort Letzte Antwort
                                      0
                                      • T Offline
                                        T Offline
                                        ToK
                                        schrieb am zuletzt editiert von ToK
                                        #36

                                        Offensichtlich funktioniert der samsung-air-conditioner-smart-things seit August 2023 nicht mehr ->
                                        https://github.com/teodoradima/homebridge-samsung-air-conditioner-smart-things/issues
                                        Die Umstellung auf den JS Code von @Centurytt-0 bringt diese Fehlermeldungen im JS Log:
                                        log.PNG
                                        und im Protokoll:

                                        Protokoll.PNG

                                        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
                                        FAQ Cloud / IOT
                                        HowTo: Node.js-Update
                                        HowTo: Backup/Restore
                                        Downloads
                                        BLOG

                                        446

                                        Online

                                        32.4k

                                        Benutzer

                                        81.4k

                                        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
                                        • Aktuell
                                        • Tags
                                        • Ungelesen 0
                                        • Kategorien
                                        • Unreplied
                                        • Beliebt
                                        • GitHub
                                        • Docu
                                        • Hilfe