Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Umstellung auf "axios"

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Umstellung auf "axios"

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @SBorg last edited by OliverIO

      @sborg
      stimmt.
      die o's waren aber bei meinem nick schon verbraucht

      axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=xxx...xxx', {
          responseEncoding: 'latin'
        })
        .then(function (response) {
          console.log(response);
          if (response.data) {
            
            var parts = response.data.split('\n');
       
            var parts_Guntamatic = parts[0];
            setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
       
            var parts_Guntamatic = parts[1];
            setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
          })
        .catch(function (error) {
          console.log(error);
        });
      

      Aber für die C&P-Fraktion habe ich noch 2 Debug-Zeilen übrig gelassen

      G 1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @OliverIO last edited by

        @oliverio sagte in Umstellung auf "axios":

        Ob latin ein gültiger Wert ist weiß ich nicht.

        Laut https://nodejs.org/api/buffer.html#buffers-and-character-encodings müsste das latin1 sein (mit 1 am Ende).

        G 1 Reply Last reply Reply Quote 0
        • G
          glitzi @OliverIO last edited by glitzi

          Super DANKE!!!

          nach einer knappen Stunde finde ich den Fehler nicht...

          19:27:04.325	error	javascript.0 (32211) script.js.Guntamatic.Guntamatic_Daten_aus_Http_Seite_Parsen_axios compile failed: at script.js.Guntamatic.Guntamatic_Daten_aus_Http_Seite_Parsen_axios:
          
          
          createState('Guntamatic_Betrieb_0');
          createState('Guntamatic_Aussentemperatur_1');
          createState('Guntamatic_Kesseltemperatur_3');
          createState('Guntamatic_Leistung_5');
          createState('Guntamatic_Rücklauf_6');
          createState('Guntamatic_CO2_Gehalt_8');
          createState('Guntamatic_Puffer_oben_17');
          createState('Guntamatic_Puffer_unten_19');
          createState('Guntamatic_Pumpe_HP0_20');
          createState('Guntamatic_Warmwasser_21');
          createState('Guntamatic_Vorlauf_31');
          createState('Guntamatic_Füllstand_65');
          createState('Guntamatic_Kesselfreigabe_68');
          createState('Guntamatic_Programm_69');
          createState('Guntamatic_Programm_HK1_71');
          createState('Guntamatic_Stoer0_79');
          createState('Guntamatic_Stoer1_80');
          createState('Guntamatic_Asche_entleeren_85');
          createState('Guntamatic_Brennstoffzähler_89');
          createState('Guntamatic_Pufferladung_90');
          createState('Guntamatic_CO2_Gehalt_korrigiert');
           
          schedule("*/5 * * * * *",
            
          axios.post('http://10.10.10.7/daqdata.cgi?key=226125AC4E4C9CD8144ABF4CA958AF294A4F', {
              responseEncoding: 'latin1'
            })
            .then(function (response) {
              console.log(response);
              
              if (response.data) {
                
                var parts = response.data.split('\n');
           
                var parts_Guntamatic = parts[0];
                setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[1];
                setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[3];
                setState('Guntamatic_Kesseltemperatur_3', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[5];
                setState('Guntamatic_Leistung_5', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[6];
                setState('Guntamatic_Rücklauf_6', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[8];
                setState('Guntamatic_CO2_Gehalt_8', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[17];
                setState('Guntamatic_Puffer_oben_17', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[19];
                setState('Guntamatic_Puffer_unten_19', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[20];
                setState('Guntamatic_Pumpe_HP0_20', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[21];
                setState('Guntamatic_Warmwasser_21', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[31];
                setState('Guntamatic_Vorlauf_31', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[65];
                setState('Guntamatic_Füllstand_65', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[68];
                setState('Guntamatic_Kesselfreigabe_68', parts_Guntamatic, true);
                
                var parts_Guntamatic = parts[69];
                setState('Guntamatic_Programm_69', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[71];
                setState('Guntamatic_Programm_HK1_71', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[79];
                setState('Guntamatic_Stoer0_79', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[80];
                setState('Guntamatic_Stoer1_80', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[85];
                setState('Guntamatic_Asche_entleeren_85', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[89];
                setState('Guntamatic_Brennstoffzähler_89', parts_Guntamatic, true);
          
                var parts_Guntamatic = parts[90];
                setState('Guntamatic_Pufferladung_90', parts_Guntamatic, true);
          
          /*
          CO2 Korrigieren da der Wert im Leerlauf teils 18.00 annimmt.
          parts[5] = Leistung parts[8] = CO2 Gehalt
          */
          
          if (parts[5] == 0) {
                              setState("Guntamatic_CO2_Gehalt_korrigiert" , 0, true);
                              } else {
                                      setState("Guntamatic_CO2_Gehalt_korrigiert", parts[8], true)
                                      }
          
           }
            }
          
           .catch(function (error) {
              console.log(error)
                   });
          
          }); 
           
          }
          )
          
          OliverIO 1 Reply Last reply Reply Quote -1
          • OliverIO
            OliverIO @glitzi last edited by

            @glitzi sagte in Umstellung auf "axios":

            Viele Fehler
            https://beautifytools.com/javascript-validator.php
            beachtet du die Hinweise im Skripteditor nicht?

            Das korrekte einrücken nicht vergessen. Das erspart schon mal viele Logikfehler. Dem Parser ist es zwar egal, aber du suchst dich dann zu tode wenn die blöcke nicht auf der gleichen Ebene enden wie sie begonnen haben. Manche Editoren können da einem helfen. Einfach den kompletten Text mal dort reinkopieren und die Formatierung/beautyfier drüber laufen lassen.

            Auch wenn das ; nicht unbedingt notwendig ist, sollte man es immer setzen, da ansonsten der parser manchmal meckert und dann ist es besser immer einheitlich zu bleiben und den Code lesbar zu gestalten
            https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement
            Eine Variable sollte nur einmal innerhalb eines Blocks deklariert werden (var)
            und Klammern sollten in der richtigen Reihenfolge und in der korrekten Anzahl geöffnet und wieder geschlossen werden

            Line	Col	Errors
            39	11	'parts_Guntamatic' is already defined.
            42	11	'parts_Guntamatic' is already defined.
            45	11	'parts_Guntamatic' is already defined.
            48	11	'parts_Guntamatic' is already defined.
            51	11	'parts_Guntamatic' is already defined.
            54	11	'parts_Guntamatic' is already defined.
            57	11	'parts_Guntamatic' is already defined.
            60	11	'parts_Guntamatic' is already defined.
            63	11	'parts_Guntamatic' is already defined.
            66	11	'parts_Guntamatic' is already defined.
            69	11	'parts_Guntamatic' is already defined.
            72	11	'parts_Guntamatic' is already defined.
            75	11	'parts_Guntamatic' is already defined.
            78	11	'parts_Guntamatic' is already defined.
            81	11	'parts_Guntamatic' is already defined.
            84	11	'parts_Guntamatic' is already defined.
            87	11	'parts_Guntamatic' is already defined.
            90	11	'parts_Guntamatic' is already defined.
            93	11	'parts_Guntamatic' is already defined.
            104	89	Missing semicolon.
            111	23	Missing semicolon.
            112	12	Expected ')' and instead saw ';'.
            114	1	Expected ')' and instead saw '}'.
            114	2	Missing semicolon.
            114	2	Expected an identifier and instead saw ')'.
            114	2	Expected an assignment or function call and instead saw an expression.
            114	3	Unrecoverable syntax error. (96% scanned).
            
            coyote G 3 Replies Last reply Reply Quote 0
            • coyote
              coyote Most Active @OliverIO last edited by

              Hallo, ich hänge mich hier einfach mal ran, denke es ist nicht nötig nochmal einen eigenen Thread dafür aufzumachen.
              Ich habe auch noch ein paar Scripte mit "request", vielleicht kann mir da auch jemand bei der Umstellung auf "axios" helfen?!
              Hier der Teil des Scripts:

              var request = require("request");
              var fs = require('fs');
              
              // Speichert das Bild der Haustür bei Posteinwurf
              function saveImage() {
              	request.get({
              			url: source_url,
              			encoding: 'binary'
              		}, function(err, response, body) {
              			fs.writeFile('/tmp/' + 'Postbild.jpg', body, 'binary', function(err) {
              				if (err) {
              					log('Fehler beim Bild speichern: ' + err, 'warn');
              				} else {
              					log('Webcam Bild gespeichert');
              				}
              			})
              		})
              // Bilder werden nach vis gespeichert
              	setTimeout(function() {
              		const bild1 = fs.readFileSync('/tmp/Postbild.jpg');
              		writeFile('vis.0', '/Postbild.jpg', bild1);
              	}, 4000);
              }
              
              1 Reply Last reply Reply Quote 0
              • G
                glitzi @OliverIO last edited by

                @oliverio
                Danke für die Gute Unterstützung…
                Leider bin ich hier blutiger Anfänger, kannst du mir das eventuell im Script Kennzeichen?

                1 Reply Last reply Reply Quote 0
                • G
                  glitzi @OliverIO last edited by glitzi

                  ich bin etwas weiter, siehe Antwort...

                  G 1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active last edited by

                    Hallo,
                    ich muss jetzt auch mal fragen.

                    • warum wird von request auf axios umgestellt?
                    • was ist mit den alten Scripten ?
                    • gibts hier ein todo ?

                    Gibts da irgendwo mehr infos ?

                    Habe ca. 200 Scripte wo ca. bei der Hälfte (geschätzt) request drin ist.

                    Thomas Braun Wal 2 Replies Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @bahnuhr last edited by

                      @bahnuhr

                      Weil es nicht mehr gepflegt wird:

                      https://www.npmjs.com/package/request

                      https://github.com/request/request/issues/3142

                      mikeal created this issue in request/request

                      open Request’s Past, Present and Future #3142

                      bahnuhr 1 Reply Last reply Reply Quote 0
                      • bahnuhr
                        bahnuhr Forum Testing Most Active @Thomas Braun last edited by

                        @thomas-braun sagte in Umstellung auf "axios":

                        Weil es nicht mehr gepflegt wird:

                        Und ab wann funktionieren dann meine Scripte nicht mehr ?
                        oder viel wichtiger: Was mun man tun um dies zu ändern ?

                        Thomas Braun 1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @bahnuhr last edited by Thomas Braun

                          @bahnuhr sagte in Umstellung auf "axios":

                          Und ab wann funktionieren dann meine Scripte nicht mehr ?

                          Vermutlich spätestens dann, wenn request aus nodejs aussortiert wird.
                          Ich vermute, das wird aber ob der breiten Verwendung von request noch lange mitgeschleift werden müssen. Ist ja schon geraume Zeit als 'deprecated' markiert.

                          T 1 Reply Last reply Reply Quote 0
                          • Wal
                            Wal Developer @bahnuhr last edited by

                            @bahnuhr sagte in Umstellung auf "axios":

                            Gibts da irgendwo mehr infos ?

                            Ja bei google.
                            Du musst auch nicht axios nehmen, es funktioniert auch http.

                            bahnuhr 1 Reply Last reply Reply Quote 0
                            • G
                              glitzi @glitzi last edited by

                              @OliverIO
                              Puhh ich glaube ich bin etwas weiter... trotzdem drehe ich mich irgendwie im Kreis .

                              16:53:20.267	error	javascript.0 (6088) script.js.Guntamatic.Guntamatic_Daten_aus_Http_Seite_Parsen_axios: schedule callback missing
                              
                              createState('Guntamatic_Betrieb_0');
                              createState('Guntamatic_Aussentemperatur_1');
                              createState('Guntamatic_Kesseltemperatur_3');
                              createState('Guntamatic_Leistung_5');
                              createState('Guntamatic_Rücklauf_6');
                              createState('Guntamatic_CO2_Gehalt_8');
                              createState('Guntamatic_Puffer_oben_17');
                              createState('Guntamatic_Puffer_unten_19');
                              createState('Guntamatic_Pumpe_HP0_20');
                              createState('Guntamatic_Warmwasser_21');
                              createState('Guntamatic_Vorlauf_31');
                              createState('Guntamatic_Füllstand_65');
                              createState('Guntamatic_Kesselfreigabe_68');
                              createState('Guntamatic_Programm_69');
                              createState('Guntamatic_Programm_HK1_71');
                              createState('Guntamatic_Stoer0_79');
                              createState('Guntamatic_Stoer1_80');
                              createState('Guntamatic_Asche_entleeren_85');
                              createState('Guntamatic_Brennstoffzähler_89');
                              createState('Guntamatic_Pufferladung_90');
                              createState('Guntamatic_CO2_Gehalt_korrigiert');
                              
                              const axios=require('axios');
                              
                              schedule("*/5 * * * * *",
                              
                              	axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=xxxx', {
                              		responseEncoding: 'latin1'
                              	})
                              
                              	.then(function(response) {
                              			//console.log(response);
                              
                              			if (response.data) {
                              
                              				var parts = response.data.split('\n');
                              
                              				var parts_Guntamatic = parts[0];
                              				setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[1];
                              				setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[3];
                              				setState('Guntamatic_Kesseltemperatur_3', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[5];
                              				setState('Guntamatic_Leistung_5', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[6];
                              				setState('Guntamatic_Rücklauf_6', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[8];
                              				setState('Guntamatic_CO2_Gehalt_8', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[17];
                              				setState('Guntamatic_Puffer_oben_17', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[19];
                              				setState('Guntamatic_Puffer_unten_19', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[20];
                              				setState('Guntamatic_Pumpe_HP0_20', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[21];
                              				setState('Guntamatic_Warmwasser_21', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[31];
                              				setState('Guntamatic_Vorlauf_31', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[65];
                              				setState('Guntamatic_Füllstand_65', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[68];
                              				setState('Guntamatic_Kesselfreigabe_68', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[69];
                              				setState('Guntamatic_Programm_69', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[71];
                              				setState('Guntamatic_Programm_HK1_71', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[79];
                              				setState('Guntamatic_Stoer0_79', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[80];
                              				setState('Guntamatic_Stoer1_80', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[85];
                              				setState('Guntamatic_Asche_entleeren_85', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[89];
                              				setState('Guntamatic_Brennstoffzähler_89', parts_Guntamatic, true);
                              
                              				var parts_Guntamatic = parts[90];
                              				setState('Guntamatic_Pufferladung_90', parts_Guntamatic, true);
                              
                              				/*
                              				CO2 Korrigieren da der Wert im Leerlauf teils 18.00 annimmt.
                              				parts[5] = Leistung parts[8] = CO2 Gehalt
                              				*/
                              
                              				if (parts[5] == 0) {
                              					setState("Guntamatic_CO2_Gehalt_korrigiert", 0, true);
                              				} else {
                              					setState("Guntamatic_CO2_Gehalt_korrigiert", parts[8], true);
                              				}
                              
                              			}
                              		
                              
                              
                                  })
                              
                              );
                              
                              1 Reply Last reply Reply Quote 0
                              • bahnuhr
                                bahnuhr Forum Testing Most Active @Wal last edited by

                                @wal sagte in Umstellung auf "axios":

                                Du musst auch nicht axios nehmen, es funktioniert auch http.

                                hast du mal ein Beispiel ?

                                OliverIO 1 Reply Last reply Reply Quote 0
                                • OliverIO
                                  OliverIO @bahnuhr last edited by

                                  @bahnuhr
                                  das ist aber alles sehr ähnlich.
                                  Noch einfacher geht nicht wirklich

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    tombox @Thomas Braun last edited by tombox

                                    @thomas-braun Ich denke auch mit 50.000 Dependents wird es wohl nie entfernt werden können. Also kann der kleine ioBroker Skripter sich mit der Umstellung noch zeit lassen.
                                    @glitzi
                                    der schedule wird nicht richtig aufgemacht

                                    schedule("*/5 * * * * *", function(){
                                    	axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=xxxx', {
                                    		responseEncoding: 'latin1'
                                    	})
                                    	.then(function(response) {
                                    			//console.log(response);
                                             })
                                    })
                                    
                                    OliverIO G 2 Replies Last reply Reply Quote 0
                                    • OliverIO
                                      OliverIO @tombox last edited by OliverIO

                                      @tombox
                                      und wenn es aus iobroker entfernt wird, dann lädt man es selbst nach.
                                      es ist ja nicht so das es da sicherheitsbedenken gibt, sonder das die bibliothekt zu ende entwickelt ist.

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        tombox @OliverIO last edited by

                                        @oliverio Korrekt solange es kein security problem gibt wäre es auch ziemlich gemein es aus der iobroker skript default package rauszunehmen

                                        1 Reply Last reply Reply Quote 0
                                        • G
                                          glitzi @tombox last edited by

                                          @tombox

                                          SUPER, vielen Dank! jetzt läuft es !!!

                                          👍

                                          1 Reply Last reply Reply Quote 0
                                          • G
                                            glitzi @AlCalzone last edited by

                                            @alcalzone

                                            Leider scheint das Encoding nicht zu funktionieren, ist hier etwas falsch?

                                            const axios=require('axios');
                                            
                                            schedule("*/5 * * * * *", function(){
                                            
                                            	axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=abcde', {
                                            		responseEncoding: 'utf-8'
                                            	})
                                            
                                            	.then(function(response) {
                                            		
                                            			if (response.data) {
                                            
                                            				var parts = response.data.split('\n');
                                            
                                            				var parts_Guntamatic = parts[0];
                                            				setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);
                                            
                                            
                                            OliverIO 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            580
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            33
                                            1887
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo