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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter TrashSchedule

NEWS

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

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

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

Test Adapter TrashSchedule

Geplant Angeheftet Gesperrt Verschoben Tester
adaptercalendaricalkalendermülltrash
1.4k Beiträge 185 Kommentatoren 509.9k Aufrufe 170 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.
  • SBorgS SBorg

    @haus-automatisierung Genau die die 24,- € kosten... 😂

    Ich habe obigen NodeRED-Flow noch ein wenig gepimpt:
    Bild 1.png
    So ist man nun völlig frei in der Anzahl der Trashsorten, auch beliebig viele Events pro Tag sind so möglich.
    Bild 2.png
    Anstelle des Templates könnte man sich natürlich auch eine vorher zusammengebaute HTML-(Tabelle) per text-Node anzeigen lassen.
    In der funktions-Node "Zuordnungen" erfolgt dann ganz oben die Zuweisung von Kalenderbezeichnung, Bezeichnung im Dashboard und die Farbzuweisung. Sollte selbsterklärend sein 😉

    let Trash = [{ "ical": "Sack",       "Name": "Gelber Sack",     "Farbe": "yellow"  },
                 { "ical": "Papier",     "Name": "Papiertonne",     "Farbe": "blue"    },
                 { "ical": "Bio",        "Name": "Biotonne",        "Farbe": "#00ff00" },
                 { "ical": "Müll",       "Name": "Mülltonne",       "Farbe": "black"   },
                 { "ical": "Schadstoff", "Name": "Schadstoffmobil", "Farbe": "orange"  }];
    
    
    ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von Ein ehemaliger Benutzer
    #1250

    @sborg Ist zwar schon ne Weile her aber könntest du mir den Flow zur Verfügung stellen? Bin nicht ganz so fit in Node Red um mir das selbst zusammenzubasteln...Danke!

    f47c1fe7-c701-490b-8276-37bad2d473d2-image.png

    SBorgS 1 Antwort Letzte Antwort
    0
    • ? Ein ehemaliger Benutzer

      @sborg Ist zwar schon ne Weile her aber könntest du mir den Flow zur Verfügung stellen? Bin nicht ganz so fit in Node Red um mir das selbst zusammenzubasteln...Danke!

      f47c1fe7-c701-490b-8276-37bad2d473d2-image.png

      SBorgS Offline
      SBorgS Offline
      SBorg
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #1251

      @noah3112 Logisch 🙂
      Bild 001.png


      [
      {
      "id": "98b0e1d0468f771d",
      "type": "tab",
      "label": "Trash",
      "disabled": false,
      "info": "",
      "env": []
      },
      {
      "id": "07fd153d2d8a948f",
      "type": "ioBroker in",
      "z": "98b0e1d0468f771d",
      "name": "Nächste Leerung",
      "topic": "trashschedule.0.next.dateFormat",
      "payloadType": "value",
      "onlyack": "update",
      "func": "all",
      "gap": "",
      "fireOnStart": "true",
      "x": 120,
      "y": 100,
      "wires": [
      [
      "61f404b6c5a8e42a"
      ]
      ]
      },
      {
      "id": "236c3f232abaf316",
      "type": "ioBroker in",
      "z": "98b0e1d0468f771d",
      "name": "Nächste Leerung Typ",
      "topic": "trashschedule.0.next.typesText",
      "payloadType": "value",
      "onlyack": true,
      "func": "all",
      "gap": "",
      "fireOnStart": "true",
      "x": 140,
      "y": 160,
      "wires": [
      [
      "6116e8118cb79333"
      ]
      ]
      },
      {
      "id": "edaebd5a59672257",
      "type": "ioBroker in",
      "z": "98b0e1d0468f771d",
      "name": "danach Leerung",
      "topic": "trashschedule.0.nextAfter.dateFormat",
      "payloadType": "value",
      "onlyack": true,
      "func": "all",
      "gap": "",
      "fireOnStart": "true",
      "x": 120,
      "y": 220,
      "wires": [
      [
      "d690a95ed606fa04"
      ]
      ]
      },
      {
      "id": "1976d92b6613e225",
      "type": "ioBroker in",
      "z": "98b0e1d0468f771d",
      "name": "danach Typ",
      "topic": "trashschedule.0.nextAfter.typesText",
      "payloadType": "value",
      "onlyack": "update",
      "func": "all",
      "gap": "",
      "fireOnStart": "true",
      "x": 110,
      "y": 280,
      "wires": [
      [
      "8b7d9b71479d6ab0"
      ]
      ]
      },
      {
      "id": "956ccc37aa28fd4a",
      "type": "ui_template",
      "z": "98b0e1d0468f771d",
      "group": "7ceaf9a.8ba7c08",
      "name": "Abfalltyp",
      "order": 2,
      "width": 0,
      "height": 0,
      "format": "",
      "storeOutMessages": true,
      "fwdInMessages": true,
      "resendOnRefresh": true,
      "templateScope": "local",
      "className": "",
      "x": 580,
      "y": 160,
      "wires": [
      []
      ]
      },
      {
      "id": "3a36dc8fae08f48c",
      "type": "ui_template",
      "z": "98b0e1d0468f771d",
      "group": "7ceaf9a.8ba7c08",
      "name": "danach Abfalltyp",
      "order": 4,
      "width": 0,
      "height": 0,
      "format": "",
      "storeOutMessages": true,
      "fwdInMessages": true,
      "resendOnRefresh": true,
      "templateScope": "local",
      "x": 610,
      "y": 280,
      "wires": [
      []
      ]
      },
      {
      "id": "01b9a8bb6d240bca",
      "type": "ui_template",
      "z": "98b0e1d0468f771d",
      "group": "7ceaf9a.8ba7c08",
      "name": "nächste Leerung",
      "order": 1,
      "width": 0,
      "height": 0,
      "format": "<div layout="row" layout-align="space-between center" style="padding: 0 6px;">\n <p>Nächste Leerung</p>\n <font size="3" color="white">\n <b>{{msg.payload}}</b>\n </font>\n</div>\n",
      "storeOutMessages": true,
      "fwdInMessages": true,
      "resendOnRefresh": true,
      "templateScope": "local",
      "className": "",
      "x": 610,
      "y": 100,
      "wires": [
      []
      ]
      },
      {
      "id": "d690a95ed606fa04",
      "type": "ui_template",
      "z": "98b0e1d0468f771d",
      "group": "7ceaf9a.8ba7c08",
      "name": "danach",
      "order": 3,
      "width": 0,
      "height": 0,
      "format": "<div layout="row" layout-align="space-between center" style="padding: 0 6px;">\n <p>danach</p>\n <font size="3" color="white">\n <b>{{msg.payload}}</b>\n </font>\n</div>",
      "storeOutMessages": true,
      "fwdInMessages": true,
      "resendOnRefresh": true,
      "templateScope": "local",
      "x": 580,
      "y": 220,
      "wires": [
      []
      ]
      },
      {
      "id": "8ed21c9a8bc6c01f",
      "type": "comment",
      "z": "98b0e1d0468f771d",
      "name": "Abfallkalender (Dashboard)",
      "info": "",
      "x": 160,
      "y": 60,
      "wires": []
      },
      {
      "id": "61f404b6c5a8e42a",
      "type": "function",
      "z": "98b0e1d0468f771d",
      "name": "Heute / Morgen ...",
      "func": "let Datum=msg.payload.split(".");\nlet Abholung = (new Date(Datum[2],Datum[1]-1,Datum[0],0,0,0).getTime())/1000;\nlet jetzt = new Date();\nlet Heute = (new Date(jetzt.getFullYear(),jetzt.getMonth(),jetzt.getDate(),0,0,0).getTime())/1000;\n\nif (Heute == Abholung) { msg.payload="Heute"; } \n else if (Heute + (186400) == Abholung) { msg.payload="Morgen"; } \n else if (Heute + (286400) == Abholung) { msg.payload="übermorgen"; } \n else { msg.payload="in " + (Abholung-Heute)/86400 + " Tagen"; }\n\nreturn msg;",
      "outputs": 1,
      "noerr": 0,
      "initialize": "",
      "finalize": "",
      "libs": [],
      "x": 370,
      "y": 100,
      "wires": [
      [
      "01b9a8bb6d240bca"
      ]
      ]
      },
      {
      "id": "6116e8118cb79333",
      "type": "function",
      "z": "98b0e1d0468f771d",
      "name": "Zuordnungen",
      "func": "let Trash = [{ "ical": "Sack", "Name": "Gelber Sack", "Farbe": "yellow" },\n { "ical": "Papier", "Name": "Papiertonne", "Farbe": "blue" },\n { "ical": "Bio", "Name": "Biotonne", "Farbe": "#00ff00" },\n { "ical": "Müll", "Name": "Mülltonne", "Farbe": "black" },\n { "ical": "Mobil", "Name": "Schadstoffmobil", "Farbe": "orange" }];\n\nlet Abfuhr=msg.payload;\nmsg.template="<div layout=\"row\" layout-align=\"space-between center\" style=\"padding: 0 6px;\"><p>was</p>";\nfor(let i=0; i<Trash.length; i++) {\n\n if (Abfuhr.indexOf(Trash[i].ical)>=0) { \n msg.template+="<font size=\"4\" color=\"" + Trash[i].Farbe + "\"><b>" + Trash[i].Name + "</b></font>";\n Abfuhr=Abfuhr.replace(Trash[i].ical, "");\n }\n \n}\nmsg.template+="</div>";\n\nreturn msg;",
      "outputs": 1,
      "noerr": 0,
      "initialize": "",
      "finalize": "",
      "libs": [],
      "x": 360,
      "y": 160,
      "wires": [
      [
      "956ccc37aa28fd4a"
      ]
      ]
      },
      {
      "id": "8b7d9b71479d6ab0",
      "type": "function",
      "z": "98b0e1d0468f771d",
      "name": "Zuordnungen",
      "func": "\nlet Trash = [{ "ical": "Sack", "Name": "Gelber Sack", "Farbe": "yellow" },\n { "ical": "Papier", "Name": "Papiertonne", "Farbe": "blue" },\n { "ical": "Bio", "Name": "Biotonne", "Farbe": "#00ff00" },\n { "ical": "Müll", "Name": "Mülltonne", "Farbe": "black" },\n { "ical": "Mobil", "Name": "Schadstoffmobil", "Farbe": "orange" }];\n\nlet Abfuhr=msg.payload;\nmsg.template="<div layout=\"row\" layout-align=\"space-between center\" style=\"padding: 0 6px;\"><p>ist dran</p>";\nfor(let i=0; i<Trash.length; i++) {\n\n if (Abfuhr.indexOf(Trash[i].ical)>=0) { \n msg.template+="<font size=\"4\" color=\"" + Trash[i].Farbe + "\"><b>" + Trash[i].Name + "</b></font>";\n Abfuhr=Abfuhr.replace(Trash[i].ical, "");\n }\n \n}\nmsg.template+="</div>";\n\nreturn msg;",
      "outputs": 1,
      "noerr": 0,
      "initialize": "",
      "finalize": "",
      "libs": [],
      "x": 360,
      "y": 280,
      "wires": [
      [
      "3a36dc8fae08f48c"
      ]
      ]
      },
      {
      "id": "7ceaf9a.8ba7c08",
      "type": "ui_group",
      "name": "Abfallkalender",
      "tab": "9081d8f6.325c2",
      "order": 1,
      "disp": true,
      "width": "6",
      "collapse": false
      },
      {
      "id": "9081d8f6.325c2",
      "type": "ui_tab",
      "name": "HAMS",
      "icon": "store",
      "order": 1,
      "disabled": false,
      "hidden": false
      }
      ]

      Musst dann nur in den beiden Zuordnungen den Anfang konfigurieren:

      let Trash = [{ "ical": "Sack",   "Name": "Gelber Sack",     "Farbe": "yellow"  },
                   { "ical": "Papier", "Name": "Papiertonne",     "Farbe": "blue"    },
                   { "ical": "Bio",    "Name": "Biotonne",        "Farbe": "#00ff00" },
                   { "ical": "Müll",   "Name": "Mülltonne",       "Farbe": "black"   },
                   { "ical": "Mobil",  "Name": "Schadstoffmobil", "Farbe": "orange"  }];
      

      Sollte relativ selbsterklärend sein, aber ical wie es eben im Kalender steht, Name wie es dann im Dashboard angezeigt werden soll und Farbe als engl. Bezeichnung oder per "#" als RGB- Hexwert.

      ...und wie man sieht werden auch Mehrfachabfuhren berücksichtigt 😎

      LG SBorg ( SBorg auf GitHub)
      Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

      ? 1 Antwort Letzte Antwort
      0
      • SBorgS SBorg

        @noah3112 Logisch 🙂
        Bild 001.png


        [
        {
        "id": "98b0e1d0468f771d",
        "type": "tab",
        "label": "Trash",
        "disabled": false,
        "info": "",
        "env": []
        },
        {
        "id": "07fd153d2d8a948f",
        "type": "ioBroker in",
        "z": "98b0e1d0468f771d",
        "name": "Nächste Leerung",
        "topic": "trashschedule.0.next.dateFormat",
        "payloadType": "value",
        "onlyack": "update",
        "func": "all",
        "gap": "",
        "fireOnStart": "true",
        "x": 120,
        "y": 100,
        "wires": [
        [
        "61f404b6c5a8e42a"
        ]
        ]
        },
        {
        "id": "236c3f232abaf316",
        "type": "ioBroker in",
        "z": "98b0e1d0468f771d",
        "name": "Nächste Leerung Typ",
        "topic": "trashschedule.0.next.typesText",
        "payloadType": "value",
        "onlyack": true,
        "func": "all",
        "gap": "",
        "fireOnStart": "true",
        "x": 140,
        "y": 160,
        "wires": [
        [
        "6116e8118cb79333"
        ]
        ]
        },
        {
        "id": "edaebd5a59672257",
        "type": "ioBroker in",
        "z": "98b0e1d0468f771d",
        "name": "danach Leerung",
        "topic": "trashschedule.0.nextAfter.dateFormat",
        "payloadType": "value",
        "onlyack": true,
        "func": "all",
        "gap": "",
        "fireOnStart": "true",
        "x": 120,
        "y": 220,
        "wires": [
        [
        "d690a95ed606fa04"
        ]
        ]
        },
        {
        "id": "1976d92b6613e225",
        "type": "ioBroker in",
        "z": "98b0e1d0468f771d",
        "name": "danach Typ",
        "topic": "trashschedule.0.nextAfter.typesText",
        "payloadType": "value",
        "onlyack": "update",
        "func": "all",
        "gap": "",
        "fireOnStart": "true",
        "x": 110,
        "y": 280,
        "wires": [
        [
        "8b7d9b71479d6ab0"
        ]
        ]
        },
        {
        "id": "956ccc37aa28fd4a",
        "type": "ui_template",
        "z": "98b0e1d0468f771d",
        "group": "7ceaf9a.8ba7c08",
        "name": "Abfalltyp",
        "order": 2,
        "width": 0,
        "height": 0,
        "format": "",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 580,
        "y": 160,
        "wires": [
        []
        ]
        },
        {
        "id": "3a36dc8fae08f48c",
        "type": "ui_template",
        "z": "98b0e1d0468f771d",
        "group": "7ceaf9a.8ba7c08",
        "name": "danach Abfalltyp",
        "order": 4,
        "width": 0,
        "height": 0,
        "format": "",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "x": 610,
        "y": 280,
        "wires": [
        []
        ]
        },
        {
        "id": "01b9a8bb6d240bca",
        "type": "ui_template",
        "z": "98b0e1d0468f771d",
        "group": "7ceaf9a.8ba7c08",
        "name": "nächste Leerung",
        "order": 1,
        "width": 0,
        "height": 0,
        "format": "<div layout="row" layout-align="space-between center" style="padding: 0 6px;">\n <p>Nächste Leerung</p>\n <font size="3" color="white">\n <b>{{msg.payload}}</b>\n </font>\n</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 610,
        "y": 100,
        "wires": [
        []
        ]
        },
        {
        "id": "d690a95ed606fa04",
        "type": "ui_template",
        "z": "98b0e1d0468f771d",
        "group": "7ceaf9a.8ba7c08",
        "name": "danach",
        "order": 3,
        "width": 0,
        "height": 0,
        "format": "<div layout="row" layout-align="space-between center" style="padding: 0 6px;">\n <p>danach</p>\n <font size="3" color="white">\n <b>{{msg.payload}}</b>\n </font>\n</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "x": 580,
        "y": 220,
        "wires": [
        []
        ]
        },
        {
        "id": "8ed21c9a8bc6c01f",
        "type": "comment",
        "z": "98b0e1d0468f771d",
        "name": "Abfallkalender (Dashboard)",
        "info": "",
        "x": 160,
        "y": 60,
        "wires": []
        },
        {
        "id": "61f404b6c5a8e42a",
        "type": "function",
        "z": "98b0e1d0468f771d",
        "name": "Heute / Morgen ...",
        "func": "let Datum=msg.payload.split(".");\nlet Abholung = (new Date(Datum[2],Datum[1]-1,Datum[0],0,0,0).getTime())/1000;\nlet jetzt = new Date();\nlet Heute = (new Date(jetzt.getFullYear(),jetzt.getMonth(),jetzt.getDate(),0,0,0).getTime())/1000;\n\nif (Heute == Abholung) { msg.payload="Heute"; } \n else if (Heute + (186400) == Abholung) { msg.payload="Morgen"; } \n else if (Heute + (286400) == Abholung) { msg.payload="übermorgen"; } \n else { msg.payload="in " + (Abholung-Heute)/86400 + " Tagen"; }\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 370,
        "y": 100,
        "wires": [
        [
        "01b9a8bb6d240bca"
        ]
        ]
        },
        {
        "id": "6116e8118cb79333",
        "type": "function",
        "z": "98b0e1d0468f771d",
        "name": "Zuordnungen",
        "func": "let Trash = [{ "ical": "Sack", "Name": "Gelber Sack", "Farbe": "yellow" },\n { "ical": "Papier", "Name": "Papiertonne", "Farbe": "blue" },\n { "ical": "Bio", "Name": "Biotonne", "Farbe": "#00ff00" },\n { "ical": "Müll", "Name": "Mülltonne", "Farbe": "black" },\n { "ical": "Mobil", "Name": "Schadstoffmobil", "Farbe": "orange" }];\n\nlet Abfuhr=msg.payload;\nmsg.template="<div layout=\"row\" layout-align=\"space-between center\" style=\"padding: 0 6px;\"><p>was</p>";\nfor(let i=0; i<Trash.length; i++) {\n\n if (Abfuhr.indexOf(Trash[i].ical)>=0) { \n msg.template+="<font size=\"4\" color=\"" + Trash[i].Farbe + "\"><b>" + Trash[i].Name + "</b></font>";\n Abfuhr=Abfuhr.replace(Trash[i].ical, "");\n }\n \n}\nmsg.template+="</div>";\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 360,
        "y": 160,
        "wires": [
        [
        "956ccc37aa28fd4a"
        ]
        ]
        },
        {
        "id": "8b7d9b71479d6ab0",
        "type": "function",
        "z": "98b0e1d0468f771d",
        "name": "Zuordnungen",
        "func": "\nlet Trash = [{ "ical": "Sack", "Name": "Gelber Sack", "Farbe": "yellow" },\n { "ical": "Papier", "Name": "Papiertonne", "Farbe": "blue" },\n { "ical": "Bio", "Name": "Biotonne", "Farbe": "#00ff00" },\n { "ical": "Müll", "Name": "Mülltonne", "Farbe": "black" },\n { "ical": "Mobil", "Name": "Schadstoffmobil", "Farbe": "orange" }];\n\nlet Abfuhr=msg.payload;\nmsg.template="<div layout=\"row\" layout-align=\"space-between center\" style=\"padding: 0 6px;\"><p>ist dran</p>";\nfor(let i=0; i<Trash.length; i++) {\n\n if (Abfuhr.indexOf(Trash[i].ical)>=0) { \n msg.template+="<font size=\"4\" color=\"" + Trash[i].Farbe + "\"><b>" + Trash[i].Name + "</b></font>";\n Abfuhr=Abfuhr.replace(Trash[i].ical, "");\n }\n \n}\nmsg.template+="</div>";\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 360,
        "y": 280,
        "wires": [
        [
        "3a36dc8fae08f48c"
        ]
        ]
        },
        {
        "id": "7ceaf9a.8ba7c08",
        "type": "ui_group",
        "name": "Abfallkalender",
        "tab": "9081d8f6.325c2",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false
        },
        {
        "id": "9081d8f6.325c2",
        "type": "ui_tab",
        "name": "HAMS",
        "icon": "store",
        "order": 1,
        "disabled": false,
        "hidden": false
        }
        ]

        Musst dann nur in den beiden Zuordnungen den Anfang konfigurieren:

        let Trash = [{ "ical": "Sack",   "Name": "Gelber Sack",     "Farbe": "yellow"  },
                     { "ical": "Papier", "Name": "Papiertonne",     "Farbe": "blue"    },
                     { "ical": "Bio",    "Name": "Biotonne",        "Farbe": "#00ff00" },
                     { "ical": "Müll",   "Name": "Mülltonne",       "Farbe": "black"   },
                     { "ical": "Mobil",  "Name": "Schadstoffmobil", "Farbe": "orange"  }];
        

        Sollte relativ selbsterklärend sein, aber ical wie es eben im Kalender steht, Name wie es dann im Dashboard angezeigt werden soll und Farbe als engl. Bezeichnung oder per "#" als RGB- Hexwert.

        ...und wie man sieht werden auch Mehrfachabfuhren berücksichtigt 😎

        ? Offline
        ? Offline
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von
        #1252

        @sborg Danke...leider bekomme ich eine Fehlermeldung beim importieren.

        09c75d23-8b35-4690-a729-6a1f871867b8-image.png

        SBorgS 1 Antwort Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          @sborg Danke...leider bekomme ich eine Fehlermeldung beim importieren.

          09c75d23-8b35-4690-a729-6a1f871867b8-image.png

          SBorgS Offline
          SBorgS Offline
          SBorg
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #1253

          @noah3112 Ev. hat er da mal wieder was "dazu gebastelt"... 😞

          Noch mal direkt aus der Zwischenablage :

          [
             {
                 "id": "6724d07c.d30ee",
                 "type": "ioBroker in",
                 "z": "9935d2ef.9e5928",
                 "name": "Nächste Leerung",
                 "topic": "trashschedule.0.next.dateFormat",
                 "payloadType": "value",
                 "onlyack": "update",
                 "func": "all",
                 "gap": "",
                 "fireOnStart": "true",
                 "x": 100,
                 "y": 80,
                 "wires": [
                     [
                         "51c87098.8ca89"
                     ]
                 ]
             },
             {
                 "id": "54c13585.5b52cc",
                 "type": "ioBroker in",
                 "z": "9935d2ef.9e5928",
                 "name": "Nächste Leerung Typ",
                 "topic": "trashschedule.0.next.typesText",
                 "payloadType": "value",
                 "onlyack": true,
                 "func": "all",
                 "gap": "",
                 "fireOnStart": "true",
                 "x": 120,
                 "y": 140,
                 "wires": [
                     [
                         "556903ab.809234"
                     ]
                 ]
             },
             {
                 "id": "31d12d29.1091b2",
                 "type": "ioBroker in",
                 "z": "9935d2ef.9e5928",
                 "name": "danach Leerung",
                 "topic": "trashschedule.0.nextAfter.dateFormat",
                 "payloadType": "value",
                 "onlyack": true,
                 "func": "all",
                 "gap": "",
                 "fireOnStart": "true",
                 "x": 100,
                 "y": 200,
                 "wires": [
                     [
                         "c268e0a.ca2e7a"
                     ]
                 ]
             },
             {
                 "id": "1cdf03bd.77738c",
                 "type": "ioBroker in",
                 "z": "9935d2ef.9e5928",
                 "name": "danach Typ",
                 "topic": "trashschedule.0.nextAfter.typesText",
                 "payloadType": "value",
                 "onlyack": "update",
                 "func": "all",
                 "gap": "",
                 "fireOnStart": "true",
                 "x": 90,
                 "y": 260,
                 "wires": [
                     [
                         "b43b5da.84f56a"
                     ]
                 ]
             },
             {
                 "id": "9f681fa0.0e3e7",
                 "type": "ui_template",
                 "z": "9935d2ef.9e5928",
                 "group": "7ceaf9a.8ba7c08",
                 "name": "Abfalltyp",
                 "order": 2,
                 "width": 0,
                 "height": 0,
                 "format": "",
                 "storeOutMessages": true,
                 "fwdInMessages": true,
                 "resendOnRefresh": true,
                 "templateScope": "local",
                 "className": "",
                 "x": 560,
                 "y": 140,
                 "wires": [
                     []
                 ]
             },
             {
                 "id": "e322ebf0.9756d",
                 "type": "ui_template",
                 "z": "9935d2ef.9e5928",
                 "group": "7ceaf9a.8ba7c08",
                 "name": "danach Abfalltyp",
                 "order": 4,
                 "width": 0,
                 "height": 0,
                 "format": "",
                 "storeOutMessages": true,
                 "fwdInMessages": true,
                 "resendOnRefresh": true,
                 "templateScope": "local",
                 "x": 590,
                 "y": 260,
                 "wires": [
                     []
                 ]
             },
             {
                 "id": "f65d7dca.63388",
                 "type": "ui_template",
                 "z": "9935d2ef.9e5928",
                 "group": "7ceaf9a.8ba7c08",
                 "name": "nächste Leerung",
                 "order": 1,
                 "width": 0,
                 "height": 0,
                 "format": "<div layout=\"row\" layout-align=\"space-between center\" style=\"padding: 0 6px;\">\n  <p>Nächste Leerung</p>\n  <font size=\"3\" color=\"white\">\n    <b>{{msg.payload}}</b>\n  </font>\n</div>\n",
                 "storeOutMessages": true,
                 "fwdInMessages": true,
                 "resendOnRefresh": true,
                 "templateScope": "local",
                 "className": "",
                 "x": 590,
                 "y": 80,
                 "wires": [
                     []
                 ]
             },
             {
                 "id": "c268e0a.ca2e7a",
                 "type": "ui_template",
                 "z": "9935d2ef.9e5928",
                 "group": "7ceaf9a.8ba7c08",
                 "name": "danach",
                 "order": 3,
                 "width": 0,
                 "height": 0,
                 "format": "<div layout=\"row\" layout-align=\"space-between center\" style=\"padding: 0 6px;\">\n  <p>danach</p>\n  <font size=\"3\" color=\"white\">\n    <b>{{msg.payload}}</b>\n  </font>\n</div>",
                 "storeOutMessages": true,
                 "fwdInMessages": true,
                 "resendOnRefresh": true,
                 "templateScope": "local",
                 "x": 560,
                 "y": 200,
                 "wires": [
                     []
                 ]
             },
             {
                 "id": "aa16944.5d916e8",
                 "type": "comment",
                 "z": "9935d2ef.9e5928",
                 "name": "Abfallkalender (Dashboard)",
                 "info": "",
                 "x": 140,
                 "y": 40,
                 "wires": []
             },
             {
                 "id": "51c87098.8ca89",
                 "type": "function",
                 "z": "9935d2ef.9e5928",
                 "name": "Heute / Morgen ...",
                 "func": "let Datum=msg.payload.split(\".\");\nlet Abholung = (new Date(Datum[2],Datum[1]-1,Datum[0],0,0,0).getTime())/1000;\nlet jetzt = new Date();\nlet Heute = (new Date(jetzt.getFullYear(),jetzt.getMonth(),jetzt.getDate(),0,0,0).getTime())/1000;\n\nif (Heute == Abholung) { msg.payload=\"Heute\"; } \n else if (Heute + (1*86400) == Abholung) { msg.payload=\"Morgen\"; } \n else if (Heute + (2*86400) == Abholung) { msg.payload=\"Übermorgen\"; } \n else { msg.payload=\"in \" + (Abholung-Heute)/86400 + \" Tagen\"; }\n\nreturn msg;",
                 "outputs": 1,
                 "noerr": 0,
                 "initialize": "",
                 "finalize": "",
                 "libs": [],
                 "x": 350,
                 "y": 80,
                 "wires": [
                     [
                         "f65d7dca.63388"
                     ]
                 ]
             },
             {
                 "id": "556903ab.809234",
                 "type": "function",
                 "z": "9935d2ef.9e5928",
                 "name": "Zuordnungen",
                 "func": "let Trash = [{ \"ical\": \"Sack\",   \"Name\": \"Gelber Sack\",     \"Farbe\": \"yellow\"  },\n             { \"ical\": \"Papier\", \"Name\": \"Papiertonne\",     \"Farbe\": \"blue\"    },\n             { \"ical\": \"Bio\",    \"Name\": \"Biotonne\",        \"Farbe\": \"#00ff00\" },\n             { \"ical\": \"Müll\",   \"Name\": \"Mülltonne\",       \"Farbe\": \"black\"   },\n             { \"ical\": \"Mobil\",  \"Name\": \"Schadstoffmobil\", \"Farbe\": \"orange\"  }];\n\nlet Abfuhr=msg.payload;\nmsg.template=\"<div layout=\\\"row\\\" layout-align=\\\"space-between center\\\" style=\\\"padding: 0 6px;\\\"><p>was</p>\";\nfor(let i=0; i<Trash.length; i++) {\n\n  if (Abfuhr.indexOf(Trash[i].ical)>=0) { \n      msg.template+=\"<font size=\\\"4\\\" color=\\\"\" + Trash[i].Farbe + \"\\\"><b>\" + Trash[i].Name + \"</b></font>\";\n      Abfuhr=Abfuhr.replace(Trash[i].ical, \"\");\n  }\n  \n}\nmsg.template+=\"</div>\";\n\nreturn msg;",
                 "outputs": 1,
                 "noerr": 0,
                 "initialize": "",
                 "finalize": "",
                 "libs": [],
                 "x": 340,
                 "y": 140,
                 "wires": [
                     [
                         "9f681fa0.0e3e7"
                     ]
                 ]
             },
             {
                 "id": "b43b5da.84f56a",
                 "type": "function",
                 "z": "9935d2ef.9e5928",
                 "name": "Zuordnungen",
                 "func": "\nlet Trash = [{ \"ical\": \"Sack\",   \"Name\": \"Gelber Sack\",     \"Farbe\": \"yellow\"  },\n             { \"ical\": \"Papier\", \"Name\": \"Papiertonne\",     \"Farbe\": \"blue\"    },\n             { \"ical\": \"Bio\",    \"Name\": \"Biotonne\",        \"Farbe\": \"#00ff00\" },\n             { \"ical\": \"Müll\",   \"Name\": \"Mülltonne\",       \"Farbe\": \"black\"   },\n             { \"ical\": \"Mobil\",  \"Name\": \"Schadstoffmobil\", \"Farbe\": \"orange\"  }];\n\nlet Abfuhr=msg.payload;\nmsg.template=\"<div layout=\\\"row\\\" layout-align=\\\"space-between center\\\" style=\\\"padding: 0 6px;\\\"><p>ist dran</p>\";\nfor(let i=0; i<Trash.length; i++) {\n\n  if (Abfuhr.indexOf(Trash[i].ical)>=0) { \n      msg.template+=\"<font size=\\\"4\\\" color=\\\"\" + Trash[i].Farbe + \"\\\"><b>\" + Trash[i].Name + \"</b></font>\";\n      Abfuhr=Abfuhr.replace(Trash[i].ical, \"\");\n  }\n  \n}\nmsg.template+=\"</div>\";\n\nreturn msg;",
                 "outputs": 1,
                 "noerr": 0,
                 "initialize": "",
                 "finalize": "",
                 "libs": [],
                 "x": 340,
                 "y": 260,
                 "wires": [
                     [
                         "e322ebf0.9756d"
                     ]
                 ]
             },
             {
                 "id": "7ceaf9a.8ba7c08",
                 "type": "ui_group",
                 "name": "Abfallkalender",
                 "tab": "9081d8f6.325c2",
                 "order": 1,
                 "disp": true,
                 "width": "6",
                 "collapse": false
             },
             {
                 "id": "9081d8f6.325c2",
                 "type": "ui_tab",
                 "name": "HAMS",
                 "icon": "store",
                 "order": 1,
                 "disabled": false,
                 "hidden": false
             }
          ]
          

          LG SBorg ( SBorg auf GitHub)
          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

          ? 1 Antwort Letzte Antwort
          0
          • SBorgS SBorg

            @noah3112 Ev. hat er da mal wieder was "dazu gebastelt"... 😞

            Noch mal direkt aus der Zwischenablage :

            [
               {
                   "id": "6724d07c.d30ee",
                   "type": "ioBroker in",
                   "z": "9935d2ef.9e5928",
                   "name": "Nächste Leerung",
                   "topic": "trashschedule.0.next.dateFormat",
                   "payloadType": "value",
                   "onlyack": "update",
                   "func": "all",
                   "gap": "",
                   "fireOnStart": "true",
                   "x": 100,
                   "y": 80,
                   "wires": [
                       [
                           "51c87098.8ca89"
                       ]
                   ]
               },
               {
                   "id": "54c13585.5b52cc",
                   "type": "ioBroker in",
                   "z": "9935d2ef.9e5928",
                   "name": "Nächste Leerung Typ",
                   "topic": "trashschedule.0.next.typesText",
                   "payloadType": "value",
                   "onlyack": true,
                   "func": "all",
                   "gap": "",
                   "fireOnStart": "true",
                   "x": 120,
                   "y": 140,
                   "wires": [
                       [
                           "556903ab.809234"
                       ]
                   ]
               },
               {
                   "id": "31d12d29.1091b2",
                   "type": "ioBroker in",
                   "z": "9935d2ef.9e5928",
                   "name": "danach Leerung",
                   "topic": "trashschedule.0.nextAfter.dateFormat",
                   "payloadType": "value",
                   "onlyack": true,
                   "func": "all",
                   "gap": "",
                   "fireOnStart": "true",
                   "x": 100,
                   "y": 200,
                   "wires": [
                       [
                           "c268e0a.ca2e7a"
                       ]
                   ]
               },
               {
                   "id": "1cdf03bd.77738c",
                   "type": "ioBroker in",
                   "z": "9935d2ef.9e5928",
                   "name": "danach Typ",
                   "topic": "trashschedule.0.nextAfter.typesText",
                   "payloadType": "value",
                   "onlyack": "update",
                   "func": "all",
                   "gap": "",
                   "fireOnStart": "true",
                   "x": 90,
                   "y": 260,
                   "wires": [
                       [
                           "b43b5da.84f56a"
                       ]
                   ]
               },
               {
                   "id": "9f681fa0.0e3e7",
                   "type": "ui_template",
                   "z": "9935d2ef.9e5928",
                   "group": "7ceaf9a.8ba7c08",
                   "name": "Abfalltyp",
                   "order": 2,
                   "width": 0,
                   "height": 0,
                   "format": "",
                   "storeOutMessages": true,
                   "fwdInMessages": true,
                   "resendOnRefresh": true,
                   "templateScope": "local",
                   "className": "",
                   "x": 560,
                   "y": 140,
                   "wires": [
                       []
                   ]
               },
               {
                   "id": "e322ebf0.9756d",
                   "type": "ui_template",
                   "z": "9935d2ef.9e5928",
                   "group": "7ceaf9a.8ba7c08",
                   "name": "danach Abfalltyp",
                   "order": 4,
                   "width": 0,
                   "height": 0,
                   "format": "",
                   "storeOutMessages": true,
                   "fwdInMessages": true,
                   "resendOnRefresh": true,
                   "templateScope": "local",
                   "x": 590,
                   "y": 260,
                   "wires": [
                       []
                   ]
               },
               {
                   "id": "f65d7dca.63388",
                   "type": "ui_template",
                   "z": "9935d2ef.9e5928",
                   "group": "7ceaf9a.8ba7c08",
                   "name": "nächste Leerung",
                   "order": 1,
                   "width": 0,
                   "height": 0,
                   "format": "<div layout=\"row\" layout-align=\"space-between center\" style=\"padding: 0 6px;\">\n  <p>Nächste Leerung</p>\n  <font size=\"3\" color=\"white\">\n    <b>{{msg.payload}}</b>\n  </font>\n</div>\n",
                   "storeOutMessages": true,
                   "fwdInMessages": true,
                   "resendOnRefresh": true,
                   "templateScope": "local",
                   "className": "",
                   "x": 590,
                   "y": 80,
                   "wires": [
                       []
                   ]
               },
               {
                   "id": "c268e0a.ca2e7a",
                   "type": "ui_template",
                   "z": "9935d2ef.9e5928",
                   "group": "7ceaf9a.8ba7c08",
                   "name": "danach",
                   "order": 3,
                   "width": 0,
                   "height": 0,
                   "format": "<div layout=\"row\" layout-align=\"space-between center\" style=\"padding: 0 6px;\">\n  <p>danach</p>\n  <font size=\"3\" color=\"white\">\n    <b>{{msg.payload}}</b>\n  </font>\n</div>",
                   "storeOutMessages": true,
                   "fwdInMessages": true,
                   "resendOnRefresh": true,
                   "templateScope": "local",
                   "x": 560,
                   "y": 200,
                   "wires": [
                       []
                   ]
               },
               {
                   "id": "aa16944.5d916e8",
                   "type": "comment",
                   "z": "9935d2ef.9e5928",
                   "name": "Abfallkalender (Dashboard)",
                   "info": "",
                   "x": 140,
                   "y": 40,
                   "wires": []
               },
               {
                   "id": "51c87098.8ca89",
                   "type": "function",
                   "z": "9935d2ef.9e5928",
                   "name": "Heute / Morgen ...",
                   "func": "let Datum=msg.payload.split(\".\");\nlet Abholung = (new Date(Datum[2],Datum[1]-1,Datum[0],0,0,0).getTime())/1000;\nlet jetzt = new Date();\nlet Heute = (new Date(jetzt.getFullYear(),jetzt.getMonth(),jetzt.getDate(),0,0,0).getTime())/1000;\n\nif (Heute == Abholung) { msg.payload=\"Heute\"; } \n else if (Heute + (1*86400) == Abholung) { msg.payload=\"Morgen\"; } \n else if (Heute + (2*86400) == Abholung) { msg.payload=\"Übermorgen\"; } \n else { msg.payload=\"in \" + (Abholung-Heute)/86400 + \" Tagen\"; }\n\nreturn msg;",
                   "outputs": 1,
                   "noerr": 0,
                   "initialize": "",
                   "finalize": "",
                   "libs": [],
                   "x": 350,
                   "y": 80,
                   "wires": [
                       [
                           "f65d7dca.63388"
                       ]
                   ]
               },
               {
                   "id": "556903ab.809234",
                   "type": "function",
                   "z": "9935d2ef.9e5928",
                   "name": "Zuordnungen",
                   "func": "let Trash = [{ \"ical\": \"Sack\",   \"Name\": \"Gelber Sack\",     \"Farbe\": \"yellow\"  },\n             { \"ical\": \"Papier\", \"Name\": \"Papiertonne\",     \"Farbe\": \"blue\"    },\n             { \"ical\": \"Bio\",    \"Name\": \"Biotonne\",        \"Farbe\": \"#00ff00\" },\n             { \"ical\": \"Müll\",   \"Name\": \"Mülltonne\",       \"Farbe\": \"black\"   },\n             { \"ical\": \"Mobil\",  \"Name\": \"Schadstoffmobil\", \"Farbe\": \"orange\"  }];\n\nlet Abfuhr=msg.payload;\nmsg.template=\"<div layout=\\\"row\\\" layout-align=\\\"space-between center\\\" style=\\\"padding: 0 6px;\\\"><p>was</p>\";\nfor(let i=0; i<Trash.length; i++) {\n\n  if (Abfuhr.indexOf(Trash[i].ical)>=0) { \n      msg.template+=\"<font size=\\\"4\\\" color=\\\"\" + Trash[i].Farbe + \"\\\"><b>\" + Trash[i].Name + \"</b></font>\";\n      Abfuhr=Abfuhr.replace(Trash[i].ical, \"\");\n  }\n  \n}\nmsg.template+=\"</div>\";\n\nreturn msg;",
                   "outputs": 1,
                   "noerr": 0,
                   "initialize": "",
                   "finalize": "",
                   "libs": [],
                   "x": 340,
                   "y": 140,
                   "wires": [
                       [
                           "9f681fa0.0e3e7"
                       ]
                   ]
               },
               {
                   "id": "b43b5da.84f56a",
                   "type": "function",
                   "z": "9935d2ef.9e5928",
                   "name": "Zuordnungen",
                   "func": "\nlet Trash = [{ \"ical\": \"Sack\",   \"Name\": \"Gelber Sack\",     \"Farbe\": \"yellow\"  },\n             { \"ical\": \"Papier\", \"Name\": \"Papiertonne\",     \"Farbe\": \"blue\"    },\n             { \"ical\": \"Bio\",    \"Name\": \"Biotonne\",        \"Farbe\": \"#00ff00\" },\n             { \"ical\": \"Müll\",   \"Name\": \"Mülltonne\",       \"Farbe\": \"black\"   },\n             { \"ical\": \"Mobil\",  \"Name\": \"Schadstoffmobil\", \"Farbe\": \"orange\"  }];\n\nlet Abfuhr=msg.payload;\nmsg.template=\"<div layout=\\\"row\\\" layout-align=\\\"space-between center\\\" style=\\\"padding: 0 6px;\\\"><p>ist dran</p>\";\nfor(let i=0; i<Trash.length; i++) {\n\n  if (Abfuhr.indexOf(Trash[i].ical)>=0) { \n      msg.template+=\"<font size=\\\"4\\\" color=\\\"\" + Trash[i].Farbe + \"\\\"><b>\" + Trash[i].Name + \"</b></font>\";\n      Abfuhr=Abfuhr.replace(Trash[i].ical, \"\");\n  }\n  \n}\nmsg.template+=\"</div>\";\n\nreturn msg;",
                   "outputs": 1,
                   "noerr": 0,
                   "initialize": "",
                   "finalize": "",
                   "libs": [],
                   "x": 340,
                   "y": 260,
                   "wires": [
                       [
                           "e322ebf0.9756d"
                       ]
                   ]
               },
               {
                   "id": "7ceaf9a.8ba7c08",
                   "type": "ui_group",
                   "name": "Abfallkalender",
                   "tab": "9081d8f6.325c2",
                   "order": 1,
                   "disp": true,
                   "width": "6",
                   "collapse": false
               },
               {
                   "id": "9081d8f6.325c2",
                   "type": "ui_tab",
                   "name": "HAMS",
                   "icon": "store",
                   "order": 1,
                   "disabled": false,
                   "hidden": false
               }
            ]
            

            ? Offline
            ? Offline
            Ein ehemaliger Benutzer
            schrieb am zuletzt editiert von
            #1254

            @sborg Jetzt hat es funktioniert...vielen Dank 👍

            1 Antwort Letzte Antwort
            0
            • JB_SullivanJ Offline
              JB_SullivanJ Offline
              JB_Sullivan
              schrieb am zuletzt editiert von
              #1255

              Auch wenn das hier nur bedingt rein passt, aber hatte hier nicht jemand ein Trash Mülltonnen Widget mit anders designten Mülltonnen gebaut?

              Wie macht man so ein Widget? Kann gerne auch einen eigenen Thread dafür eröffnen, aber der Trashscheduler mit seinem VIS Widget ist so nah an dem dran was mir vorschwebt, das ich erstmal hier in der Runde die Experten fragen möchte.

              Konkrekt geht es um ein Fahrzeug Widget welches über 15 verschiedene Datenpunkte die Zustände der Türen, Hauben, Fenster und Schiebedach darstellen soll.

              Ich habe keinen blassen Schimmer wie man so ein Widet baut, das man dann ggf. aus der ioBroker Adapter Liste heraus in den VIS Editor installieren lassen kann.

              Wie gesagt, ich mache gerne einen neuen Thread auf, wenn ich hier ein paar "wissende" dafür gewinnen kann, in dem neuen Thread zu dem Thema weiter zu diskutieren.

              ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

              haus-automatisierungH 1 Antwort Letzte Antwort
              0
              • JB_SullivanJ JB_Sullivan

                Auch wenn das hier nur bedingt rein passt, aber hatte hier nicht jemand ein Trash Mülltonnen Widget mit anders designten Mülltonnen gebaut?

                Wie macht man so ein Widget? Kann gerne auch einen eigenen Thread dafür eröffnen, aber der Trashscheduler mit seinem VIS Widget ist so nah an dem dran was mir vorschwebt, das ich erstmal hier in der Runde die Experten fragen möchte.

                Konkrekt geht es um ein Fahrzeug Widget welches über 15 verschiedene Datenpunkte die Zustände der Türen, Hauben, Fenster und Schiebedach darstellen soll.

                Ich habe keinen blassen Schimmer wie man so ein Widet baut, das man dann ggf. aus der ioBroker Adapter Liste heraus in den VIS Editor installieren lassen kann.

                Wie gesagt, ich mache gerne einen neuen Thread auf, wenn ich hier ein paar "wissende" dafür gewinnen kann, in dem neuen Thread zu dem Thema weiter zu diskutieren.

                haus-automatisierungH Offline
                haus-automatisierungH Offline
                haus-automatisierung
                Developer Most Active
                schrieb am zuletzt editiert von
                #1256

                @jb_sullivan sagte in Test Adapter TrashSchedule:

                Ich habe keinen blassen Schimmer wie man so ein Widet baut, das man dann ggf. aus der ioBroker Adapter Liste heraus in den VIS Editor installieren lassen kann.

                Na den Workflow dafür habe ich schonmal vorgestellt: https://www.youtube.com/watch?v=A9UETXyAmL4

                Es gibt dann Adapter, welche in der io-package.json so konfiguriert sind, dass sie keine Adapter sind, sondern "nur" Web-Dateien bereitstellen: "onlyWWW": true

                Beispiele findest Du dafür ja in der Adapterliste zu genüge. Einfach mal die Repos anschauen und das widget Verzeichnis. Du solltest fit in HTML, CSS und JavaScript sein.

                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                📚 Meine inoffizielle ioBroker Dokumentation

                JB_SullivanJ 1 Antwort Letzte Antwort
                0
                • haus-automatisierungH haus-automatisierung

                  @jb_sullivan sagte in Test Adapter TrashSchedule:

                  Ich habe keinen blassen Schimmer wie man so ein Widet baut, das man dann ggf. aus der ioBroker Adapter Liste heraus in den VIS Editor installieren lassen kann.

                  Na den Workflow dafür habe ich schonmal vorgestellt: https://www.youtube.com/watch?v=A9UETXyAmL4

                  Es gibt dann Adapter, welche in der io-package.json so konfiguriert sind, dass sie keine Adapter sind, sondern "nur" Web-Dateien bereitstellen: "onlyWWW": true

                  Beispiele findest Du dafür ja in der Adapterliste zu genüge. Einfach mal die Repos anschauen und das widget Verzeichnis. Du solltest fit in HTML, CSS und JavaScript sein.

                  JB_SullivanJ Offline
                  JB_SullivanJ Offline
                  JB_Sullivan
                  schrieb am zuletzt editiert von
                  #1257

                  @haus-automatisierung sagte in Test Adapter TrashSchedule:

                  Du solltest fit in HTML, CSS und JavaScript sein.

                  Hmm - danke für die Links - ich dachte "nur so ein Widget" wäre einfacher als ein "ganzer" ioB Adapter - OK, dann bin ich raus 😒

                  Na gut dann halt doch nach alter Methode, 14 Bilder übereinander stapeln und über die Sichtbarkeitsregel aktivieren. Naja war ein Versuch ......

                  ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

                  haus-automatisierungH 1 Antwort Letzte Antwort
                  0
                  • JB_SullivanJ JB_Sullivan

                    @haus-automatisierung sagte in Test Adapter TrashSchedule:

                    Du solltest fit in HTML, CSS und JavaScript sein.

                    Hmm - danke für die Links - ich dachte "nur so ein Widget" wäre einfacher als ein "ganzer" ioB Adapter - OK, dann bin ich raus 😒

                    Na gut dann halt doch nach alter Methode, 14 Bilder übereinander stapeln und über die Sichtbarkeitsregel aktivieren. Naja war ein Versuch ......

                    haus-automatisierungH Offline
                    haus-automatisierungH Offline
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #1258

                    @jb_sullivan sagte in Test Adapter TrashSchedule:

                    ich dachte "nur so ein Widget" wäre einfacher als ein "ganzer" ioB Adapter

                    Natürlich muss das alles zu npm und dann mit ins Repository aufgenommen werden. Der Weg ist ja 1:1 der gleiche. Nur was im Paket / Repo zu finden ist, unterscheidet sich dann halt.

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    1 Antwort Letzte Antwort
                    0
                    • B Offline
                      B Offline
                      Bones13
                      schrieb am zuletzt editiert von
                      #1259

                      Hallo zusammen, hat jemand eine Idee, ob uns falls ja wie man das Widget so hinbekommt, dass sich die Größe anpasst? Also auf dem Handy bzw. auf dem Tablet. So wie ich es jetzt habe sieht es auf dem Tablet gut aus, ist aber auf dem Handy viel zu groß.

                      haus-automatisierungH 1 Antwort Letzte Antwort
                      0
                      • B Bones13

                        Hallo zusammen, hat jemand eine Idee, ob uns falls ja wie man das Widget so hinbekommt, dass sich die Größe anpasst? Also auf dem Handy bzw. auf dem Tablet. So wie ich es jetzt habe sieht es auf dem Tablet gut aus, ist aber auf dem Handy viel zu groß.

                        haus-automatisierungH Offline
                        haus-automatisierungH Offline
                        haus-automatisierung
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #1260

                        @bones13 sagte in Test Adapter TrashSchedule:

                        Hallo zusammen, hat jemand eine Idee, ob uns falls ja wie man das Widget so hinbekommt, dass sich die Größe anpasst?

                        Mir fehlt dafür die Zeit... https://github.com/klein0r/ioBroker.trashschedule/issues/90

                        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                        📚 Meine inoffizielle ioBroker Dokumentation

                        B 1 Antwort Letzte Antwort
                        0
                        • haus-automatisierungH haus-automatisierung

                          @bones13 sagte in Test Adapter TrashSchedule:

                          Hallo zusammen, hat jemand eine Idee, ob uns falls ja wie man das Widget so hinbekommt, dass sich die Größe anpasst?

                          Mir fehlt dafür die Zeit... https://github.com/klein0r/ioBroker.trashschedule/issues/90

                          B Offline
                          B Offline
                          Bones13
                          schrieb am zuletzt editiert von
                          #1261

                          @haus-automatisierung

                          Ja alles gut. Bin ja schon froh, dass alles soweit funktioniert 🙂

                          Habe übrigens eine Lösung gefunden, welche jetzt für meine Zwecke sehr gut funktioniert:
                          Ich verwende in meiner vis hauptsächlich den Material Adapter mit den dazugehörigen Widgets. Dort setzte ich für alle Seiten das Widget "Grid-Views" ein. Ich habe nun einfach zwei verschiedene "Müll-Views" erstellt. Ein normales und ein kleines. In den jeweiligen Einstellungen des Grid-View habe ich bei einem dann ausgewählt, dass es bei einer Auflösung von größer als 500px angezeigt wird und bei dem anderen kleiner als 500px. Somit kommt immer der jeweilige View. Funktioniert bis jetzt perfekt.

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            Shermy
                            schrieb am zuletzt editiert von Shermy
                            #1262

                            Ich nutze den Trashscheduler nur als Erinnerung, dass am nächsten Tag Müllabfuhr ist. Deshalb habe ich ein Rechteck in Hintergrundfarbe darüber gelegt, das verschwindet, wenn der Datenpunkt „days left“ =< 1 ist.
                            Kann man diese Last Minute Erinnerung auch direkt in den Adapter integrieren ?
                            Meine Vorgehensweise hat halt die Schwäche, dass ich nur max. ein bis 2 Wochen in der Vorschau haben darf - ansonsten wird die zukünftige Tonne mit angezeigt.

                            1 Antwort Letzte Antwort
                            0
                            • HiltexH Offline
                              HiltexH Offline
                              Hiltex
                              schrieb am zuletzt editiert von
                              #1263

                              @haus-automatisierung

                              Ich habe mir diesen Adapter angeschaut und finde ihn garnicht so schlecht, also erstmal danke dafür.
                              Was mir jedoch fehlt ist das "Mülltonnen-Handling". Damit meine ich die Möglichkeit, per VIS abzuhaken, dass ich die Mülltonnen vors Haus gestellt habe.

                              Das macht (für mich) insofern Sinn, als dass ich mit unterschiedlichen Müllarten auch unterschiedlich umgehe. Die Tonnen werden bei uns immer ziemlich zeitig abgeholt, da bin ich teilweise noch garnicht wach, sodass die unbedingt abends an die Straße geschoben werden müssen.
                              Der gelbe Sack hingegen wird bei uns relativ spät eingesammelt. Hier im Norden (SH) ist es oft windig, sodass ich den immer erst früh am Abholtag raus lege.

                              Mit dem "Mülltonnen-Handling" will ich nun folgendes realisieren: Ein Popup-Dialog auf meiner VIS erinnert mich an die Müllabfuhr. Wenn eine Tonne draußen steht, hake ich die einfach ab, sodass diese aus der Liste des abzuholenden Mülls verschwinden soll. Bleibt etwas in der Liste, zum Beispiel der Gelbe Sack, den ich ja erst am Tag der Abholung raus lege, so erscheint der Popup-Dialog zu gegebener Zeit erneut. Da der Inhalt des Dialoges dynamisch ist und sich an dem orientiert, was ansteht, werde ich bei gleichzeitiger Abfuhr nur an das erinnert, was noch zu erledigen ist.

                              Die Logik ist eigentlich relativ simpel: jede Abfallart bekommt einen beschreibbaren boolschen Erledigt-Datenpunkt. Was erledigt ist, fliegt aus der Liste trashschedule.0.next.types. Am Abend wird der jeweilige Datenpunkt zurückgesetzt, ein zusätzlicher Datenpunkt setzt alle manuell zurück (falls man sich vertippt hat).

                              Mir ist klar, dass man das auch recht simpel mit einem Script machen kann, aber ich finde, das würde auch gut in diesen Adapter passen.

                              Ist das etwas, das für dich interessant genug klingt, dass du das in den Adapter integrieren würdest?

                              Blog: indibit.de

                              haus-automatisierungH 1 Antwort Letzte Antwort
                              0
                              • HiltexH Hiltex

                                @haus-automatisierung

                                Ich habe mir diesen Adapter angeschaut und finde ihn garnicht so schlecht, also erstmal danke dafür.
                                Was mir jedoch fehlt ist das "Mülltonnen-Handling". Damit meine ich die Möglichkeit, per VIS abzuhaken, dass ich die Mülltonnen vors Haus gestellt habe.

                                Das macht (für mich) insofern Sinn, als dass ich mit unterschiedlichen Müllarten auch unterschiedlich umgehe. Die Tonnen werden bei uns immer ziemlich zeitig abgeholt, da bin ich teilweise noch garnicht wach, sodass die unbedingt abends an die Straße geschoben werden müssen.
                                Der gelbe Sack hingegen wird bei uns relativ spät eingesammelt. Hier im Norden (SH) ist es oft windig, sodass ich den immer erst früh am Abholtag raus lege.

                                Mit dem "Mülltonnen-Handling" will ich nun folgendes realisieren: Ein Popup-Dialog auf meiner VIS erinnert mich an die Müllabfuhr. Wenn eine Tonne draußen steht, hake ich die einfach ab, sodass diese aus der Liste des abzuholenden Mülls verschwinden soll. Bleibt etwas in der Liste, zum Beispiel der Gelbe Sack, den ich ja erst am Tag der Abholung raus lege, so erscheint der Popup-Dialog zu gegebener Zeit erneut. Da der Inhalt des Dialoges dynamisch ist und sich an dem orientiert, was ansteht, werde ich bei gleichzeitiger Abfuhr nur an das erinnert, was noch zu erledigen ist.

                                Die Logik ist eigentlich relativ simpel: jede Abfallart bekommt einen beschreibbaren boolschen Erledigt-Datenpunkt. Was erledigt ist, fliegt aus der Liste trashschedule.0.next.types. Am Abend wird der jeweilige Datenpunkt zurückgesetzt, ein zusätzlicher Datenpunkt setzt alle manuell zurück (falls man sich vertippt hat).

                                Mir ist klar, dass man das auch recht simpel mit einem Script machen kann, aber ich finde, das würde auch gut in diesen Adapter passen.

                                Ist das etwas, das für dich interessant genug klingt, dass du das in den Adapter integrieren würdest?

                                haus-automatisierungH Offline
                                haus-automatisierungH Offline
                                haus-automatisierung
                                Developer Most Active
                                schrieb am zuletzt editiert von
                                #1264

                                @hiltex sagte in Test Adapter TrashSchedule:

                                garnicht so schlecht

                                Äh, danke?! Deinen Kommentar finde ich auch nicht komplett Quatsch 🙂

                                @hiltex sagte in Test Adapter TrashSchedule:

                                Die Logik ist eigentlich relativ simpel: jede Abfallart bekommt einen beschreibbaren boolschen Erledigt-Datenpunkt.

                                Okay, das ist einfach.

                                @hiltex sagte in Test Adapter TrashSchedule:

                                Am Abend wird der jeweilige Datenpunkt zurückgesetzt, ein zusätzlicher Datenpunkt setzt alle manuell zurück (falls man sich vertippt hat).

                                Gut, das hat nur ein Problem: Wenn Du am Abend die Tonnen rausstellst und auf erledigt drückst, dann wären die gleichen Tonnen ja am Abend wieder in der Liste... Und am nächsten Tag auch.

                                Was genau alles zurücksetzt, müsste man nochmal genauer überlegen.

                                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                📚 Meine inoffizielle ioBroker Dokumentation

                                HomoranH HiltexH 2 Antworten Letzte Antwort
                                1
                                • haus-automatisierungH haus-automatisierung

                                  @hiltex sagte in Test Adapter TrashSchedule:

                                  garnicht so schlecht

                                  Äh, danke?! Deinen Kommentar finde ich auch nicht komplett Quatsch 🙂

                                  @hiltex sagte in Test Adapter TrashSchedule:

                                  Die Logik ist eigentlich relativ simpel: jede Abfallart bekommt einen beschreibbaren boolschen Erledigt-Datenpunkt.

                                  Okay, das ist einfach.

                                  @hiltex sagte in Test Adapter TrashSchedule:

                                  Am Abend wird der jeweilige Datenpunkt zurückgesetzt, ein zusätzlicher Datenpunkt setzt alle manuell zurück (falls man sich vertippt hat).

                                  Gut, das hat nur ein Problem: Wenn Du am Abend die Tonnen rausstellst und auf erledigt drückst, dann wären die gleichen Tonnen ja am Abend wieder in der Liste... Und am nächsten Tag auch.

                                  Was genau alles zurücksetzt, müsste man nochmal genauer überlegen.

                                  HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #1265

                                  @haus-automatisierung sagte in Test Adapter TrashSchedule:

                                  Gut, das hat nur ein Problem: Wenn Du am Abend die Tonnen rausstellst und auf erledigt drückst, dann wären die gleichen Tonnen ja am Abend wieder in der Liste... Und am nächsten Tag auch.

                                  Ich dachte daran den Wert für daysleft per Widget auf einen anderen Wert zu setzen, aber da gibt es ja das selbe Problem

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  haus-automatisierungH 1 Antwort Letzte Antwort
                                  0
                                  • haus-automatisierungH haus-automatisierung

                                    @hiltex sagte in Test Adapter TrashSchedule:

                                    garnicht so schlecht

                                    Äh, danke?! Deinen Kommentar finde ich auch nicht komplett Quatsch 🙂

                                    @hiltex sagte in Test Adapter TrashSchedule:

                                    Die Logik ist eigentlich relativ simpel: jede Abfallart bekommt einen beschreibbaren boolschen Erledigt-Datenpunkt.

                                    Okay, das ist einfach.

                                    @hiltex sagte in Test Adapter TrashSchedule:

                                    Am Abend wird der jeweilige Datenpunkt zurückgesetzt, ein zusätzlicher Datenpunkt setzt alle manuell zurück (falls man sich vertippt hat).

                                    Gut, das hat nur ein Problem: Wenn Du am Abend die Tonnen rausstellst und auf erledigt drückst, dann wären die gleichen Tonnen ja am Abend wieder in der Liste... Und am nächsten Tag auch.

                                    Was genau alles zurücksetzt, müsste man nochmal genauer überlegen.

                                    HiltexH Offline
                                    HiltexH Offline
                                    Hiltex
                                    schrieb am zuletzt editiert von
                                    #1266

                                    @haus-automatisierung sagte in Test Adapter TrashSchedule:

                                    @hiltex sagte in Test Adapter TrashSchedule:

                                    Am Abend wird der jeweilige Datenpunkt zurückgesetzt, ein zusätzlicher Datenpunkt setzt alle manuell zurück (falls man sich vertippt hat).

                                    Gut, das hat nur ein Problem: Wenn Du am Abend die Tonnen rausstellst und auf erledigt drückst, dann wären die gleichen Tonnen ja am Abend wieder in der Liste... Und am nächsten Tag auch.

                                    Was genau alles zurücksetzt, müsste man nochmal genauer überlegen.

                                    Ok, das war vielleicht nicht ganz präzise ausgedrückt. Der Abend des Tages, als die Müllabfuhr stattgefunden hat war gemeint.

                                    Blog: indibit.de

                                    haus-automatisierungH 1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Homoran

                                      @haus-automatisierung sagte in Test Adapter TrashSchedule:

                                      Gut, das hat nur ein Problem: Wenn Du am Abend die Tonnen rausstellst und auf erledigt drückst, dann wären die gleichen Tonnen ja am Abend wieder in der Liste... Und am nächsten Tag auch.

                                      Ich dachte daran den Wert für daysleft per Widget auf einen anderen Wert zu setzen, aber da gibt es ja das selbe Problem

                                      haus-automatisierungH Offline
                                      haus-automatisierungH Offline
                                      haus-automatisierung
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #1267

                                      @homoran sagte in Test Adapter TrashSchedule:

                                      Wert für daysleft

                                      Den Wert gibt der Kalender vor. Wäre ja auch falsch den anzupassen.

                                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                      📚 Meine inoffizielle ioBroker Dokumentation

                                      1 Antwort Letzte Antwort
                                      0
                                      • HiltexH Hiltex

                                        @haus-automatisierung sagte in Test Adapter TrashSchedule:

                                        @hiltex sagte in Test Adapter TrashSchedule:

                                        Am Abend wird der jeweilige Datenpunkt zurückgesetzt, ein zusätzlicher Datenpunkt setzt alle manuell zurück (falls man sich vertippt hat).

                                        Gut, das hat nur ein Problem: Wenn Du am Abend die Tonnen rausstellst und auf erledigt drückst, dann wären die gleichen Tonnen ja am Abend wieder in der Liste... Und am nächsten Tag auch.

                                        Was genau alles zurücksetzt, müsste man nochmal genauer überlegen.

                                        Ok, das war vielleicht nicht ganz präzise ausgedrückt. Der Abend des Tages, als die Müllabfuhr stattgefunden hat war gemeint.

                                        haus-automatisierungH Offline
                                        haus-automatisierungH Offline
                                        haus-automatisierung
                                        Developer Most Active
                                        schrieb am zuletzt editiert von
                                        #1268

                                        @hiltex sagte in Test Adapter TrashSchedule:

                                        Ok, das war vielleicht nicht ganz präzise ausgedrückt. Der Abend des Tages, als die Müllabfuhr stattgefunden hat war gemeint.

                                        Kannst ja mal testen: https://github.com/klein0r/ioBroker.trashschedule

                                        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                        📚 Meine inoffizielle ioBroker Dokumentation

                                        HiltexH 1 Antwort Letzte Antwort
                                        0
                                        • haus-automatisierungH haus-automatisierung

                                          @hiltex sagte in Test Adapter TrashSchedule:

                                          Ok, das war vielleicht nicht ganz präzise ausgedrückt. Der Abend des Tages, als die Müllabfuhr stattgefunden hat war gemeint.

                                          Kannst ja mal testen: https://github.com/klein0r/ioBroker.trashschedule

                                          HiltexH Offline
                                          HiltexH Offline
                                          Hiltex
                                          schrieb am zuletzt editiert von
                                          #1269

                                          @haus-automatisierung
                                          Oh, das ging ja schnell 😁
                                          Danke.

                                          Im ersten Test scheint das gut zu funktionieren. Ich habe den Gedanken auch parallel schonmal in VIS umgesetzt und bräuchte eigentlich noch einen zweiten Datenpunkt, mit dem ich die Mülltonne ein- und ausblende.

                                          Es ist ja leider so, dass man bei dem Parameter Sichtbarkeit nur einen Datenpunkt abfragen kann, für die Umsetzung müsste ich aber zwei abfragen.
                                          Die Logik dahinter ist:
                                          daysLeft <= 1 & !completed

                                          Oder hast du eine Idee, wie man das mit den bestehenden Datenpunkten umsetzen könnte?

                                          Was auch gut wäre, wenn man alle auf einmal abhaken könnte.

                                          Blog: indibit.de

                                          haus-automatisierungH 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          425

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe