Modul für/in MagicMirror erstellen

  • moinsen,

    wenn ich hier falsch sein sollte (forum, themengebiet, etc.), dann bitte "sagen". ich habe vor, als einsteiger ein modul für den MagicMirror zu schreiben. es handelt sich hierbei um eine liste von personen, die im aktuellen monat geburtstag haben. die personen, deren geburtstag bereits vorüber ist, sollen abgegraut (?) dargestellt werden oder evtl. auch gar nicht mehr angezeigt werden. mir geht es jetzt um die vorgehensweise. ich dachte mir, dass ich eine .csv-datei (geburtstage) zeilenweise auslese, und dann die entsprechenden einträge in einer tabelle (html) aufliste. das ganze sollte dann so aussehen :

    Spoiler anzeigen

    ist es "geschickt", dies auf diese art und weise (csv-datei auslesen) zu machen, oder habt ihr einen besseren vorschlag. codiert muss alles in javascript werden, da magicmirror eine server-client-plattform ist, arbeitet mit nodejs und electron. da ich absoluter noob bin, jedoch bereit zu lernen, würde ich mich freuen, wenn mich jemand bei der hand nehmen und mich dabei begleiten könnte, als tutor sozusagen.

    besten dank im voraus !

    so long

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

  • danke für deine antwort :) .

    electron und nodejs können auch .json. das weiß ich gewiss.

    ich habe die tabelle ja im .odt-format (libre office) vorliegen. das kann ich nicht unter .json speichern. was müsste ich denn dann tun? brauche ich eine zusätzliche app ?

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

  • Also am elegantesten wäre eine Anbindung an einen CalDAV-Server, von dem man sich dann die Kalendereinträge saugt. Wenn es nur lokal sein soll, würde ich das Kalenderformat ".ics" nehmen: https://www.ionos.de/digitalguide/w…lung/icalendar/

    Vorteil ist, dass du dir nicht eine Excel-Tabelle (oder eben Libre) stricken musst, sondern gleich aus deinem Kalender-Programm die Datei exportieren kannst.

    Kelvin

  • Warum startest du nicht mit dem existierenden Calendar-Modul? Evtl. kannst du's schon so nutzen wie's ist, alternativ ist der Code sicher eine gute Ausgangslage:

    https://docs.magicmirror.builders/modules/calendar.html

    Ich hab mir so ein Config-Snippet reingepackt und gut war:

    Code
    {
    symbol: "birthday-cake ",
    color: "#FFFF00",
    url: "http://192.168.0.88:8080/modules/default/geburtstage.ics",
    maximumNumberOfDays: 30
    },

    Das ICS-File lässt sich bequem mit den üblichen Verdächtigen pflegen, resp. aus Kalendern exportieren...

    Grüße

    ghmartin77

  • danke für die antworten. jetzt habe ich ja was zum lesen ...

    also momentan habe ich es geschafft, mit javascript eine tabelle anzeigen zu lassen. der komplettecode der seite sieht so aus:

    die daten habe ich erst mal händisch mittels innerHTML reingeschrieben, damit ich einen ungefähren eindruck bekomme. momentan bin ich gerade dabei, zu versuchen, einhintergrundbild in eine zelle zu bekommen. css-code:

    Code
    .MMM-birthdaylist .td-image {  
        width: 100px;  
        height: 130px;  
        background-image: url("kalenderblatt.png");  
        vertical-align: middle;  
        text-align: center;  
        background-repeat: no-repeat;  
        background-position: 
        top left;
    }

    das bild liegt im gleichen verzeichnis wie das script, aber es funktioniert einfach nicht. momentan sieht es so aus:

    so, ich werde jetzt erst einmal lesen ...

    so long

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

    Einmal editiert, zuletzt von Perlchamp (28. April 2020 um 23:46)

  • Vorteil ist, dass du dir nicht eine Excel-Tabelle (oder eben Libre) stricken musst, sondern gleich aus deinem Kalender-Programm die Datei exportieren kannst.

    och, die datei ist schnell erstellt. ich brauche ja auch nicht viel :

    geburtsMONAT, geburtsTAG, geburtsJAHR, name

    aus moment - geburtsJAHR bekomme ich das alter. MEHR brauche ich nicht, da ich bereits "calendar_monthly" habe. und darunter würde ich gerne meine geburtstagsliste setzen.

    so eine icl-datei zu erstellen scheint mir jetzt schwieriger zu sein ...

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

  • Das ICS-File lässt sich bequem mit den üblichen Verdächtigen pflegen, resp. aus Kalendern exportieren...

    welches programm bzw. server (mit api bzw. key oder id) könnetst du da empfehlen ?

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

  • ich habe mir jetzt zuerst einmal das modul csvtojson installiert. das momentan größte problem ist, dass ich nicht weiß, wie ich testen kann. ich kann zwar

    Code
    node test.js

    in das terminal eingeben, aber meistens stimmen die pfadbezeichungen nicht und ich bekomme errror-meldungen. ich möchte einfach ein paar dinge testen, habe aber nicht die passende umgebung dafür oder finde diese nicht ...

    das ist bei python auch als anfänger wesentlich einfacher, wie ich finde ...

    ich bekomme einfach den start nicht hin. bei magicmirror kann ich nicht testen, da muss wohl ein voll funktionsfähiges modul/skript vorliegen :( ... und das kann ich noch nicht ... um codeschnipsel zu testen scheint es nicht geeignet zu sein ...

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

    Einmal editiert, zuletzt von Perlchamp (29. April 2020 um 20:44) aus folgendem Grund: schreibfehler

  • merci,

    so ich habe es bereits soweit zum laufen gebracht, dass keine fehlermeldungen mehr kommen und wenn, dass ich weiss wie man sie debuggen kann. damit meine ich, dass ich nun eine umgebung geschaffen habe, um diverse meldungen anzeigen zu können. habe auch csvtojson erfolgreich installiert und kann bisher "leider" nur einen array in der konsole anzeigen lassen. bin gerade dabei zu erfahren, wie ich das in eine variable oder (?) konstante packen kann. habe dazu bisher nichts gefunden. vielleicht weiß es jemand ?

    mein code dafür :

    Code
    const csv = require("csvtojson");
    const csvFilePath = this.path + '/data/birthdaylist.csv';
    csv()        
        .fromFile(csvFilePath)
        .then((jsonObj)=>{
             console.log(JSON.stringify(jsonObj));        
        })

    wie kann ich jetzt die ausgabe

    Code
    console.log(JSON.stringify(jsonObj));

    in eine variable packen ? diese muss (natürlich) vorher deklariert werden, also :

    Code
    var jsonArray = [];

    besten dank im voraus !

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

  • wald vor lauter bäumen ... done !

    Code
    const csv = require("csvtojson");
    const csvFilePath = this.path + '/data/birthdaylist.csv';
    var jsonArray = [];
    csv()        
        .fromFile(csvFilePath)
        .then((jsonObj)=>{
             jsonArray =JSON.stringify(jsonObj);        
        })

    :wallbash:

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

  • moinsen,.

    so mein MM ist fertig ! :)

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!