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. [Frage] Wie Json nach Website login auslesen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

[Frage] Wie Json nach Website login auslesen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
2 Beiträge 1 Kommentatoren 1.0k 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.
  • PeoplesP Offline
    PeoplesP Offline
    Peoples
    schrieb am zuletzt editiert von
    #1

    Hi Leute,

    ich möchte mal damit beginnen die Daten meines Oilfox von der Oilfox Website aus zu lesen. Hier für muss man sich "einloggen" und im Anschluss ein Json - File abfragen. Nur leider fehlt mir hier Grundlegend das Wissen wie ich so etwas am besten anstelle.

    Zu dem Thema gibt es auch schon einige Beiträge in anderen Foren jedoch möchte ich das Ganze so realisieren dass ich dann später evtl. mal einen Adapter daraus zu basteln.

    Hier mal ein Login versuch der auch ein Ergebnis liefert welches ich jedoch nicht so wirklich zu intepretieren weis und auch keine Ahnung habe wie ich da jetzt weiter machen müsste:

    var request = require('request');
    var callback;
    request.post({
            url: `https://api.oilfox.io/v2/backoffice/session`,
            body: JSON.stringify({
                    method: 'Session.login',
                    params:{
                        username: 'xxxxxxxxx',
                        password: 'xxxxxxxxx'
                    }
                })
            },
        (err, response, body) => {
            if (err) {
               log(err);
            }
            else{
                log(JSON.stringify(response));
            }
    
    });
    

    Das ganze ergibt dann folgende Ausgabe:

    javascript.0 script.js.Sitelogin: registered 2 subscriptions and 0 schedules
    15:16:42.713	[info]	javascript.0 script.js.Sitelogin: {"statusCode":415,"body":"{\"errorCode\":415}","headers":{"date":"Sat, 10 Nov 2018 14:16:14 GMT","content-type":"application/json;charset=UTF-8","content-length":"17","connection":"close","access-control-allow-origin":"*","access-control-allow-credentials":"true","access-control-allow-methods":"GET,HEAD,OPTIONS,POST,PUT,DELETE","access-control-allow-headers":"Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, X-Auth-Token, Partner-Id","x-content-type-options":"nosniff","x-xss-protection":"1; mode=block","cache-control":"no-cache, no-store, max-age=0, must-revalidate","pragma":"no-cache","expires":"0","x-frame-options":"DENY"},"request":{"uri":{"protocol":"https:","slashes":true,"auth":null,"host":"api.oilfox.io","port":443,"hostname":"api.oilfox.io","hash":null,"search":null,"query":null,"pathname":"/v2/backoffice/session","path":"/v2/backoffice/session","href":"https://api.oilfox.io/v2/backoffice/session"},"method":"POST","headers":{"content-length":95}}}
    15:16:45.011	[info]	javascript.0 Stop script script.js.Sitelogin
    

    Vielleicht kann mir hier jemand von den Profis mal weiter helfen den Start zu finden /schaffen. So könnte ich mich dann um den Rest kümmern :D

    Ergänzend noch der Beitrag von Chollf00 aus dem anderen Forum vieleicht hilft es:

    ! https://smarthome.schimmer-media.de/for … #post19323
    ! Hallo Leute,
    ! ich habe gestern einmal mit einen Kollegen ein bisschen mit der Api von Oilfox gespielt.
    ! … und zwar haben wir uns das Github Projekt von Codeking zum Beispiel genommen, der ein Modul für Symcon gebaut hat.
    ! Ich habe dann einige Aufrufe von der Konsole gemacht. Was das war, zeige ich weiter unten.
    ! Momentan läuft es bei mit jetzt mit dem parser.io vom iobroker, der lokal einfach eine txt-Datei ausliest. Diese befülle ich einfach mit dem curl Aufruf. Dieser Aufruf wird alle 24h mit dem cron aufgerufen und das Ergebnis in meine Textdatei geschrieben.
    ! Ist zwar mit der Brust ins Auge, aber ich habe meine Ergebnisse schon einmal im System.
    ! Jetzt wäre es natürlich toll, wenn einer von Euch, der programmieren kann, einfach diese Informationen nehmen könnte und für den ioBroker ein schönes Modul backen könnte.
    ! Hier meine Textergebnisse, die ich über meinen Kollegen bekommen habe:
    ! Benötigt wird der Account mit Name und Passwort, um sich beim Oilfox konto zu legitimieren.
    ! ````
    token=curl -d '{"email":"<user>","password":"<passwd>"}' -H "Content-Type: application/json -H "Connection: Keep-Alive" -H "User-Agent: okhttp/3.2.0" -X POST https://api.oilfox.io/v2/backoffice/session | tail -2 | head -1 | cut -d '"' -f4;curl -H "X-Auth-Token: $token" -H "Connection: Keep-Alive" -H "User-Agent: okhttp/3.2.0" -H "Content-Type: application/json" https://api.oilfox.io/v2/user/summary</passwd></user>

    >! Diese Ausgabe liefert alle Daten eines Users (Ich habe die Daten etwas in der Ausgabe gekürzt.). Aber das Muster der Datenbank ist klar zu erkennen. Er liefert alle Ölstände und Ölpreise der letzten Monate, inklusive eines Forecasts, wie lange unter dem aktuellen Verbrauch der Tankinhalt noch ausreicht.
    >! ````
    {
      "id": „<id>",
      "firstName": „ <vorname>",
      "lastName": „<name>",
      "email": „<user>",
      "country": "DE",
      "zipCode": „<plz>",
      "devices": [
        {
          "id": „<id>„,
          "hwid": „<oilfoxhwid>„,
          "name": "Mein Tank",
          "tankShape": "SQUARED",
          "tankHeight": 155,
          "tankVolume": 7500,
          "tankOffset": 0,
          "tankIsUsableVolume": true,
          "tankUsableVolume": 7500,
          "productId": "ce49beb2-3b00-8fdf-b817-6f468e7f9036",
          "notificationInfoEnabled": false,
          "notificationInfoPercentage": 13,
          "notificationAlertEnabled": true,
          "notificationAlertPercentage": 5,
          "address": {
            "id": „<kundenid>",
            "country": "DE",
            "zipCode": „<plz>„
          },
          "partner": {
            "id": "ac669376-3709-11e7-a919-92ebcb67fe33",
            "name": "Neukunden",
            "termsOfInstallation": "Datenschutzerklärung für die mobene OilFox-App\nBei der Nutzung der mobene OilFox-App („App") werden personenbezogene Daten erhoben, gespeichert und verarbeitet. Hier informieren wir Sie zum Datenschutz und unserem Umgang mit Ihren 
    ….
     und die wir Ihnen in Zukunft mitteilen werden. Wenn Sie weitere Informationen wünschen, wenden Sie sich bitte an die Ihnen bekannten Ansprechpartner, an unsere Zentrale oder an unseren Datenschutzbeauftragten. Diese helfen Ihnen gerne weiter.\n",
            "legalLink": "https://www.mobene.de/oilfox/rechtliches",
            "backgroundColor": "#4a84b5",
            "logoUrl": "https://s3.eu-central-1.amazonaws.com/oilfox-files/mobene_logo.png",
            "minimumLiters": 500,
            "isOrderingEnabled": true,
            "htmlTermsOrder": "Ich habe die [Widerrufsbelehrung](https://www.mobene.de/agb/widerrufsrecht.html) zum Heizölverkauf im Fernabsatz zur Kenntnis genommen und akzeptiere die [allgemeinen Verkaufs- und Lieferbedingungen](https://www.mobene.de/agb.html)",
            "country": "DE",
            "phone": "0800/1861861",
            "fontPrimaryColor": "#ffffff",
            "fontSecondaryColor": "#2c4f6c",
            "priceHistoryFontColor": "#000000",
            "iconHighlightColor": "#92b5d2",
            "primaryProducts": [
              {
                "id": "ce49beb2-3b00-8fdf-b817-6f468e7f9036",
                "name": "Heizöl Mobene Group",
                "measurementInterval": 1440
              }
            ]
          },
          "measurementIntervalInSeconds": 86400,
          "metering": {
            "value": 143,
            "fillingPercentage": 4,
            "liters": 300,
            "currentOilHeight": 12,
            "serverDate": 1534454691900,
            "battery": 100
          },
          "chartData": {
            "consumptionData": [
              {
                "year": 2017,
                "month": 9,
                "fillingPercentage": 0,
                "liters": 0
              },
    ...       
              {
                "year": 2018,
                "month": 8,
                "fillingPercentage": 4,
                "liters": 300
              }
            ],
            "priceData": [
              {
                "price": 57.72601,
                "year": 2017,
                "month": 9
              },
            ...
    
              {
                "price": 69.5006,
                "year": 2018,
                "month": 7
              },
              {
                "price": 70.81,
                "year": 2018,
                "month": 8
              }
            ],
            "forecastData": [
              {
                "year": 2018,
                "month": 9,
                "fillingPercentage": 1,
                "liters": 148
              }
            ],
            "emptyAt": 1538265600000
          }
        }
      ]</plz></kundenid></oilfoxhwid></id></plz></user></name></vorname></id>
    

    ! Das bedeutet, man kann sogar, wie in der App den aktuellen Ölpreis in der Tabelle mit anzeigen.
    ! Mein Vorgehen ist im Moment wie oben beschrieben.
    ! 1. Der cron ruft einmal am Tag meine Datei oilfox auf mit folgendem Befehl

    token=`curl -d '{"email":"<user>","password":"<passwd>"}' -H "Content-Type: application/json -H "Connection: Keep-Alive" -H "User-Agent: okhttp/3.2.0" -X POST https://api.oilfox.io/v2/backoffice/session | tail -2 | head -1 | cut -d '"' -f4`;curl -H "X-Auth-Token: $token" -H "Connection: Keep-Alive" -H "User-Agent: okhttp/3.2.0" -H "Content-Type: application/json" https://api.oilfox.io/v2/user/summary | grep liters | tail -2 | head -1 | cut -d ":" -f2 | sed -e "s/ //g" > /<path>/oilliter.txt</path></passwd></user>
    

    damit steht die aktuelle Literzahl meines Tanke in der Datei oilliter.

    ! 2. Diese Datei parse ich über das parser.io Modul vom iobroker und habe dann den Wert entsprechend in meinem System.
    ! Mein Dank geht an meinen Arbeitskollegen, der mir diesen einfach Weg aufgezeigt und erstellt hat. Vielen Dank nochmal …
    ! Man kann das zwar so jetzt in dieser Form weiterführen und alle Werte entsprechend aufbereiten, aber es ist ein wenig umständlich.
    ! Ich denke mit diesen Informationen sollte in diesem Forum doch einer zu finden sein, der das in ein ordentliches iobroker Modul umbauen kann.
    ! Für eine Erwähnung wäre ich natürlich dankbar und würde auch gerne meine Ideen mit einbringen

    Ich beantworte keine Fragen zu Themen via PN

    1 Antwort Letzte Antwort
    0
    • PeoplesP Offline
      PeoplesP Offline
      Peoples
      schrieb am zuletzt editiert von
      #2

      Oder weis jemand evtl. einen Thread der sich um ein ähnliches Thema dreht?

      Ich beantworte keine Fragen zu Themen via PN

      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

      951

      Online

      32.4k

      Benutzer

      81.5k

      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