0

Node-Red und NinoxKnoten (Speziell die API Webgruppe Malte/Günther/Bastian)

Hallo

Ich bin API-Neuling und habe auch nicht viel JSON erfahrung.

Ich weiß nicht, wie ich den Ninox-Knoten in node-red nutzen kann um Daten in eine Ninox Tabelle zu schreiben.

Ich möchte über Node-Red Mails abfragen und diese in einer Ninox-Tabelle abspeichern.

Die Tabelle ist angelegt, Die Mailabfrage per Node-Red funktioniert auch.

Den Ninox-Knoten habe ich eingerichtet mit API, Tabellenzuordnung, Feldauswahl.

Mit einem Funktionsknoten kann ich auch das Mailobjekt aufdröseln und eine neue Payload erstellen wenn notwendig.

Ich weiß nur nicht was ich jetzt in der Feldzuordnung des NinoxKnoten reinschreiben muss.

Zum Beispiel Tabellenfeld: Mail-Von. Das entsprechende Mail-Objekt ist payload.header.from.text.

In welcher Form muss ich das in dem Ninox-Knoten schreiben?

Vielen Dank vorab.

Anbei ein Foto.

Gruss

Uwe

Bildschirmfoto 2019-06-21 um 11.25.32

17 Antworten

null
    • Gunther.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    msg.payload sieht bei mir so aus:

    msg.payload ={"fields" :

    {"Betreff":msg.topic,"Inhalt":msg.html,"TextPur":msg.payload,"Von":msg.header.from.text,"An":msg.header.to.text,"EingangsDatum":msg.date}}

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Günther.

    Danke für deine Antwort.

    Dein Node-Red Beispiel aus dem API-Webinar und viel ausprobieren haben mir geholfen.

    Den Eintragunen direkt in den Ninox-Knoten habe ich so hinbekommen, dass er die MailDaten als meuen Datensatz anlegt und direkt in die enttsprechenden Felder schreibt.

    Das Problem ist nur, dass er mir dann nicht nur einen Datensatz erstellt sondern abhängig von der Mailadresse  25 gleichlautende Datensätze oder 97 Datensätze oder 34 Datensätze. Auch bekomme ich beim implementieren des Knotens immer eine Fehlermeldung(kleines rotes Dreieck, siehe Flow-Foto). Trotz der Fehlermeldung wird der Abruf ausgeführt. Nur wird nicht nur einmal der  Datensatz erstellt sondern mehrfach.

    Ich weiss nicht, was ich im Ninox-Knoten noch einstellen kann um den Fehler zu beheben.

    Gruss

    Uwe

    Ninox Knoten

    Mail Flow

    • Gunther.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe, das sollte sich Malte mal ansehen

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Günther.

    Hast du eine Adresse unter der ich Malte anschreiben kann?

    Hast du auf deinem RasPi das Modul mal getestet und kannst du das Phänomen der mehrfachen Datensätze bei bestätigen?

    Gruss

    Uwe

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Günther.

    Noch eine Frage zu deinem Mail/Anlagen Flow.

    Welcher Feldtyp muss es in der Ninox-Tabelle sein für die Anlage(Attachment) der Mail?

    Gruss

    Uwe

    • Gunther.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe, mehrfache Sätze habe ich auch schon beobachtet. Malte wollte das Modul überarbeiten.

    Zum Thema Anlagen: Die Anlagen werden nicht in einem Feld, sondern als Datenblock zum Record gespeichert.

    Dazu mußt Du einen zweiten Aufruf machen mit der Id - des gerade erstellen Ninoxdatensatzes machen (siehe Handbuch (eng))

    Ich denke es wäre einfacher, wenn wir das im nächsten Api-Workshop besprechen könnten (Freitag).

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Günther.

    Vielen Dank für deine Antwort.

    Ich habe mal in das API-Webinar eine Datenbank für deinen 'Node-Red Mail-Flow' reingestellt. Name: 'NodeR-Flow-MailAnhang'

    Kannst du bitte mal darüber schauen, ob ich die Feldarten richtig gewählt habe.

    Ein Problem sind noch die Felder 'Mail von:' und 'Mail An:'

    Mit deinem Eintrag "msg.header.to.text" bekomme ich nicht die reine Mailadresse. Wenn ich im Ninox-Knoten hier den Wert "msg.header.to.value.0.address" nutze klappt es. Ich kann es aber aufgrund der '0' nicht in deinem FunktionsKnoten ändern.

    Das mit der Anlage muss ich noch ausprobieren. Wie gesagt, ich fange seit 5 Tagen mit JavaScript an und komme langsam voran zu verstehen wie die Syntax ist und was der ProgrammCode bedeutet.

    Gruss

    Uwe

    • Gunther.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

     

    bei mir ist der Pfad zum EMpfänger: .msg.header.to.text. Für den Fall, dass es mehrere Enpfänger gibt, liegt noch ein Array vor.

    Dabei muß es nicht 0 sondern [0] heißen (eben Array). Das sieht bei mir dann so aus: msg.header.to.value[0].address.

    Bitte mal probieren. Ebenso nachsehen (Palettenverwaltung) welches Release das Mailmodul hat. Bei mir ist es: 1.6.2

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Günther.

    Danke für deine Antwort, ich lerne immer mehr dazu.

    Das klappt jetzt mit der reinen Mailspeicherung ganz gut.

    Nur noch eine Frage:

    Ich habe verstanden, dass der Mailanhang als multipart/formdata gespeichert wird.

    Der Pfad, wo die Anlage gespeichert werden soll, ist der Gleiche wie bei der Mailspeicherung, ergänzt um .../files.

    Aber wo finde ich die Anlage in Ninox oder wie kann ich aus Ninox darauf zugreifen um sie mir anzusehen?

    Gruss

    Uwe

    • Gunther.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

     

    Pfad genau: records/<ID>/files Siehe : https://ninoxdb.de/en/manual/api/rest

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Günther.

    In der Datenbank habe ich jetzt ein Feld 'files' mit dem Feldtyp "Bild" mit Einstellung 'Beliebige Datei" eingepflegt. (Danke an das Integromat-Beispiel im API-Webinar, beim betrachten der Tabelle) Es hat eine weile bei mir gedauert bis ich es kapiert habe.

    Wenn ich den Flow jetzt durchlaufen lasse bekomme ich zum Schluss den Wert '404' in der debug-note und in dem Tabellenfeld files des Datensatzes ist die Anlage nicht vorhanden.

    Wo liegt bei der Anlage mein Fehler?

    Gruss 

    Uwe

    • Gunther.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    es bleibt schwierig.

    Der Feldtyp Bild kann per http-request nicht übertragen werden. Nur über den Weg als Anhang.

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Günther,

    Danke für deine Bemühungen mir hier zu helfen.

    Leider kapiere ich es mit dem Mail Anhang nicht.

    Bei mir handelt es sich um ein PDF-File als Anhang zur Mail.

    Ich weiss einfach nicht ob ich in dem Datensatz einen speziellen Feldtyp für den Anhang erstellen muss oder ob es sich bei '/files' um einen Ordner auf der Festplatte oder Cloud oder sonst etwas handelt.

    Mein Grundverständnis war, dass wie bei dem abspeichern der Empfängeradresse/Inhalt/etc. eine Zuordnung zu einem Feld in dem Datensatz erfolgt. Das scheint beim Anhang aber nicht der Fall zu sein.

    Ich habe mir die deutsche und englische Beschreibung hierzu durchgelesen und kann sie nicht umsetzen. Dazu mangelt es mir einfach an Wissen/Verständnis und ich weiss nicht wo/wie ich es mir aneignen kann.

    Wenigstens habe ich aus deinem Beispiel gelernt, wie ich (außer Anhänge) eMails in die Ninox-Datenbank speichern kann.

    Da habe ich jetzt schon auf Node-Red Variationen für mein HomeMatic - System erstellt, was eine Art Protokollierung mit Statusmeldungen  in eine NinoxDB erstellt.

    Vielen Dank für alles

    Gruss

    Uwe

    • Pulver.IT
    • Editor.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Stehe gerade vor dem selben Problem wie UweG. Konnstes du dies in der Zwischenzeit lösen? Wäre super wenn jemand noch ein Codeschnipsel dem Thread anhängen kann. Meine msg.payload sieht aktuell so aus, nur verstehe ich nicht wie ich nun den Buffer und den Dateinamen an die Ninox-Node übergeben soll

    msg.payload = [{
    id: flow.get('ct-mail-in-fuechsleit'),
    fields: { "An": msg.header.to.text,
    "Betreff": msg.topic,
    "Inhalt": msg.html,
    "Cc" : msg.header.cc.text,
    "Eingangsdatum" : outDate,
    }
    }];

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Tristan
    Ich bin weg von dem Ninox-Node und nutze hauptsächlich den http-Node um Daten an Ninox zu übertragen.Ich denke, dass Günther dies auch so macht.
    Der Ninox-Node beinhaltet einige Einschränkungen für mich, die ich mit dem http-Node besser lösen kann.

    Deshalb kann ich dir deine Frage so nicht beantworten.

    Ich habe mir in Ninox eine Art Mailserver gebaut, aus der ich Mails über NodeRed versende und auch alle eingehenden Mails speicher incl. eines Spamfilters und Doublettenverwaltung.

    Anbei Screenshots vom NodeRed-Flow.
    Mailversand aus Ninox:

    Bildschirmfoto 2021-07-30 um 08.44.13

    Mailemfang nach Ninox:

    Bildschirmfoto 2021-07-30 um 08.44.53

    Bildschirmfoto 2021-07-30 um 08.48.51

    Wenn du Zeit hast, kannst du dich ja mal für den heute um 14:00 Uhr stattfindenden Stammtisch anmelden. (Ninox->Hilfe->Webinare)
    Dort kannst du deine Fragen stellen und erhälst sicherlich Hilfe. Dies ist kein von Ninox geführtes Webinar sondern dort treffen sich Ninox-User (auch einige häufig in Erscheinung tretende User aus dem Forum) um eigene Lösungsansätze und bspw. Drittanwendungen für Ninox vorzustellen und auch Hilfe zu eigenen Anwendungen zu geben. Manchmal wird auch einfach nur über Ninox philosphiert. Aber aus eigener Erfahrung bekommt man immer geballte Fachkompetenz als Hilfe.

    • Pulver.IT
    • Editor.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Vielen Dank Uwe werde beim nächsten Stammtisch wieder dabei sein!

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Tristan
    Anbei ein Screenshot vom Hinweis, wie man ein File mit dem NodeRed NinoxNode an Ninox überträgt.

    Bildschirmfoto 2021-08-01 um 08.04.10

    So wie ich es verstehe,muss in der msg.filename der lokale Pfad stehen, wo das File gespeichert ist.
    Ich selbst habe es nie probiert, da ich in NodeRed den HTTP-Request für Ninox nutze.