Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. REDIS will be back

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    REDIS will be back

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

      Kannst Du Dein quick & Dirty Skript posten? 😉

      Gesendet von iPad mit Tapatalk

      1 Reply Last reply Reply Quote 0
      • P
        pepp86 last edited by

        @ruhr70:

        Kannst Du Dein quick & Dirty Skript posten? 😉

        Gesendet von iPad mit Tapatalk `

        Hab mich jetzt noch kurz mit dem Schreiben in eine Datei befasst und folgendes Skript genutzt:

        var fs = require('fs');
        
        var cacheSelectorState = $('state[state.id=javascript.0.*]');
            cacheSelectorState.each(function (id, i) {
                var val = getState(id).val;
        	string = "setState('"+id+"', '"+val+"');\n";
                fs.appendFileSync("/opt/iobroker/states.txt", string); 
        });
        
        

        Damit werden alle states aus javascript.0.* in die Datei /opt/iobroker/states.txt als setState Kommando geschrieben. Diese Kommandos kann man dann nach der Umstellung auf redis einfach in ein neues Skript packen und einmalig ausführen.

        1 Reply Last reply Reply Quote 0
        • ruhr70
          ruhr70 last edited by

          perfekt!

          Danke!!

          🙂

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @pepp86:

               string = "setState('"+id+"', '"+val+"');\n";
            ```` `  
            

            Damit sind alle Werte nach der Abarbeitung der setState() vom Typ "string". Das dürfte einige Warnungen des JS-Adapters erzeugen und Probleme machen, wenn man mit den Werten rechnen will.

            1 Reply Last reply Reply Quote 0
            • P
              pepp86 last edited by

              @paul53:

              @pepp86:

                 string = "setState('"+id+"', '"+val+"');\n";
              ```` `  
              

              Damit sind alle Werte nach der Abarbeitung der setState() vom Typ "string". Das dürfte einige Warnungen des JS-Adapters erzeugen und Probleme machen, wenn man mit den Werten rechnen will. `

              var fs = require('fs');
              
              var cacheSelectorState = $('state[state.id=javascript.0.*]');
                  cacheSelectorState.each(function (id, i) {
                      var val = getState(id).val;
                      type = getObject(id).common.type;
                      if(type == "number") {
                          string = "setState('"+id+"', "+val+");\n";
                      } else {
                          string = "setState('"+id+"', '"+val+"');\n";
                      }
                      fs.appendFileSync("/opt/iobroker/states.txt", string); 
              });
              

              So kann man auch noch den Type abfragen und entsprechend den String ändern. Das hatte ich noch nicht bedacht.

              Wie gut, dass es Foren gibt 🙂

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                @pepp86:

                So kann man auch noch den Type abfragen und entsprechend den String ändern. Das hatte ich noch nicht bedacht. `
                Fehlt noch der Test auf Type "boolean". Oder besser

                var fs = require('fs');
                
                var cacheSelectorState = $('state[state.id=javascript.0.*]');
                cacheSelectorState.each(function (id, i) {
                    var val = getState(id).val;
                    var zk = "setState('"+id+"', "+val+");\n";
                    if(typeof val === "string") zk = "setState('"+id+"', '"+val+"');\n";
                    fs.appendFileSync("/opt/iobroker/states.txt", zk);
                });
                
                1 Reply Last reply Reply Quote 0
                • P
                  pepp86 last edited by

                  @paul53:

                  @pepp86:

                  So kann man auch noch den Type abfragen und entsprechend den String ändern. Das hatte ich noch nicht bedacht. `
                  Fehlt noch der Test auf Type "boolean". Oder besser

                  var fs = require('fs');
                  
                  var cacheSelectorState = $('state[state.id=javascript.0.*]');
                  cacheSelectorState.each(function (id, i) {
                      var val = getState(id).val;
                      var zk = "setState('"+id+"', "+val+");\n";
                      if(typeof val === "string") zk = "setState('"+id+"', '"+val+"');\n";
                      fs.appendFileSync("/opt/iobroker/states.txt", zk);
                  });
                  ```` `  
                  

                  Dabei fallen aber bei mir wieder werte durch die als "number" gespeichert sind.

                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 last edited by

                    @pepp86:

                    Dabei fallen aber bei mir wieder werte durch die als "number" gespeichert sind. `
                    Sind die Werte wirklich als "number" gespeichert oder ist nur common.type = "number" ?

                    typeof val ermittelt den tatsächlich gespeicherten Typ.

                    1 Reply Last reply Reply Quote 0
                    • P
                      pepp86 last edited by

                      @paul53:

                      @pepp86:

                      Dabei fallen aber bei mir wieder werte durch die als "number" gespeichert sind. `
                      Sind die Werte wirklich als "number" gespeichert oder ist nur common.type = "number" ?

                      typeof val ermittelt den tatsächlich gespeicherten Typ. `

                      Jap. typeof val liefert für die Werte number zurück. Gerade getestet.

                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 last edited by

                        @pepp86:

                        Dabei fallen aber bei mir wieder werte durch die als "number" gespeichert sind. `
                        Weshalb dann das ?

                        1 Reply Last reply Reply Quote 0
                        • P
                          PrinzEisenherz1 last edited by

                          Ich hab da mal ne frage! Lässt sich auch n externer REDIS - Server einbinden? Ich hab iobroker auf einen pi laufen und könnte einen REDIS-Server auf der Synology betreiben! Geht sowas und würde sowas Sinn machen?

                          Gruß Johnny

                          1 Reply Last reply Reply Quote 0
                          • apollon77
                            apollon77 last edited by

                            Dem iobroker ist am Ende egal wo der läuft. Du gibts ja eine IP und nen Port an und dahin verbindet er sich.

                            Also: sollte kein Problem sein.

                            "localhost" hat ggf weniger Netzwerklatenz, aber das ist quasi auch schon alles

                            1 Reply Last reply Reply Quote 0
                            • P
                              PrinzEisenherz1 last edited by

                              Danke für die Info! Jetzt bloß noch ne frage, wo stelle ich bei iobroker dann die IP und den Port für den redis ein?

                              Gruß Johnny

                              1 Reply Last reply Reply Quote 0
                              • P
                                PrinzEisenherz1 last edited by

                                Halt, Habs gefunden! Stand auf der ersten Seite!

                                Wer lesen kann ist klar im Vorteil….. Lach

                                Johnny

                                1 Reply Last reply Reply Quote 0
                                • P
                                  PrinzEisenherz1 last edited by

                                  Hi zusammen!

                                  Ich habe heute auch mal auf REDIS umgestellt! Ich habe auf der Synology einen REDIS-Server am laufen und hab den PI damit verbunden.

                                  Jetzt hab ich mir mal den Freien Speicher vom PI angekuckt!

                                  Also ich kann nicht behaupten das der Freie Speicher mehr wird!

                                  Ganz im Gegenteil.
                                  1058_rpi_memory.png
                                  1058_rpi_memory1.png
                                  Als ich REDIS aktiviert habe, hatte ich einen Neustart durchgeführt und dann sieht es zuerst auch unverändert auch und dann fällt auf einen Schlag der freie Speicher.

                                  Seltsam! Ist das anfangs normal?

                                  Gruß

                                  Johnny

                                  1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators last edited by

                                    Ob das an deiner speziellen Konstellation liegt????

                                    Was den freien Speicher angeht ist das eine Linux-Eigenheit.

                                    Jeglicher ungenutzter Speicher wird den laufenden Prozessen zugeordnet, damit dort mehr zur Verfügung steht.

                                    Was soll Speicher denn ungenutzt herumliegen?

                                    Üblicherweise ist das kein Grund zur Panik. Linux pendelt das normalerweise gut ein.

                                    Gruß

                                    Rainer

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      PrinzEisenherz1 last edited by

                                      Mich wundertdas ohne redis immer zwischen 200 und 400 MB freier Speicher waren und mit redis ein rapieder Sturz auf unter 40MB

                                      1 Reply Last reply Reply Quote 0
                                      • apollon77
                                        apollon77 last edited by

                                        Dann schau mal genau in top rein und sag wie die echte Speichernutzung ist.

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          PrinzEisenherz1 last edited by

                                          Also ich hab zwischenzeitlich den Pi neugestartet und jetzt sieht alles wieder normal aus!

                                          Hier mal n Auszug von top
                                          1058_rpi_memory2.png
                                          Irgendwas muss am Mittag den Speicher auf kurze Zeit extrem verbraucht haben!

                                          Hätte da mal in top kucken sollen!

                                          Ich beobachte das ganze mal

                                          Johnny

                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            PrinzEisenherz1 last edited by

                                            Ich glaube ich herausgefunden woran es lag! Ich hab in dem Zeitraum wo plötzlich der frei Speicher flöten ging vom nas aus ein Backup von iobroker angestoßen und da hat sich dann der raspi wohl verhasspelt!

                                            Hat sich also erledigt!

                                            Johnny

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            744
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            23
                                            104
                                            21842
                                            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