Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JSON File Auswerten

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    969

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

JSON File Auswerten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
12 Beiträge 4 Kommentatoren 2.5k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #2

    @dietlman:

    I

    Leider hab ich keine Ahnung wie ich das am Besten anstelle, vielleicht hat jemand eine Idee. `

    Wenn Du die Datei auf Deinem ioBroker Server übertragen kannst versuche mal dieses Skript:

    ! var pfad = "fronius" + "."; var cronStr = "*/1 * * * *"; // wie of soll die Datei abgefragt werden var abfragePin1 = "cat /tmp/digital_out.txt"; //hier den Pfad und den Dateinamen ! var forceCreation = false; ! var datenpunkte = { 'pin1': { "init":false, "common": { name: 'Wert Pin 1', desc: 'Wert Pin 1', type: 'boolean', unit: '', role: 'value' } } }; ! function createDp() { var name; var init; var common; for (var dp in datenpunkte) { name = pfad + dp; init = datenpunkte[dp].init; common = datenpunkte[dp].common; createState(name, init , forceCreation, common); } } ! // Average Load mit uptime auslesen function getData() { exec(abfragePin1, function(err, stdout, stderr) { if (err) { log(err); return; } var json = JSON.parse(stdout); log(stdout); log(json["pin 1"].set); setState(pfad + 'pin1',json["pin 1"].set); }); } ! // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, getData); ! // main // ----------------------------------------------------------------------------- function main() { getData(); } ! // Start Skript: // ----------------------------------------------------------------------------- ! createDp(); setTimeout(main, 500); !

    Dazu muss ioBroker auf einem Linux laufen (wg. dem Kommando cat).

    Der Pfad und Dateiname muss Deinen Werten entsprechend angepasst werden:

    var abfragePin1 = "cat /tmp/digital_out.txt"; //hier den Pfad und den Dateinamen

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Antwort Letzte Antwort
    0
    • dietlmanD Offline
      dietlmanD Offline
      dietlman
      schrieb am zuletzt editiert von
      #3

      das ist schon mal ein guter Ansatz, ich muss mir jettz überlegen wie ich von meinem Fronius WR die Datei auf meinen iobroker bekomme. Der läuft auf einer Synology im docker. Wenn ich dort einen FTP service zum laufen bringe dann könnte ich das file direkt in den iobroker schreiben. Ob das "cat" command bei dieser Version läuft muss ich erst schauen, ich werde weiter berichten,

      danke schon mal inzwischen für die Hilfe.

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #4

        @dietlman:

        Wenn ich dort einen FTP service zum laufen bringe dann könnte ich das file direkt in den iobroker schreiben. `

        Kannst Du nicht das Verzeichnis von Deinem FTP Server mounten?

        Dann könntest Du den Pfad angeben.

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • dietlmanD Offline
          dietlmanD Offline
          dietlman
          schrieb am zuletzt editiert von
          #5

          @ruhr70:

          @dietlman:

          Wenn ich dort einen FTP service zum laufen bringe dann könnte ich das file direkt in den iobroker schreiben. `

          Kannst Du nicht das Verzeichnis von Deinem FTP Server mounten?

          Dann könntest Du den Pfad angeben. `

          ja denke schon nur weiss ich noch nicht wie ich das im iobroker terminal mache…

          1 Antwort Letzte Antwort
          0
          • AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            schrieb am zuletzt editiert von
            #6

            @dietlman:

            file auf meinen FTP Server geschrieben `
            Ist die Datei dann auch per HTTP erreichbar oder ist das ein reiner FTP-Server? Falls ersteres kannst du mit dem request-Modul die Datei in regelmäßigen Abständen abrufen und dann auslesen.

            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

            1 Antwort Letzte Antwort
            0
            • dietlmanD Offline
              dietlmanD Offline
              dietlman
              schrieb am zuletzt editiert von
              #7

              @AlCalzone:

              @dietlman:

              file auf meinen FTP Server geschrieben Ist die Datei dann auch per HTTP erreichbar oder ist das ein reiner FTP-Server? Falls ersteres kannst du mit dem request-Modul die Datei in regelmäßigen Abständen abrufen und dann auslesen.

              Leider ist die Datei nicht per HTTP erreichbar, ich werde aber noch schauen ob ich es irgendwie schaffe diese per HTTP zur Verfügung zu stellen

              1 Antwort Letzte Antwort
              0
              • dietlmanD Offline
                dietlmanD Offline
                dietlman
                schrieb am zuletzt editiert von
                #8

                @AlCalzone:

                @dietlman:

                file auf meinen FTP Server geschrieben
                Ist die Datei dann auch per HTTP erreichbar

                so jetzt ist die Datei auch per HTTP erreichbar, jetzt bräuchte ich nur noch Hilfe mit dem request-modul. Wie muss ich das konfigurieren bzw. wie kann ich meine Datei dann per HTTP abfragen?

                habe folgende URL wo ich mein file angezeigt bekomme: 192.168.1.33/files/digital_out.json

                bekomme dann dieses file angezeigt, und möchte da eigentlich nur den teil in Rot markeirt abfragen:

                {

                "pin 0" : {

                "direction" : "out",

                "function" : "SystemOperationalManagementGranted",

                "set" : false,

                "type" : "DIGITAL"

                },

                "pin 1" : {

                "direction" : "out",

                "function" : "EMRS_OUTPUT_1",

                "set" : true,

                "type" : "DIGITAL"

                },

                "pin 2" : {

                "direction" : "in",

                "function" : "EVU_INPUT_1",

                "set" : false,

                "type" : "DIGITAL"

                },

                "pin 3" : {

                "direction" : "in",

                "function" : "EVU_INPUT_2",

                "set" : false,

                "type" : "DIGITAL"

                },

                "pin 4" : {

                "direction" : "in",

                "function" : "SystemOperationalManagementRequest",

                "set" : false,

                "type" : "DIGITAL"

                },

                "pin 5" : {

                "direction" : "in",

                "function" : "SystemOperationalManagementAcknowledge",

                "set" : false,

                "type" : "DIGITAL"

                },

                "pin 6" : {

                "direction" : "in",

                "function" : "EVU_INPUT_5",

                "set" : false,

                "type" : "DIGITAL"

                },

                "pin 7" : {

                "direction" : "in",

                "function" : "EVU_INPUT_6",

                "set" : false,

                "type" : "DIGITAL"

                },

                "pin 8" : {

                "direction" : "in",

                "function" : "EVU_INPUT_7",

                "set" : false,

                "type" : "DIGITAL"

                },

                "pin 9" : {

                "direction" : "in",

                "function" : "EVU_INPUT_8",

                "set" : false,

                "type" : "DIGITAL"

                }

                }

                1 Antwort Letzte Antwort
                0
                • AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #9

                  @dietlman:

                  jetzt bräuchte ich nur noch Hilfe mit dem request-modul. Wie muss ich das konfigurieren bzw. wie kann ich meine Datei dann per HTTP abfragen? `
                  Du brauchst den JavaScript-Adapter und trägst in dessen Konfiguration bei "zusätliche Module" request ein.

                  Hier findest du Dokumentation dazu: https://github.com/request/request

                  Der einfachste Fall, der für dich ausreichen sollte steht ganz oben. Baue ein neues Skript (nicht unter global!):

                  var request = require('request');
                  
                  // Diese Funktion immer ausführen, wenn du neue Daten abrufen willst, z.b. per schedule:
                  request('!!!hier die URL hin!!!', function (error, response, body) {
                  	if (error) {
                  		log("Fehler aufgetreten: " + error);
                  	} else {
                  		var json = JSON.parse(body);
                  		// Daten aus json auswerten (siehe anderes Skript in diesem Thread)
                  	}
                  });
                  
                  

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #10

                    Etwa so

                    var request = require('request');
                    var url = '...';
                    
                    createState('Wechselrichter.pin1.set', false, {
                        type: 'boolean',
                        read: true,
                        write: true
                    });    
                    
                    function wr() {
                        request(url, function(error,response, body) {
                            if(error) log('Fehler request: ' + error, 'error');
                            else {
                                var obj = JSON.parse(body);
                                setState('Wechselrichter.pin1.set', obj['pin 1'].set);  // Wert von Pin 1: set in Datenpunkt
                            }    
                        });
                    }
                    
                    schedule('*/1 * * * *', wr);  // jede Minute
                    

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #11

                      @AlCalzone:

                      und trägst in dessen Konfiguration bei "zusätliche Module" request ein. `
                      Das ist nicht erforderlich, denn 'request' ist schon im JS-Adapter installiert.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • dietlmanD Offline
                        dietlmanD Offline
                        dietlman
                        schrieb am zuletzt editiert von
                        #12

                        @ALLE

                        Vielen Dank für eure Hilfe. Funktioniert perfekt jetzt, hab wieder etwas dazugelernt :-)

                        LG

                        Duke

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        638

                        Online

                        32.6k

                        Benutzer

                        82.2k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe