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. [GELÖST] Homepilot Umweltsensor mit Javascript auslesen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    351

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

[GELÖST] Homepilot Umweltsensor mit Javascript auslesen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
51 Beiträge 4 Kommentatoren 3.0k Aufrufe 1 Watching
  • Ä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.
  • M Offline
    M Offline
    meicker
    schrieb am zuletzt editiert von
    #27

    Hi Paul,

    Danke, dass Du dich wieder zur verfügung stellst :-)

    Natürlich klappt unterstrichener Code nicht :-) Habe ich ja auch nur für den leser gemacht … aber auch doof, der leser kann so nicht testen - mache ich nicht mehr :-)

    Ich habe die Änderungen eingepflegt:

    const request = require('request');
    const link = 'http://192.168.1.180/deviceajax.do?meter=1010005';
    const linkfsupunten = 'http://192.168.1.180/deviceajax.do?meter=1010009';
    const linkfsupoben = 'http://192.168.1.180/deviceajax.do?meter=1010008';
    
    // Datenpunkte erzeugen
    createState('Homepilot.Sonnenrichtung', 0, {type: 'number', unit: '°'});
    createState('Homepilot.Sonnenhöhe', 0, {type: 'number', unit: '°'});
    createState('Homepilot.Lichtwert', 0, {type: 'number', unit: 'lux'});
    createState('Homepilot.Windgeschwindigkeit', 0, {type: 'number', unit: 'm/s'});
    createState('Homepilot.Temperatur', 0, {type: 'number', unit: '°C'});
    createState('Homepilot.Regen', 0, {type: 'boolean', unit: ''});
    createState('Homepilot.Aktualisiert', 0, {type: 'string', unit: ''});
    createState('Homepilot.balkontüreoben', 0, {type: 'boolean', unit: ''});
    createState('Homepilot.balkontüreobenaktualisiert', 0, {type: 'string', unit: ''});
    createState('Homepilot.balkontüreunten', 0, {type: 'boolean', unit: ''});
    createState('Homepilot.balkontüreuntenaktualisiert', 0, {type: 'string', unit: ''});
    
    function sensordaten() {
        request(link, function(error,response, body) {
            if(error) log('Fehler request: ' + error, 'error');
            else {
                var data = JSON.parse(body).data;
                var dir = data[5].Sonnenrichtung;
                dir = parseFloat(dir.substr(dir.indexOf('(') + 1));
                setState('Homepilot.Sonnenrichtung', dir, true); 
                var ele = parseFloat(data[4].Sonnenhöhe);
                setState('Homepilot.Sonnenhöhe', ele, true); 
                var lux = parseFloat(data[0].Lichtwert);
                setState('Homepilot.Lichtwert', lux, true);
                var wind = parseFloat(data[1]['Windgeschw.']);
                setState('Homepilot.Windgeschwindigkeit', wind, true);
                var temp = parseFloat(data[2].Temperatur);
                setState('Homepilot.Temperatur', temp, true);
               // var regen = parseFloat(data[3].Regen);
                var regen = data[3].Regen; // Das ist ein String !
                    if(regen == 'Nicht erkannt') setState('Homepilot.Regen', false, true);
                    else setState('Homepilot.Regen', true, true);
               // setState('Homepilot.Regen', regen, true);
                //var aktualisiert = parseFloat(data[6].Aktualisiert);
                var aktualisiert = data[6].Aktualisiert; // Das ist ein String !
                setState('Homepilot.Aktualisiert', aktualisiert, true);
            }    
        });
    }
    
    function balkontuere() {
        request(linkfsupunten, function(error,response, body) {
            if(error) log('Fehler request: ' + error, 'error');
            else {
                var schliesserunten = data[0].Schliesser; // Das ist ein String !
                    if(schliesserunten == 'Geöffnet') setState('Homepilot.balkontüreunten', false, true);
                    else setState('Homepilot.balkontüreunten', true, true);
                var aktualisiert = data[1].Aktualisiert; // Das ist ein String ! 
                setState('Homepilot.balkontüreuntenaktualisiert', aktualisiert, true);
            }    
        });
        request(linkfsupoben, function(error,response, body) {
            if(error) log('Fehler request: ' + error, 'error');
            else {
                var schliesseroben = data[0].Schliesser; // Das ist ein String !
                    if(schliesseroben == 'Geöffnet') setState('Homepilot.balkontüreoben', false, true);
                    else setState('Homepilot.balkontüreoben', true, true);
                var aktualisiert = data[1].Aktualisiert; // Das ist ein String ! 
                setState('Homepilot.balkontüreobenaktualisiert', aktualisiert, true);
            }    
        });
    }
    function alledaten() {
       sensordaten();
       balkontuere();
    }
    schedule('*/30 * * * * *', alledaten); // alle 30 Sekunden
    

    Jedoch kommt noch immer die Fehlermeldung

    14:54:00.700 [error] Caught by controller[0]: at Request._callback (script.js.Homepilot.Sensordaten:52:35)

    14:54:00.703 [error] Caught by controller[1]: at Request._callback (script.js.Homepilot.Sensordaten:62:34)

    Zeile 52:

    if(schliesserunten == 'Geöffnet') setState('Homepilot.balkontüreunten', false, true);

    Zeile 62:

    if(schliesseroben == 'Geöffnet') setState('Homepilot.balkontüreoben', false, true);

    Und der Javascript Adapter stürzt ab und startet neu …

    Soweit ich gesehen habe bekommen die offen, geschlossen und aktualisiert auch keinen Status bzw. werden nicht aktualisiert.

    Viele Grüße und DANKE schon mal ... :-)

    Marc

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

      Hinter dem else { fehlt die Dekalaration von data (in beiden Fällen)

              else {
                  var data = JSON.parse(body).data;
      
      

      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
      • M Offline
        M Offline
        meicker
        schrieb am zuletzt editiert von
        #29

        Perfekt :-) Habe ich übersehen … Aber so ist das wenn man mit copy and paste scripte bearbeitet :-) Passiert schneller als man gucken kann ...

        Mir ist noch eines aufgefallen, und das ist tatsächlich kömisch. Heute früh war das schonmal so ... Die Sonnenrichtung erscheint nicht korrekt bzw. gar nicht. Wenn ich das Script anhalte, danach den Adapter anhalte und die angelegte Gruppe Homepilot lösche fliegt auch alles raus, nut die Sonnenrichtung, die vorher nicht zu sehen war, bleibt stehen. Die fliegt erst dann wenn man die Ansicht neu läd.

        Wenn ich dann den Adapter wieder starte und danach das Script laufen lasse werden wieder alle Datenpunkte angezeigt, ausgenommen Sonnenstand ...

        Gibt es dafür eine Erklärung ? Heute früh war es noch so das der Sonnenstand mit 0 angezeigt wurde, jetzt kommt er bis zum löschen gar nicht ...

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

          @meicker:

          Gibt es dafür eine Erklärung ? `
          Am Skript liegt es nicht, denn der Sonnenstand wird behandelt wie alle anderen Daten auch. Vielleicht verkraftet Homepilot 3 Abfragen alle 30 s nicht ?

          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
          • M Offline
            M Offline
            meicker
            schrieb am zuletzt editiert von
            #31

            ich habe bei Sonnenrichtung einfach mal ein g angehangen um einen neuen datenpunkt zu schaffen. Dieser wurde sofort aktualisiert. Das g wieder entfernt, passiert wieder nichts mehr …

            Kann es sein das der datenpunkt Sonnenrichtung irgendwie festgefressen im System hängt ? Ich habe jedoch den Adapter schon neu gestartet und auch das Script. Den Host ebenfalls. Muss ich den Raspberry vielleicht mal ganz killen um alles sauber zu haben oder wird sonst wo noch etwas zwischengelagert was stören könnte ?

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

              @meicker:

              Muss ich den Raspberry vielleicht mal ganz killen um alles sauber zu haben oder wird sonst wo noch etwas zwischengelagert was stören könnte ? `
              Sicher nicht !
              @meicker:

              um einen neuen datenpunkt zu schaffen. Dieser wurde sofort aktualisiert. Das g wieder entfernt, passiert wieder nichts mehr … `
              Bedeutet es, dass der Wert nicht aktualisiert wird, also ein älterer Wert bestehen bleibt ? Was sagt der Zeitstempel ? Gibt es was im Reiter "Log" dazu ?

              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
                #33

                Füge mal ein Log hinter die Deklaration von dir ein.

                            var dir = data[5].Sonnenrichtung;
                            log(dir);
                
                

                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
                • M Offline
                  M Offline
                  meicker
                  schrieb am zuletzt editiert von
                  #34

                  Habe ich jetzt mal eingefügt …

                  Aber es läuft auch gerade.

                  Ich habe das Script angehalten

                  Java angehalten

                  Host Neustart

                  Admin neustart

                  dann alles wieder gestartet - Das Script war zuerst gestartet bevor der Java Adapter an war. Es hat dann die daten bereits richtig gezogen ... kann das ???

                  Dann habe ich den Java Adapter eingeschaltet und es wurde alles richtig aktualisiert ... Die Sonnenrichtung kam auch wieder ganz normal ...

                  Keine Ahnung was das für ein Spuk war ... ich beobachte jetzt mal ...

                  Danke auf jeden fall wieder für deine tatkräftige Unterstützung !!!

                  Viele Grüße,

                  Marc

                  1 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    pix
                    schrieb am zuletzt editiert von
                    #35

                    Hallo,@paul53:

                    @meicker:

                    Gibt es dafür eine Erklärung ? Am Skript liegt es nicht, denn der Sonnenstand wird behandelt wie alle anderen Daten auch. Vielleicht verkraftet Homepilot 3 Abfragen alle 30 s nicht ?
                    doch, der Homepilot verkraftet das. Der Homepilot-Adapter läuft nach diesem Prinzip. Die Standard-Einstellung des Adapters ist eine Abfrage alle 12s, es geht theoretisch bei kleinen Installationen auch in kürzeren Abständen.

                    Ich freue mich über die Umsetzung und versuche gern die hier erarbeitete Lösung in den Adapter einzubinden. Allerdings kann das noch eine Weile dauern, ich bin gerade anderweitig eingespannt und komme nicht oft zum Entwickeln und Schreiben.

                    Gruß,

                    Pix

                    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      meicker
                      schrieb am zuletzt editiert von
                      #36

                      Hallo Pix,

                      schön das Du dich meldest - schöner, dass Du das nützlich findest :-)

                      Ich habe den Homepilot, Umweltsensor, Unterputzsensor für die Balkontüre haben wir gerade behandelt und ich könnte auch noch mit dem DuoFern Fensterkontakt dienen. Müsste ich noch kaufen, aber das wäre OK. Ein Rauchmelder steht auch noch aus … :-)

                      Mit anderen Worten - Wenn Du Daten brauchst stehe ich gerne zur Verfügung !

                      Ich freue mich auf Deine Umsetzung, auch wenn Du dafür noch Zeit brauchst ! Danke vorab !

                      @Paul53

                      Ich hab da noch ein Projekt :-) Habe mit dem Versuch eine Json von Controme einzulesen den Adapter mal wieder abschmieren lassen :-) Leider ließ sich das was ich beim Homepilot anwenden konnte nicht 1:1 auf die json von controme anwenden :-) Wenn Du Interesse hast ... :mrgreen: mal kurz Bescheid geben und ich mache ein neues Topic auf :mrgreen: . Dann könnte ich den Parser elemenieren :-)

                      Viele Grüße,

                      Marc

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

                        @meicker:

                        Json von Controme … mal kurz Bescheid geben und ich mache ein neues Topic auf `
                        Dann zeige mal den JSON-String in einem neuen Topic.

                        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
                        • M Offline
                          M Offline
                          meicker
                          schrieb am zuletzt editiert von
                          #38

                          @paul53
                          Hallo Paul,
                          lange war es ruhig :-) Ich habe ein klitzekleines Problem und ich versuche jetzt schon seit 3 Stunden das zu lösen, aber ich schaffe es nicht. Ich würde mich sehr freuen wenn Du mir kurz aufs Pferd helfen könntest am beispiel von temperatur unter [37]:

                          974d3b78-32f3-434c-b4d5-e363341c964a-grafik.png

                          5292ddd1-aafa-4762-82f1-60085a6693df-grafik.png

                          Beim Homepilot hat sich alles durch ein Firmwareupdate geändert und ich möchte die daten nun wieder auslesen können. Dafür muss ich das Script anpassen was wir zusammen gemacht haben. Ich schaffe es aber nicht das selber anzupassen ...

                          ich habe LINK schon geändert, da kommt nun der Inhalt vom Homepilot:
                          216f921f-9201-41d8-83d8-a4ce3d6d8e91-grafik.png

                          In Zeile 26 wollte ich bis hin zu capabilities kommen um dann in Zeile 42 die Temperatur auszulesen ... Aber irgendwie mache ich da was falsch :-(

                          4cb78f27-5f34-4827-9574-d7df9eb7171e-grafik.png

                          const request = require('request');
                          const link = 'http://192.168.1.180/devices/1010005';
                          const linkfsupunten = 'http://192.168.1.180/deviceajax.do?meter=1010009';
                          const linkfsupoben = 'http://192.168.1.180/deviceajax.do?meter=1010008';
                          //const linkcontrome1 = 'http://192.168.1.12/get/json/v1/1/temps/6/';
                          
                          // Datenpunkte erzeugen
                          
                          createState('Homepilot.Sonnenrichtung', 0, {type: 'number', unit: '°'});
                          createState('Homepilot.Sonnenhöhe', 0, {type: 'number', unit: '°'});
                          createState('Homepilot.Lichtwert', 0, {type: 'number', unit: 'lux'});
                          createState('Homepilot.Windgeschwindigkeit', 0, {type: 'number', unit: 'm/s'});
                          createState('Homepilot.Temperatur', 0, {type: 'number', unit: '°C'});
                          createState('Homepilot.Regen', 0, {type: 'boolean', unit: ''});
                          createState('Homepilot.Aktualisiert', 0, {type: 'string', unit: ''});
                          createState('Homepilot.balkontüreoben', 0, {type: 'boolean', unit: ''});
                          createState('Homepilot.balkontüreobenaktualisiert', 0, {type: 'string', unit: ''});
                          createState('Homepilot.balkontüreunten', 0, {type: 'boolean', unit: ''});
                          createState('Homepilot.balkontüreuntenaktualisiert', 0, {type: 'string', unit: ''});
                          //createState('Controme.id', 0, {type: 'number', unit: ''});
                          
                          function sensordaten() {
                              request(link, function(error,response, body) {
                                  if(error) log('Fehler request: ' + error, 'error');
                                  else {
                                      var data = JSON.parse(body).payload.device.capabilities;
                                      
                                      var dir = data[5].Sonnenrichtung;
                                      //log(dir);
                                      dir = parseFloat(dir.substr(dir.indexOf('(') + 1));
                                      setState('Homepilot.Sonnenrichtung', dir, true); 
                                      
                                      var ele = parseFloat(data[4].Sonnenhöhe);
                                      setState('Homepilot.Sonnenhöhe', ele, true); 
                                      
                                      var lux = parseFloat(data[0].Lichtwert);
                                      setState('Homepilot.Lichtwert', lux, true);
                                      
                                      var wind = parseFloat(data[1]['Windgeschw.']);
                                      setState('Homepilot.Windgeschwindigkeit', wind, true);
                                      
                                      var temp = parseFloat(capabilities[37].value);
                                      setState('Homepilot.Temperatur', temp, true);
                                      
                                      var regen = data[3].Regen; // Das ist ein String !
                                          if(regen == 'Nicht erkannt') setState('Homepilot.Regen', false, true);
                                          else setState('Homepilot.Regen', true, true);
                                      
                                      var aktualisiert = data[6].Aktualisiert; // Das ist ein String !
                                      setState('Homepilot.Aktualisiert', aktualisiert, true);
                                  }    
                              });
                          }
                          
                          function balkontuere() {
                              request(linkfsupunten, function(error,response, body) {
                                  if(error) log('Fehler request: ' + error, 'error');
                                  else {
                                      var data = JSON.parse(body).data;
                                      var schliesserunten = data[0].Schließer; // Das ist ein String !
                                          if(schliesserunten == 'Geöffnet') setState('Homepilot.balkontüreunten', false, true);
                                          else setState('Homepilot.balkontüreunten', true, true);
                                      var aktualisiert = data[1].Aktualisiert; // Das ist ein String ! 
                                      setState('Homepilot.balkontüreuntenaktualisiert', aktualisiert, true);
                                  }    
                              });
                              request(linkfsupoben, function(error,response, body) {
                                  if(error) log('Fehler request: ' + error, 'error');
                                  else {
                                      var data = JSON.parse(body).data;
                                      var schliesseroben = data[0].Schließer; // Das ist ein String !
                                          if(schliesseroben == 'Geöffnet') setState('Homepilot.balkontüreoben', false, true);
                                          else setState('Homepilot.balkontüreoben', true, true);
                                      var aktualisiert = data[1].Aktualisiert; // Das ist ein String ! 
                                      setState('Homepilot.balkontüreobenaktualisiert', aktualisiert, true);
                                  }    
                              });
                          
                          }
                          /*function controme() {
                              request(linkcontrome1, function(error,response, body) {
                                  if(error) log('Fehler request: ' + error, 'error');
                                  else {
                                      var data = JSON.parse(body).sensoren;
                                      var id = parseFloat(data[0].id);
                                      setState('Controme.id', id, true);
                                  }    
                              });
                          } */   
                              
                          function alledaten() {
                             sensordaten();
                             balkontuere();
                             //controme();
                          }
                          schedule('*/30 * * * * *', alledaten); // alle 30 Sekunden
                          

                          hhh

                          Ich würde mich sehr freuen wenn Du mir da eventuell weiter helfen könntest ... :-)

                          Viele Grüße,
                          Marc

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            slkschlumpf
                            schrieb am zuletzt editiert von
                            #39

                            Hallo zusammen, ich habe zwar einen homeassistant. Hoffe aber mir hilft hier jemand.

                            Nach dem Firmwareupdate des Homepilots gestern gehen meine Aktoren nicht mehr über den home assistant zu steuern.

                            ich benutze das Kommando :

                            switch:

                            • platform: command_line
                              switches:
                              beregnungvorgarten:
                              command_on: curl "http://192.168.2.2/deviceajax.do?cid=10&did=1010022&command=1"
                              command_off: curl "http://192.168.2.2/deviceajax.do?cid=11&did=1010022&command=1"

                            was wurde da an der API vom Homepilot geändert ?

                            Würde mich über Hilfe freuen.

                            Danke

                            M 1 Antwort Letzte Antwort
                            0
                            • S slkschlumpf

                              Hallo zusammen, ich habe zwar einen homeassistant. Hoffe aber mir hilft hier jemand.

                              Nach dem Firmwareupdate des Homepilots gestern gehen meine Aktoren nicht mehr über den home assistant zu steuern.

                              ich benutze das Kommando :

                              switch:

                              • platform: command_line
                                switches:
                                beregnungvorgarten:
                                command_on: curl "http://192.168.2.2/deviceajax.do?cid=10&did=1010022&command=1"
                                command_off: curl "http://192.168.2.2/deviceajax.do?cid=11&did=1010022&command=1"

                              was wurde da an der API vom Homepilot geändert ?

                              Würde mich über Hilfe freuen.

                              Danke

                              M Offline
                              M Offline
                              meicker
                              schrieb am zuletzt editiert von
                              #40

                              @slkschlumpf
                              schau mal bei Facebook in der Gruppe - https://www.facebook.com/groups/homepilot/ - Da wird auch schon diskutiert ... Vielleicht hilft das ja schon. Ich brauche auch noch Hilfe, aber das muss ja auch erstmal hier ankommen und die richtigen Personen betreffen ... Aber das wird bestimmt bald alles gelöst werden :-)

                              1 Antwort Letzte Antwort
                              0
                              • M meicker

                                @paul53
                                Hallo Paul,
                                lange war es ruhig :-) Ich habe ein klitzekleines Problem und ich versuche jetzt schon seit 3 Stunden das zu lösen, aber ich schaffe es nicht. Ich würde mich sehr freuen wenn Du mir kurz aufs Pferd helfen könntest am beispiel von temperatur unter [37]:

                                974d3b78-32f3-434c-b4d5-e363341c964a-grafik.png

                                5292ddd1-aafa-4762-82f1-60085a6693df-grafik.png

                                Beim Homepilot hat sich alles durch ein Firmwareupdate geändert und ich möchte die daten nun wieder auslesen können. Dafür muss ich das Script anpassen was wir zusammen gemacht haben. Ich schaffe es aber nicht das selber anzupassen ...

                                ich habe LINK schon geändert, da kommt nun der Inhalt vom Homepilot:
                                216f921f-9201-41d8-83d8-a4ce3d6d8e91-grafik.png

                                In Zeile 26 wollte ich bis hin zu capabilities kommen um dann in Zeile 42 die Temperatur auszulesen ... Aber irgendwie mache ich da was falsch :-(

                                4cb78f27-5f34-4827-9574-d7df9eb7171e-grafik.png

                                const request = require('request');
                                const link = 'http://192.168.1.180/devices/1010005';
                                const linkfsupunten = 'http://192.168.1.180/deviceajax.do?meter=1010009';
                                const linkfsupoben = 'http://192.168.1.180/deviceajax.do?meter=1010008';
                                //const linkcontrome1 = 'http://192.168.1.12/get/json/v1/1/temps/6/';
                                
                                // Datenpunkte erzeugen
                                
                                createState('Homepilot.Sonnenrichtung', 0, {type: 'number', unit: '°'});
                                createState('Homepilot.Sonnenhöhe', 0, {type: 'number', unit: '°'});
                                createState('Homepilot.Lichtwert', 0, {type: 'number', unit: 'lux'});
                                createState('Homepilot.Windgeschwindigkeit', 0, {type: 'number', unit: 'm/s'});
                                createState('Homepilot.Temperatur', 0, {type: 'number', unit: '°C'});
                                createState('Homepilot.Regen', 0, {type: 'boolean', unit: ''});
                                createState('Homepilot.Aktualisiert', 0, {type: 'string', unit: ''});
                                createState('Homepilot.balkontüreoben', 0, {type: 'boolean', unit: ''});
                                createState('Homepilot.balkontüreobenaktualisiert', 0, {type: 'string', unit: ''});
                                createState('Homepilot.balkontüreunten', 0, {type: 'boolean', unit: ''});
                                createState('Homepilot.balkontüreuntenaktualisiert', 0, {type: 'string', unit: ''});
                                //createState('Controme.id', 0, {type: 'number', unit: ''});
                                
                                function sensordaten() {
                                    request(link, function(error,response, body) {
                                        if(error) log('Fehler request: ' + error, 'error');
                                        else {
                                            var data = JSON.parse(body).payload.device.capabilities;
                                            
                                            var dir = data[5].Sonnenrichtung;
                                            //log(dir);
                                            dir = parseFloat(dir.substr(dir.indexOf('(') + 1));
                                            setState('Homepilot.Sonnenrichtung', dir, true); 
                                            
                                            var ele = parseFloat(data[4].Sonnenhöhe);
                                            setState('Homepilot.Sonnenhöhe', ele, true); 
                                            
                                            var lux = parseFloat(data[0].Lichtwert);
                                            setState('Homepilot.Lichtwert', lux, true);
                                            
                                            var wind = parseFloat(data[1]['Windgeschw.']);
                                            setState('Homepilot.Windgeschwindigkeit', wind, true);
                                            
                                            var temp = parseFloat(capabilities[37].value);
                                            setState('Homepilot.Temperatur', temp, true);
                                            
                                            var regen = data[3].Regen; // Das ist ein String !
                                                if(regen == 'Nicht erkannt') setState('Homepilot.Regen', false, true);
                                                else setState('Homepilot.Regen', true, true);
                                            
                                            var aktualisiert = data[6].Aktualisiert; // Das ist ein String !
                                            setState('Homepilot.Aktualisiert', aktualisiert, true);
                                        }    
                                    });
                                }
                                
                                function balkontuere() {
                                    request(linkfsupunten, function(error,response, body) {
                                        if(error) log('Fehler request: ' + error, 'error');
                                        else {
                                            var data = JSON.parse(body).data;
                                            var schliesserunten = data[0].Schließer; // Das ist ein String !
                                                if(schliesserunten == 'Geöffnet') setState('Homepilot.balkontüreunten', false, true);
                                                else setState('Homepilot.balkontüreunten', true, true);
                                            var aktualisiert = data[1].Aktualisiert; // Das ist ein String ! 
                                            setState('Homepilot.balkontüreuntenaktualisiert', aktualisiert, true);
                                        }    
                                    });
                                    request(linkfsupoben, function(error,response, body) {
                                        if(error) log('Fehler request: ' + error, 'error');
                                        else {
                                            var data = JSON.parse(body).data;
                                            var schliesseroben = data[0].Schließer; // Das ist ein String !
                                                if(schliesseroben == 'Geöffnet') setState('Homepilot.balkontüreoben', false, true);
                                                else setState('Homepilot.balkontüreoben', true, true);
                                            var aktualisiert = data[1].Aktualisiert; // Das ist ein String ! 
                                            setState('Homepilot.balkontüreobenaktualisiert', aktualisiert, true);
                                        }    
                                    });
                                
                                }
                                /*function controme() {
                                    request(linkcontrome1, function(error,response, body) {
                                        if(error) log('Fehler request: ' + error, 'error');
                                        else {
                                            var data = JSON.parse(body).sensoren;
                                            var id = parseFloat(data[0].id);
                                            setState('Controme.id', id, true);
                                        }    
                                    });
                                } */   
                                    
                                function alledaten() {
                                   sensordaten();
                                   balkontuere();
                                   //controme();
                                }
                                schedule('*/30 * * * * *', alledaten); // alle 30 Sekunden
                                

                                hhh

                                Ich würde mich sehr freuen wenn Du mir da eventuell weiter helfen könntest ... :-)

                                Viele Grüße,
                                Marc

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von paul53
                                #41

                                @meicker sagte:

                                Ich würde mich sehr freuen wenn Du mir da eventuell weiter helfen könntest ..

                                Ohne zu wissen, was sich geändert hat, kann ich nicht helfen.
                                Ändere mal Zeile 42 in

                                var temp = parseFloat(data[37].value);
                                

                                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
                                • M Offline
                                  M Offline
                                  meicker
                                  schrieb am zuletzt editiert von
                                  #42

                                  @paul53
                                  Hi Paul,
                                  danke schon mal für die Rückmeldung. Habe ich geändert, ist aber glaube ich nicht richtig. Das heißt ja nicht mehr Data, das war bei dem alten JSON noch richtig.
                                  Schau mal in meinem ersten Post, da habe ich die neue JSON abgebildet und hier im Spoiler eingefügt.


                                  {"error_description":"OK","error_code":0,"payload":{"device":{"capabilities":[{"name":"TEMPERATURE_THRESH4_ENV_NAMES_CFG","value":"Temperatur 10° Winter","timestamp":-1},{"name":"WIND_THRESH1_VALUE_CFG","value":"6","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH5_ENV_NAMES_CFG","value":"-","timestamp":-1},{"name":"PROD_CODE_DEVICE_LOC","value":"32000064_S","timestamp":-1},{"name":"REACHABILITY_EVT","value":"true","timestamp":1568067423},{"name":"SUN_THRESH3_TEMPERATURE_VALUE_CFG","value":"21","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054418},{"name":"TEMPERATURE_THRESH5_VALUE_CFG","value":"-10","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"DUSK_THRESH3_VALUE_CFG","value":"50","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"NAME_DEVICE_LOC","value":"Sensor UWS","timestamp":-1},{"name":"DAWN_THRESH1_ENV_NAMES_CFG","value":"Licht 20 Lux","timestamp":-1},{"name":"DUSK_THRESH2_ENV_NAMES_CFG","value":"Licht 25 Lux","timestamp":-1},{"name":"DCF_MODE_CFG","value":"true","timestamp":1568067423},{"name":"DAWN_THRESH4_VALUE_CFG","value":"80","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"SUN_THRESH3_TIME_2_RELEASE_CFG","value":"30","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054418},{"name":"INTF_ID_DEVICE_LOC","value":"3","timestamp":-1},{"name":"TEMPERATURE_THRESH1_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"DAWN_ENABLE_THRESH4_CFG","value":"true","timestamp":1568054415},{"name":"TEMPERATURE_THRESH4_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"SUN_DIRECTION_MEA","value":"333.0","min_value":"0.0","max_value":"360.0","timestamp":1568067423},{"name":"SUN_DETECTION_MEA","value":"false","timestamp":1485440904},{"name":"WIND_SPEED_EVT","value":"0.0","min_value":"0.0","max_value":"70.0","step_size":"0.1","timestamp":1568067423},{"name":"SUN_THRESH4_ENABLE_CFG","value":"true","timestamp":1568054418},{"name":"SUN_THRESH4_TEMPERATURE_VALUE_CFG","value":"0","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054418},{"name":"WIND_SPEED_MS_MEA","value":"0.0","min_value":"0.0","max_value":"70.0","timestamp":1568067423},{"name":"WIND_THRESH3_ENV_NAMES_CFG","value":"Markise 11","timestamp":-1},{"name":"SUN_THRESH1_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054417},{"name":"DUSK_EVT","value":"5","min_value":"1","max_value":"5","step_size":"1","timestamp":1568052149},{"name":"SUN_THRESH4_VALUE_CFG","value":"20","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054418},{"name":"SUN_THRESH2_TEMPERATURE_ENABLE_CFG","value":"true","timestamp":1568054417},{"name":"WIND_DETECT_FACTOR_CFG","value":"180","min_value":"1","max_value":"255","step_size":"1","timestamp":1568054425},{"name":"SUN_THRESH1_ENABLE_CFG","value":"true","timestamp":1568054417},{"name":"DAWN_THRESH3_VALUE_CFG","value":"60","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"DAWN_EVT","min_value":"1","max_value":"5","step_size":"1","timestamp":-1},{"name":"TEMPERATURE_START_EVT","value":"5","min_value":"1","max_value":"5","step_size":"1","timestamp":1534954010},{"name":"SUN_THRESH2_TEMPERATURE_VALUE_CFG","value":"21","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054417},{"name":"WIND_THRESH2_VALUE_CFG","value":"25","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"WIND_THRESH5_ENABLE_CFG","value":"false","timestamp":1568054423},{"name":"TEMP_CURR_DEG_MEA","value":"12.1","min_value":"-40.0","max_value":"80.0","timestamp":1568067423},{"name":"TEMPERATURE_THRESH4_VALUE_CFG","value":"10","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH4_USE_AZIMUTH_CFG","value":"true","timestamp":1568054418},{"name":"SENS_STATUS_INTERVAL_CFG","value":"1","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054425},{"name":"SUN_THRESH1_USE_AZIMUTH_CFG","value":"true","timestamp":1568054417},{"name":"TEMPERATURE_THRESH1_ENV_NAMES_CFG","value":"Temperatur 35° FREI","timestamp":-1},{"name":"DEGREE_LATITUDE_CFG","value":"51","min_value":"-90","max_value":"90","step_size":"1","timestamp":1568054425},{"name":"SUN_THRESH5_TARGET_ELEVATION_CFG","value":"13","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054420},{"name":"SUN_THRESH2_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054417},{"name":"DUSK_THRESH2_VALUE_CFG","value":"25","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"SUN_THRESH1_TEMPERATURE_VALUE_CFG","value":"21","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH3_TEMPERATURE_ENABLE_CFG","value":"true","timestamp":1568054418},{"name":"SUN_THRESH4_TIME_2_RELEASE_CFG","value":"20","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054418},{"name":"TEMPERATURE_THRESH3_VALUE_CFG","value":"18","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"TEMPERATURE_INT_CFG","value":"12.1","min_value":"-40.0","max_value":"80.0","step_size":"0.1","timestamp":1568067423},{"name":"DAWN_THRESH2_VALUE_CFG","value":"40","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"VERSION_CFG","value":"0.3","timestamp":1568067125},{"name":"DUSK_ENABLE_THRESH3_CFG","value":"true","timestamp":1568054415},{"name":"DEGREE_LONGITUDE_CFG","value":"7","min_value":"0","max_value":"360","step_size":"1","timestamp":1568054425},{"name":"DATE_TIME_CFG","value":"1568060671","timestamp":1568061932},{"name":"SUN_THRESH3_ENABLE_CFG","value":"true","timestamp":1568054418},{"name":"DAWN_THRESH3_ENV_NAMES_CFG","value":"Licht 60 Lux","timestamp":-1},{"name":"WIND_THRESH1_ENV_NAMES_CFG","value":"Markise 5","timestamp":-1},{"name":"SUN_THRESH2_TIME_2_RELEASE_CFG","value":"20","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054417},{"name":"ICONSET_LOC","value":"iconset25","timestamp":-1},{"name":"DAWN_THRESH4_ENV_NAMES_CFG","value":"Licht 80 Lux","timestamp":-1},{"name":"SUN_START_EVT","min_value":"1","max_value":"5","step_size":"1","timestamp":-1},{"name":"DEVICE_TYPE_LOC","value":"3","timestamp":-1},{"name":"DUSK_ENABLE_THRESH1_CFG","value":"true","timestamp":1568054415},{"name":"DUSK_THRESH4_ENV_NAMES_CFG","value":"Licht 75 Lux","timestamp":-1},{"name":"ICONSET_INV_LOC","value":"false","timestamp":-1},{"name":"SUN_THRESH4_TARGET_ELEVATION_CFG","value":"13","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054418},{"name":"DCF_VALID_EVT","value":"false","timestamp":1568067423},{"name":"DUSK_THRESH1_VALUE_CFG","value":"10","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"RESET_FULL_CMD","timestamp":-1},{"name":"SUN_THRESH1_TIME_2_DETECT_CFG","value":"15","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054417},{"name":"PAIRING_CONFIRMED_LOC","value":"true","timestamp":-1},{"name":"DUSK_ENABLE_THRESH5_CFG","value":"true","timestamp":1568054417},{"name":"SUN_THRESH2_VALUE_CFG","value":"30","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054417},{"name":"REQ_DATE_TIME_CMD","timestamp":-1},{"name":"DAWN_THRESH5_VALUE_CFG","value":"100","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH5_ENABLE_CFG","value":"true","timestamp":1568054420},{"name":"DAWN_ENABLE_THRESH2_CFG","value":"true","timestamp":1568054415},{"name":"DUSK_THRESH4_VALUE_CFG","value":"75","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"DAWN_THRESH5_ENV_NAMES_CFG","value":"Licht 100 Lux","timestamp":-1},{"name":"CURR_BRIGHTN_CFG","value":"0","min_value":"0","max_value":"150000","step_size":"1","timestamp":1568067423},{"name":"WIND_THRESH3_VALUE_CFG","value":"12","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH1_AZIMUTH_RANGE_CFG","value":"90.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054417},{"name":"SUN_THRESH4_USE_ELEVATION_CFG","value":"false","timestamp":1568054418},{"name":"SUN_THRESH5_VALUE_CFG","value":"100","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054420},{"name":"DUSK_THRESH5_ENV_NAMES_CFG","value":"Licht 100 Lux","timestamp":-1},{"name":"RAIN_START_EVT","timestamp":-1},{"name":"SUN_THRESH3_TARGET_ELEVATION_CFG","value":"39","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054418},{"name":"SUN_THRESH1_TEMPERATURE_ENABLE_CFG","value":"true","timestamp":1568054417},{"name":"SUN_STOP_EVT","value":"5","min_value":"1","max_value":"5","step_size":"1","timestamp":1485440904},{"name":"SUN_THRESH5_AZIMUTH_RANGE_CFG","value":"0.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054420},{"name":"TIME_ZONE_CFG","value":"1","min_value":"-11","max_value":"13","step_size":"1","timestamp":1568054425},{"name":"SUN_THRESH1_VALUE_CFG","value":"30","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH1_TIME_2_RELEASE_CFG","value":"30","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH3_TIME_2_DETECT_CFG","value":"10","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054418},{"name":"SUN_THRESH3_USE_ELEVATION_CFG","value":"false","timestamp":1568054418},{"name":"SUN_THRESH5_TIME_2_RELEASE_CFG","value":"20","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054420},{"name":"SUN_THRESH2_USE_ELEVATION_CFG","value":"false","timestamp":1568054417},{"name":"SUN_THRESH3_USE_AZIMUTH_CFG","value":"true","timestamp":1568054418},{"name":"WIND_THRESH4_ENABLE_CFG","value":"false","timestamp":1568054423},{"name":"DAWN_THRESH1_VALUE_CFG","value":"20","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"SUN_THRESH2_TARGET_ELEVATION_CFG","value":"13","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054417},{"name":"DAWN_ENABLE_THRESH5_CFG","value":"true","timestamp":1568054417},{"name":"TEMPERATURE_THRESH2_VALUE_CFG","value":"25","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"WIND_THRESH4_VALUE_CFG","value":"2","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH2_TIME_2_DETECT_CFG","value":"10","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054417},{"name":"DAWN_THRESH2_ENV_NAMES_CFG","value":"Licht 40 Lux","timestamp":-1},{"name":"LIGHT_VAL_LUX_MEA","value":"0","min_value":"0","max_value":"150000","timestamp":1568067423},{"name":"ID_DEVICE_LOC","value":"1010005","timestamp":-1},{"name":"PROTOCOL_ID_CFG","value":"690732","timestamp":-1},{"name":"SUN_THRESH4_ENV_NAMES_CFG","value":"Sonne O - SW / 20Klux Winter","timestamp":-1},{"name":"SUN_HEIGHT_EVT","value":"-29","min_value":"-90","max_value":"90","step_size":"1","timestamp":1568067423},{"name":"SUN_THRESH1_USE_ELEVATION_CFG","value":"false","timestamp":1568054417},{"name":"SUN_THRESH4_TIME_2_DETECT_CFG","value":"5","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054418},{"name":"SUN_THRESH3_AZIMUTH_RANGE_CFG","value":"90.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054418},{"name":"TEMPERATURE_THRESH3_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"SUN_THRESH1_ENV_NAMES_CFG","value":"Sonne O - S / 30 KLux Sommer","timestamp":-1},{"name":"RAIN_STOP_EVT","timestamp":1568016601},{"name":"TEMPERATURE_THRESH5_ENV_NAMES_CFG","value":"Temperatur -10° FREI","timestamp":-1},{"name":"RAIN_DETECTION_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"DUSK_THRESH3_ENV_NAMES_CFG","value":"Licht 50 Lux","timestamp":-1},{"name":"SUN_THRESH4_AZIMUTH_RANGE_CFG","value":"135.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054418},{"name":"WIND_THRESH5_VALUE_CFG","value":"2","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"VIS_DEVICE_LOC","value":"true","timestamp":-1},{"name":"SUN_THRESH1_TARGET_ELEVATION_CFG","value":"13","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054417},{"name":"WIND_THRESH2_ENV_NAMES_CFG","value":"Rolläden","timestamp":-1},{"name":"REQ_SENS_INFO_CMD","timestamp":-1},{"name":"TEMPERATURE_THRESH2_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"TEMPERATURE_THRESH1_VALUE_CFG","value":"35","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH2_ENABLE_CFG","value":"true","timestamp":1568054417},{"name":"DESCR_DEVICE_LOC","value":"Balkon","timestamp":-1},{"name":"RAIN_DETECTION_MEA","value":"false","timestamp":1568067423},{"name":"SUN_THRESH2_USE_AZIMUTH_CFG","value":"true","timestamp":1568054417},{"name":"DUSK_THRESH5_VALUE_CFG","value":"100","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH2_AZIMUTH_RANGE_CFG","value":"135.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054417},{"name":"TEMPERATURE_THRESH5_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"SUN_THRESH5_USE_ELEVATION_CFG","value":"false","timestamp":1568054420},{"name":"DUSK_ENABLE_THRESH2_CFG","value":"true","timestamp":1568054415},{"name":"SUN_THRESH3_VALUE_CFG","value":"30","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054418},{"name":"RESET_WO_PAIR_CMD","timestamp":-1},{"name":"SUN_THRESH3_ENV_NAMES_CFG","value":"Sonne W - NW / 30 KLux Sommer","timestamp":-1},{"name":"PROT_ID_DEVICE_LOC","value":"690732_S_1","timestamp":-1},{"name":"WIND_THRESH3_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"SUN_THRESH3_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054418},{"name":"WIND_DETECT_TIME_CFG","value":"1","min_value":"1","max_value":"255","step_size":"1","timestamp":1568054425},{"name":"DAWN_ENABLE_THRESH1_CFG","value":"true","timestamp":1568054415},{"name":"TEMPERATURE_STOP_EVT","value":"3","min_value":"1","max_value":"5","step_size":"1","timestamp":1568038009},{"name":"SUN_THRESH2_ENV_NAMES_CFG","value":"Sonne S - W / 30 KLux Sommer","timestamp":-1},{"name":"WIND_START_EVT","min_value":"1","max_value":"5","step_size":"1","timestamp":-1},{"name":"SUN_THRESH1_TARGET_AZIMUTH_CFG","value":"135.0","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054417},{"name":"SUN_HEIGHT_DEG_MEA","value":"-29","min_value":"-90","max_value":"90","timestamp":1568067423},{"name":"TEMPERATURE_THRESH2_ENV_NAMES_CFG","value":"Temperatur 25° Sonne","timestamp":-1},{"name":"AUTOMATIC_SOMMERTIME_CFG","value":"false","timestamp":1568061932},{"name":"RMT_STOP_PAIR_CMD","timestamp":-1},{"name":"REQ_SENS_CFG_CMD","timestamp":-1},{"name":"SUN_THRESH5_TIME_2_DETECT_CFG","value":"1","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054420},{"name":"SENS_STATUS_MODE_CFG","value":"true","timestamp":1568054425},{"name":"SUN_THRESH4_TEMPERATURE_ENABLE_CFG","value":"false","timestamp":1568054418},{"name":"WIND_THRESH5_ENV_NAMES_CFG","value":"Mein Reaktionswert 5","timestamp":-1},{"name":"SUN_THRESH5_TARGET_AZIMUTH_CFG","value":"22.5","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054420},{"name":"SUN_THRESH4_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054418},{"name":"TEMPERATURE_THRESH3_ENV_NAMES_CFG","value":"Temperatur 18° Ventilator","timestamp":-1},{"name":"SUN_THRESH5_TEMPERATURE_VALUE_CFG","value":"0","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054420},{"name":"WIND_STOP_EVT","value":"5","min_value":"1","max_value":"5","step_size":"1","timestamp":1568067121},{"name":"RAIN_DETECTED_EVT","value":"false","timestamp":1568067423},{"name":"RMT_START_PAIR_CMD","timestamp":-1},{"name":"SUN_THRESH4_TARGET_AZIMUTH_CFG","value":"157.5","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054418},{"name":"SUN_THRESH3_TARGET_AZIMUTH_CFG","value":"292.5","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054418},{"name":"SUN_THRESH2_TARGET_AZIMUTH_CFG","value":"157.5","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054417},{"name":"DUSK_THRESH1_ENV_NAMES_CFG","value":"Licht 10 Lux","timestamp":-1},{"name":"WIND_THRESH1_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"WIND_THRESH2_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"USE_SECURE_WIND_FCT_CFG","value":"true","timestamp":1568054425},{"name":"SUN_DIRECTION_EVT","value":"333.0","min_value":"0.0","max_value":"360.0","step_size":"1.5","timestamp":1568067423},{"name":"SUN_THRESH5_TEMPERATURE_ENABLE_CFG","value":"false","timestamp":1568054420},{"name":"RMT_START_UNPAIR_CMD","timestamp":-1},{"name":"SUN_THRESH5_USE_AZIMUTH_CFG","value":"false","timestamp":1568054420},{"name":"DUSK_ENABLE_THRESH4_CFG","value":"true","timestamp":1568054415},{"name":"SUN_THRESH5_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054420},{"name":"DAWN_ENABLE_THRESH3_CFG","value":"true","timestamp":1568054415},{"name":"WIND_THRESH4_ENV_NAMES_CFG","value":"Mein Reaktionswert 4","timestamp":-1}],"scenes":[]}}}

                                  Wichtig ist doch jetzt erst einmal der Weg zu den Daten. Wenn ich das richtig sehe ist das Zeile 26 Die habe ich geändert von
                                  var data = JSON.parse(body).data; in
                                  var data = JSON.parse(body).payload.device.capabilities;
                                  um es an die neue JSON anzupassen

                                  In Zeile 42/43 soll dann auf [37] zugegriffen werden und die Daten übertragen werden.

                                  Kannst Du damit jetzt mehr anfangen ? Das Script ist hier im Spoiler noch mal drin


                                  const request = require('request');
                                  const link = 'http://192.168.1.180/devices/1010005';
                                  //const linkfsupunten = 'http://192.168.1.180/deviceajax.do?meter=1010009';
                                  //const linkfsupoben = 'http://192.168.1.180/deviceajax.do?meter=1010008';

                                  // Datenpunkte erzeugen

                                  createState('Homepilot.Sonnenrichtung', 0, {type: 'number', unit: '°'});
                                  createState('Homepilot.Sonnenhöhe', 0, {type: 'number', unit: '°'});
                                  createState('Homepilot.Lichtwert', 0, {type: 'number', unit: 'lux'});
                                  createState('Homepilot.Windgeschwindigkeit', 0, {type: 'number', unit: 'm/s'});
                                  createState('Homepilot.Temperatur', 0, {type: 'number', unit: '°C'});
                                  createState('Homepilot.Regen', 0, {type: 'boolean', unit: ''});
                                  createState('Homepilot.Aktualisiert', 0, {type: 'string', unit: ''});
                                  createState('Homepilot.balkontüreoben', 0, {type: 'boolean', unit: ''});
                                  createState('Homepilot.balkontüreobenaktualisiert', 0, {type: 'string', unit: ''});
                                  createState('Homepilot.balkontüreunten', 0, {type: 'boolean', unit: ''});
                                  createState('Homepilot.balkontüreuntenaktualisiert', 0, {type: 'string', unit: ''});

                                  function sensordaten() {
                                  request(link, function(error,response, body) {
                                  if(error) log('Fehler request: ' + error, 'error');
                                  else {
                                  var data = JSON.parse(body).payload.device.capabilities;

                                          var dir = data[5].Sonnenrichtung;
                                          //log(dir);
                                          dir = parseFloat(dir.substr(dir.indexOf('(') + 1));
                                          setState('Homepilot.Sonnenrichtung', dir, true); 
                                          
                                          var ele = parseFloat(data[4].Sonnenhöhe);
                                          setState('Homepilot.Sonnenhöhe', ele, true); 
                                          
                                          var lux = parseFloat(data[0].Lichtwert);
                                          setState('Homepilot.Lichtwert', lux, true);
                                          
                                          var wind = parseFloat(data[1]['Windgeschw.']);
                                          setState('Homepilot.Windgeschwindigkeit', wind, true);
                                          
                                          var temp = parseFloat(data[37].value);
                                          setState('Homepilot.Temperatur', temp, true);
                                          
                                          var regen = data[3].Regen; // Das ist ein String !
                                              if(regen == 'Nicht erkannt') setState('Homepilot.Regen', false, true);
                                              else setState('Homepilot.Regen', true, true);
                                          
                                          var aktualisiert = data[6].Aktualisiert; // Das ist ein String !
                                          setState('Homepilot.Aktualisiert', aktualisiert, true);
                                      }    
                                  });
                                  

                                  }

                                  function balkontuere() {
                                  request(linkfsupunten, function(error,response, body) {
                                  if(error) log('Fehler request: ' + error, 'error');
                                  else {
                                  var data = JSON.parse(body).data;
                                  var schliesserunten = data[0].Schließer; // Das ist ein String !
                                  if(schliesserunten == 'Geöffnet') setState('Homepilot.balkontüreunten', false, true);
                                  else setState('Homepilot.balkontüreunten', true, true);
                                  var aktualisiert = data[1].Aktualisiert; // Das ist ein String !
                                  setState('Homepilot.balkontüreuntenaktualisiert', aktualisiert, true);
                                  }
                                  });
                                  request(linkfsupoben, function(error,response, body) {
                                  if(error) log('Fehler request: ' + error, 'error');
                                  else {
                                  var data = JSON.parse(body).data;
                                  var schliesseroben = data[0].Schließer; // Das ist ein String !
                                  if(schliesseroben == 'Geöffnet') setState('Homepilot.balkontüreoben', false, true);
                                  else setState('Homepilot.balkontüreoben', true, true);
                                  var aktualisiert = data[1].Aktualisiert; // Das ist ein String !
                                  setState('Homepilot.balkontüreobenaktualisiert', aktualisiert, true);
                                  }
                                  });

                                  }
                                  /*function controme() {
                                  request(linkcontrome1, function(error,response, body) {
                                  if(error) log('Fehler request: ' + error, 'error');
                                  else {
                                  var data = JSON.parse(body).sensoren;
                                  var id = parseFloat(data[0].id);
                                  setState('Controme.id', id, true);
                                  }
                                  });
                                  } */

                                  function alledaten() {
                                  sensordaten();
                                  balkontuere();
                                  //controme();
                                  }
                                  schedule('*/30 * * * * *', alledaten); // alle 30 Sekunden

                                  Vielen dank nochmal und viele Grüße,
                                  Marc

                                  paul53P 1 Antwort Letzte Antwort
                                  0
                                  • M meicker

                                    @paul53
                                    Hi Paul,
                                    danke schon mal für die Rückmeldung. Habe ich geändert, ist aber glaube ich nicht richtig. Das heißt ja nicht mehr Data, das war bei dem alten JSON noch richtig.
                                    Schau mal in meinem ersten Post, da habe ich die neue JSON abgebildet und hier im Spoiler eingefügt.


                                    {"error_description":"OK","error_code":0,"payload":{"device":{"capabilities":[{"name":"TEMPERATURE_THRESH4_ENV_NAMES_CFG","value":"Temperatur 10° Winter","timestamp":-1},{"name":"WIND_THRESH1_VALUE_CFG","value":"6","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH5_ENV_NAMES_CFG","value":"-","timestamp":-1},{"name":"PROD_CODE_DEVICE_LOC","value":"32000064_S","timestamp":-1},{"name":"REACHABILITY_EVT","value":"true","timestamp":1568067423},{"name":"SUN_THRESH3_TEMPERATURE_VALUE_CFG","value":"21","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054418},{"name":"TEMPERATURE_THRESH5_VALUE_CFG","value":"-10","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"DUSK_THRESH3_VALUE_CFG","value":"50","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"NAME_DEVICE_LOC","value":"Sensor UWS","timestamp":-1},{"name":"DAWN_THRESH1_ENV_NAMES_CFG","value":"Licht 20 Lux","timestamp":-1},{"name":"DUSK_THRESH2_ENV_NAMES_CFG","value":"Licht 25 Lux","timestamp":-1},{"name":"DCF_MODE_CFG","value":"true","timestamp":1568067423},{"name":"DAWN_THRESH4_VALUE_CFG","value":"80","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"SUN_THRESH3_TIME_2_RELEASE_CFG","value":"30","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054418},{"name":"INTF_ID_DEVICE_LOC","value":"3","timestamp":-1},{"name":"TEMPERATURE_THRESH1_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"DAWN_ENABLE_THRESH4_CFG","value":"true","timestamp":1568054415},{"name":"TEMPERATURE_THRESH4_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"SUN_DIRECTION_MEA","value":"333.0","min_value":"0.0","max_value":"360.0","timestamp":1568067423},{"name":"SUN_DETECTION_MEA","value":"false","timestamp":1485440904},{"name":"WIND_SPEED_EVT","value":"0.0","min_value":"0.0","max_value":"70.0","step_size":"0.1","timestamp":1568067423},{"name":"SUN_THRESH4_ENABLE_CFG","value":"true","timestamp":1568054418},{"name":"SUN_THRESH4_TEMPERATURE_VALUE_CFG","value":"0","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054418},{"name":"WIND_SPEED_MS_MEA","value":"0.0","min_value":"0.0","max_value":"70.0","timestamp":1568067423},{"name":"WIND_THRESH3_ENV_NAMES_CFG","value":"Markise 11","timestamp":-1},{"name":"SUN_THRESH1_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054417},{"name":"DUSK_EVT","value":"5","min_value":"1","max_value":"5","step_size":"1","timestamp":1568052149},{"name":"SUN_THRESH4_VALUE_CFG","value":"20","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054418},{"name":"SUN_THRESH2_TEMPERATURE_ENABLE_CFG","value":"true","timestamp":1568054417},{"name":"WIND_DETECT_FACTOR_CFG","value":"180","min_value":"1","max_value":"255","step_size":"1","timestamp":1568054425},{"name":"SUN_THRESH1_ENABLE_CFG","value":"true","timestamp":1568054417},{"name":"DAWN_THRESH3_VALUE_CFG","value":"60","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"DAWN_EVT","min_value":"1","max_value":"5","step_size":"1","timestamp":-1},{"name":"TEMPERATURE_START_EVT","value":"5","min_value":"1","max_value":"5","step_size":"1","timestamp":1534954010},{"name":"SUN_THRESH2_TEMPERATURE_VALUE_CFG","value":"21","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054417},{"name":"WIND_THRESH2_VALUE_CFG","value":"25","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"WIND_THRESH5_ENABLE_CFG","value":"false","timestamp":1568054423},{"name":"TEMP_CURR_DEG_MEA","value":"12.1","min_value":"-40.0","max_value":"80.0","timestamp":1568067423},{"name":"TEMPERATURE_THRESH4_VALUE_CFG","value":"10","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH4_USE_AZIMUTH_CFG","value":"true","timestamp":1568054418},{"name":"SENS_STATUS_INTERVAL_CFG","value":"1","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054425},{"name":"SUN_THRESH1_USE_AZIMUTH_CFG","value":"true","timestamp":1568054417},{"name":"TEMPERATURE_THRESH1_ENV_NAMES_CFG","value":"Temperatur 35° FREI","timestamp":-1},{"name":"DEGREE_LATITUDE_CFG","value":"51","min_value":"-90","max_value":"90","step_size":"1","timestamp":1568054425},{"name":"SUN_THRESH5_TARGET_ELEVATION_CFG","value":"13","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054420},{"name":"SUN_THRESH2_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054417},{"name":"DUSK_THRESH2_VALUE_CFG","value":"25","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"SUN_THRESH1_TEMPERATURE_VALUE_CFG","value":"21","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH3_TEMPERATURE_ENABLE_CFG","value":"true","timestamp":1568054418},{"name":"SUN_THRESH4_TIME_2_RELEASE_CFG","value":"20","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054418},{"name":"TEMPERATURE_THRESH3_VALUE_CFG","value":"18","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"TEMPERATURE_INT_CFG","value":"12.1","min_value":"-40.0","max_value":"80.0","step_size":"0.1","timestamp":1568067423},{"name":"DAWN_THRESH2_VALUE_CFG","value":"40","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"VERSION_CFG","value":"0.3","timestamp":1568067125},{"name":"DUSK_ENABLE_THRESH3_CFG","value":"true","timestamp":1568054415},{"name":"DEGREE_LONGITUDE_CFG","value":"7","min_value":"0","max_value":"360","step_size":"1","timestamp":1568054425},{"name":"DATE_TIME_CFG","value":"1568060671","timestamp":1568061932},{"name":"SUN_THRESH3_ENABLE_CFG","value":"true","timestamp":1568054418},{"name":"DAWN_THRESH3_ENV_NAMES_CFG","value":"Licht 60 Lux","timestamp":-1},{"name":"WIND_THRESH1_ENV_NAMES_CFG","value":"Markise 5","timestamp":-1},{"name":"SUN_THRESH2_TIME_2_RELEASE_CFG","value":"20","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054417},{"name":"ICONSET_LOC","value":"iconset25","timestamp":-1},{"name":"DAWN_THRESH4_ENV_NAMES_CFG","value":"Licht 80 Lux","timestamp":-1},{"name":"SUN_START_EVT","min_value":"1","max_value":"5","step_size":"1","timestamp":-1},{"name":"DEVICE_TYPE_LOC","value":"3","timestamp":-1},{"name":"DUSK_ENABLE_THRESH1_CFG","value":"true","timestamp":1568054415},{"name":"DUSK_THRESH4_ENV_NAMES_CFG","value":"Licht 75 Lux","timestamp":-1},{"name":"ICONSET_INV_LOC","value":"false","timestamp":-1},{"name":"SUN_THRESH4_TARGET_ELEVATION_CFG","value":"13","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054418},{"name":"DCF_VALID_EVT","value":"false","timestamp":1568067423},{"name":"DUSK_THRESH1_VALUE_CFG","value":"10","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"RESET_FULL_CMD","timestamp":-1},{"name":"SUN_THRESH1_TIME_2_DETECT_CFG","value":"15","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054417},{"name":"PAIRING_CONFIRMED_LOC","value":"true","timestamp":-1},{"name":"DUSK_ENABLE_THRESH5_CFG","value":"true","timestamp":1568054417},{"name":"SUN_THRESH2_VALUE_CFG","value":"30","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054417},{"name":"REQ_DATE_TIME_CMD","timestamp":-1},{"name":"DAWN_THRESH5_VALUE_CFG","value":"100","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH5_ENABLE_CFG","value":"true","timestamp":1568054420},{"name":"DAWN_ENABLE_THRESH2_CFG","value":"true","timestamp":1568054415},{"name":"DUSK_THRESH4_VALUE_CFG","value":"75","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"DAWN_THRESH5_ENV_NAMES_CFG","value":"Licht 100 Lux","timestamp":-1},{"name":"CURR_BRIGHTN_CFG","value":"0","min_value":"0","max_value":"150000","step_size":"1","timestamp":1568067423},{"name":"WIND_THRESH3_VALUE_CFG","value":"12","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH1_AZIMUTH_RANGE_CFG","value":"90.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054417},{"name":"SUN_THRESH4_USE_ELEVATION_CFG","value":"false","timestamp":1568054418},{"name":"SUN_THRESH5_VALUE_CFG","value":"100","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054420},{"name":"DUSK_THRESH5_ENV_NAMES_CFG","value":"Licht 100 Lux","timestamp":-1},{"name":"RAIN_START_EVT","timestamp":-1},{"name":"SUN_THRESH3_TARGET_ELEVATION_CFG","value":"39","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054418},{"name":"SUN_THRESH1_TEMPERATURE_ENABLE_CFG","value":"true","timestamp":1568054417},{"name":"SUN_STOP_EVT","value":"5","min_value":"1","max_value":"5","step_size":"1","timestamp":1485440904},{"name":"SUN_THRESH5_AZIMUTH_RANGE_CFG","value":"0.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054420},{"name":"TIME_ZONE_CFG","value":"1","min_value":"-11","max_value":"13","step_size":"1","timestamp":1568054425},{"name":"SUN_THRESH1_VALUE_CFG","value":"30","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH1_TIME_2_RELEASE_CFG","value":"30","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH3_TIME_2_DETECT_CFG","value":"10","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054418},{"name":"SUN_THRESH3_USE_ELEVATION_CFG","value":"false","timestamp":1568054418},{"name":"SUN_THRESH5_TIME_2_RELEASE_CFG","value":"20","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054420},{"name":"SUN_THRESH2_USE_ELEVATION_CFG","value":"false","timestamp":1568054417},{"name":"SUN_THRESH3_USE_AZIMUTH_CFG","value":"true","timestamp":1568054418},{"name":"WIND_THRESH4_ENABLE_CFG","value":"false","timestamp":1568054423},{"name":"DAWN_THRESH1_VALUE_CFG","value":"20","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054415},{"name":"SUN_THRESH2_TARGET_ELEVATION_CFG","value":"13","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054417},{"name":"DAWN_ENABLE_THRESH5_CFG","value":"true","timestamp":1568054417},{"name":"TEMPERATURE_THRESH2_VALUE_CFG","value":"25","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"WIND_THRESH4_VALUE_CFG","value":"2","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH2_TIME_2_DETECT_CFG","value":"10","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054417},{"name":"DAWN_THRESH2_ENV_NAMES_CFG","value":"Licht 40 Lux","timestamp":-1},{"name":"LIGHT_VAL_LUX_MEA","value":"0","min_value":"0","max_value":"150000","timestamp":1568067423},{"name":"ID_DEVICE_LOC","value":"1010005","timestamp":-1},{"name":"PROTOCOL_ID_CFG","value":"690732","timestamp":-1},{"name":"SUN_THRESH4_ENV_NAMES_CFG","value":"Sonne O - SW / 20Klux Winter","timestamp":-1},{"name":"SUN_HEIGHT_EVT","value":"-29","min_value":"-90","max_value":"90","step_size":"1","timestamp":1568067423},{"name":"SUN_THRESH1_USE_ELEVATION_CFG","value":"false","timestamp":1568054417},{"name":"SUN_THRESH4_TIME_2_DETECT_CFG","value":"5","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054418},{"name":"SUN_THRESH3_AZIMUTH_RANGE_CFG","value":"90.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054418},{"name":"TEMPERATURE_THRESH3_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"SUN_THRESH1_ENV_NAMES_CFG","value":"Sonne O - S / 30 KLux Sommer","timestamp":-1},{"name":"RAIN_STOP_EVT","timestamp":1568016601},{"name":"TEMPERATURE_THRESH5_ENV_NAMES_CFG","value":"Temperatur -10° FREI","timestamp":-1},{"name":"RAIN_DETECTION_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"DUSK_THRESH3_ENV_NAMES_CFG","value":"Licht 50 Lux","timestamp":-1},{"name":"SUN_THRESH4_AZIMUTH_RANGE_CFG","value":"135.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054418},{"name":"WIND_THRESH5_VALUE_CFG","value":"2","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054423},{"name":"VIS_DEVICE_LOC","value":"true","timestamp":-1},{"name":"SUN_THRESH1_TARGET_ELEVATION_CFG","value":"13","min_value":"13","max_value":"78","step_size":"13","timestamp":1568054417},{"name":"WIND_THRESH2_ENV_NAMES_CFG","value":"Rolläden","timestamp":-1},{"name":"REQ_SENS_INFO_CMD","timestamp":-1},{"name":"TEMPERATURE_THRESH2_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"TEMPERATURE_THRESH1_VALUE_CFG","value":"35","min_value":"-40","max_value":"80","step_size":"1","timestamp":1568054423},{"name":"SUN_THRESH2_ENABLE_CFG","value":"true","timestamp":1568054417},{"name":"DESCR_DEVICE_LOC","value":"Balkon","timestamp":-1},{"name":"RAIN_DETECTION_MEA","value":"false","timestamp":1568067423},{"name":"SUN_THRESH2_USE_AZIMUTH_CFG","value":"true","timestamp":1568054417},{"name":"DUSK_THRESH5_VALUE_CFG","value":"100","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054417},{"name":"SUN_THRESH2_AZIMUTH_RANGE_CFG","value":"135.0","min_value":"0.0","max_value":"180.0","step_size":"45.0","timestamp":1568054417},{"name":"TEMPERATURE_THRESH5_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"SUN_THRESH5_USE_ELEVATION_CFG","value":"false","timestamp":1568054420},{"name":"DUSK_ENABLE_THRESH2_CFG","value":"true","timestamp":1568054415},{"name":"SUN_THRESH3_VALUE_CFG","value":"30","min_value":"1","max_value":"100","step_size":"1","timestamp":1568054418},{"name":"RESET_WO_PAIR_CMD","timestamp":-1},{"name":"SUN_THRESH3_ENV_NAMES_CFG","value":"Sonne W - NW / 30 KLux Sommer","timestamp":-1},{"name":"PROT_ID_DEVICE_LOC","value":"690732_S_1","timestamp":-1},{"name":"WIND_THRESH3_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"SUN_THRESH3_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054418},{"name":"WIND_DETECT_TIME_CFG","value":"1","min_value":"1","max_value":"255","step_size":"1","timestamp":1568054425},{"name":"DAWN_ENABLE_THRESH1_CFG","value":"true","timestamp":1568054415},{"name":"TEMPERATURE_STOP_EVT","value":"3","min_value":"1","max_value":"5","step_size":"1","timestamp":1568038009},{"name":"SUN_THRESH2_ENV_NAMES_CFG","value":"Sonne S - W / 30 KLux Sommer","timestamp":-1},{"name":"WIND_START_EVT","min_value":"1","max_value":"5","step_size":"1","timestamp":-1},{"name":"SUN_THRESH1_TARGET_AZIMUTH_CFG","value":"135.0","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054417},{"name":"SUN_HEIGHT_DEG_MEA","value":"-29","min_value":"-90","max_value":"90","timestamp":1568067423},{"name":"TEMPERATURE_THRESH2_ENV_NAMES_CFG","value":"Temperatur 25° Sonne","timestamp":-1},{"name":"AUTOMATIC_SOMMERTIME_CFG","value":"false","timestamp":1568061932},{"name":"RMT_STOP_PAIR_CMD","timestamp":-1},{"name":"REQ_SENS_CFG_CMD","timestamp":-1},{"name":"SUN_THRESH5_TIME_2_DETECT_CFG","value":"1","min_value":"1","max_value":"32","step_size":"1","timestamp":1568054420},{"name":"SENS_STATUS_MODE_CFG","value":"true","timestamp":1568054425},{"name":"SUN_THRESH4_TEMPERATURE_ENABLE_CFG","value":"false","timestamp":1568054418},{"name":"WIND_THRESH5_ENV_NAMES_CFG","value":"Mein Reaktionswert 5","timestamp":-1},{"name":"SUN_THRESH5_TARGET_AZIMUTH_CFG","value":"22.5","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054420},{"name":"SUN_THRESH4_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054418},{"name":"TEMPERATURE_THRESH3_ENV_NAMES_CFG","value":"Temperatur 18° Ventilator","timestamp":-1},{"name":"SUN_THRESH5_TEMPERATURE_VALUE_CFG","value":"0","min_value":"-5","max_value":"26","step_size":"1","timestamp":1568054420},{"name":"WIND_STOP_EVT","value":"5","min_value":"1","max_value":"5","step_size":"1","timestamp":1568067121},{"name":"RAIN_DETECTED_EVT","value":"false","timestamp":1568067423},{"name":"RMT_START_PAIR_CMD","timestamp":-1},{"name":"SUN_THRESH4_TARGET_AZIMUTH_CFG","value":"157.5","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054418},{"name":"SUN_THRESH3_TARGET_AZIMUTH_CFG","value":"292.5","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054418},{"name":"SUN_THRESH2_TARGET_AZIMUTH_CFG","value":"157.5","min_value":"22.5","max_value":"315.0","step_size":"22.5","timestamp":1568054417},{"name":"DUSK_THRESH1_ENV_NAMES_CFG","value":"Licht 10 Lux","timestamp":-1},{"name":"WIND_THRESH1_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"WIND_THRESH2_ENABLE_CFG","value":"true","timestamp":1568054423},{"name":"USE_SECURE_WIND_FCT_CFG","value":"true","timestamp":1568054425},{"name":"SUN_DIRECTION_EVT","value":"333.0","min_value":"0.0","max_value":"360.0","step_size":"1.5","timestamp":1568067423},{"name":"SUN_THRESH5_TEMPERATURE_ENABLE_CFG","value":"false","timestamp":1568054420},{"name":"RMT_START_UNPAIR_CMD","timestamp":-1},{"name":"SUN_THRESH5_USE_AZIMUTH_CFG","value":"false","timestamp":1568054420},{"name":"DUSK_ENABLE_THRESH4_CFG","value":"true","timestamp":1568054415},{"name":"SUN_THRESH5_ELEVATION_RANGE_CFG","value":"0","min_value":"0","max_value":"52","step_size":"26","timestamp":1568054420},{"name":"DAWN_ENABLE_THRESH3_CFG","value":"true","timestamp":1568054415},{"name":"WIND_THRESH4_ENV_NAMES_CFG","value":"Mein Reaktionswert 4","timestamp":-1}],"scenes":[]}}}

                                    Wichtig ist doch jetzt erst einmal der Weg zu den Daten. Wenn ich das richtig sehe ist das Zeile 26 Die habe ich geändert von
                                    var data = JSON.parse(body).data; in
                                    var data = JSON.parse(body).payload.device.capabilities;
                                    um es an die neue JSON anzupassen

                                    In Zeile 42/43 soll dann auf [37] zugegriffen werden und die Daten übertragen werden.

                                    Kannst Du damit jetzt mehr anfangen ? Das Script ist hier im Spoiler noch mal drin


                                    const request = require('request');
                                    const link = 'http://192.168.1.180/devices/1010005';
                                    //const linkfsupunten = 'http://192.168.1.180/deviceajax.do?meter=1010009';
                                    //const linkfsupoben = 'http://192.168.1.180/deviceajax.do?meter=1010008';

                                    // Datenpunkte erzeugen

                                    createState('Homepilot.Sonnenrichtung', 0, {type: 'number', unit: '°'});
                                    createState('Homepilot.Sonnenhöhe', 0, {type: 'number', unit: '°'});
                                    createState('Homepilot.Lichtwert', 0, {type: 'number', unit: 'lux'});
                                    createState('Homepilot.Windgeschwindigkeit', 0, {type: 'number', unit: 'm/s'});
                                    createState('Homepilot.Temperatur', 0, {type: 'number', unit: '°C'});
                                    createState('Homepilot.Regen', 0, {type: 'boolean', unit: ''});
                                    createState('Homepilot.Aktualisiert', 0, {type: 'string', unit: ''});
                                    createState('Homepilot.balkontüreoben', 0, {type: 'boolean', unit: ''});
                                    createState('Homepilot.balkontüreobenaktualisiert', 0, {type: 'string', unit: ''});
                                    createState('Homepilot.balkontüreunten', 0, {type: 'boolean', unit: ''});
                                    createState('Homepilot.balkontüreuntenaktualisiert', 0, {type: 'string', unit: ''});

                                    function sensordaten() {
                                    request(link, function(error,response, body) {
                                    if(error) log('Fehler request: ' + error, 'error');
                                    else {
                                    var data = JSON.parse(body).payload.device.capabilities;

                                            var dir = data[5].Sonnenrichtung;
                                            //log(dir);
                                            dir = parseFloat(dir.substr(dir.indexOf('(') + 1));
                                            setState('Homepilot.Sonnenrichtung', dir, true); 
                                            
                                            var ele = parseFloat(data[4].Sonnenhöhe);
                                            setState('Homepilot.Sonnenhöhe', ele, true); 
                                            
                                            var lux = parseFloat(data[0].Lichtwert);
                                            setState('Homepilot.Lichtwert', lux, true);
                                            
                                            var wind = parseFloat(data[1]['Windgeschw.']);
                                            setState('Homepilot.Windgeschwindigkeit', wind, true);
                                            
                                            var temp = parseFloat(data[37].value);
                                            setState('Homepilot.Temperatur', temp, true);
                                            
                                            var regen = data[3].Regen; // Das ist ein String !
                                                if(regen == 'Nicht erkannt') setState('Homepilot.Regen', false, true);
                                                else setState('Homepilot.Regen', true, true);
                                            
                                            var aktualisiert = data[6].Aktualisiert; // Das ist ein String !
                                            setState('Homepilot.Aktualisiert', aktualisiert, true);
                                        }    
                                    });
                                    

                                    }

                                    function balkontuere() {
                                    request(linkfsupunten, function(error,response, body) {
                                    if(error) log('Fehler request: ' + error, 'error');
                                    else {
                                    var data = JSON.parse(body).data;
                                    var schliesserunten = data[0].Schließer; // Das ist ein String !
                                    if(schliesserunten == 'Geöffnet') setState('Homepilot.balkontüreunten', false, true);
                                    else setState('Homepilot.balkontüreunten', true, true);
                                    var aktualisiert = data[1].Aktualisiert; // Das ist ein String !
                                    setState('Homepilot.balkontüreuntenaktualisiert', aktualisiert, true);
                                    }
                                    });
                                    request(linkfsupoben, function(error,response, body) {
                                    if(error) log('Fehler request: ' + error, 'error');
                                    else {
                                    var data = JSON.parse(body).data;
                                    var schliesseroben = data[0].Schließer; // Das ist ein String !
                                    if(schliesseroben == 'Geöffnet') setState('Homepilot.balkontüreoben', false, true);
                                    else setState('Homepilot.balkontüreoben', true, true);
                                    var aktualisiert = data[1].Aktualisiert; // Das ist ein String !
                                    setState('Homepilot.balkontüreobenaktualisiert', aktualisiert, true);
                                    }
                                    });

                                    }
                                    /*function controme() {
                                    request(linkcontrome1, function(error,response, body) {
                                    if(error) log('Fehler request: ' + error, 'error');
                                    else {
                                    var data = JSON.parse(body).sensoren;
                                    var id = parseFloat(data[0].id);
                                    setState('Controme.id', id, true);
                                    }
                                    });
                                    } */

                                    function alledaten() {
                                    sensordaten();
                                    balkontuere();
                                    //controme();
                                    }
                                    schedule('*/30 * * * * *', alledaten); // alle 30 Sekunden

                                    Vielen dank nochmal und viele Grüße,
                                    Marc

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von
                                    #43

                                    @meicker sagte:

                                    ist aber glaube ich nicht richtig.

                                    Ist doch richtig, denn die Variable data enthält das Array, an dessen Index 37 das Objekt mit der Temperatur enthalten ist.

                                    JSON_Homepilot.JPG

                                    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
                                    • M Offline
                                      M Offline
                                      meicker
                                      schrieb am zuletzt editiert von
                                      #44

                                      @paul53
                                      jetzt hab ich es verstanden :-) Es funktioniert. Ich war mir nicht sicher. Ich dachte halt ich habe das total falsch angefangen ... Danke für den Hinweis !

                                      Ich versuche gleich mal die anderen einfachen Dinge ... aber da waren auch noch kompliziertere Datenpunkte drin wo was umgewandelt wurde. Ich versuche es erstmal und wenn ich nicht klar komme darfst Du mir gerne wieder einen denkanstoß geben :-)

                                      Danke DIR !
                                      vg
                                      Marc

                                      1 Antwort Letzte Antwort
                                      0
                                      • M Offline
                                        M Offline
                                        meicker
                                        schrieb am zuletzt editiert von
                                        #45

                                        @paul53
                                        klappt soweit, komme gut weiter ...

                                        Ich bekomme bei einem datenpunkt ein 'warn' - er funktioniert, aktuell ist er 'true'

                                        createState('Homepilot.Regen', 0, {type: 'boolean', unit: ''});
                                        var regen = data[133].value;
                                        setState('Homepilot.Regen', regen, true);

                                        und die Logmeldung ist:
                                        javascript.0 at Request._callback (script.js.Homepilot.Sensordaten1:46:13)

                                        Zeile 46 ist -> setState('Homepilot.Regen', regen, true);

                                        Hast Du eine Idee ?
                                        vg
                                        Marc

                                        paul53P 1 Antwort Letzte Antwort
                                        0
                                        • M meicker

                                          @paul53
                                          klappt soweit, komme gut weiter ...

                                          Ich bekomme bei einem datenpunkt ein 'warn' - er funktioniert, aktuell ist er 'true'

                                          createState('Homepilot.Regen', 0, {type: 'boolean', unit: ''});
                                          var regen = data[133].value;
                                          setState('Homepilot.Regen', regen, true);

                                          und die Logmeldung ist:
                                          javascript.0 at Request._callback (script.js.Homepilot.Sensordaten1:46:13)

                                          Zeile 46 ist -> setState('Homepilot.Regen', regen, true);

                                          Hast Du eine Idee ?
                                          vg
                                          Marc

                                          paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von
                                          #46

                                          @meicker sagte:

                                          var regen = data[133].value;

                                          Es wird ein String geliefert, deshalb ändere es:

                                          var regen = false;
                                          if(data[133].value == 'true') regen = true;
                                          

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          514

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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