Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Json aus Rest Api URL von Solaranalge

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Json aus Rest Api URL von Solaranalge

Scheduled Pinned Locked Moved JavaScript
10 Posts 3 Posters 1.9k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    lutzer
    wrote on last edited by lutzer
    #1

    Hallo ich habe den tollen Adapter für Solarwatt, leider ist bei mir irgenwo der Wurm drin.
    Deshalb möchte ich gerne einige Werte per JavaScript abfragen.
    Ich habe das mit der Verschachtelung im Json in iobroker nicht verstanden.
    Kann mir da jemand weiter helfen?

    Das ist das JSON der Seite:

    [
        {
            "id": "xxxxxxx",
            "name": "PV-Anlage",
            "deviceClass": "com.kiwigrid.devices.pvplant.PVPlant",
            "powerACOut": 0
        },
        {
            "id": "urn:kiwigrid:location:xxxxxx",
            "name": "Standort 1",
            "deviceClass": "com.kiwigrid.devices.location.Location",
            "powerConsumed": 3445.4679999999985,
            "powerProduced": 0,
            "powerIn": 844,
            "powerOut": 0
        }
    ]
    

    Hier mein zusammengeklebtest JavaScript :)

    var url = 'http://192.168.xxx.xxx/rest/kiwigrid/eps/powerValues';
    var path = "solarwatt.";
    var idpowerACOut = path + "powerACOut";
    var idpowerConsumed = path + "powerConsumed";
    
    var request = require("request");
    var myJson = {};
    
    createState(idpowerACOut, 0, {
        name: 'powerACOut aus',
        desc: 'xxxx',
        type: 'number',
        role: 'value'
    });
    createState(idpowerConsumed, 0, {
        name: 'powerConsumed alles',
        desc: 'xxxx',
        type: 'number',
        role: 'value'
    });
    
    function parseJson(text) {
        if (text === "") return {};
        try {
            json = JSON.parse(text);
        } catch (ex) {
            json = {};
        }
        if(!json) json = {};
        return json;
    }
    
    function readJson(url, callback) {
        request(url, function (err, state, body){
            if (body) {
                var json = parseJson(body);
                callback(null, json);
            } else {
                var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                log(error, "warn");  
                callback(error, null);
            }
        });
    }
    
    function main() {
        readJson(url, function(err,json) {
            if(!err) {
            myJson = json;
                log("powerACOut: " + myJson.powerACOut,"info");
                log("powerConsumed: " + myJson.powerConsumed,"info");
                setState(idpowerACOut ,parseInt(myJson.powerACOut));
                setState(idpowerConsumed ,parseFloat(myJson.powerConsumed));
            } else {
            log("Error reading JSON from solarwatt. No data!","warn");
            myJson = {};
            }
    });
    }
    
    

    Im Log steht dann das und es kommen natürlich keine Werte an

    10:33:02.353	info	javascript.0 script.js.xxx.json91: powerACOut: undefined
    10:33:02.353	info	javascript.0 script.js.xxx.json91: powerConsumed: undefined
    

    Alles was im im Browser oder der JavaScript Editor funktioniert, will im iobroker nicht...

    [1]["powerConsumed"]
    [1].powerConsumed
    1.powerConsumed
    
    paul53P 1 Reply Last reply
    0
    • L lutzer

      Hallo ich habe den tollen Adapter für Solarwatt, leider ist bei mir irgenwo der Wurm drin.
      Deshalb möchte ich gerne einige Werte per JavaScript abfragen.
      Ich habe das mit der Verschachtelung im Json in iobroker nicht verstanden.
      Kann mir da jemand weiter helfen?

      Das ist das JSON der Seite:

      [
          {
              "id": "xxxxxxx",
              "name": "PV-Anlage",
              "deviceClass": "com.kiwigrid.devices.pvplant.PVPlant",
              "powerACOut": 0
          },
          {
              "id": "urn:kiwigrid:location:xxxxxx",
              "name": "Standort 1",
              "deviceClass": "com.kiwigrid.devices.location.Location",
              "powerConsumed": 3445.4679999999985,
              "powerProduced": 0,
              "powerIn": 844,
              "powerOut": 0
          }
      ]
      

      Hier mein zusammengeklebtest JavaScript :)

      var url = 'http://192.168.xxx.xxx/rest/kiwigrid/eps/powerValues';
      var path = "solarwatt.";
      var idpowerACOut = path + "powerACOut";
      var idpowerConsumed = path + "powerConsumed";
      
      var request = require("request");
      var myJson = {};
      
      createState(idpowerACOut, 0, {
          name: 'powerACOut aus',
          desc: 'xxxx',
          type: 'number',
          role: 'value'
      });
      createState(idpowerConsumed, 0, {
          name: 'powerConsumed alles',
          desc: 'xxxx',
          type: 'number',
          role: 'value'
      });
      
      function parseJson(text) {
          if (text === "") return {};
          try {
              json = JSON.parse(text);
          } catch (ex) {
              json = {};
          }
          if(!json) json = {};
          return json;
      }
      
      function readJson(url, callback) {
          request(url, function (err, state, body){
              if (body) {
                  var json = parseJson(body);
                  callback(null, json);
              } else {
                  var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                  log(error, "warn");  
                  callback(error, null);
              }
          });
      }
      
      function main() {
          readJson(url, function(err,json) {
              if(!err) {
              myJson = json;
                  log("powerACOut: " + myJson.powerACOut,"info");
                  log("powerConsumed: " + myJson.powerConsumed,"info");
                  setState(idpowerACOut ,parseInt(myJson.powerACOut));
                  setState(idpowerConsumed ,parseFloat(myJson.powerConsumed));
              } else {
              log("Error reading JSON from solarwatt. No data!","warn");
              myJson = {};
              }
      });
      }
      
      

      Im Log steht dann das und es kommen natürlich keine Werte an

      10:33:02.353	info	javascript.0 script.js.xxx.json91: powerACOut: undefined
      10:33:02.353	info	javascript.0 script.js.xxx.json91: powerConsumed: undefined
      

      Alles was im im Browser oder der JavaScript Editor funktioniert, will im iobroker nicht...

      [1]["powerConsumed"]
      [1].powerConsumed
      1.powerConsumed
      
      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @lutzer
      JSON (String) muss erst in ein Objekt gewandelt werden (Zeile 49), um auf die Eigenschaften zugreifen zu können.

              myJson = JSON.parse(json);
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Reply Last reply
      0
      • L Offline
        L Offline
        lutzer
        wrote on last edited by lutzer
        #3

        @paul53 said in Json aus Rest Api URL von Solaranalge:

            myJson = JSON.parse(json);
        

        OK hab ich getausch, klappt leider noch nicht.

        Hier das Log

        11:08:05.526	error	javascript.0 script.js.xxx.json91: SyntaxError: Unexpected token o in JSON at position 1
        11:08:05.526	error	javascript.0 at script.js.xxx.json91:49:28
        11:08:05.526	error	javascript.0 at Request._callback (script.js.xxx.json91:37:13)
        

        Wenn ich folgendes verwende bekomme ich auch Daten:

        log("powerACOut: " + myJson[0].powerACOut,"info");
        an Stelle von
        log("powerACOut: " + myJson.powerACOut,"info");
        

        Das müsste es ja sein, steht auch kein Fehler in der Log (außer wenn ich jetzt " myJson = JSON.parse(json);" verwende.

        11:17:14.485	info	javascript.0 Start javascript script.js.xxx.json91
        11:17:14.485	info	javascript.0 script.js.xxx.json91: registered 0 subscriptions and 1 schedule
        11:17:15.058	info	javascript.0 script.js.xxx.json91: powerACOut: 1252.3125999999997
        11:17:15.058	info	javascript.0 script.js.xxx.json91: powerConsumed: 780
        
        paul53P 1 Reply Last reply
        0
        • L lutzer

          @paul53 said in Json aus Rest Api URL von Solaranalge:

              myJson = JSON.parse(json);
          

          OK hab ich getausch, klappt leider noch nicht.

          Hier das Log

          11:08:05.526	error	javascript.0 script.js.xxx.json91: SyntaxError: Unexpected token o in JSON at position 1
          11:08:05.526	error	javascript.0 at script.js.xxx.json91:49:28
          11:08:05.526	error	javascript.0 at Request._callback (script.js.xxx.json91:37:13)
          

          Wenn ich folgendes verwende bekomme ich auch Daten:

          log("powerACOut: " + myJson[0].powerACOut,"info");
          an Stelle von
          log("powerACOut: " + myJson.powerACOut,"info");
          

          Das müsste es ja sein, steht auch kein Fehler in der Log (außer wenn ich jetzt " myJson = JSON.parse(json);" verwende.

          11:17:14.485	info	javascript.0 Start javascript script.js.xxx.json91
          11:17:14.485	info	javascript.0 script.js.xxx.json91: registered 0 subscriptions and 1 schedule
          11:17:15.058	info	javascript.0 script.js.xxx.json91: powerACOut: 1252.3125999999997
          11:17:15.058	info	javascript.0 script.js.xxx.json91: powerConsumed: 780
          
          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by paul53
          #4

          @lutzer sagte:

          steht auch kein Fehler in der Log (außer wenn ich jetzt " myJson = JSON.parse(json);" verwende.

          Dann ist es kein JSON, sondern bereits ein Objekt. Sehe gerade: Das Parsen passiert bereits in der Funktion readJson().

          Zeilen 52, 53 müssten dann so funktionieren:

                       setState(idpowerACOut, parseInt(myJson[0].powerACOut));
                       setState(idpowerConsumed, parseFloat(myJson[1].powerConsumed));
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Reply Last reply
          1
          • L Offline
            L Offline
            lutzer
            wrote on last edited by
            #5

            @paul53 said in Json aus Rest Api URL von Solaranalge:

            Ja genau so klappt es DANKE.

            Ich habe da noch einen wieteren Link der etwas mehr verschachtelt ist.
            Irgendwie komme ich da mit "[4]" nicht weiter:
            Ich möchte die "282" haben:

            {
                "result": {
                     "items": [
                        {
                        "tagValues": {
                            "PowerIn": {
                            "tagName": "PowerIn",
                            "guid": "urn:solarwatt:myreserve:pm:xxxxxxxx",
                            "value": 282
                            },
            
                        log("PowerIn: " + myJson[4].PowerIn,"info");
                        setState(idDPowerIn ,parseInt(myJson[4].PowerIn));
            

            Der Pfad im Browser sagt: result.items[0].tagValues.PowerIn.value

            paul53P 1 Reply Last reply
            0
            • L lutzer

              @paul53 said in Json aus Rest Api URL von Solaranalge:

              Ja genau so klappt es DANKE.

              Ich habe da noch einen wieteren Link der etwas mehr verschachtelt ist.
              Irgendwie komme ich da mit "[4]" nicht weiter:
              Ich möchte die "282" haben:

              {
                  "result": {
                       "items": [
                          {
                          "tagValues": {
                              "PowerIn": {
                              "tagName": "PowerIn",
                              "guid": "urn:solarwatt:myreserve:pm:xxxxxxxx",
                              "value": 282
                              },
              
                          log("PowerIn: " + myJson[4].PowerIn,"info");
                          setState(idDPowerIn ,parseInt(myJson[4].PowerIn));
              

              Der Pfad im Browser sagt: result.items[0].tagValues.PowerIn.value

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #6

              @lutzer sagte:

              Der Pfad im Browser sagt: result.items[0].tagValues.PowerIn.value

              Enthält myJson schon das Objekt oder JSON ? Für das Objekt sollte es so funktionieren:

              myJson.result.items[0].tagValues.PowerIn.value
              

              parseInt() ist nicht erforderlich, denn es ist bereits eine Zahl.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Reply Last reply
              0
              • L Offline
                L Offline
                lutzer
                wrote on last edited by lutzer
                #7

                Alles Gut habe mich in der Funktion vertan.
                ES geht genau so.
                Vielen Dank!

                Sehr cool das man den phat aus dem Browser nehmen kann.

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  lutzer
                  wrote on last edited by
                  #8

                  Ich hab da heute Morgen ein neues Problem bekommen.
                  Diese Nacht wurde die Firmware vom Energymanager geupdatet und die Struktur der Json verändert.

                  Kann man das irgendwie anders abfangen, durch suchen oder ähnliches?

                  //alt:
                              setState(idDPowerSelfSupplied ,myJson.result.items[1].tagValues.PowerSelfSupplied.value);
                              log("PowerConsumedFromStorage: " + myJson.result.items[1].tagValues.PowerConsumedFromStorage.value,"info");
                  //neu:
                              setState(idDPowerSelfSupplied ,myJson.result.items[5].tagValues.PowerSelfSupplied.value);
                              log("PowerConsumedFromStorage: " + myJson.result.items[5].tagValues.PowerConsumedFromStorage.value,"info");
                  

                  Was unschön ist das manche Bezeichnungen sich etwas gleichen:

                  "StateOfCharge": //gesucht
                  "StateOfChargeReactivateDischarging": //nicht gesucht
                  "StateOfChargeMinimum": //nicht gesucht
                  "StateOfChargeShutDownLimit": //nicht gesucht
                  
                  paul53P 1 Reply Last reply
                  0
                  • L lutzer

                    Ich hab da heute Morgen ein neues Problem bekommen.
                    Diese Nacht wurde die Firmware vom Energymanager geupdatet und die Struktur der Json verändert.

                    Kann man das irgendwie anders abfangen, durch suchen oder ähnliches?

                    //alt:
                                setState(idDPowerSelfSupplied ,myJson.result.items[1].tagValues.PowerSelfSupplied.value);
                                log("PowerConsumedFromStorage: " + myJson.result.items[1].tagValues.PowerConsumedFromStorage.value,"info");
                    //neu:
                                setState(idDPowerSelfSupplied ,myJson.result.items[5].tagValues.PowerSelfSupplied.value);
                                log("PowerConsumedFromStorage: " + myJson.result.items[5].tagValues.PowerConsumedFromStorage.value,"info");
                    

                    Was unschön ist das manche Bezeichnungen sich etwas gleichen:

                    "StateOfCharge": //gesucht
                    "StateOfChargeReactivateDischarging": //nicht gesucht
                    "StateOfChargeMinimum": //nicht gesucht
                    "StateOfChargeShutDownLimit": //nicht gesucht
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by paul53
                    #9

                    @lutzer sagte:

                    abfangen, durch suchen oder ähnliches?

                    var arr = myJson.result.items;
                    
                    for(let i = 0; i < arr.length; i++) {
                        if(arr[i].tagValues) {
                            let tags = arr[i].tagValues;
                            if(tags.PowerSelfSupplied) {
                                log(tags.PowerSelfSupplied.value);
                            }
                            if(tags.PowerConsumedFromStorage) {
                                log(tags.PowerConsumedFromStorage.value);
                            }
                        }
                    }
                    

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      lutzer
                      wrote on last edited by lutzer
                      #10

                      Könntest du mir bitte helfen wo ich die Schleife einbauen muss?
                      Ich denke ich habe es gefunden. Aber wenn du noch mal drüber schauen würdest wär ich dankbar.

                      Hier der aktuelle Code:

                      //...Teil der Funktion
                          readJson(urlDevices, function(err,json) {
                              if(!err) {       
                                  myJson = json;
                              var arr = myJson.result.items;
                                  for(let i = 0; i < arr.length; i++) {
                                      if(arr[i].tagValues) {
                                          let tags = arr[i].tagValues;
                                            if(tags.PowerIn) {
                                              log(tags.PowerIn.value);
                                              setState(idDPowerIn ,tags.PowerIn.value);
                                          }                  
                                          if(tags.PowerSelfSupplied) {
                                              log(tags.PowerSelfSupplied.value);
                                              setState(idDPowerSelfSupplied ,tags.PowerSelfSupplied.value);
                                          }
                      //...usw
                      
                      //der alte Code
                      var urlValues = 'http://192.168.xxx.xxx/rest/kiwigrid/eps/powerValues';
                      var urlDevices = 'http://192.168.xxx.xxx/rest/kiwigrid/wizard/devices';
                      var path = "solarwatt.";
                      
                      var request = require("request");
                      var myJson = {};
                      
                      //Values
                      var idpowerACOut = path + "powerACOut";
                      var idpowerConsumed = path + "powerConsumed";
                      var idpowerProduced = path + "powerProduced";
                      var idpowerIn = path + "powerIn";
                      var idpowerOut = path + "powerOut";
                      
                      createState(idpowerACOut, 0, { name: 'powerACOut aus', desc: 'xxxx', type: 'number', role: 'value'});
                      createState(idpowerConsumed, 0, { name: 'Gesamtverbrauch', desc: 'xxxx', type: 'number', role: 'value'});
                      createState(idpowerProduced, 0, { name: 'powerProduced', desc: 'xxxx', type: 'number', role: 'value'});
                      createState(idpowerIn, 0, { name: 'powerIn', desc: 'xxxx', type: 'number', role: 'value'});
                      createState(idpowerOut, 0, { name: 'powerOut', desc: 'xxxx', type: 'number', role: 'value'});
                      
                      //Devices
                      var idDPowerIn = path + "PowerInD";
                      var idDPowerSelfSupplied = path + "PowerSelfSupplied";
                      var idDPowerConsumedFromStorage = path + "PowerConsumedFromStorage";
                      var idDStateOfCharge = path + "StateOfCharge";
                      var idDPowerConsumedFromGrid = path + "PowerConsumedFromGrid";
                      var idDPowerBuffered = path + "PowerBuffered";
                      var idDPowerConsumedFromProducers = path + "PowerConsumedFromProducers";
                      
                      createState(idDPowerSelfSupplied, 0, { name: 'Eigenverbrauch', desc: 'xxxx', type: 'number', role: 'value' });
                      createState(idDPowerIn, 0, { name: 'Stromzukauf', desc: 'xxxx', type: 'number', role: 'value' });
                      createState(idDPowerConsumedFromStorage, 0, { name: 'Batterieversorgung', desc: 'xxxx', type: 'number', role: 'value' });
                      createState(idDStateOfCharge, 0, { name: 'Ladestand', desc: 'xxxx', type: 'number', role: 'value' });
                      createState(idDPowerConsumedFromGrid, 0, { name: 'Netzbezug', desc: 'xxxx', type: 'number', role: 'value' });
                      createState(idDPowerBuffered, 0, { name: 'Batterieaufladung', desc: 'xxxx', type: 'number', role: 'value' });
                      createState(idDPowerConsumedFromProducers, 0, { name: 'Eigenverbrauch', desc: 'xxxx', type: 'number', role: 'value' });
                      
                      
                      function parseJson(text) {
                          if (text === "") return {};
                          try { json = JSON.parse(text); } 
                          catch (ex) { json = {};}
                          if(!json) json = {};
                          return json; }
                      
                      function readJson(url, callback) {
                          request(url, function (err, state, body){
                              if (body) {
                                  var json = parseJson(body);
                                  callback(null, json);
                              } else { var error = "(" + err + ") ERROR bei Abfrage von: " + url; log(error, "warn"); callback(error, null);}
                                  });}
                      
                      
                      function main() {
                          readJson(urlValues, function(err,json) {
                              if(!err) {        
                                   myJson = json;
                                  log("powerACOut: " + myJson[0].powerACOut,"info");
                                  log("powerConsumed: " + myJson[1].powerConsumed,"info");
                                  log("powerProduced: " + myJson[1].powerProduced,"info");
                                  log("powerIn: " + myJson[1].powerIn,"info");
                                  log("powerOut: " + myJson[1].powerOut,"info");
                                  setState(idpowerACOut ,parseInt(myJson[0].powerACOut));
                                  setState(idpowerConsumed ,parseInt(myJson[1].powerConsumed));
                                  setState(idpowerProduced ,parseInt(myJson[1].powerProduced));
                                  setState(idpowerIn ,parseInt(myJson[1].powerIn));
                                  setState(idpowerOut ,parseInt(myJson[1].powerOut));
                              } else {
                              log("Error reading JSON from solarwatt. No data!","warn");
                              myJson = {};
                              }
                      });
                          readJson(urlDevices, function(err,json) {
                              if(!err) {       
                                  myJson = json;
                                  log("PowerIn: " + myJson.result.items[2].tagValues.PowerIn.value,"info");
                                  setState(idDPowerIn ,myJson.result.items[2].tagValues.PowerIn.value);
                                  log("PowerSelfSupplied: " + myJson.result.items[5].tagValues.PowerSelfSupplied.value,"info");
                                  setState(idDPowerSelfSupplied ,myJson.result.items[5].tagValues.PowerSelfSupplied.value);
                                  log("PowerConsumedFromStorage: " + myJson.result.items[5].tagValues.PowerConsumedFromStorage.value,"info");
                                  setState(idDPowerConsumedFromStorage ,myJson.result.items[5].tagValues.PowerConsumedFromStorage.value);
                                  log("StateOfCharge: " + myJson.result.items[10].tagValues.StateOfCharge.value,"info");
                                  setState(idDStateOfCharge ,myJson.result.items[10].tagValues.StateOfCharge.value);
                                  log("PowerConsumedFromGrid: " + myJson.result.items[5].tagValues.PowerConsumedFromGrid.value,"info");
                                  setState(idDPowerConsumedFromGrid ,myJson.result.items[5].tagValues.PowerConsumedFromGrid.value);
                                  log("PowerBuffered: " + myJson.result.items[5].tagValues.PowerBuffered.value,"info");
                                  setState(idDPowerBuffered ,myJson.result.items[5].tagValues.PowerBuffered.value);
                                  log("PowerConsumedFromProducers: " + myJson.result.items[5].tagValues.PowerConsumedFromProducers.value,"info");
                                  setState(idDPowerConsumedFromProducers ,myJson.result.items[5].tagValues.PowerConsumedFromProducers.value);
                              } else {
                              log("Error reading JSON from solarwatt. No data!","warn");
                              myJson = {};
                              }
                      });
                      }
                      
                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      788

                      Online

                      32.5k

                      Users

                      81.7k

                      Topics

                      1.3m

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

                      • Don't have an account? Register

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