Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter TrashSchedule

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter TrashSchedule

    This topic has been deleted. Only users with topic management privileges can see it.
    • Chaot
      Chaot @Michael905 last edited by

      @michael905 Vielleicht wenn du die Kalenderpunkte neu anlegst. Also aus dem ursprünglichen Müll/Papier etc. Kalender und deinen persönlichen Abholzeiten einen neuen Kalender erstellst als Müll1/Papier1 etc. und dann den Adapter nur auf die neuen Date reagieren lässt.

      1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @Michael905 last edited by

        @michael905 Genau das könntest Du mit den bisherigen Adaptern aber auch schon erreichen.

        • Leg den "wir sind dran" Termin im Kalender an.
        • Im iCal Adapter legst Du ein Event an, welches den Termin trifft. Also "wir sind dran"
        • Wenn nun eine Abholung ansteht, kannst Du gucken ob das Event "wir sind dran" in den iCal Datenpunkten für heute/morgen auf true steht
        1 Reply Last reply Reply Quote 0
        • K
          KaosKatte last edited by KaosKatte

          Servus,
          habe den Trash-Adapter seit 2 Tagen installiert und bin grundsätzlich begeistert. Jetzt habe ich allerdings ein Problem, das ich überhaupt nicht verstehe (diesen Thread habe ich überflogen, die Problemstellung so allerdings noch nicht gesehen).
          Ich habe ein Skript erstellt, das mir Nachrichten per Signal und E-Mail schickt, wenn eine oder mehrere nächste Leerungen in 1 Tag anstehen. Danach wird noch geprüft, ob es eine oder mehrere Folgeleerungen in 2 Tagen gibt. Grundsätzlich haute das gestern auch gut hin, jedoch werden heute die Daten irgendwie falsch gelesen bzw. nicht richtig aktualisiert
          .
          Kurz auf den Punkt gebracht: in der Objektliste steht korrekt für die Folgeleerung am 22.9.:
          trashschedule.0.nextAfter.daysLeft = 8 (days)

          Meine Abfrage in einem Testscript besteht nur aus einer Zeile:
          console.log (getState('trashschedule.0.nextAfter.daysLeft').val);
          Das Ergebnis ist: 2 .

          Wie kann das sein?
          Das war gestern der richtige Wert, aber heute steht schon längst korrekterweise eine 8 in der Objektansicht.

          Dasselbe Problem hatte ich zunächst mit der nächsten Leerung unter
          trashschedule.0.next.daysLeft,
          hat sich aber irgendwie zwischenzeitlich korrigiert.

          Hat jemand eine Idee? Mein RasPi2 ist ja schon manchmal leistungsmäßig an der Grenze, hängt sich auch gerne mal auf, aber diese Fehlinterpretation schiebe ich nicht auf die Hardware.
          ical-Adapter verhält sich unverdächtig (zieht Termine 28 Tage im voraus und 7 Tage hinterher).

          Gruß aus Bayern vom Karsten

          NACHTRAG: hat sich erledigt. Jetzt werden korrekt 8 Tage angezeigt. Ich weiß zwar nicht wieso, aber gut ist's erst einmal.

          haus-automatisierung 1 Reply Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @KaosKatte last edited by

            @kaoskatte sagte in Test Adapter TrashSchedule:

            Hat jemand eine Idee?

            Soweit ich weiß speichert der JavaScript Adapter nochmal alle/einige States in einem eigenen Cache, Eventuell ist da wegen knappen Ressourcen etwas auseinander gelaufen. Schwer zu sagen im Nachhinein.

            K 1 Reply Last reply Reply Quote 0
            • K
              KaosKatte @haus-automatisierung last edited by

              @haus-automatisierung So etwas ähnliches dachte ich mir auch. Zwischenzeitlich gab es diverse Neustarts (Skript, Adapter, ioBroker, ganzes System), die diese veralteten Daten nicht beseitigten. Ich werde weiter forschen, wenn das morgen wieder von vorne losgeht.

              1 Reply Last reply Reply Quote 0
              • J
                jensven last edited by

                Hi
                habe den Adapter am laufen und läuft an für sich auch.
                Ich habe

                Graue Tonne
                Gelber Sack
                Grüne Tonne

                komischerweise sagt er mir

                no events matches type "Grüne Tonne" with match "Grüne Tonne"
                

                auch mit exact match kommt die meldung.

                "Grüne Tonne" steht genau so im Kalender drinnen.
                Habe weiter oben das gleiche Problem gelesen, da wurde von dir, @haus-automatisierung , empfohlen die Objekte im trashschedule ordner zu löschen.
                Habe ich getan und die Instanz neu gestartet, kommt aber weiterhin die fehlermeldung.

                Thomas Braun da_Woody 2 Replies Last reply Reply Quote 0
                • Thomas Braun
                  Thomas Braun Most Active @jensven last edited by

                  @jensven
                  Könnte am Umlaut liegen. Andere Zeichen-Kodierung probieren, wenn das einstellbar ist.

                  locale
                  

                  sagt?

                  J 1 Reply Last reply Reply Quote 0
                  • da_Woody
                    da_Woody @jensven last edited by

                    @jensven sagte in Test Adapter TrashSchedule:

                    "Grüne Tonne" steht genau so im Kalender drinnen.

                    eventuell zu wenige tage im ical?

                    1 Reply Last reply Reply Quote 0
                    • J
                      jensven @Thomas Braun last edited by

                      @thomas-braun

                      pi@raspberrypi:~ $ locale
                      LANG=de_DE.UTF-8
                      LANGUAGE=
                      LC_CTYPE="de_DE.UTF-8"
                      LC_NUMERIC="de_DE.UTF-8"
                      LC_TIME="de_DE.UTF-8"
                      LC_COLLATE="de_DE.UTF-8"
                      LC_MONETARY="de_DE.UTF-8"
                      LC_MESSAGES="de_DE.UTF-8"
                      LC_PAPER="de_DE.UTF-8"
                      LC_NAME="de_DE.UTF-8"
                      LC_ADDRESS="de_DE.UTF-8"
                      LC_TELEPHONE="de_DE.UTF-8"
                      LC_MEASUREMENT="de_DE.UTF-8"
                      LC_IDENTIFICATION="de_DE.UTF-8"
                      LC_ALL=
                      

                      @da_woody said in Test Adapter TrashSchedule:

                      eventuell zu wenige tage im ical?

                      Was meinst du damit? Zu wenige Termine von "Grüne Tonne" im Kalender?
                      Falls Ja > Kann nicht sein, der Kalender wurde von der Gemeinde Importiert, sind genug Termine vorhanden.

                      da_Woody 1 Reply Last reply Reply Quote 0
                      • da_Woody
                        da_Woody @jensven last edited by

                        @jensven das ist ja ok! geht um die einstellungen im ical.
                        2624a497-c4a8-4366-bc69-1e8464873aad-grafik.png
                        wenn da vllt der termin zu lange ist, dann knallts.

                        J 1 Reply Last reply Reply Quote 1
                        • J
                          jensven @da_Woody last edited by

                          @da_woody said in Test Adapter TrashSchedule:

                          @jensven das ist ja ok! geht um die einstellungen im ical.
                          2624a497-c4a8-4366-bc69-1e8464873aad-grafik.png
                          wenn da vllt der termin zu lange ist, dann knallts.

                          Das wars. Da habe ich nicht einmal drauf geschaut 🤦‍♂️
                          Danke dir 👍

                          da_Woody 1 Reply Last reply Reply Quote 0
                          • da_Woody
                            da_Woody @jensven last edited by

                            @jensven 😄 gefällt mich! (ösi ansage, eigener humor)
                            freut mich, dir geholfen zu haben tun am sein... 😉

                            1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User @SBorg last edited by A Former User

                              @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

                              SBorg 1 Reply Last reply Reply Quote 0
                              • SBorg
                                SBorg Forum Testing Most Active @Guest last edited by

                                @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 😎

                                ? 1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User @SBorg last edited by

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

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

                                  SBorg 1 Reply Last reply Reply Quote 0
                                  • SBorg
                                    SBorg Forum Testing Most Active @Guest last edited by

                                    @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
                                       }
                                    ]
                                    

                                    ? 1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User @SBorg last edited by

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

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

                                        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-automatisierung 1 Reply Last reply Reply Quote 0
                                        • haus-automatisierung
                                          haus-automatisierung Developer Most Active @JB_Sullivan last edited by

                                          @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_Sullivan 1 Reply Last reply Reply Quote 0
                                          • JB_Sullivan
                                            JB_Sullivan @haus-automatisierung last edited by

                                            @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-automatisierung 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            631
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter calendar ical kalender müll trash
                                            184
                                            1432
                                            362560
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo