Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [Adapteranfrage] Orbit B-HYVE Ventil

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Adapteranfrage] Orbit B-HYVE Ventil

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      kenny384 last edited by

      @tazdevil20 Sorry, zu früh geschrieben, ich habe es eben selber gefunden. Active muss man auf "1" setzen. Und ich glaube ich habe auch dein Problem mit der Bewässerungsdauer gelöst. Du musst eigentlich nur den Wert Set-Duration (in Sekunden) hoch setzen. Habe da mal 600 eingetragen, dann lief es auch manuell gestartet 10 Minuten.

      Bildschirmfoto 2020-07-27 um 10.13.16.png

      T HauWi112 2 Replies Last reply Reply Quote 0
      • T
        tazdevil20 @kenny384 last edited by

        @kenny384
        Danke. Mal kurz probiert und Set-Duration auf 3600 gestellt. Interessat ist, dass dann beim Einschalten der Wert Remaining-Duration (das ist der Wert wie lange geöffnet ist) auf 3540 gestellt wird. Die Vorherigen Werte bei mir waren 300/240. Scheinbar wird immer eine Minute abgezogen.

        Wenn ich mit dem Script soweit bin kann ich es gerne bereitstellen. Das muss ich aber noch ordentlich aufräumen und ich suche noch nach der Möglichkeit mir den Wasserverbrauch anzeigen zu lassen.

        K 2 Replies Last reply Reply Quote 0
        • K
          kenny384 @tazdevil20 last edited by

          @tazdevil20 Das mit der remaining duration ist mir auch aufgefallen. Einfache Erklärung habe ich aber auch schon: Wenn die letzte Minute runterläuft, steht das schon auf Null, aber läuft noch die Minute weiter. Also er scheint quasi dafür irgendwie den Minuten-Wert auszulesen (in der letzten Minute dann ja sogesehen 0:59, 0:58 etc.)

          1 Reply Last reply Reply Quote 0
          • K
            kenny384 @tazdevil20 last edited by

            @tazdevil20 sagte in [Adapteranfrage] Orbit B-HYVE Ventil:

            Wenn ich mit dem Script soweit bin kann ich es gerne bereitstellen. Das muss ich aber noch ordentlich aufräumen und ich suche noch nach der Möglichkeit mir den Wasserverbrauch anzeigen zu lassen.

            Das wäre natürlich super. Ich lasse das aktuell über die intelligente Automatik laufen von Orbit. So richtig intelligent agiert die aber nicht, finde ich. Oder sie ist intelligenter als ich und deswegen verstehe ich sie manchmal nicht 😉

            1 Reply Last reply Reply Quote 0
            • B
              backons last edited by

              @tazdevil20 @kenny384 So wie ich sehe habt ihr das meiste ja schon selbst gelöst...

              Mein bewässerungsscript schreibt zuerst einen Wert in Set Duration und dann aktualisiert er den Active Datenpunkt.
              Ich habe das ganz sowohl mit dem genannten Ventil als auch mit der größeren Steuerung mit 6 Ventilen am laufen...

              Tipp am Rande: ich lasse den Ham-Adapter einmal jede Nacht neustarten. Ich hatte teilweise das Phänomen, dass er nach ein paar Tagen nicht mehr reagiert hat oder er die Zeit bei Setduration nicht mehr genommen hat. Das ist seit den täglichen Neustarts weg.

              K 1 Reply Last reply Reply Quote 0
              • K
                kenny384 @backons last edited by

                @backons Ja, danke dir nochmal.
                Was berücksichtigt dein Skript denn so? Idealerweise muss ja irgendwie Wetter/Temperatur und Niederschlag/Bodenfeuchtigkeit rein. Ich habe bisher keine Sensoren im Garten und überlege noch, wie ich am einfachsten eine Lösung schaffe, die nicht nur den Wetterbericht berücksichtigt.

                1 Reply Last reply Reply Quote 0
                • OstfrieseUnterwegs
                  OstfrieseUnterwegs last edited by

                  Habt Ihr nur das Ventil, oder brauchts noch irgendein Gateway?

                  K T 2 Replies Last reply Reply Quote 0
                  • K
                    kenny384 @OstfrieseUnterwegs last edited by

                    @OstfrieseUnterwegs Ich habe auch das Gateway, ich weiß nicht ob das ganze hier auch ohne gehen würde.

                    1 Reply Last reply Reply Quote 0
                    • T
                      tazdevil20 @OstfrieseUnterwegs last edited by

                      @OstfrieseUnterwegs
                      Wenn Du nur das Ventil hast funktioniert das über Bluetooth mit dem Handy über die App.
                      Um es über ioBroker zu steuern ist der Hub zwingend notwendig. Dieser verbindet das Ventil mittels Bluetooth und ist auch gleichzeitig im WLAN.

                      @kenny384
                      Von meinem Script nicht zuviel erwarten. Ich möchte einfach nur die Batterieanzeige noch haben und idealerweise noch wissen wieviel Wasser ich pro Tag "verschwendet" habe.
                      Batterie ist kein Thema. Jedoch kann ich in dem JSON noch nicht sehen wieviel Wasser verbraucht wurde. Auf der Homepage und in der App von Orbit schon. Die Daten müssen entsprechend vorhanden sein.

                      @backons
                      Danke für den Tipp mit dem Neustart. Hatte heute morgen auch das Gefühl (nicht genauer betrachtet), dass ich keine Verbindung mehr zu dem Ventil hatte. Nach einem Neustart (war einfach nur ein Test) schon.

                      Ich habe aktuell auch keine Bodenfeuchtesensoren im Garten. Preisgünstig sind die von xiaomi welche jedoch eigentlich nicht für außen gedacht sind und auch nur mittels Bluetooth und nicht über Zigbee laufen. Ansonsten habe ich mich mal mit einer Eigenbaulösung versucht. Daran bin ich aber gescheitert, da ich zu wenig Löt erfahrung habe.

                      Ich starte über ein Script meine Bewässerung. Habe hinter dem Orbit-Ventil noch vier Magnetventile welche dann die je eine Wasserpipeline versorgen. Diese werden im Abstand von x Minuten abgewechselt. Ich möchte an der Stelle auch keine intelligente Automatisierung, da vorher noch der Mähroboter fahren soll und davor muss der Garten Kinderfrei und aufgeräumt sein.

                      1 Reply Last reply Reply Quote 0
                      • T
                        tazdevil20 last edited by tazdevil20

                        Hi,

                        nach ein paar Schwierigkeiten mit dem Gerät habe ich es halbwegs zufriedenstellend gelöst.
                        Das nur mal nebenbei: Ich habe den Filter ausgebaut und einen Dichtring ohne Filter eingesetzt. Danach haben meine Sprinkler wieder annähernd das gemacht was sie sollten. Problem ist bei mir, dass der Wasserdruck nicht so hoch ist.

                        Das zusätzliche Script zu dem Bedienen ist für meine Bedürfnisse fertig. Ist ganz sicher nicht wirklich gut gebaut und ist auch vieles "geklaut", da ich von Websocket keine Ahnung habe.

                        Es müssen ein paar Parameter manuell im Script gesetzt werden und die Objekte in ioBroker werden auch nicht automatisiert erstellt.

                        Ich habe nur die Dinge herausgepickt welche für mich interessant sind.

                        Es darf natürlich jeder das Script verbessern 😊

                        EDIT: Habe das Script angepasst um die Historie des Ventils komplett auszulesen und als JSON in ein Objekt zu schreiben.
                        EDIT2: Da ich gerade dran bin. Kleine Verbesserung des History-JSON (saubere Sortierung wenn mehrfach am Tag eingeschaltet und Laufzeit nicht in Dezimal dargestellt)

                        /*
                         * orbit.js
                         *
                         * unofficial Orbit Bhyve API module
                         * Bill Church - https://github.com/billchurch/bhyve-mqtt
                         *
                         */
                        
                        //todo implement https://github.com/websockets/ws/wiki/client-auto-reconnect-with-ping-listener---exponential-back-off-timeout
                        
                        const axios = require('axios')
                        const EventEmitter = require('events').EventEmitter
                        const inherits = require('util').inherits
                        const WebSocket = require('ws')
                        const Ajv = require('ajv')
                        let ts = () => new Date().toISOString()
                        
                        var mCLIENT_ONLINE = false
                        var MCLIENT_ONLINE = false
                        var DevicesJSON, WateringJSON, device_id, feed;
                        var obj = [];
                        var objtmp = [];
                        
                        // ************************************************************
                        var man_deviceID = 'Die Device ID des Ventils (zu finden z. B. hier https://techsupport.orbitbhyve.com)'
                        var man_email = 'Orbit eMail-Adresse hier eintragen!'
                        var man_password = 'Orbit Passwort hier eintragen'
                        var wateringJSON_iobroker = 'javascript.0.bHyve.Watering_JSON';
                        // ************************************************************
                        
                        function minTommss(minutes){
                         var sign = minutes < 0 ? "-" : "";
                         var min = Math.floor(Math.abs(minutes));
                         var sec = Math.floor((Math.abs(minutes) * 60) % 60);
                         return sign + (min < 10 ? "0" : "") + min + ":" + (sec < 10 ? "0" : "") + sec;
                        }
                        
                        function Client () {
                          if (!(this instanceof Client)) { return new Client() }
                          EventEmitter.call(this)
                        
                          this.config = {
                            wssURL: undefined,
                            baseURL: undefined,
                            timeout: undefined,
                            email: undefined,
                            password: undefined,
                            debug: undefined
                          }
                          this._token = undefined
                          this._user_id = undefined
                          this._device_id = undefined
                        }
                        inherits(Client, EventEmitter)
                        
                        // first step, get a token and generate an event on success or fail
                        Client.prototype.connect = function (cfg) {
                          this.config.baseURL = cfg.baseURL || 'https://api.orbitbhyve.com'
                          this.config.timeout = cfg.timeout || 10000
                          this.config.email = cfg.email || undefined
                          this.config.password = cfg.password || undefined
                          this.config.wssURL = cfg.wssURL || 'wss://api.orbitbhyve.com/v1/events'
                            this.config.wsTimeout = cfg.wsTimeout || 10000
                          this.config.debug = cfg.debug || true
                          var self = this
                        
                          const getOrbitToken = () => {
                            return new Promise((resolve, reject) => {
                              const instance = axios.create({
                                baseURL: self.config.baseURL,
                                timeout: self.config.timeout
                              })
                              instance.post('/v1/session', {
                                'session': {
                                  'email': self.config.email,
                                  'password': self.config.password
                                }
                              }).then(function (response) {
                                self._token = response.data.orbit_session_token
                                self._user_id = response.data.user_id
                                // config for later sessions
                                self._rest_config = { baseURL: self.config.baseURL, timeout: self.config.timeout, headers: { 'orbit-session-token': self._token } }
                                //if (self.config.debug) log(`${ts()} - response.data: ` + JSON.stringify(response.data))
                                resolve(response)
                              }).catch(function (err) {
                                reject(err)
                              })
                            })
                          }
                        
                          const doAccept = (response) => {
                            //if (self.config.debug) log(`${ts()} - token: ` + self._token + ' My UserID: ' + self._user_id)
                            self.emit('token', self._token)
                            self.emit('user_id', self._user_id)
                          }
                          const doReject = (err) => {
                            if (self.config.debug) log(`${ts()} - error ` + err)
                            self.emit('error', err)
                          }
                        
                          let ost = getOrbitToken()
                          ost.then(doAccept)
                            .catch(doReject)
                        }
                        
                        Client.prototype.devices = function () {
                          var self = this
                        
                          const getDevices = () => {
                            return new Promise((resolve, reject) => {
                              const instance = axios.create(self._rest_config)
                              
                              instance.get('/v1/devices?user_id=' + self._user_id)
                                .then(function (response) {
                                  if (self.config.debug) {
                                    //log(`${ts()} - response.json: ` + JSON.stringify(response.data))
                                    DevicesJSON = response.data
                                  } 
                                  self._device_id = response.data[0].id
                                  device_id = response.data[1].id
                                  
                                  resolve(response)
                                }).catch(function (err) {
                                  reject(err)
                                })
                        
                                instance.get('/v1/watering_events/' + man_deviceID)
                                .then(function (response_watering) {
                                    //log(`${ts()} - response.json - watering_events: ` + JSON.stringify(response.data))
                                    WateringJSON = response_watering.data
                        
                                    for (var i = 0; i < Object.keys(WateringJSON).length; i++) {
                                        objtmp = [];
                                        for (var j = 0; j < Object.keys(WateringJSON[i].irrigation).length; j++) {
                                            let watering_start = formatDate(WateringJSON[i].irrigation[j].start_time, 'DD.MM. hh:mm');
                                            let watering_runtime =  minTommss(parseFloat(Number(parseFloat(WateringJSON[i].irrigation[j].run_time)).toFixed(2)));
                                            let watering_liter = parseFloat(Number((WateringJSON[i].irrigation[j].water_volume_gal)*3.78541).toFixed(2));
                        
                                            feed = {Start: watering_start, Laufzeit: watering_runtime + " min",Liter: watering_liter}
                                            if(j==0) {
                                                objtmp.push(feed);
                                            } else {
                                                objtmp.unshift(feed);
                                            }
                                        };
                                        obj = obj.concat(objtmp)
                                    };
                                    setState(wateringJSON_iobroker, JSON.stringify(obj));
                                    //resolve(response_watering)
                                }).catch(function (err) {
                                  //reject(err)
                                })
                            })
                          }
                        
                          const doAccept = (response) => {
                            //if (self.config.debug) console.log(`${ts()} - response.data2: ` + JSON.stringify(response.data))
                            self.emit('devices', response.data)
                            self.emit('device_id', self._device_id)
                          }
                        
                          const doReject = (err) => {
                            if (self.config.debug) log(`${ts()} - error: ` + err)
                            self.emit('error', err)
                          }
                        
                          let Devices = getDevices()
                          Devices.then(doAccept)
                            .catch(doReject)
                        }
                        
                        Client.prototype.send = function (message) {
                          var self = this
                        
                          self._stream.send(JSON.stringify(message))
                          log('send json: ' + JSON.stringify(message))
                        }
                        
                        Client.prototype.connectStream = function () {
                          var self = this
                        
                          self._stream = new WebSocket(self.config.wssURL, {
                            handshakeTimeout: self.config.wsTimeout
                          })
                        
                          function sendPing() {
                            if (self.config.debug) log(`${ts()} - websocket sending ping`)
                            self._stream.send('{"event":"ping"}')
                            log("ping")
                          }
                        
                          const authenticate = () => {
                            let message = {
                              'event': 'app_connection',
                              'orbit_session_token': self._token
                            }
                        
                            if (self.config.debug) log(`${ts()} - websocket authenticate message: ` + JSON.stringify(message))
                        
                            self._stream.send(JSON.stringify(message))
                            setInterval(sendPing, 25 * 1000)
                          }
                        
                          self._stream.on('open', authenticate)
                        
                          self._stream.on('message', function (data) {
                            self.emit('message', JSON.parse(data))
                          })
                        
                          self._stream.on('error', function (err) {
                            self.emit('error', err)
                          })
                        
                          self._stream.on('close', function (num, reason) {
                            if (self.config.debug) log(`${ts()} - close: ` + num + ' reason: ' + reason)
                          })
                        
                          self._stream.on('ping', function (data) {
                            if (self.config.debug) log(`${ts()} - ping data: ` + data)
                          })
                        
                          self._stream.on('unexpected-response', function (request, response) {
                            console.error(`${ts()} - unexpected-response / request: ` + request + ' response: ' + response)
                          })
                        }
                        
                        //Vorbereitung für Login
                        var oClient = Client();
                        
                        //Login
                        oClient.connect({
                            email: man_email,
                            password: man_password
                        });
                        
                        //get Token
                        oClient.on('token', (token) => {
                          //if (MCLIENT_ONLINE) mClient.publish('bhyve/alive', ts(), publishHandler)
                          //console.log(`${ts()} - Token: ${token}`)
                        })
                        
                        oClient.on('user_id', (userId) => {
                          //console.log(`${ts()} - user_id: ${userId}`)
                          oClient.devices()
                        })
                        
                        oClient.on('device_id', (deviceId) => {
                          //console.log(`${ts()} - device_id: ${deviceId}`)
                        })
                        
                        oClient.on('devices', (data) => {
                            var objects = JSON.parse(JSON.stringify(DevicesJSON))
                            objects.forEach(function(key, index){
                                //log("Name: " + key.name); 
                                //log("Type: " + key.type);
                                //log("Firmware-Version: " + key.firmware_version);
                                //log("Hardware-Version: " + key.hardware_version);
                                if(key.type == "bridge") {
                                    //log("Last connect: " + key.last_connected_at);
                                };
                                //log("MAC: " + key.mac_address);
                                //log("Connected: " + key.is_connected);
                                if(key.type == "sprinkler_timer") {
                                    //log("Run-Mode: " + key.status.run_mode);
                                    //log("Battery: " + key.battery.percent);
                                    setState('javascript.0.bHyve.Battery', key.battery.percent);
                                }
                            });
                        });
                        
                        
                        HauWi112 1 Reply Last reply Reply Quote 0
                        • T
                          tazdevil20 last edited by

                          noch ein Update:
                          Mich hat es gestört, dass ich nur maximal 3600 Sekunden (Objekt ist darauf beschränkt und anpassen hat nichts gebracht) das Wasser laufen lassen kann. Teilweise benötige ich auf grund der 4 Pipelines mehr Zeit. Meine Lösung war nun, dass ich die platform.js des Homebridge Moduls angepasst habe:

                          Zeile 301:

                          let run_time = valveService.getCharacteristic(Characteristic.SetDuration).value / 60;
                          

                          geändert auf

                          let run_time = valveService.getCharacteristic(Characteristic.SetDuration).value;
                          

                          Zeile 341:

                          service.getCharacteristic(Characteristic.RemainingDuration).updateValue(jsonData['run_time'] * 60);
                          

                          geändert auf

                          service.getCharacteristic(Characteristic.RemainingDuration).updateValue(jsonData['run_time']);
                          

                          Somit gebe ich keine Sekunden mehr vor sondern Minuten. Über das Bewässerungsscript lasse ich das Ventil eh schließen. Somit ist das nur der doppelte Boden.

                          1 Reply Last reply Reply Quote 0
                          • HauWi112
                            HauWi112 @kenny384 last edited by

                            @kenny384 sagte in [Adapteranfrage] Orbit B-HYVE Ventil:

                            @tazdevil20 Sorry, zu früh geschrieben, ich habe es eben selber gefunden. Active muss man auf "1" setzen. Und ich glaube ich habe auch dein Problem mit der Bewässerungsdauer gelöst. Du musst eigentlich nur den Wert Set-Duration (in Sekunden) hoch setzen. Habe da mal 600 eingetragen, dann lief es auch manuell gestartet 10 Minuten.

                            Bildschirmfoto 2020-07-27 um 10.13.16.png

                            Hallo,
                            egal, auf welchen wert ich "Set-Duration" setze...
                            nach dem "Akivieren" wird immer 5min bewässert. Was mache ich falsch?

                            708f4839-ed0b-4379-b93e-fb8bf25bfd0a-grafik.png
                            a70e11e4-7ed5-4670-ba17-e99377001908-grafik.png

                            vielen Dank im Voraus!

                            1 Reply Last reply Reply Quote 0
                            • M
                              MichaR @backons last edited by

                              @backons sagte in [Adapteranfrage] Orbit B-HYVE Ventil:

                              Hallo,

                              den ham-adapter installieren. Dort dann bei npm module das eintragen:
                              homebridge-platform-orbit
                              Das ist die Seite dazu:
                              https://github.com/MortJC/homebridge-platform-orbit

                              Von dort dann die Konfiguration übernehmen und anpassen.
                              Dann lässt es sich über iobroker steuern.

                              Hallo,
                              ich habe mal diesen Thread ausgegraben, weil ich mir gerade 7 Stück orbit-Ventile installiert habe und ich diese im ioBroker nicht zum laufen bringe. Ich würde diese gern über ioBroker/Raspberrymatic steuern.
                              Ich habe im ioBroker den ham installiert. In der Konfigurationsdatei ist als Beispielname "orbit" eingetragen. Sorry, welcher Name kommt dort hin? Habe meinen Accountnamen (Vor- und Nachname) eingetragen, den Ventilnamen, den Gruppennamen, aber es wird kein Objekt angelegt. Die Instanz ham läuft und laut log auch ohne Fehler, leider auch ohne Objekt. Hat jemand einen Tip? Vielen Dank.
                              Hier mal mein log-file:
                              ham.0 2021-07-27 12:15:41.599 info (18475) All Libraries installed/updated
                              ham.0 2021-07-27 12:15:41.598 info (18475) Install/Update homebridge-platform-orbit
                              ham.0 2021-07-27 12:15:41.598 info (18475) Install/Update the following Libraries: homebridge-platform-orbit
                              ham.0 2021-07-27 12:15:41.584 info (18475) starting. Version 4.0.2 in /opt/iobroker/node_modules/iobroker.ham, node: v12.21.0, js-controller: 3.2.16
                              ham.0 2021-07-27 12:15:37.920 info (18357) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                              ham.0 2021-07-27 12:15:37.919 info (18357) terminating
                              ham.0 2021-07-27 12:15:37.876 info (18357) cleaned everything up...
                              ham.0 2021-07-27 12:15:37.875 info (18357) Got terminate signal TERMINATE_YOURSELF
                              ham.0 2021-07-27 12:14:00.774 info (18357) All Libraries installed/updated
                              ham.0 2021-07-27 12:14:00.773 info (18357) Install/Update homebridge-platform-orbit
                              ham.0 2021-07-27 12:14:00.773 info (18357) Install/Update the following Libraries: homebridge-platform-orbit
                              ham.0 2021-07-27 12:14:00.752 info (18357) starting. Version 4.0.2 in /opt/iobroker/node_modules/iobroker.ham, node: v12.21.0, js-controller: 3.2.16
                              ham.0 2021-07-27 12:13:57.137 info (18254) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                              ham.0 2021-07-27 12:13:57.137 info (18254) terminating
                              ham.0 2021-07-27 12:13:57.060 info (18254) cleaned everything up...
                              ham.0 2021-07-27 12:13:57.059 info (18254) Got terminate signal TERMINATE_YOURSELF
                              ham.0 2021-07-27 12:12:18.550 info (18254) All Libraries installed/updated
                              ham.0 2021-07-27 12:12:18.549 info (18254) Install/Update homebridge-platform-orbit
                              ham.0 2021-07-27 12:12:18.549 info (18254) Install/Update the following Libraries: homebridge-platform-orbit
                              ham.0 2021-07-27 12:12:18.535 info (18254) starting. Version 4.0.2 in /opt/iobroker/node_modules/iobroker.ham, node: v12.21.0, js-controller: 3.2.16
                              ham.0 2021-07-27 12:12:14.795 info (17370) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                              ham.0 2021-07-27 12:12:14.794 info (17370) terminating
                              ham.0 2021-07-27 12:12:14.748 info (17370) cleaned everything up...

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                MichaR @MichaR last edited by

                                Hallo, niemand mit einer Idee die mir helfen kann?

                                1 Reply Last reply Reply Quote 0
                                • HauWi112
                                  HauWi112 @tazdevil20 last edited by

                                  @tazdevil20
                                  Habe mich ewig mit HAM und den beiden verfügbaren Plugins (platform-orbit und orbit-irrigation) rumgeärgert. Zum Schluss habe ich jede Stunde die HAM-Instanz neu gestartet.

                                  Dann habe ich dein Script probiert... funktioniert exakt, einwandfrei und zuverlässig. Ich brauche jedoch andere Ventil-Infos (z.b. "in use")

                                  Wie/Wo muss ich das Skript anpassen?
                                  Wo ist das key.batttery.percent definiert?

                                  Vielen Dank im Voraus!

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    tazdevil20 @HauWi112 last edited by

                                    @hauwi112
                                    Hallo,
                                    sorry, nicht mitbekommen, dass hier eine Nachricht an mich ging.
                                    Einfach in dem Bereich (ab Zeile 251)

                                    oClient.on('devices', (data) => {
                                        var objects = JSON.parse(JSON.stringify(DevicesJSON))
                                        objects.forEach(function(key, index){
                                            //log("Name: " + key.name); 
                                    

                                    ein

                                    oClient.on('devices', (data) => {
                                        var objects = JSON.parse(JSON.stringify(DevicesJSON))
                                    log(objects)
                                        objects.forEach(function(key, index){
                                    

                                    einfügen. Dann siehst Du welche Daten in dem JSON kommen und kannst diese dann entsprechend auslesen.

                                    Ich selbst bin dieses Jahr auf die Zigbee-Variante von Parkside (Lidl) umgestiegen. Daher werde ich an dem Script nichts mehr anpassen.

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    800
                                    Online

                                    31.7k
                                    Users

                                    79.8k
                                    Topics

                                    1.3m
                                    Posts

                                    adapterentwicklung gartenbewässerung ventil
                                    6
                                    21
                                    2471
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo