0

Datum/Uhrzeit Feld von Außen triggern? (API, webhook!?)

Hallo liebes Forum,

ich scripte zwar in Ninox schon vieles selbst und arbeite auch mit Make, aber die ganzen Themen rund um die Ninox API sind für mich böhmische Dörfer, ich verstehe das alles echt überhaupt nicht. 😵

Jetzt habe ich ein make szenario, welches nichts weiter tut als ein Datumsfeld in Ninox mit einem aktuellen Zeitstempel zu versehen, nachdem es über einen Webhook getriggert wurde.

Meine Frage ist nun, ob es nicht möglich ist, das aktualisieren dieses Datumsfeldes in Ninox auch ohne den Umweg über make zu realisieren???
Mit meinem Trigger kann ich eine beliebige URL aufrufen.

Bei meiner Recherche im Forum finde ich irgendwie immer nur Themen, wie Daten oder Befehle aus Ninox heraus gegeben werden können.

Über Infos und Hilfe wäre ich dankbar 🙂

5 Antworten

null
    • Developer by Smartplanung
    • smartplanung
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Oliver,

    worüber wird der Webhook ausgelöst? Es gibt die Möglichkeit die REST-API von Ninox über URL anzusteuern.

    Der Body sähe so aus:

    [{
        id: deineRecordID,
        fields: {
            Datumsfeld: datum,
            NocheinDatumsfeld: datum2
                }
    }]
    

    Header (Hinter Bearer dein Ninox-API Key):

    {
            Authorization: "Bearer XXXX-XXXX-XXXX",
            'Content-Type': "application/json"
        }
    

    Die URL zur REST-API, sofern Public Cloud:

    https://api.ninox.com/v1/teams/DEINETEAMID/databases/DEINEDATENBANKID/records

    Die Doku von Ninox ist auch recht nützlich:

    https://docs.ninox.com/en/api/public-cloud-apis

      • CitizenDeveloper
      • Oliver_meerkamp
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Patrick W. 
      Hallo Patrick,

      vielen Dank für deine Mühe, aber du musst dir bitte vorstellen, dass du mit einem 3-jährigen sprichst 🙈🤪
      "REST-API", den Begriff höre ich ja ständig und ich hab eine Vorstellung davon, aber begreifen tu ich nix.
      Die API doku hab ich schon angschaut, englisch ist kein Problem, aber ich verstehe trotzdem garnix. Es fehlt jedes Grundverständnis, das ist für mich einfach noch nicht trivial.

      Du beschreibst Body/Header - wo schreibe ich diesen Code hin?
      Die URL zur Rest API.....ich verstehe die Platzhalter aber was mach ich damit?

      Ausgelöst wird der Webhook von einem smarten shelly-switch. Dort kann ich eine beliebige URL aufrufen. Momentan ist dort ein make Webhook eingetragen, das funktioniert schonmal gut.

      • Developer by Smartplanung
      • smartplanung
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Oliver Ok, mit Shelly kam ich bisher noch nicht in Berührung. Ich glaube auch, dass man nur über einen URL-Aufruf keine Datensätze steuern kann. Du brauchst Schon ein Modul für API-Requests. Das gibt Dir in dem Fall Make oder ähnliche Produkte.

      Alternativ, um ggf. Kosten zu sparen kann ich Dir für Smarthome Nodered empfehlen, falls Du einen eigenen Server (z.B. Raspberry Pi) laufen hast. Darüber binde ich Smarthome-Systeme an (auch privat bei mir). Das ist bei mir die logische Schnittstelle für Hersteller/Protokollübergreifende Komponenten (KNX, Homematic, Ninox, uvm.). Wenn Du hierzu Interesse hast, kannst Du mich gerne mal unverbindlich über PN kontaktieren.

      Die URL zur REST-API ist quasi der Pfad bis zu deinem Record. Dafür musst Du die TeamID, DatenbankID, TabellenID und je nach Anforderung die RecordID angeben. Damit Ninox dich authentifizieren kann, benötigst Du deinen API-Key als Bearer. Die Authentifizierung erfolgt immer im Header. Ähnlich wie ein Word-Dokument. Header = Kopfzeile (Überschrift, Betreff, Adresse, usw.) und Body ist der Inhalt, was getan werden soll (Anschreiben).

      Das was Du in Make an Daten eingibst, ist nichts anderes. Nur grafisch besser dargestellt und bei einem Ninox-Modul in Make perfekt abgestimmt, damit man z.B. Vorschläge für gefundene Teams/Datenbanken usw. erhält.

      Bei Nodered z.B. wäre das ein ähnliches Verfahren, was sich HTTP-Request nennt. Da werden die selben Daten eingegeben, nur grafisch vielleicht etwas anders dargestellt.

      Um die Funktionen besser zu verstehen, empfehle ich Dir einfach mal zwei eigenständige Ninox-Datenbanken aufzusetzen. Ziel sollte sein, z.B. über einen Button einen Wert von Datenbank A in Textfeld A zur Datenbank B in Textfeld A zu übertragen. Das nächste Ziel wäre, Textfeld A aus Datenbank B in Textfeld A in Datenbank A einzulesen. Dann hast Du eigentlich schon alle Grundsätze der REST-API in Bezug auf Ninox. Alles weitere ist nur noch leichtes Anpassen der Request.

      Das Script könnte z.B. so aussehen:

      let myKey := DeinAPI-Key;
      let dbTeam := TeamID-DatenbankB;
      let dbDatenbank := DatenbankID-DatenbankB;
      let dbTable := TabelleDatenbankB
      let myURL := "https://api.ninoxdb.de/v1/teams/" + dbTeam + "/databases/" + dbDatenbank +
          "/tables/" + dbTable + "/records";
      let body := [{
                  id: 1,
                  fields: {
                      TextfeldA: "Test123"
                  }
              }];
      let auth := {
              Authorization: "Bearer " + myKey,
              'Content-Type': "application/json"
          };
      let response := do as server
              http("POST", myURL, auth, body)
          end;
      

      Die TabellenID steht in der Browser-URL immer hinter /module/

      I.d.R. 1-2 Buchstaben. Z.B. A oder AB oder KE, was auch immer:

      https://app.ninox.com/#/teams/abcd1234/database/1234aslrjq/module/KE/view/ligufgigliu/node/KE1/tab/0

      • CitizenDeveloper
      • Oliver_meerkamp
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Patrick W. 
      Hey, das sind wirklich super Informationen, Vielen Dank dafür! 👍🙂
      ...http Request, okay, das ist ein Stichwort.

      Das mit den beiden Datenbanken ist eine gute Idee, ich werde mal damit rumspielen, bestimmt fällt dann auch irgendwann bei mir der Groschen, hoffentlich.

      Node Red ist doch eigenlich das gleiche wie Make, oder!?
      Mit Make komme ich relativ gut klar, hab da schon 2 Dutzend Szenarien laufen und mit den 40000 Operations in meinem Paket komme ich bis jetzt auch ganz gut hin.

      Ich werde an dieser Stelle Feedback geben...

      Vielen Dank nochmal!

      Gruß, Oliver

      • Developer by Smartplanung
      • smartplanung
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Oliver ja, Node Red ist eigentlich wie Make oder auch n8n. Es unterscheidet sich oftmals nur vom Handling und von den Nodes/Modulen. Node Red hat meines Wissens nach mehr Module für Smarthome Geräte, wie n8n oder Make. Viel wichtiger war bei mir aber, dass man selbst hosten kann. Bei Make war ich oft schnell am Limit, sodass ich dort monatlich ein Paket buchen musste.

Content aside

  • vor 1 JahrZuletzt aktiv
  • 5Antworten
  • 84Ansichten
  • 2 Folge bereits