Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Mymüll Visualizierung in VIS

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Mymüll Visualizierung in VIS

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Karsten Schwab last edited by

      Hallo. Ich bin recht neu hier und fummel mich da gerade so durch .Einiges konnte ich durch das forum schon lernen und anwenden.Ich möchte auf der VIS gerne die Daten von MYMÜLL darstellen bzw auswerten . Diese konnte ich nach langem suchen nur als JSON daten finden . Gibt es eine anleitung wie ich diese als erinnerung in einem Kalender oder als Icon der entsprechenden Mülltonne mit Datum visualizieren kann, günstigstenfalls bevor die Müllabfuhr kommt 🙂 Screenshot (23).png

      DJMarc75 liv-in-sky 2 Replies Last reply Reply Quote 0
      • DJMarc75
        DJMarc75 @Karsten Schwab last edited by

        @karsten-schwab schau Dir mal den ical Adapter an.

        sigi234 1 Reply Last reply Reply Quote 0
        • sigi234
          sigi234 Forum Testing Most Active @DJMarc75 last edited by

          @djmarc75 sagte in Mymüll Visualizierung in VIS:

          @karsten-schwab schau Dir mal den ical Adapter an.

          Und dazu den Adapter trashschedule 🖐

          DJMarc75 1 Reply Last reply Reply Quote 2
          • DJMarc75
            DJMarc75 @sigi234 last edited by

            @sigi234 sagte in Mymüll Visualizierung in VIS:

            Und dazu den Adapter trashschedule

            Korrekt, geht zwar auch ohne aber macht Sinn für Neueinsteiger 👍

            K 1 Reply Last reply Reply Quote 0
            • K
              Karsten Schwab @DJMarc75 last edited by

              @djmarc75
              Danke für deine Zeit .
              Ich habe beide Instanzen in Iobroker . Ich habe aber keine ahnung wie ich die Termine dieser Json Datei auslesen kann.
              Leider stellt meine Stadt nur eine PDF zur verfügung.
              Ich könnte diese wohl zu fuß in einen Kalender übertragen aber das ist ja nicht der Sinn von Smart Home 🙂

              DJMarc75 1 Reply Last reply Reply Quote 0
              • DJMarc75
                DJMarc75 @Karsten Schwab last edited by

                @karsten-schwab sagte in Mymüll Visualizierung in VIS:

                wie ich die Termine dieser Json Datei auslesen kann

                GuMo,
                mit folgendem Blockly:

                Screenshot 2023-08-23 073516.png

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id="u5d)cb~FE#u}1YW#39UH">result</variable>
                 </variables>
                 <block type="schedule" id="ujASN%g^?T!Oxan%4K?c" x="163" y="113">
                   <field name="SCHEDULE">30 0 * * *</field>
                   <statement name="STATEMENT">
                     <block type="request" id="O{OthkAOezNfIxXTqnu*">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                       <field name="WITH_STATEMENT">TRUE</field>
                       <field name="LOG"></field>
                       <value name="URL">
                         <shadow type="text" id="]9HOyM4/PNyd$)v#T#S^">
                           <field name="TEXT">https://mymuell.jumomind.com/mmapp/api.php?r=dates&amp;city_id=2316&amp;area_id=17</field>
                         </shadow>
                       </value>
                       <statement name="STATEMENT">
                         <block type="update" id="%Tx$3J/~.UkEkIXlgU-d">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                           <field name="OID">0_userdata.0.Test.mymuell</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="variables_get" id="iw!G}|]{LL_]ET.5f`o|">
                               <field name="VAR" id="u5d)cb~FE#u}1YW#39UH">result</field>
                             </block>
                           </value>
                         </block>
                       </statement>
                     </block>
                   </statement>
                 </block>
                </xml>
                

                Du musst Dir einen eigenen Datenpunkt vom Typ JSON anlegen.

                Das Skript fragt täglich um 0:30 Uhr die URL ab und beschreibt den Datenpunkt.
                Zum testen obs funktioniert kannst Du ja mal den ZeitplanBlock weglassen und nur den Request ausführen.

                Ist Dein DP nun beschrieben dann könntest Du Dir diesen als Tabelle in VIS anzeigen lassen.

                Dazu verwendest Du am Besten das Widget
                Screenshot 2023-08-23 074020.png
                mit folgenden Einstellungen:
                Screenshot 2023-08-23 074042.png

                Sieht bei mir dann so aus:
                Screenshot 2023-08-23 074116.png

                K 2 Replies Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @Karsten Schwab last edited by

                  @karsten-schwab

                  es gibt mittlerweile einen adapter, der kann google kalender einträge anlegen https://forum.iobroker.net/topic/62479/test-neuer-adapter-webcal?_=1692769839213

                  d.h. du könntest mit einem script das json in google bringen und dann über ical und trashschedule weitermachen

                  so was ähnliches versuchen wir gerade in diesem thread zu machen - nur das wir das json erst erzeugen müssen:
                  https://forum.iobroker.net/topic/67393/kalender-von-website-auslesen

                  K 1 Reply Last reply Reply Quote 0
                  • K
                    Karsten Schwab @DJMarc75 last edited by

                    @djmarc75
                    Danke für die Zeit.
                    Leider muss ich feststellen das ich zuviel nicht weiß...
                    Ich mach mich jetzt nochmal etwas schlauer über Grundlagen Iobroker .
                    Dann kann ich deinen Tipp ausprobieren und melde mich .
                    Gruß Karsten

                    1 Reply Last reply Reply Quote 0
                    • K
                      Karsten Schwab @liv-in-sky last edited by

                      @liv-in-sky Danke für die Zeit.
                      Leider muss ich feststellen das ich zuviel nicht weiß...
                      Ich mach mich jetzt nochmal etwas schlauer über Grundlagen Iobroker .
                      Dann kann ich deinen Tipp ausprobieren und melde mich .
                      Gruß Karsten

                      1 Reply Last reply Reply Quote 0
                      • K
                        Karsten Schwab @DJMarc75 last edited by Homoran

                        @djmarc75
                        Hi
                        Ich habe zu spät gesehen das man auf "Spoiler" klicken kann um den Code auszulesen...
                        Jedenfalls hat meine suche volgenden Code hervorgebracht.

                        const city_id =21804;
                        const area_id =282;
                        const logging = false;
                        const name = 'Müllabfuhr [Stadt]';
                        const numberOfEntries = 9;
                        
                        const request = require('request');
                        const instanz = '0_userdata.' + instance + '.muell';
                        
                        if (logging) log('starting muell.' + instanz);
                        
                        extendObject(instanz, {
                                type: "device",
                                common: {
                                    name: name
                                }
                            }, function (err) {
                                if (err) {
                                    log('could not create device: ', 'warn');
                                    return;
                                }
                            
                            }
                        );
                        let baseData = {};
                        
                        // query names first
                        request({
                            url: 'https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, 
                            method: 'GET', 
                            headers: { 'Accept': 'application/json' }
                            }, function(error, response, body) {
                                if (!error && response.statusCode == 200) {
                                    var data = JSON.parse(body);  // info ist ein Objekt
                                    data.forEach((v, i) => {
                                        baseData[v._name] = v;
                                    })
                                    updateMuell();
                                }
                            }
                        );
                        
                        schedule('{"time":{"exactTime":true,"start":"12:17"},"period":{"days":1}}', updateMuell);
                        
                        function updateMuell() {
                            var options = {url: 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3', method: 'GET', headers: { 'Accept': 'application/json' }};
                        
                            request(options, function(error, response, body) {
                                if (!error && response.statusCode == 200) {
                                    var info = JSON.parse(body);  // info ist ein Objekt
                                    if (info[0].Ack === 'Success') {
                                        var data = info[0]._data;  // xy ist eine Eigenschaft des Objektes info
                                        let counter = 0;
                                        const date = (new Date())
                                        const todayStr = date.getFullYear() + "-" + ('00' + (date.getMonth() + 1 )).slice(-2) + "-" + ('00' + date.getDate()).slice(-2)
                                        log(todayStr);
                                        data.forEach((v, i) => {
                                            if (todayStr < v.cal_date && counter <= numberOfEntries) {
                                                
                                                const basePath = instanz + '.' + ('000' + counter).slice(-3);
                                                log(v.cal_date + ' -> ' + basePath, 'debug');
                                                // States erstellen
                                                extendObject(basePath, {
                                                        type: "channel",
                                                        common: {
                                                            name: v.cal_date_normal
                                                        }
                                                    }, function (err) {
                                                        if (err) {
                                                            log('could not create device: ', 'warn');
                                                            return;
                                                        }
                                                    
                                                    }
                                                );
                                                createState(basePath + '.date', v.cal_date_normal, {
                                                    name: 'Datum',
                                                    desc: 'Datum der Abholung',
                                                    type: 'string',
                                                    read: true,
                                                    write: false
                                                }, () => {
                                                    setState(basePath + '.date', v.cal_date_normal, true);
                                                });
                                                
                                                createState(basePath + '.desc', baseData[v.cal_garbage_type].title, {
                                                    name: 'Beschreibung',
                                                    desc: 'Beschreibung der Abholung',
                                                    type: 'string',
                                                    read: true,
                                                    write: false
                                                }, () => {
                                                    setState(basePath + '.desc', baseData[v.cal_garbage_type].title, true);
                                                });
                                                createState(basePath + '.color', {
                                                    name: 'Farbe',
                                                    desc: 'Farbe',
                                                    type: 'string',
                                                    role: 'level.color',
                                                    read: true,
                                                    write: false
                                                }, () => {
                                                    setState(basePath + '.color', baseData[v.cal_garbage_type].color, true);
                                                });
                        
                                                counter++;
                                            }
                                        });
                                    }
                                }
                            });
                        };
                        

                        MOD-EDIT: Code in code-tags gesetzt!

                        Damit habe ich im Objekt Ordner Müll diese Einträge bekommen. (Scheinbar holt das skribt termine des nächsten monats ab)
                        Screenshot (24).png Screenshot (25).png Screenshot (26).png Screenshot (27).png
                        Nun muss ich diese nur noch visualizieren. Hab aber keine Idee wie das geht ...

                        DJMarc75 1 Reply Last reply Reply Quote 0
                        • DJMarc75
                          DJMarc75 @Karsten Schwab last edited by DJMarc75

                          @karsten-schwab sagte in Mymüll Visualizierung in VIS:

                          Jedenfalls hat meine suche volgenden Code hervorgebracht

                          ?

                          Ist nicht in Codetags, kann ich daher nicht lesen.

                          Und warum nutzt Du nicht einfach mein Skript ?
                          Habs grad nochmal bei mir aktiviert und: funktioniert.

                          In meinem Beitrag hab ich Dir auch ein Bespiel für die Visualisierung gegeben.

                          edit: ein neues Blocklyskript erstellen und den Inhalt aus meinem Spoiler dort einfügen.
                          Das ist kein Javaskript!

                          K 1 Reply Last reply Reply Quote 0
                          • K
                            Karsten Schwab @DJMarc75 last edited by Karsten Schwab

                            @djmarc75
                            Ich habe versucht dein Scribt nachzubasteln aber leider nicht hinbekommen.
                            Deshalb die suche im Netz.
                            Ich habe zu spät gemerkt das ich in dem kästchen (Spoiler) den Code abrufen könnte.
                            Die Visualizierung bekomm ich auch nicht hin. Ich habe wahrscheinlich alle widges durchsucht aber die von dir gezeigten nicht gefunden.

                            Ich habe einen Magic Mirror.
                            Diesen habe ich nach einer anleitung aus dem Internet zusammengebaut und zusammen mit einem darauf abgestimmten OS zum laufen gebracht.
                            Leider ist das OS nicht so das ich mir halt dinge von meinem Smart home (Homematik Milight Instarcam,doorbird Sonos ect ) anzeigen lassen könnte.
                            Da jetzt nach 4 Jahren renovierung der Flur endlich mal fertig werden soll hab ich das projekt wieder ausgegraben und den Pi 3b gegeneinen 4b mit Camera getauscht und hatte halt die Idee mir dort mit Iobroker die gewünschten Sachen anzeigen zu lassen.
                            Datum Uhrzeit Kalender Wetter Sprit und Heizölpreise (die Günstigsten in der nähe) Video live stream der Kameras und Unwetterwarnungen vom Deutschen Wetterdienst hab ich schon hinbekommen.
                            Ich hab es auch geschafft Lampen zu steuern und mir den zustand eines Fensters anzeigen zu lassen. Die lampen sind auch steuerbar was aber nicht nötig wäre.
                            Aktuelles ,und wohl nicht das letzte Problem, ist halt der Müllkalender .
                            Ich hätte da gern einfach den Wöchentlichen Hinweiß welche Tonne raus muss. Wir haben Abholtermine Dienstag und Freitag (Freitags nur Papier) Es muss also nur Montags und Donnerstags ein hinweis erscheinen der mich dazu veranlasst die richtigen Tonnen rauszustellen.

                            Bei den Leuchten und Fenstern weiß ich auch noch nicht wie ich das anstelle .
                            Ziel wäre das ein Button Leuchtet wenn im Haus ein licht an ist und am besten dahinter dann ein Feld wäre in dem nacheinander die entsprechenden Lampen aufgeführt werden.
                            Das ähnliche mit den Fensterkontakten.
                            Damit der Bildschirm nicht dauernd an ist soll die Kamera möglichst bewegung erkennen und dann bei erkannter bewegung das Licht vom Bildschirm eine bestimmte zeit anschalten.
                            Und damit es nicht langweilig wird wäre es total toll wenn der Kalender nur termine anzeigt wenn Ich oder Meine Frau in den Spiegel schaut (Gesichtserkennung)....geht ja nicht unbedingt jeden was an wann wir wo was tun:-)

                            Super wäre auch wenn bei Klingeln an der Doorbird eine ansage über Sonos kommt , das geht bisher aber leider nur über eine instanz von Sonos und nicht auf allen Lautsprechern.

                            Hohe Ziele , bekomm aber kein blockly gebacken.
                            Immerhin hab ich mir für diesen Spiegel (nicht nur dafür) das 3D Drucken angeeignet und es geschafft mir Halter und Gehäuse für den Bildschirm zu konstruieren und auch zu drucken.

                            Wird wohl wieder ein etwas längerer weg aber wer nicht wagt der nicht gewinnt. 🙂

                            Soweit mal zur erklärung meines vorhabens, wenn jemand mehr infos über Magic Mirror bzw Halter und Gehause möchte bitte melden.

                            Zuerst ist jetzt aber noch der Müllkalender an der reihe....

                            DJMarc75 1 Reply Last reply Reply Quote 0
                            • DJMarc75
                              DJMarc75 @Karsten Schwab last edited by DJMarc75

                              @karsten-schwab Bitte konzentriere Dich in Deinem Beitrag auf die Lösung welche im Titel gesucht wird:

                               Mymüll Visualizierung in VIS
                              

                              Das Andere was Du da so schreibst ist hier nicht relevant.

                              Also nochmal:

                              @karsten-schwab sagte in Mymüll Visualizierung in VIS:

                              Ich habe versucht dein Scribt nachzubasteln aber leider nicht hinbekommen.

                              Du brauchst das nicht nachbauen, wäre aber trotzdem sinnvoll damit man auch sieht dass Du prinzipiell lernwillig bist.

                              Nochmal der Code:

                              <xml xmlns="https://developers.google.com/blockly/xml">
                               <variables>
                                 <variable id="u5d)cb~FE#u}1YW#39UH">result</variable>
                               </variables>
                               <block type="schedule" id="ujASN%g^?T!Oxan%4K?c" x="163" y="113">
                                 <field name="SCHEDULE">30 0 * * *</field>
                                 <statement name="STATEMENT">
                                   <block type="request" id="O{OthkAOezNfIxXTqnu*">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                                     <field name="WITH_STATEMENT">TRUE</field>
                                     <field name="LOG"></field>
                                     <value name="URL">
                                       <shadow type="text" id="]9HOyM4/PNyd$)v#T#S^">
                                         <field name="TEXT">https://mymuell.jumomind.com/mmapp/api.php?r=dates&amp;city_id=2316&amp;area_id=17</field>
                                       </shadow>
                                     </value>
                                     <statement name="STATEMENT">
                                       <block type="update" id="%Tx$3J/~.UkEkIXlgU-d">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                         <field name="OID">0_userdata.0.Test.mymuell</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="variables_get" id="iw!G}|]{LL_]ET.5f`o|">
                                             <field name="VAR" id="u5d)cb~FE#u}1YW#39UH">result</field>
                                           </block>
                                         </value>
                                       </block>
                                     </statement>
                                   </block>
                                 </statement>
                               </block>
                              </xml>
                              

                              Blockly erstellen und den Code über

                              Screenshot 2023-08-29 172041.png

                              reinkopieren.

                              Den Datenpunkt musst Du Dir selber anlegen irgendwo unter

                              0_userdata.0
                              

                              Zur VIS kommen wir dann bitte erst wenn Du diese Standards umgesetzt hast.

                              edit: zusätzlich noch bitte folgenden Beitrag lesen und zukünftig umsetzen 😉

                              https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge

                              1 Reply Last reply Reply Quote 0
                              • K
                                Karsten Schwab last edited by

                                @djmarc75
                                Hallo
                                Danke für deine Geduld.
                                Ich habe es geschafft das Blockly zu importieren.
                                Ich habe auch die URL so geändert das meine Daten vom Wohnort angezeigt werden (sollten)
                                Ich habe auch einen Ordner bei Objekten angelegt , in welchen die Daten dann reinsollen.

                                Aber bei dem Blockly "Aktualisiere" kann ich den von mir erstellten Ordner nicht anwählen. Er wird garnicht erst angezeigt.
                                Wenn ich bei meinen Objekten schaue sieht der Ordner aber genauso aus wie von dir gewünscht .

                                K DJMarc75 2 Replies Last reply Reply Quote 0
                                • K
                                  Karsten Schwab @Karsten Schwab last edited by

                                  @karsten-schwab Screenshot (29).png Screenshot (30).png Screenshot (31).png

                                  K 1 Reply Last reply Reply Quote 0
                                  • K
                                    Karsten Schwab @Karsten Schwab last edited by

                                    @karsten-schwab

                                    javascript.0
                                    	2023-08-30 11:04:08.439	error	at processImmediate (node:internal/timers:478:21)
                                    javascript.0
                                    	2023-08-30 11:04:08.438	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1628:17)
                                    javascript.0
                                    	2023-08-30 11:04:08.437	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2153:17
                                    javascript.0
                                    	2023-08-30 11:04:08.437	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2055:37)
                                    javascript.0
                                    	2023-08-30 11:04:08.436	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1802:21)
                                    javascript.0
                                    	2023-08-30 11:04:08.436	error	at new Script (node:vm:94:7)
                                    javascript.0
                                    	2023-08-30 11:04:08.436	error	SyntaxError: Unexpected token ','
                                    javascript.0
                                    	2023-08-30 11:04:08.435	error	^
                                    javascript.0
                                    	2023-08-30 11:04:08.435	error	setState("Object ID", , true);
                                    javascript.0
                                    	2023-08-30 11:04:08.434	error	script.js.Müll compile failed: at script.js.Müll:12
                                    javascript.0
                                    	2023-08-30 11:04:08.428	info	Start javascript script.js.Müll
                                    javascript.0
                                    	2023-08-30 11:04:08.417	info	Stop script script.js.Müll
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • DJMarc75
                                      DJMarc75 @Karsten Schwab last edited by

                                      @karsten-schwab Zeig mal das Blockly bitte.

                                      @karsten-schwab sagte in Mymüll Visualizierung in VIS:

                                      Ich habe auch einen Ordner bei Objekten angelegt , in welchen die Daten dann reinsollen.

                                      und dann in diesem Ordner natürlich einen Datenpunkt vom Typ JSON anlegen.

                                      @karsten-schwab sagte in Mymüll Visualizierung in VIS:

                                      Aber bei dem Blockly "Aktualisiere" kann ich den von mir erstellten Ordner nicht anwählen.

                                      Dort kann man auch keinen Ordner sondern nur Datenpunkte auswählen.

                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        Karsten Schwab last edited by

                                        @djmarc75
                                        Hurra ,ich kann jetzt Datenpunkte anlegen (falls ich im Expertenmodus bin )
                                        Das Blockly scheint ohne fehlermeldung zu laufen .

                                        Daten habe ich aber keine gefunden.

                                        Ich bin lernwillig aber manchmal auch etwas begriffsstutzig.....
                                        Danke
                                        Ich habe versucht mich an die Forenempfehlung zu halten und Text als Text zu posten, aber oft kommt die meldung "Forbidden something went wrong" dann kann ich in den Reply auch keine Fotos mehr einfügen.
                                        Sorry

                                        K DJMarc75 2 Replies Last reply Reply Quote 0
                                        • K
                                          Karsten Schwab @Karsten Schwab last edited by

                                          @karsten-schwab ```
                                          1400c558-0e8b-4079-a19f-aa3033ad70ea-grafik.png code_text

                                          K 1 Reply Last reply Reply Quote 0
                                          • K
                                            Karsten Schwab @Karsten Schwab last edited by

                                            @karsten-schwab Screenshot (34).png

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            728
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            30
                                            1131
                                            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