Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Fabian1

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    F
    • Profile
    • Following 0
    • Followers 1
    • Topics 5
    • Posts 124
    • Best 21
    • Groups 2

    Fabian1

    @Fabian1

    Starter

    27
    Reputation
    42
    Profile views
    124
    Posts
    1
    Followers
    0
    Following
    Joined Last Online

    Fabian1 Follow
    Pro Starter

    Best posts made by Fabian1

    • LED-Uhr mit IOBroker integration

      Hallo Zusammen,

      ich habe Anfang des Jahres schonmal ein work in progress von meinem Projekt gepostet.

      Der Schreiner, der das Gehäuse angefertigt hat, hatte Corona bedingt leider viel um die Ohren. Darum hat es etwas länger gedauert. Aber jetzt es ist vollbracht und vielleicht inspiriert es ja den einen oder anderen.

      Designtechnisch habe ich mich an dieser Vorlage orientiert: https://www.instructables.com/id/Ping-Pong-Ball-LED-Clock/

      Die komplette Hardware, LED-Anordnung und programmierung ist aber meine eigene.

      Es gibt 10 verschiedene Hintergrundanimationen, jede Farbe ist frei wählbar und es gibt vollständige Alexa Timer integration, auch über Tage und Stunden hinweg.

      IOBroker integration per MQTT.

      PS: Ich sage im Video ziemlich oft Alexa, also wird bei einigen wahrscheinlich das Flurlicht angehen! 😂

      Hier seht ihr die Uhr in action:
      https://youtu.be/Bjy-max6cmg

      Falls ihr das Projekt nachbauen wollt findet ihr hier die Anleitung:

      https://www.dropbox.com/s/wvy6tacvdiiv7y7/LED_Uhr_Fabian_Buckreus.pdf?dl=0

      😊

      posted in Praktische Anwendungen (Showcase)
      F
      Fabian1
    • RE: Meldungen seit controller v3.3 zu falschem Datentyp

      Ich hab den Radar2 komplett gefixed, es muss nur noch jemand mergen! 🙂
      https://github.com/Speedbreaker12/ioBroker.radar2

      posted in ioBroker Allgemein
      F
      Fabian1
    • [Tutorial] IPhone Daten per Kurzbefehle und IOT auslesen

      Hallo Zusammen,

      nach dem die Frage in der IOBroker Facebook Gruppe häufiger mal aufkam, habe ich mich hingesetzt und mal eine kleine Schritt für Schritt Anleitung zusammen gebastelt.

      Die Methode ist super nützlich, da ihr damit sämtliche IPhone Daten (wie z.B. Akkustand, Erinnerungen, Kalender, Weckzeit usw.) abrufen und in den IOBroker übertragen könnt.

      Hier geht es zur Anleitung

      Viele Grüße,
      Fabian

      posted in Praktische Anwendungen (Showcase)
      F
      Fabian1
    • RE: js-controller 3.3 jetzt im STABLE!

      @paul53 said in js-controller 3.3 jetzt im STABLE!:

      @homoran sagte: bei admin 5 + js-controller habe ich jatzt schon Bauchschmerzen, wenn heute abend der v5 ins stable kommt.

      Weshalb Bauchschmerzen? Man kann immer noch die "Alte Benutzeroberfläche" wählen, unter der alles zu laufen scheint.

      Und ich hoffe es bleibt auch immer so, dass man die Alte Benutzeroberfläche auswählen kann. Ich finde die neue zwar ganz schön, aber im vergleich zur alten MEGA MEGA unübersichtlich.

      posted in ioBroker Allgemein
      F
      Fabian1
    • RE: Admin v5 jetzt im STABLE!

      @apollon77 said in Admin v5 jetzt im STABLE!:

      @mickym sagte in Admin v5 jetzt im STABLE!:

      Deshalb nur eine grundsätzliche Frage - wenn ich auf die alte Oberfläche umschalte, handle ich mir denn prinzipielle Nachteile ein - außer dass ich den Dateimanager nicht sehe (dessen Nutzen für mich aber im Moment eher im Moment noch nicht so sehe)?

      Wie bereits geschrieben wird die alte UI nicht mehr weiternetwickelt. Neue Funktionen werden nur in der neuen UI kommen und es wird definitiv bald Adapter geben die nur noch einen"JSon-Konfig"-Definition mitbringen und daher auch im Admin die neue UI brauchen um konfiguriert zu werden.

      Also es gilt: Nutzt die Alte UI auf eigene Gefahr, es werden keine Bugs gefixt und kommen keine neuen Features.

      Können wir dann vielleicht Linien zwischen den Objekten wieder kriegen. 🙂 Oder geht das schon irgendwie?

      posted in ioBroker Allgemein
      F
      Fabian1
    • RE: Admin5: Ich kann keine Objekte mehr manuell anlegen

      @mickym said in Admin5: Ich kann keine Objekte mehr manuell anlegen:

      Und für die mqtt Freunde: Zukünftig muss man eigene Hierachien dann über seinen Broker machen - indem man dann halt über NodeRed (mqtt-out) oder mosquitto client weitere Hierachien durch eigene Topics erstellt - auch wenn man den mqtt Adapter als mqtt-Broker betreibt!

      Das finde ich absolut bescheuert. 🙂 Und hab dazu ein Issue erstellt was gerne hoch gevoted werden darf. 😄
      https://github.com/ioBroker/ioBroker.admin/issues/1067

      Speedbreaker12 created this issue in ioBroker/ioBroker.admin

      open Keine eigenen Datenpunkte in mqtt.X mehr #1067

      posted in ioBroker Allgemein
      F
      Fabian1
    • RE: Dynamische Object ID möglich?

      Jepp, das ist ziemlich einfach! Im Alexa2 Adapter steht die Seriennummer der Alexa die du zuletzt angesprochen hast, die kannst du dann einfach als Objekt benutzen. Siehe Bilder 🙂

      Alexa2.JPG

      Alexa.JPG

      posted in Skripten / Logik
      F
      Fabian1
    • RE: [gelöst] Stromausfall Web-Oberfläche öffnet sich nicht mehr

      @berserker Super dass es geklappt hat!
      Und für die Zukunft mach es wie @Thomas-Braun schon gesagt hat! Backitup Adapter jede Nacht auf Dropbox oder Google Drive und wenn sowas dann das nächste Mal passiert. Zack Karte Platt machen, IObroker neu aufspielen, Backup auf der Dropbox drauf, fertig! Das spart jede menge Zeit und Nerven. 🙂

      posted in Error/Bug
      F
      Fabian1
    • RE: Ausgesperrt durch fehlerhaftes Blockly script

      Ich kann dir garantieren, das ist jedem schonmal passiert, besonders mit loops! 🙂 Also ich habe es bis jetzt immer schnell genug geschafft, auf Scripte zu klicken und das script zu stoppen. Sollte das nicht funktionieren kannst du auch per Konsole das Javascript beenden

      iobroker stop javascript.0
      
      posted in ioBroker Allgemein
      F
      Fabian1
    • RE: [Adapter] Neuer radar2-Adapter

      Hallo Zusammen,

      ich bin super neu dabei und habe letzte Woche meine ersten Gehversuche mit IOBroker unternommen. Was mir wirklich fehlt, ist eine gute Anwesenheitserkennung. Radar2 ist schon ziemlich nah dran, darum schreibe ich auch hier.

      Mein Telefon im WLAN zu erkennen funktioniert super, leider reicht mein WLAN viel zu weit und es triggert lange bevor ich Zuhause bin. Also für Sachen wie Türöffnung nicht zu gebrauchen. Mein Iphone Xs sendet auch kein Bluetooth Funkfeuer aus das erkannt werden könnte.

      Darum meine Idee und feature request für den Radar2 Adapter, anzeigen ob ein gekoppeltes Bluetooth Gerät verbunden ist!

      Das koppeln mit dem Raspi Bluetooth Adapter ist ja super einfach und man könnte dann das Iphone auf automatisch verbinden stellen und hätte eine super Anwesenheitserkennung mit kleiner Reichweite.

      posted in Entwicklung
      F
      Fabian1

    Latest posts made by Fabian1

    • RE: 50€: Mach mit bei einer Smarthome Studie mit ioBroker!

      @moeppi86 bei mir auch! Meine IOBroker installation ist gerade umgezogen! 🙂
      Echt mega!

      posted in ioBroker Allgemein
      F
      Fabian1
    • RE: 50€: Mach mit bei einer Smarthome Studie mit ioBroker!

      @david-g hast du deinen Gutschein schon bekommen?

      posted in ioBroker Allgemein
      F
      Fabian1
    • RE: Ein Level des Objektbaums auslesen?

      @heikow said in Ein Level des Objektbaums auslesen?:

      Hallo,
      ich habe einen Objektbaum wie:
      alias.0.root
      alias.0.root.item_1
      alias.0.root.item_1.subitem_1
      alias.0.root.item_1.subitem_2
      alias.0.root.item_2
      alias.0.root.item_2.subitem_a
      usw.
      Ich möchte eine Ebene "ausklappen" und sehen was drin ist. Also z.B alias.0.root auslesen und ['item_1','item_2'] bekommen.
      Momentan mache ich das mit einer function

      // Funktion zum Auslesen der direkten Kinder eines Objektbaums
      function readTreeLevel(root, callback) {
          // Alle Objekte unterhalb von root.* abfragen
          getKeys(root + ".*", function (err, keys) {
              if (err) {
                  log("Fehler beim Lesen der Keys: " + err, 'error');
                  callback([]);
                  return;
              }
              
              var startDepth = root.split('.').length;
              var directChildren = [];
      
              keys.forEach(function(key) {
                  var parts = key.split('.');
                  // Wir wollen nur die Objekte, die genau eine Ebene tiefer liegen:
                  // Wenn root = "alias.0.root" ist und wir haben "alias.0.root.item_1",
                  // dann liegt dieses Objekt genau eine Ebene darunter.
                  if (parts.length === startDepth + 1) {
                      directChildren.push(parts[parts.length - 1]);
                  }
              });
              
              callback(directChildren);
          });
      }
      
      
      // Beispielhafte Verwendung:
      var start = "alias.0.root";
      readTreeLevel(start, function(children) {
          log("Direkte Kinder von " + start + ": " + JSON.stringify(children));
      });
      
      
      
      posted in JavaScript
      F
      Fabian1
    • RE: [gelöst] Blockly Verständnisfrage

      @der-goerch said in [gelöst] Blockly Verständnisfrage:

      Folgendes Szenario: Zum Sonnenuntergang soll die Leuchte eingeschaltet werden und zwar mit 20%. Ab dem Zeitpunkt soll auch der Bewegungsmelder seine Arbeit aufnehmen. Bei einer erkannten Bewegung soll die Leuchte auf 100% Helligkeit gestellt werden und wenn keine Bewegung mehr erkannt wird, die Lampe wieder auf 20% dimmen.
      Ab 22:30 soll sich das Verhalten allerdings ändern. Die Lampe soll jetzt nicht mehr auf 20% leuchten sondern ausgehen. Und nur bei Bewegung auf 100% gehen, wenn keine Bewegung, dann wieder ausgehen (das Licht soll ja nicht die ganze Nacht leuchten...).

      Hier das ganze mit Javascript:

      const lightId = "Haustür level"; // ID der Lampe
      const motionSensorId = "BWMEingangVorne presence"; // ID des Bewegungsmelders
      
      // Nachtzeitpunkt
      const nightTime = "22:30"; // Nachtmodus beginnt ab 22:30 Uhr
      
      // Funktion zur Bestimmung, ob Nachtmodus aktiv ist
      function isNight() {
          const now = new Date();
          const [hours, minutes] = nightTime.split(":").map(Number);
          return now.getHours() >= hours && now.getMinutes() >= minutes;
      }
      
      // Bewegungsmelder-Trigger
      on({ id: motionSensorId, change: "any" }, (obj) => {
          const motionDetected = obj.state.val;
      
          if (isNight()) {
              // Verhalten ab 22:30 Uhr
              if (motionDetected) {
                  setState(lightId, 100); // Licht auf 100% bei Bewegung
              } else {
                  setState(lightId, 0); // Licht aus ohne Bewegung
              }
          } else {
              // Verhalten zwischen Sonnenuntergang und 22:30 Uhr
              if (motionDetected) {
                  setState(lightId, 100); // Licht auf 100% bei Bewegung
              } else {
                  setState(lightId, 20); // Licht auf 20% ohne Bewegung
              }
          }
      });
      
      // Sonnenuntergangs-Trigger
      on({ id: "system.sun.sunset", change: "any" }, () => {
          // Zum Sonnenuntergang Licht auf 20% schalten
          setState(lightId, 20); // Licht auf 20%
      });
      
      // Nachtmodus-Trigger (ab 22:30 Uhr)
      schedule("30 22 * * *", () => {
          setState(lightId, 0); // Licht aus bei Nachtstart
      });
      
      
      posted in Blockly
      F
      Fabian1
    • RE: js-controller Lucy (Version 7.0) jetzt im Stable Repository

      @mrhary bei mir läuft der Radar2 ohne probleme mit der 7.0.3. Hast du die readme auf github gelesen und alle Schritte befolgt?

      posted in ioBroker Allgemein
      F
      Fabian1
    • RE: Ring Doorbell Adapter

      @johnnybahama wie oben beschrieben: Lösche zunächst alle autorisierten Client-Geräte und warte kurz ab. Danach generiere einen neuen Token. Beachte, dass sich manchmal nur der mittlere Teil des neuen Tokens ändert, während Anfang und Ende gleich bleiben. Lass dich davon nicht verunsichern und vergleiche die Tokens genau.

      posted in ioBroker Allgemein
      F
      Fabian1
    • RE: Test Adapter LG ThinQ

      @lucky_esa Läuft! Super vielen Dank!

      posted in Tester
      F
      Fabian1
    • RE: Test Adapter LG ThinQ

      @tombox der login scheint zu funktionieren, mega!
      Aber ich kriege immernoch einen Fehler beim Adapter start:

      lg-thinq.0
      	2024-12-02 02:27:05.502	info	Found: 1 devices
      lg-thinq.0
      	2024-12-02 02:27:03.431	info	Login successful
      lg-thinq.0
      	2024-12-02 02:27:02.573	error	<!DOCTYPE html> <html lang="de" dir="ltr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no"> <meta http-equiv="Expires" content="Mon, 06 Jan 1990 00:00:01 GMT"> <meta http-equiv="Expires" content="-1"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> <script src="/js/jquery-3.6.0.min.js"></script> <script src="/js/jquery-ui.js"></script> <script src="/js/jquery.fileDownload.js"></script> <script src="/js/jquery.loading.block.js"></script> <script src="/js/util.js?v=202412020127020379"></script> <script src="/js/jquery.validate.js"></script> <script src="/js/scroll-detection.js" defer></script> <script src="/js/scroll-shadow.js" defer></script> <script src="/js/bootstrap/bootstrap.bundle.min.js"></script> <script src="/js/popper.min.js"></script> <script src="/js/bootstrap/bootstrap.min.js"></script> <script src="/js/lib/jsencrypt.min.js"></script> <link rel="stylesheet" href="/css/bootstrap.min.css"> <link rel="stylesheet" href="/css/style.min.css?v=202412020127"> <link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon"> <script> function tracelog(){ }</script> <script type="text/javascript"> var svc_list_ga = "SVC202'" || 'SVC709' ; var gtmContainer = ""; if(svc_list_ga === 'SVC709'){ //SVC709 일때만 아래 스니펫 호출 요청. gtmContainer = ""; if(gtmContainer !== '' && gtmContainer !== null){ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer',gtmContainer); } } if(isConsole()){ console.log("서비스코드 : " + svc_list_ga); console.log(get3rdPartyRedirectDomain()); } if(!isExceptGtmCountry()){ if(isConsole()){ console.log("gtm 실행"); } var signInData = getSessionStorageObject("signIn_data"); var userId = signInData != null && signInData.account != null && !isEmpty(signInData.account.userNoEnc) ? signInData.account.userNoEnc : null; var userLoginIdType = signInData != null && signInData.account != null && !isEmpty(signInData.account.userIDType) ? signInData.account.userIDType : null; var age = signInData != null && signInData.account != null && !isEmpty(signInData.account.age) ? signInData.account.age : null; var gender = signInData != null && signInData.account != null && !isEmpty(signInData.account.gender) ? signInData.account.gender : null; var termsDisplayType = null; _gPush2("Y", svc_list_ga, userId, userLoginIdType, age, gender, termsDisplayType); _gTM(''); setSessionStorageObject('GA_COMMON_ID', ''); if(isConsole()){ console.log("gtm 실행 끝"); console.log("LOGIN_YN : Y"); } } window.onpageshow = function(event) { if ( event.persisted || (window.performance && window.performance.navigation.type === 2)) { // Back Forward Cache로 브라우저가 로딩될 경우 혹은 브라우저 뒤로가기 했을 경우 doPostUrl("/common/retrieveLogin/v1", {}, function (data) { if(data === 'FAIL') { window.location.reload(true); } }); } } </script> <script type="text/javascript"> var g_disabled_flag = true $(function(){ $(document).on('click', '.lgacc-contents button', function(){ if($(this).data('auto-disabled') !== 'N'){ var $b = $(this); var duration = $b.data('duration') ? parseInt($b.data('duration'), 10) : 3000; $b.attr('disabled',true); setTimeout(function(){ if(g_disabled_flag) { $b.attr('disabled',false); } },duration); } }) }) var LGAC = LGAC || {}; LGAC.ERROR=(function(){ function _getHttpStatusError(__opt) { var _msg = ''; switch(__opt) { case '400' : _msg = "400 Bad Request"; break; case '401' : _msg = "401 Unauthorized"; break; case '403' : _msg = "403 Forbidden"; break; case '405' : _msg = "405 Method Not Allowed"; break; case '406' : _msg = "406 Not Acceptable"; break; case '411' : _msg = "411 Length Required"; break; case '412' : _msg = "412 Precondition Failed"; break; case '500' : _msg = "500 Internal Server Error"; break; } return _msg; } var _getMembershipMsg = function (__opt, __brTagReplace) { var _msg = '', _isReplace = (typeof __brTagReplace === "undefined") ? true : __brTagReplace; switch(__opt) { case "Common.ERR_MSG.64" : _msg = "This browser is not supported.\u003Cbr\u003E Please use another browser.\u003Cbr\u003E (e.g. Chrome, Safari, etc.)"; break; case "TB.MINUTE" : _msg = "Minute"; break; case "TB.SECOND" : _msg = "Second"; break; case "PC-SI-802-04P.BODY.01" : _msg = "Sie haben bereits ein registriertes Konto."; break; case "Common.ERR_MSG.36" : _msg = "Es handelt sich um ein Konto, das über {0} registriert wurde.\u003Cbr\u003E Bitte melden Sie sich an mit `{1}-Anmeldung`."; break; case "Common.ERR_MSG.37" : _msg = "Dieses Konto ist bereits über soziale Medien registriert.\u003Cbr\u003E Bitte melden Sie sich mit dem relevanten Konto an."; break; case "PC-SI-206P.TITLE" : _msg = "Anmeldungs-Leitfaden"; break; case "PC-SI-401L.ERR_MSG.82" : _msg = "Verwenden Sie die LG ThinQ App, um ein Konto zu erstellen.\u003Cbr\u003E Führen Sie anschließend die notwendigen Schritte aus, um Ihr Produkt zu registrieren."; break; } if (_isReplace) { _msg = _msg.replace(/(<br>|<br\/>|<br \/>)/g, '\r\n'); } return _msg; }; return { getHttpStatusError : _getHttpStatusError, getMessage : _getMembershipMsg }; })(); </script><head> <style> .lg-logo::before { width: 166px !important; background: url("/images/svg/lgacc-logo-global.png") no-repeat 0 0; } </style> </head> <body> <script type="text/javascript"> var storage_country = getLocalStorageObject('country') || '' var storage_language = getLocalStorageObject('language') || '' if ((storage_country && storage_language) && (storage_country !== 'DE' || storage_language !== 'de')) { window.location.href = '/common/setLocale?svcYn=Y&lang=' + storage_language + '&country=' + storage_country + '&redirect_url=' + encodeURIComponent(window.location.href); } $(document).ready(function () { document.title = $(".blockquote p").html().split("<br>")[0] $(".error404Main").hide(); var svcCode = getSessionStorageObject('svcCode') ? getSessionStorageObject('svcCode') : getQueryMap(location.href).svc_code; var referrer = document.referrer; if(svcCode == 'SVC709' || svcCode == null) { $(".error404Main").show(); if(referrer.indexOf("/signin")!=-1 || referrer.indexOf("/service")!=-1) { $(".error404Main").hide(); } } var cause = 'Required request parameter &#039;uuid&#039; for method parameter type String is not present'; if(cause != null && cause.indexOf('Not Validation AccessToken.') > -1 && svcCode == 'SVC202'){ $(".error404Main").show(); if(typeof window.empBridge != 'undefined'){ window.empBridge.refreshTokenExpired(); tracelog("call empBridge"); } else { tracelog('empBridge is undefined'); } } if(cause != null && cause.indexOf('401 Unauthorized') > -1 && svcCode == 'SVC202'){ var cause = 'Required request parameter &#039;uuid&#039; for method parameter type String is not present'; if(typeof window.empBridge != 'undefined'){ if(/iPhone|iPad|iPod|Macintosh/gi.test(navigator.userAgent)) { window.webkit.messageHandlers.requestSession.postMessage(""); }else if(/Android/gi.test(navigator.userAgent)){ window.empBridge.requestSession(); } console.log("call empBridge.requestSession()"); }else{ console.log('empBridge is undefined'); } } }); </script> <div class="lgacc lgacc-before-login"> <!-- header bar --> <div class="container-fluid lgacc-header bg-white"> <div class="row align-items-center lgacc-menu-bar"> <div class="col-12 col-sm-3 col-size-lg"> <a href="javascript:void(0)" class="lg-logo" aria-label="LG"> <h1 class="sr-only" aria-hidden="true">LG</h1> </a> </div> </div> </div> <!-- contents --> <div class="container pb-3 mb-auto lgacc-contents"> <div class="row align-items-center justify-content-center flex-grow-1 pt-3"> <div class="col"> <div class="row"> <div class="col-12 text-center mb-1 mb-md-3"> <img src="/images/drawable-hdpi/error-access.png" srcset="/images/drawable-xhdpi/error-access@2x.png 2x, /images/drawable-xxhdpi/error-access@3x.png 3x" alt=""> </div> <div class="col-12 text-center pt-3 pt-md-4"> <div class="blockquote"> <p>Der Zugriff ist ungültig.<br> Bitte melden Sie sich an und versuchen es erneut.<!--<br><span style="color:#fff;" class="codeview">Required request parameter &#039;uuid&#039; for method parameter type String is not present</span></p>--> </div> </div> <div class="col-12 pt-3 pt-md-4"> <div class="btn-set-x"> <button type="button" class="btn btn-primary btn-w320" onclick="goUserLogin()">Anmelden</button><!-- 로그인 --> </div> </div> </div> </div> </div> </div> <!-- //contents --> <!-- Footer --> </div> </body> </html>
      lg-thinq.0
      	2024-12-02 02:27:02.571	error	AxiosError: Request failed with status code 500
      
      posted in Tester
      F
      Fabian1
    • RE: Test Adapter LG ThinQ

      @hal hast du hier die Beiträge hier gelesen? Wenn der Adapter läuft, dann läuft er auch. Würdest du ihn allerdings jetzt stoppen und versuchen ihn neu zu starten, würde er nicht mehr funktionieren, da du dich nicht mehr anmelden kannst.

      posted in Tester
      F
      Fabian1
    • RE: Test Adapter LG ThinQ

      Die scheinen bei LG im Moment einiges umzustellen.
      Thinq.jpg

      posted in Tester
      F
      Fabian1
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo