Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Script] Einkaufsliste –> Telegram

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

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

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

[Script] Einkaufsliste –> Telegram

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
50 Beiträge 14 Kommentatoren 12.8k Aufrufe 2 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.
  • D Offline
    D Offline
    dna909
    schrieb am zuletzt editiert von
    #20

    So, das Script habe ich angepasst.

    Darf dann getestet werden :-)

    dna909

    Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

    1 Antwort Letzte Antwort
    0
    • T Offline
      T Offline
      tempestas
      schrieb am zuletzt editiert von
      #21

      Hi,

      ich habe dna909s Vorarbeit mal genutzt und ein etwas angepasstes Skript gemacht.

      Dieses hat derzeit KEINE Mengenabgaben inkludiert; kann man zwar einschalten, aber ich brauche es nicht, da die Liste wirklich als Gedankenstütze, wie pix es so schön sagte, sein soll.

      Die wesentlichen Unterschiede bei gleicher Basis sind zu dna909:

      1. Kein manuelles Erstellen der Liste notwendig, da ich mit einem regex Auslöser arbeite;

      2. es wird daher automatisch laufend eine Liste für VIS erstellt

      3. in Teilen etwas anders gescripted und eventuell (das liegt im Auge des Betrachters) in Teilen etwas leichter lesbar, wobei da sicherlich noch viel Potenzial ist. Ich übe ja auch noch massiv.

      4. es sollte kein Problem geben bei mehr als 26 Gegenständen

      5. kein JSON (das könnte sich vielleicht rächen, wenn ich Mengen mit aufnehmen möchte)

      6. Keine Unterscheidung nach Drogerie und Sonstigem als Liste, da wir wenn dann eh alles zusammen holen

      Danke an dna909 für seine Vorarbeit, die natürlich Erwähnung findet in meinem Skript :)

      Nun aber das Skript, falls es interessiert:

      ! ```
      `// Einkaufsliste
      //
      // Idee und Basis: dna909
      //
      // http://forum.iobroker.net/viewtopic.php?f=21&t=8766
      //
      // abgewandelt: tempestas, Datum 6.11.2017
      //
      // status: v 1.0 - stable
      ! // SKRIPTEINSTELLUNGEN
      ! var debug = false;
      var force = true;
      var path = "javascript.0.Einkaufsliste."; // Pfad für generelle Variablen und States
      var pathItems = "javascript.0.Einkaufsliste.Items."; // Pfad für die zu kaufenden Gegenstände
      ! // ############################
      // ########## STATES ##########
      // ############################
      ! createState(path +'Liste', "", { // String, in dem die Einkaufsliste gespeichert wird
      name: "Liste",
      type: 'string',
      role: 'string',
      });
      ! createState(path +'clearBtn', false, force, { // löschen Button, damit man nicht alles manuell abwählen muss
      name: 'Clear Liste',
      desc: 'Löscht die Liste',
      type: 'boolean',
      role: 'state',
      unit: ''
      });
      ! createState(path +'telegramBtn', false, force, { // sendet die Liste via Telegram
      name: 'Send Telegram',
      desc: 'Sendet Telegram Einkaufsliste',
      type: 'boolean',
      role: 'state',
      unit: ''
      });
      ! // #########################################################
      // ########## ARRAY MIT INHALT DER KATEGORIEN ##############
      // #########################################################
      ! var PurchList=new Array( "Ananas", "Apfel", "Aprikose_Pfirsich","Banane", "Birne", "Datteln", "Erdbeeren","Kirschen",
      "Kiwi", "Mandarine","Mango", "Melone", "Orange", "Waldbeeren", "Weintrauben", "Zitrone_Limette",

                          "Chilis", "Erbsen", "Gurke","Karotten", "Kartoffeln", "Kohl", "Kohlrabi", "Kürbis", "Lauch", "Mais", "Paprika",
                          "Pilze", "Radieschen", "Tomaten", "Zucchini", "Zwiebeln", 
      
                          "Aufschnitt", "Geflügel", "Geschnetzeltes", "Hackfleisch", "Kabanossi", "Rind", "Schwein", "Wiener","Fischstäbchen", "Garnelen", 
      
                          "Bratfix", "Butter", "Creme-Fraiche", "Dips", "Eier", "Frischkaese", "Joghurt", "Kaese", "Kochsahne", "Kraeuterquark", "Milch",
                          "Mozzarella", "Quark", "Sauerrahm", "Schmelzkäse", 
      
                          "Brötchen", "Brot", "Couscous", "Haferflocken", "Kichererbsen", "Mehl", "Müsli", "Nudeln","Pizzateig", "Reis", "Sonnenblumenkerne", "Vollkornnudeln",
      
                          "Asiasauce", "Brühe","BBQ-Sauce", "Chili", "Essig", "Ketchup", "Mayonaise", "Öl", "Paprikapulver", "Pesto", "Pfeffer", "Salz", "Tomatenmark", "Tomatensauce", "Senf", "Zucker", 
      
                          "Saft", "Tonicwater", "Cola", "Fanta", "Sprite", "Bier", "Bier-alkoholfrei","Alsterwasser", 
                          "Alsterwasser-alkoholfrei", "Weizenbier", "Sekt","Energydrink", "Wein", "Tee", "Kaffee", "Kaffee-entkoffiniert", 
      
                          "Alufolie", "Backpapier", "Biomüllbeutel","Klopapier", "Küchenrolle", "Deo", "Haargel", "Rasierklingen", "Zahnbürste", "Zahnpasta","Duschgel", "Raumduft", "Shampoo",  "Seife",  "Schwamm", "Bürste", "Spüli", 
                          "Klarspüler", "Spülmaschinensalz", "Tabs","Badreiniger", "Glasreiniger","Fettlöser", "Bodenreiniger", "Ceranreiniger", "Weichspüler", "Waschmittel", "Fleckentferner");
      

      !
      // ##################################################################
      // Variablen
      // ##################################################################
      ! var idListe = path + 'Liste';
      ! var idClear = path + 'clearBtn';
      ! var idTelegram = path + 'telegramBtn';
      ! var lengthListPurch=(PurchList.length)-1; // Variablen für Auslesen wieviele Inhalte in den jeweiligen Arrays stehen

      var regexTrigger = /^javascript.0.Einkaufsliste.Items..*$/;

      ! var listeTotal = [];
      ! // ################################################################
      // ###### STATES FÜR DIE GEGENSTÄNDE IN OBJEKTEN ERZEUGEN #######
      // ################################################################
      ! function createItems(){
      var i = 0;
      for (i = 0; i < lengthListPurch; i++){
      createState(pathItems +PurchList[i], false, force, {
      name: 'Einkauf',
      desc: PurchList[i],
      type: 'boolean',
      role: 'state',
      unit: ''
      });

          /*
          createState(pathItems +(PurchList[i]) + ".Menge", 0, force, {           // hier könnte man Mengenangaben mit einbeziehen, brauche ich jedoch nicht.
              name: 'Einkauf',
              desc: PurchList[i],
              type: 'number',
              role: 'state',
              unit: ''
          });
       */   
      
      }
      

      }

      ! // #############################################################
      // TRIGGER FÜR ERZEUGUNG, LÖSCHEN UND TELEGRAM
      // #############################################################
      ! on({ id:regexTrigger,
      change: 'ne'},
      function(data) { // regex trigger, löst immer aus sobald etwas an- oder abgewählt wird
      purchlistCreate();
      });
      ! on(idClear, function(obj){ // trigger fürs Löschen
      if(obj.state.val === true){
      clearPurch();
      }
      });
      ! on(idTelegram, function(obj){ // trigger für Telegram
      if(obj.state.val === true){
      sendTelegram();
      }
      });
      ! // #################################################################
      // FUNCTIONS
      // #################################################################
      ! ///// Einkaufsliste erzeugen //////////////////////////////////////////////////////////////////
      ! function purchlistCreate(){
      var i = 0;
      var item;

          listeTotal = [];
      
          for (i = 0; i < lengthListPurch; i++){
      
              if(getState(pathItems +PurchList[i]).val === true) {
              item = PurchList[i];
              listeTotal.push(item);
              if(debug) log(item + " zur Einkaufsliste hinzugefügt ");
              }
          } 
      setState(idListe, listeTotal.join('
      

      ')); // Liste wird für VIS formatiert
      }

      ! function clearPurch(){
      var i = 0;
      ! for (i = 0; i < lengthListPurch; i++){

              if(getState(pathItems +PurchList[i]).val === true) {
                  setState(pathItems +PurchList[i], false);
                  setState(idListe, "");
                  setStateDelayed(idClear, false, 2000);
              }
          }
      

      }

      ! function sendTelegram() {

              var telegramtext = getState(idListe).val.replace(/
      

      /g , "\n"); // telegram Liste formatieren, entfernt den Zeilenumbruch für vis und ersettz mit Zeilenumbruch Telegram

              sendTo('telegram.0', {                                          // Nachricht per Telegram senden
              text: "Bitte mitbringen:\n\n" + telegramtext        
              });
      
              setStateDelayed(idTelegram, false, 2000);
      

      }

      ! // Bei Start
      ! createItems();` [/i][/i][/i][/i][/i][/i][/i][/i]

      <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        dna909
        schrieb am zuletzt editiert von
        #22

        Hi tempestas,

        zu Punkt 4:

        das war in meinem Script auch schon gefixt, hatte es nur nicht erwähnt.

        Ansonsten nicht schlecht gemacht, im Gegensatz zu meinem Wurschtelcode :-)

        Aber ich stehe auch noch ganz am Anfang. Manchnmal ist es auch noch recht mühsam, die Dokus zu durchforsten und die

        richtigen Befehle zu finden und dann auch richtig anzuwenden.

        Weiter so….

        Gruß dna909

        Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          tempestas
          schrieb am zuletzt editiert von
          #23

          Gab noch ein, zwei Themen, die in dieser Version bereinigt sind sowie einen counter eingebaut, damit man z.B. auf seiner Main View signalisieren kann, wieviele Sachen auf der Liste stehen

          ! ```
          `// Einkaufsliste
          //
          // Idee und Basis: dna909
          //
          // http://forum.iobroker.net/viewtopic.php?f=21&t=8766
          //
          // abgewandelt: tempestas, Datum 6.11.2017
          //
          // status: v 1.0 - stable
          // status: v 1.1 - regex trigger über state verzögert, da sonst bei erstmaligem Ausführen ständig getriggert wird und damit Warnungen im LOG stehen;
          // - state für VIS Kategorienumschaltung eingefügt; Fehler bei PurchList.length korrigiert, die -1 entfernt; counter eingefügt
          ! // SKRIPTEINSTELLUNGEN
          ! var debug = false;
          var force = true;
          var path = "javascript.0.Einkaufsliste."; // Pfad für generelle Variablen und States
          var pathItems = "javascript.0.Einkaufsliste.Items."; // Pfad für die zu kaufenden Gegenstände
          !
          ! // ############################
          // ########## STATES ##########
          // ############################
          ! createState(path +'regex', false, force, {
          name: "Liste",
          type: 'boolean',
          role: 'state',
          });
          ! createState(path +'Liste', "", force, { // String, in dem die Einkaufsliste gespeichert wird
          name: "Liste",
          type: 'string',
          role: 'string',
          });
          ! createState(path +'clearBtn', false, force, { // löschen Button, damit man nicht alles manuell abwählen muss
          name: 'Clear Liste',
          desc: 'Löscht die Liste',
          type: 'boolean',
          role: 'state',
          unit: ''
          });
          ! createState(path +'telegramBtn', false, force, { // sendet die Liste via Telegram
          name: 'Send Telegram',
          desc: 'Sendet Telegram Einkaufsliste',
          type: 'boolean',
          role: 'state',
          unit: ''
          });
          ! createState(path +'visCategory',0, force, { // für die verschiedenen Kategorien
          name: 'VIS Einkaufsliste',
          type: 'number',
          min: '0',
          max: '8',
          states: '0:Obst;1:Gemüse;2:Wurst/Fleisch; 3:Käse/Milchprodukte; 4: Brot/Getreide; 5: Saucen/Gewürze; 6: Getränke; 7: Drogerie; 8: frei',
          desc: 'Status Alarmanlage'
          });
          ! createState(path +'visBtn', false, force, { // trigger für Anzeige der Gesamtliste in Vis
          name: 'Show Liste',
          desc: 'Zeigt die Gesamtliste in Vis',
          type: 'boolean',
          role: 'state',
          unit: ''
          });
          ! createState(path +'count',0, force, {
          name: 'VIS Einkaufsliste Anzahl Objekte',
          type: 'number',
          min: '0',
          max: '200',
          });
          ! // #########################################################
          // ARRAY MIT INHALT DER KAUFGEGENSTÄNDE
          // #########################################################
          ! var PurchList= [ "Ananas", "Apfel", "Aprikose_Pfirsich","Banane", "Birne", "Datteln", "Erdbeeren","Kirschen",
          "Kiwi", "Mandarine","Mango", "Melone", "Orange", "Waldbeeren", "Weintrauben", "Zitrone_Limette",

                              "Chilis", "Chinakohl", "Erbsen", "Gurke","Karotten", "Kartoffeln",  "Kohlrabi", "Kürbis", "Lauch", "Mais", "Paprika",
                              "Pilze", "Radieschen", "Tomaten", "Zucchini", "Zwiebeln", 
          
                              "Aufschnitt", "Geflügel", "Geschnetzeltes", "Hackfleisch", "Kabanossi", "Rind", "Schwein", "Wiener","Fischstäbchen", "Garnelen", 
          
                              "Bratfix", "Butter", "Creme-Fraiche", "Dips", "Eier", "Frischkaese", "Joghurt", "Kaese", "Kochsahne", "Kraeuterquark", "Milch",
                              "Mozzarella", "Quark", "Sauerrahm", "Schmelzkäse", 
          
                              "Brötchen", "Brot", "Couscous", "Haferflocken", "Kichererbsen", "Mehl", "Müsli", "Nudeln","Pizzateig", "Reis", "Sonnenblumenkerne", "Vollkornnudeln",
          
                              "Asiasauce", "Brühe","BBQ-Sauce", "Chili-Sauce", "Essig", "Ketchup", "Mayonaise", "Öl", "Paprikapulver", "Pesto", "Pfeffer", "Salz", "Tomatenmark", "Tomatensauce", "Senf", "Zucker", 
          
                              "Saft", "Tonicwater", "Cola", "Fanta", "Sprite", "Bier", "Bier-alkoholfrei","Alsterwasser", 
                              "Alsterwasser-alkoholfrei", "Weizenbier", "Sekt","Energydrink", "Wein", "Tee", "Kaffee", "Kaffee-entkoffiniert", 
          
                              "Alufolie", "Backpapier", "Biomüllbeutel","Klopapier", "Küchenrolle", "Deo", "Haargel", "Rasierklingen", "Zahnbürste", "Zahnpasta","Duschgel", "Raumduft", "Shampoo",  "Seife",  "Schwamm", "Bürste", "Spüli", 
                              "Klarspüler", "Spülmaschinensalz", "Tabs","Badreiniger", "Glasreiniger","Fettlöser", "Bodenreiniger", "Ceranreiniger", "Weichspüler", "Waschmittel", "Fleckentferner"];
          

          !
          // ##################################################################
          // Variablen
          // ##################################################################
          ! var idRegex = path + 'regex';
          ! var idListe = path + 'Liste';
          ! var idClear = path + 'clearBtn';
          ! var idTelegram = path + 'telegramBtn';
          ! var idCount = path + 'count';
          ! var lengthListPurch=(PurchList.length); // Variablen für Auslesen wieviele Inhalte in den jeweiligen Arrays stehen

          var regexTrigger = /^javascript.0.Einkaufsliste.Items..*$/;

          ! var listeTotal = [];
          ! // ################################################################
          // ###### STATES FÜR DIE GEGENSTÄNDE IN OBJEKTEN ERZEUGEN #######
          // ################################################################
          ! function createItems(){
          var i = 0;
          for (i = 0; i < lengthListPurch; i++){
          createState(pathItems +PurchList[i], false, {
          name: 'Einkauf',
          desc: PurchList[i],
          type: 'boolean',
          role: 'state',
          unit: ''
          });

              /*
              createState(pathItems +(PurchList[i]) + ".Menge", 0, force, {           // hier könnte man Mengenangaben mit einbeziehen, brauche ich jedoch nicht.
                  name: 'Einkauf',
                  desc: PurchList[i],
                  type: 'number',
                  role: 'state',
                  unit: ''
              });
           */   
          
          }
          

          ! }
          ! // #############################################################
          // TRIGGER FÜR ERZEUGUNG, LÖSCHEN UND TELEGRAM
          // #############################################################
          ! on({ id:regexTrigger,
          change: 'ne'},
          function(data) { // regex trigger, löst immer aus sobald etwas an- oder abgewählt wird
          if(getState(idRegex).val === true) {
          purchlistCreate(); // if Bedingung, damit es nicht zu warnmeldungen kommt, wenn der regex trigger ausgeführt wird aber Objekte noch nicht angelegt sind
          count();
          }

          });

          ! on(idClear, function(obj){ // trigger fürs Löschen
          if(obj.state.val === true){
          clearPurch();
          }
          });
          ! on(idTelegram, function(obj){ // trigger für Telegram
          if(obj.state.val === true){
          sendTelegram();
          }
          });
          ! // #################################################################
          // FUNCTIONS
          // #################################################################
          ! ///// Einkaufsliste erzeugen //////////////////////////////////////////////////////////////////
          ! function purchlistCreate(){
          var i = 0;
          var item;

              listeTotal = [];
          
              for (i = 0; i < lengthListPurch; i++){
          
                  if(getState(pathItems +PurchList[i]).val === true) {
                  item = PurchList[i];
                  listeTotal.push(item);
                  if(debug) log(item + " zur Einkaufsliste hinzugefügt ");
                  }
              } 
          setState(idListe, listeTotal.join('
          

          ')); // Liste wird für VIS formatiert
          }

          ! function count(){
          var n = listeTotal.length;
          setState(idCount, n);
          }
          ! function clearPurch(){
          var i = 0;
          ! for (i = 0; i < lengthListPurch; i++){

                  if(getState(pathItems +PurchList[i]).val === true) {
                      setState(pathItems +PurchList[i], false);
                      setState(idListe, "");
                      setStateDelayed(idClear, false, 2000);
                  }
              }
          

          }

          ! function sendTelegram() {

                  var telegramtext = getState(idListe).val.replace(/
          

          /g , "\n"); // telegram Liste formatieren, entfernt den Zeilenumbruch für vis und ersettz mit Zeilenumbruch Telegram

                  sendTo('telegram.0', {                                          // Nachricht per Telegram senden
                  text: "Bitte mitbringen:\n\n" + telegramtext        
                  });
          
                  setStateDelayed(idTelegram, false, 2000);
          

          }

          ! // Bei Start
          ! createItems();
          setStateDelayed(idRegex, true, 30000); // nachdem alle states angelegt sind, kann der regex trigger genutzt werden;`
          ! @dna909:
          ! Das Thema mit dem durchwurschteln und Befehle suchen kenne ich :) so manches mal denke ich mir "vom Prinzip her müsste es so gehen". Bloß das umsetzen des "so", das ist die Herausforderung, wenn man zu wenig Befehle kennt.
          ! stackoverflow und w3schools haben da schon echt viel geholfen[/i][/i][/i][/i][/i][/i][/i][/i]

          <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

          1 Antwort Letzte Antwort
          0
          • fischi87F Offline
            fischi87F Offline
            fischi87
            schrieb am zuletzt editiert von
            #24

            @tempestas

            Hi, hast du dein Script in einer view schon integriert? Wenn ja, könntest du ein paar Bilder mal posten?

            Mit freundlichen Grüßen

            Gesendet von iPhone mit Tapatalk

            1 Antwort Letzte Antwort
            0
            • kmxakK Offline
              kmxakK Offline
              kmxak
              Most Active
              schrieb am zuletzt editiert von
              #25

              Hatte so was auch schon vor und ich hatte die Idee die ganzen Daten in ein JSON einzufügen und zu ergänzen. Das würde datenpunkte sparen. Dann noch ein spezielles Widget dafür. Bislang aber alles noch Theorie. Werde deins die Tage mal testen.

              Gesendet von meinem SM-G930F mit Tapatalk

              Gruß Alex

              1 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                tempestas
                schrieb am zuletzt editiert von
                #26

                Hier ein Bild.

                Der Scrollbalken in der "wörtlichen Liste" ist nur auf dem PC zu sehen (habe "overflow y" eingeschaltet, falls die Liste mal sehr lang werden sollte).

                Sieht im Grunde nicht anders aus als bei dna909; wie auch, die Idee ist ja seine. Ich habe nur das scripting etwas abgeändert, was nicht nötig ist sondern mir mehr als Übung diente.

                ! filename="einkaufsliste.png" index="0">~~

                Die eigentliche Liste kann ich mir dann auch auf meiner Handy-Version anzeigen lassen, so dass die Telegram Funktion eigentlich nicht notwendig ist. Aber sie schadet ja auch nicht.

                <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                1 Antwort Letzte Antwort
                0
                • fischi87F Offline
                  fischi87F Offline
                  fischi87
                  schrieb am zuletzt editiert von
                  #27

                  Siehe ja echt super aus, teilst du uns die Sachen zum einfügen in die view? [emoji28]

                  Gesendet von iPhone mit Tapatalk

                  1 Antwort Letzte Antwort
                  0
                  • T Offline
                    T Offline
                    tempestas
                    schrieb am zuletzt editiert von
                    #28

                    Da ist nichts zum Teilen, sind einfach metro toggle tiles sowie für die Kategorien Wechsel jqui increment widgets.

                    Keine spannenden Anpassungen getätigt.

                    <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                    1 Antwort Letzte Antwort
                    0
                    • fischi87F Offline
                      fischi87F Offline
                      fischi87
                      schrieb am zuletzt editiert von
                      #29

                      Und die Bilder? Google? Sorry für die Fragen aber hab mit vis noch nicht so experimentiert

                      Gesendet von iPhone mit Tapatalk

                      1 Antwort Letzte Antwort
                      0
                      • T Offline
                        T Offline
                        tempestas
                        schrieb am zuletzt editiert von
                        #30

                        ja, sehr mühsames suchen passender (kleiner, transparenter) Bilder.

                        <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                        1 Antwort Letzte Antwort
                        0
                        • D Offline
                          D Offline
                          dna909
                          schrieb am zuletzt editiert von
                          #31

                          Ich hab mir die überwiegend bei Kaufland geklaut. Drogeriekram war hauptsächlich von der dm-Seite. Die sind auch alle transparent.

                          Gruß

                          dna909

                          Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            PapaChriLo
                            schrieb am zuletzt editiert von
                            #32

                            Coole Sache da bleib ich mal am Ball, was sich hier noch so alles tut.

                            LG

                            Christian

                            1 Antwort Letzte Antwort
                            0
                            • T Offline
                              T Offline
                              tempestas
                              schrieb am zuletzt editiert von
                              #33

                              Was erwartest du denn, was sich noch tun sollte?

                              <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                              1 Antwort Letzte Antwort
                              0
                              • D Offline
                                D Offline
                                dna909
                                schrieb am zuletzt editiert von
                                #34

                                Man könnte ja noch alle Artikel über den Barcode erfassen und hätte dann eine richtige Lagerhaltung mit den aktuellen Beständen.

                                Aber wehe jemand vergisst was auszuscannen, dann ist der Kühlschrank leer :lol:

                                Ich denke das Script ist so ok. Wer es erweitern möchte, nur zu….

                                Gruß

                                dna909

                                Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

                                1 Antwort Letzte Antwort
                                0
                                • ? Offline
                                  ? Offline
                                  Ein ehemaliger Benutzer
                                  schrieb am zuletzt editiert von
                                  #35

                                  Hallo Zusammen,

                                  erstmal Danke an dna909 und tempestas für die Steilvorlage.

                                  Ich hab das Scipt mal für unsere Pferde LaWi erweitert.

                                  Erweiterungen sind im Bereich der Einkaufsliste, Mail wird unterstützt und eine weitere Ausgabeformatierung wurde eingefügt.

                                  Wir verwenden keine Bilder um die einzelnen Einkäufe zu selektieren, siehe Screenshots.

                                  Im Hauptdialog verwende ich das Note Widget um die Liste der selektierten Produkte anzuzeigen und auch bei Bedarf auch manuell was dazuschreiben zu können.

                                  Nochmals Danke und einen schönen Abend noch.

                                  Harald aka Equilora

                                  ! // Einkaufsliste
                                  ! //
                                  ! // Idee und Basis: dna909
                                  ! //
                                  ! // http://forum.iobroker.net/viewtopic.php?f=21&t=8766
                                  ! //
                                  ! // abgewandelt:
                                  ! // equilora, Datum 28.11.2017
                                  ! //tempestas, Datum 6.11.2017
                                  ! //
                                  ! // status: v 1.0 - stable
                                  ! // status: v 1.1 - regex trigger über state verzögert, da sonst bei erstmaligem Ausführen ständig getriggert wird und damit Warnungen im LOG stehen;
                                  ! // - state für VIS Kategorienumschaltung eingefügt; Fehler bei PurchList.length korrigiert, die -1 entfernt; counter eingefügt
                                  ! // status: v 1.2 - Ausbau der Einkaufsliste, Unterstützung Mail Versand, weitere Formatierungen fuer unterschiedliche Viewer und Dienste
                                  ! // SKRIPTEINSTELLUNGEN
                                  ! var debug = false;
                                  ! var force = true;
                                  ! var path = "javascript.0.Einkaufsliste."; // Pfad für generelle Variablen und States
                                  ! var pathItems = "javascript.0.Einkaufsliste.Items."; // Pfad für die zu kaufenden Gegenstände
                                  ! // ############################
                                  ! // ########## STATES ##########
                                  ! // ############################
                                  ! createState(path +'regex', false, force, {
                                  ! name: "Liste",
                                  ! type: 'boolean',
                                  ! role: 'state',
                                  ! });
                                  ! createState(path +'Liste', "", force, { // String, in dem die Einkaufsliste gespeichert wird
                                  ! name: "Liste",
                                  ! type: 'string',
                                  ! role: 'string',
                                  ! });
                                  ! createState(path +'regex', false, force, {
                                  ! name: "ListeVIS",
                                  ! type: 'boolean',
                                  ! role: 'state',
                                  ! });
                                  ! createState(path +'ListeVIS', "", force, { // String, in dem die Einkaufsliste fuer VIS gespeichert wird
                                  ! name: "ListeVIS",
                                  ! type: 'string',
                                  ! role: 'string',
                                  ! });
                                  ! createState(path +'clearBtn', false, force, { // löschen Button, damit man nicht alles manuell abwählen muss
                                  ! name: 'Clear Liste',
                                  ! desc: 'Löscht die Liste',
                                  ! type: 'boolean',
                                  ! role: 'state',
                                  ! unit: ''
                                  ! });
                                  ! createState(path +'telegramBtn', false, force, { // sendet die Liste via Telegram
                                  ! name: 'Send Telegram',
                                  ! desc: 'Sendet Telegram Einkaufsliste',
                                  ! type: 'boolean',
                                  ! role: 'state',
                                  ! unit: ''
                                  ! });
                                  ! createState(path +'mailBtn', false, force, { // sendet die Liste via E-Mail
                                  ! name: 'Send Mail',
                                  ! desc: 'Sendet Mail Einkaufsliste',
                                  ! type: 'boolean',
                                  ! role: 'state',
                                  ! unit: ''
                                  ! });
                                  ! createState(path +'visCategory',0, force, { // für die verschiedenen Kategorien
                                  ! name: 'VIS Einkaufsliste',
                                  ! type: 'number',
                                  ! min: '0',
                                  ! max: '9',
                                  ! states: '0:Obst; 1:Gemüse; 2:Wurst/Fleisch; 3:Käse/Milchprodukte; 4:Brot/Getreide; 5:Saucen/Gewürze; 6:Getränke; 7:Drogerie; 8:Tierfutter',
                                  ! desc: 'Status Alarmanlage'
                                  ! });
                                  ! createState(path +'visBtn', false, force, { // trigger für Anzeige der Gesamtliste in Vis
                                  ! name: 'Show Liste',
                                  ! desc: 'Zeigt die Gesamtliste in Vis',
                                  ! type: 'boolean',
                                  ! role: 'state',
                                  ! unit: ''
                                  ! });
                                  ! createState(path +'count',0, force, {
                                  ! name: 'VIS Einkaufsliste Anzahl Objekte',
                                  ! type: 'number',
                                  ! min: '0',
                                  ! max: '200',
                                  ! });
                                  ! // #########################################################
                                  ! // ARRAY MIT INHALT DER KAUFGEGENSTÄNDE
                                  ! // #########################################################
                                  ! // Obst
                                  ! var PurchList= [ "Ananas", "Apfel", "Aprikose_Pfirsich","Banane", "Birne", "Datteln", "Erdbeeren","Kirschen",
                                  ! "Kiwi", "Mandarine","Mango", "Melone", "Orange", "Waldbeeren", "Weintrauben", "Zitrone_Limette",
                                  ! // Gemüse
                                  ! "Chilis", "Chinakohl", "Erbsen", "Gurke","Karotten", "Kartoffeln", "Kohlrabi", "Kürbis", "Lauch", "Mais", "Paprika",
                                  ! "Pilze", "Radieschen", "Tomaten", "Zucchini", "Zwiebeln", "Lauchzwiebeln", "Lauch", "Rote Zwiebeln", "Spinat", "Knoblauch", "Ruccola", "Römer-Salat", "Feld-Salat",
                                  ! "Kren",
                                  ! // Fleisch, Wurst und Fisch
                                  ! "Aufschnitt", "Geflügel", "Geschnetzeltes", "Hackfleisch", "Kabanossi", "Rind", "Schwein", "Wiener","Fischstäbchen", "Garnelen", "Lachs", "Rotbarsch",
                                  ! "Bratwust", "Regensburger", "Salami", "Bauchspeck",
                                  ! // Andere Lebensmittel
                                  ! "Bratfix", "Butter", "Creme-Fraiche", "Dips", "Eier", "Frischkäse", "Joghurt", "Käse", "Kochsahne", "Kräuterquark", "Milch",
                                  ! "Mozzarella", "Quark", "Sauerrahm", "Schmelzkäse", "Sauerkraut", "Blaukraut", "Brühwürfel-Gemüse", "Brühwürfel-Fleisch", "Pommes Frites",
                                  ! "Mozzarella Kugeln", "Geriebener Käse", "Scheibenkäse", "Emmenthaler", "Camenbert", "Rösti", "Erdnuss Flips", "Eis",
                                  ! // Teigwaren
                                  ! "Brötchen", "Brot", "Couscous", "Haferflocken", "Kichererbsen", "Mehl", "Müsli", "Nudeln", "Pizzateig", "Reis", "Sonnenblumenkerne", "Vollkornnudeln",
                                  ! "Flammkuchenteig", "Baguette", "Strudelteig", "Spaghetti",
                                  ! // Brotaufstrich
                                  ! "Nutella", "Marmelade", "Honig",
                                  ! // Saucen und Gewürze
                                  ! "Asiasauce", "Brühe","BBQ-Sauce", "Chili-Sauce", "Essig", "Balsamico", "Ketchup", "Mayonaise", "Oliven Öl", "Sesam Öl", "Paprikapulver", "Pesto", "Pfeffer", "Salz",
                                  ! "Tomatenmark", "Tomatensauce", "Senf", "Zucker", "Kurkuma", "Chyenne Pfeffer", "Curry", "Sesam", "Pinienkerne",
                                  ! // Getränke
                                  ! "Saft", "Tonicwater", "Cola", "Fanta", "Sprite", "Malzbier", "Bier", "Bier-Alkoholfrei", "Spezi", "Edelstoff", "Holler", "Wasser",
                                  ! "Radler", "Weizenbier", "Sekt", "Energydrink", "Wein", "Tee", "Kaffee", "Kaffee-entkoffiniert", "Rotwein", "Weisswein", "RoseWein", "Prosecco",
                                  ! //Spirituosen
                                  ! "Aperol", "Ramazotti", "OakHeart", "Metaxa 5*", "Amarula", "Baileys", "Underberg", "Doppelkorn", "Bärwurz", "Blutwurz",
                                  ! // Drogerieartikel
                                  ! "Alufolie", "Backpapier", "Biomüllbeutel","Klopapier", "Küchenrolle", "Deo", "Tempos", "Haarkur", "Rasierklingen", "Rasierschaum",
                                  ! "Bartwichse", "Zahnbürste", "Zahnpasta","Duschgel", "Raumduft", "Shampoo",
                                  ! "Seife", "Schwamm", "Bürste", "Spüli", "Klarspüler", "Spülmaschinensalz", "Tabs","Badreiniger",
                                  ! "Rohrreiniger", "Glasreiniger","Fettlöser", "Bodenreiniger", "Ceranreiniger", "Weichspüler", "Waschmittel", "Fleckentferner",
                                  ! "Entkalker flüssig", "Entkalker Tabs (Calgon)", "Mückenschutz",
                                  ! // Tierfutter - Pferde
                                  ! "Bionic", "Heucobs", "Faserlight", "MSM", "Mönchspfeffer", "Ingwer(Pferd)", "Fohlenmüsli", "Zuchtmüsli", "Yeasacc",
                                  ! "Mineral Force", "Leinöl", "Mesh", "Atemkräuter", "Heu", "Rice-UP",
                                  ! // Tierfutter - Katzen
                                  ! "Katzenfutter-Stall", "Katzenfutter-Indoor", "Leckerlis Katzen",
                                  ! // Tierfutter - Hund
                                  ! "Hundefutter-Nass", "Hundefutter-Trocken", "Leckerlis Hund",
                                  ! // Apotheke
                                  ! "IbuProfen", "Hustensaft", "Pflaster", "Verbandsmaterial", "Cast", "Enzyme", "Halstabletten", "Telfast", "Symbicort Turbo", "Salbutamol-Inhalator", "Baldrian",
                                  ! // Apotheke Stall und anderer Stallbedarf
                                  ! "Rivanol", "Braunol", "Ballistol Spray", "Mückenschutz Pferd", "Wellcare Emulsion", "Zink Spray", "Blauspray", "Fliegenband",
                                  ! // Sonstiges Landwirtschaft und Hausbedarf
                                  ! "Diesel Traktor", "Motoröl VW 5W-30", "Frostschutz", "Scheibenreiniger", "Bremsflüssigkeit", "Kaminholz", "Anfeuerholz", "Anzünder",
                                  ! "Camping Gas 11Kg", "Gas Feuerzeug", "Destilliertes Wasser", "WD40", "Reissnägel", "Batterie CR3232", "Batterie LR44", "Batterie AA", "Batterie AAA", "Batterie Laterne",
                                  ! "Salz Entkalkungsanlage"];
                                  ! // ##################################################################
                                  ! // Variablen
                                  ! // ##################################################################
                                  ! var idRegex = path + 'regex';
                                  ! var idListe = path + 'Liste';
                                  ! var idListeVIS = path + 'ListeVIS';
                                  ! var idClear = path + 'clearBtn';
                                  ! var idTelegram = path + 'telegramBtn';
                                  ! var idmail = path + 'mailBtn';
                                  ! var idCount = path + 'count';
                                  ! var lengthListPurch=(PurchList.length); // Variablen für Auslesen wieviele Inhalte in den jeweiligen Arrays stehen
                                  ! var regexTrigger = /^javascript.0.Einkaufsliste.Items..$/;
                                  ! var listeTotal = [];
                                  ! // ################################################################
                                  ! // ###### STATES FÜR DIE GEGENSTÄNDE IN OBJEKTEN ERZEUGEN #######
                                  ! // ################################################################
                                  ! function createItems(){
                                  ! var i = 0;
                                  ! for (i = 0; i < lengthListPurch; i++){
                                  ! createState(pathItems +PurchList__, false, {
                                  ! name: 'Einkauf',
                                  ! desc: PurchList__,
                                  ! type: 'boolean',
                                  ! role: 'state',
                                  ! unit: ''
                                  ! });
                                  ! /

                                  ! createState(pathItems +(PurchList__) + ".Menge", 0, force, { // hier könnte man Mengenangaben mit einbeziehen, brauche ich jedoch nicht.
                                  ! name: 'Einkauf',
                                  ! desc: PurchList__,
                                  ! type: 'number',
                                  ! role: 'state',
                                  ! unit: ''
                                  ! });
                                  ! */
                                  ! }
                                  ! }
                                  ! // #############################################################
                                  ! // TRIGGER FÜR ERZEUGUNG, LÖSCHEN UND TELEGRAM
                                  ! // #############################################################
                                  ! on({ id:regexTrigger,
                                  ! change: 'ne'},
                                  ! function(data) { // regex trigger, löst immer aus sobald etwas an- oder abgewählt wird
                                  ! if(getState(idRegex).val === true) {
                                  ! purchlistCreate(); // if Bedingung, damit es nicht zu warnmeldungen kommt, wenn der regex trigger ausgeführt wird aber Objekte noch nicht angelegt sind
                                  ! count();
                                  ! }
                                  ! });
                                  ! on(idClear, function(obj){ // trigger fürs Löschen
                                  ! if(obj.state.val === true){
                                  ! clearPurch();
                                  ! }
                                  ! });
                                  ! on(idTelegram, function(obj){ // trigger für Telegram
                                  ! if(obj.state.val === true){
                                  ! sendTelegram();
                                  ! }
                                  ! });
                                  ! on(idmail, function(obj){ // trigger für e-mail
                                  ! if(obj.state.val === true){
                                  ! sendMail();
                                  ! }
                                  ! });
                                  ! // #################################################################
                                  ! // FUNCTIONS
                                  ! // #################################################################
                                  ! ///// Einkaufsliste erzeugen //////////////////////////////////////////////////////////////////
                                  ! function purchlistCreate(){
                                  ! var i = 0;
                                  ! var item;
                                  ! listeTotal = [];
                                  ! for (i = 0; i < lengthListPurch; i++){
                                  ! if(getState(pathItems +PurchList__).val === true) {
                                  ! item = PurchList__;
                                  ! listeTotal.push(item);
                                  ! if(debug) log(item + " zur Einkaufsliste hinzugefügt ");
                                  ! }
                                  ! }
                                  ! setState(idListe, listeTotal.join('
                                  ')); // Liste wird für VIS formatiert
                                  ! // Eine weitere Formatierung in eine Extra ID schreiben
                                  ! setState(idListeVIS, listeTotal.join(',\n')); // Liste wird für VIS formatiert
                                  ! }
                                  ! function count(){
                                  ! var n = listeTotal.length;
                                  ! setState(idCount, n);
                                  ! }
                                  ! function clearPurch(){
                                  ! var i = 0;
                                  ! for (i = 0; i < lengthListPurch; i++){
                                  ! if(getState(pathItems +PurchList__).val === true) {
                                  ! setState(pathItems +PurchList__, false);
                                  ! setState(idListe, "");
                                  ! setStateDelayed(idClear, false, 2000);
                                  ! }
                                  ! }
                                  ! }
                                  ! function sendTelegram() {
                                  ! var telegramtext = getState(idListeVIS).val.replace(/
                                  /g , "\n"); // telegram Liste formatieren, entfernt den Zeilenumbruch für vis und ersetze mit Zeilenumbruch Telegram
                                  ! sendTo('telegram.0', { // Nachricht per Telegram senden
                                  ! text: "Bitte mitbringen:\n\n" + telegramtext
                                  ! });
                                  ! setStateDelayed(idTelegram, false, 2000);
                                  ! }
                                  ! function sendMail() {
                                  ! var mailtext = getState(idListeVIS).val.replace(/
                                  /g , "\n"); // Liste formatieren, entfernt den Zeilenumbruch für vis und ersetze mit Zeilenumbruch e-mail
                                  ! sendTo('email.0', { // Nachricht per e-mail senden
                                  ! text: "Bitte mitbringen:\n\n" + mailtext,
                                  ! // Muss angepasset werden an die eigenen Mail Addys
                                  ! to: 'adresse1@mail.de, adresse2@mail.de'
                                  ! });
                                  ! setStateDelayed(idmail, false, 2000);
                                  ! }
                                  ! // Bei Start
                                  ! createItems();
                                  ! setStateDelayed(idRegex, true, 30000); // nachdem alle states angelegt sind, kann der regex trigger genutzt werden;________________ 4229_1.jpg
                                  4229_2.jpg
                                  4229_3.jpg

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

                                    Das manuelle hinzufügen via Notiz ist ein schöner Gedanke.

                                    Lustigerweise nutze ich dieses testweise in einer View, auf die Idee, es aber für die Einkaufsliste zu nutzen bin ich wieder nicht gekommen. Schöne Idee!

                                    <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                                    1 Antwort Letzte Antwort
                                    0
                                    • D Offline
                                      D Offline
                                      dmohns
                                      schrieb am zuletzt editiert von
                                      #37

                                      Tolle Sache!!!

                                      Ich habe mir Gedanken darüber gemacht, ob es möglich ist, Via Telegram z.b. Mit dem Text (Zur liste XYZ) einen Artikel der Liste Hinzuzufügen vllt startet das dann auch ein Script, wo man einfach Via Klick die Artikel Auswählen kann.

                                      zudem wollte ich wissen ob es möglich ist via Telegram eine Naricht zu senden, damit der IO letztendlich die Einkaufsliste selbst erzeugt und mir wiederum per Telegram zusendet.

                                      wenn das möglich währe würde ich mich freuen, wenn mir da jemand Helfen könnte, da ich mit JS nicht wirklich viele Erfahrungen habe.

                                      Beispiel

                                      Telegram Messanger

                                      Zur Einkaufsliste Hinzufügen

                                      OK was möchtest du Hinzufügen?

                                      [Gruppe 1][Gruppe 2][Gruppe 3] ec

                                      Gruppe 1

                                      okay Wähle deine Produkte

                                      [Produkt 1 der Gruppe 1][Produkt 2 der Gruppe 1][Produkt 3 der Gruppe 1] ec

                                      [TEXT] Sind Button welche angezeigt werden, die einfach das Produkt in den Massager schreiben bzw z.b. Add.Car.1.1 Womit der IO weis welcher Artikel auf die Liste muss.

                                      Telegram Messanger

                                      Shoppen

                                      Okay Hier ist deine Einkaufsliste

                                      Liste

                                      Eier

                                      Mehl

                                      Zucker

                                      Salz

                                      Shampoo

                                      ec

                                      Danke schon mal im Voraus

                                      1 Antwort Letzte Antwort
                                      0
                                      • Jey CeeJ Online
                                        Jey CeeJ Online
                                        Jey Cee
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #38

                                        Kennst du den Text2Command Adapter?

                                        Damit könnte das sogar ohne JS realisierbar sein.

                                        Gesendet von Unterwegs

                                        Persönlicher Support
                                        Spenden -> paypal.me/J3YC33

                                        1 Antwort Letzte Antwort
                                        0
                                        • T Offline
                                          T Offline
                                          tempestas
                                          schrieb am zuletzt editiert von
                                          #39

                                          @dmohns:

                                          zudem wollte ich wissen ob es möglich ist via Telegram eine Naricht zu senden, damit der IO letztendlich die Einkaufsliste selbst erzeugt und mir wiederum per Telegram zusendet. `

                                          Zumindest diesen Teil tut mein Skript, wenn du das nachfolgende noch ergänzt. Denn durch den REGEX Auslöser wird bei mir die Liste ja ständig aktualisiert.

                                          Abholen kann ich sie aktiv via Telegram mit diesem Skript:

                                          var idListe = "javascript.0.Einkaufsliste.Liste"/*Liste*/;
                                          
                                          on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                                              var stateval = getState('telegram.0.communicate.request').val;              // Statevalue in Variable schreiben
                                              var benutzer = stateval.substring(1,stateval.indexOf("]"));                 // Benutzer aus Statevalue extrahieren
                                              var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length);   // Befehl/Text aus Statevalue extrahieren
                                          
                                               if (befehl.search(/(?=.*(\Einkauf\b)).+/ig) != -1) {
                                          
                                                  var einkaufsliste; 
                                                  if(getState(idListe).val === "") {einkaufsliste = "Es muss nichts eingekauft werden";}
                                          
                                                      else {  einkaufsliste = "Bitte mitbringen:\n\n" + getState(idListe).val.replace(/
                                          /g , "\n");}
                                          
                                                  sendTo('telegram', {
                                                      user: benutzer,
                                                      text: einkaufsliste
                                                      });
                                                  }    
                                          });       
                                          
                                          

                                          <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                                          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

                                          544

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

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