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.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      Danke,

      habe jetzt in der laufenden Installation auf dem Pi3 redis installiert und aktiviert.

      positiv:

      Der freie Speicher stieg sofort von 40MB auf 200MB. Die Load hat natürlich erst noch was zu tun - mal sehen, ob sich die jetzt auch beruhigt.

      leider:

      nach neustart von ioBroker hatte ich zwei Instanzen von history.0 auf dem Pi. eine aktuelle und eine von gestern.

      Da scheint beim iobroker stop noch nicht alles beendet worden zu sein.

      Gruß

      Rainer

      1 Reply Last reply Reply Quote 0
      • C
        cybertron last edited by

        Hallo zusammen,

        ich wollte heute das Thema 'redis' noch einmal angehen bei mir, habe aber in der Multihostumgebung weiterhin keinen Erfolg.

        Die beiden Slaves behaupten sie würden keine Verbindung zum Redis-Server auf dem Host bekommen, obwohl dieser läuft.

        426_2016-07-28_10_34_24-mremoteng_-_confcons.xml.jpg

        426_2016-07-28_10_35_27-mremoteng_-_confcons.xml.jpg

        426_2016-07-28_10_36_34-mremoteng_-_confcons.xml.jpg

        Hab ich irgendetwas noch übersehen oder vergessen?

        Muss vielleicht irgend etwas konfiguriert werden?

        Gruss

        Silvio

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

          @cybertron:

          Hallo zusammen,

          ich wollte heute das Thema 'redis' noch einmal angehen bei mir, habe aber in der Multihostumgebung weiterhin keinen Erfolg.

          Die beiden Slaves behaupten sie würden keine Verbindung zum Redis-Server auf dem Host bekommen, obwohl dieser läuft.

          filename="2016-07-28 10_34_24-mRemoteNG - confCons.xml.jpg" index="2">~~

          filename="2016-07-28 10_35_27-mRemoteNG - confCons.xml.jpg" index="1">~~

          filename="2016-07-28 10_36_34-mRemoteNG - confCons.xml.jpg" index="0">~~

          Hab ich irgendetwas noch übersehen oder vergessen?

          Muss vielleicht irgend etwas konfiguriert werden?

          Gruss

          Silvio `

          ` > If you plan to use mulithost installation you must allow connections to redis from any address (default only 127.0.0.1).

          To do that edit file /etc/redis/redis.conf (sudo nano /etc/redis/redis.conf) and replace bind 127.0.0.1 with bind 0.0.0.0 .

          Don't forget to restart redis after that. (sudo /etc/init.d/redis-server restart) `

          1 Reply Last reply Reply Quote 0
          • C
            cybertron last edited by

            Super.. DANKE..

            jetzt läuft es einwandfrei..

            die Last auf den Raspi's sinkt im Speicherverbrauch ein ganzes Stück und in der Belastung der Kerne sogar enorm.

            Gruß

            Silvio

            1 Reply Last reply Reply Quote 0
            • S
              stephan61 last edited by

              Habe heute nach update von host auf 0.11.0 und allen anderen Update versucht redis zu starten.

              Der javascript adapter wird laufend neu gestartet

              wenn ich redis ausschalte geht es ?

              Gruß Stephan

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

                @stephan61:

                Habe heute nach update von host auf 0.11.0 und allen anderen Update versucht redis zu starten.

                Der javascript adapter wird laufend neu gestartet

                wenn ich redis ausschalte geht es ? `

                Identische Version, identisches Verhalten.

                Im Log wird gemeckert, dass Datenpunkte, wie z.B. weatherunderground.0.current.temp_c nicht gefunden werden.

                Der Datenpunkt existiert aber und ist auch mit einem Wert gefüllt.

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

                  Was mache ich denn falsch?

                  Alles heute auf den neuesten Stand gebracht und keine Fehlermeldung?

                  Alle Updates über den Admin. Kein Reboot!

                  Gruß

                  Rainer

                  1 Reply Last reply Reply Quote 0
                  • C
                    cybertron last edited by

                    Also ich habe bis auf den JavaScript Adapter alles auf dem aktuellen Stand.

                    Beim JavaScript habe ich die 2.3 installiert.

                    Nach den ganzen Updates gestern habe ich den redis nochmals gelöscht und dann neu installiert .

                    Nach der von Bluefox empfohlen Aenderung des Bindings läuft es jetzt augenscheinlich sauber.

                    Ich hatte Anfangs diverse gemeldete JavaScript Fehler , welche ich jedoch darauf zurückführen würde, dass bei diversen Objekten noch kein Inhalt da war, denn das hat sich nach kurzer Zeit beruhigt.

                    Ich habe allerdings nach allen Installationen jeweils immer einen Reboot gemacht.

                    Bei mir läuft alles was mit Hardware , Kommunikation und History (sql) zu tun hat auf den Host01. Dort rennt auch der Redis.

                    Auf Host02 läuft alles was mit vis zu tun hat, dieser arbeitet als Slave und ebenfals der 3. Host, welcher nur für Sayit und Squeezbox zuständig ist.

                    Wenn Fehlermeldungen kommen, dass Datenpunkte nicht vorhanden sind würde ich mit der cli mal versuchen zu schauen, ob diese als Key schon vorhanden sind.

                    Gruß

                    Silvio

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

                      @stephan61:

                      Habe heute nach update von host auf 0.11.0 und allen anderen Update versucht redis zu starten.

                      Der javascript adapter wird laufend neu gestartet

                      wenn ich redis ausschalte geht es ?

                      Gruß Stephan `
                      Was steht im Logs?

                      Ich vermute, dass da bei

                      getState('blabla').val

                      Abstürzt.

                      Ich werde in der nächsten version dann getState abändern:
                      > If state does not exist, it will be returned following object: ****{val: null, notExist: true}****

                      1 Reply Last reply Reply Quote 0
                      • S
                        stephan61 last edited by

                        Hallo Bluefox es kommt folgender Log eintrag

                        516_redis.jpg

                        Gruss Stephan

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

                          @stephan61:

                          Hallo Bluefox es kommt folgender Log eintrag

                          filename="redis.JPG" index="0">~~

                          Gruss Stephan `
                          So wie ich vermutet habe.

                          Du musst checken ob

                          getState('blbabla') !== null
                          
                          1 Reply Last reply Reply Quote 0
                          • P
                            pepp86 last edited by

                            Hallo,

                            ich habe heute mal auf redis umgeschwenkt, es funktioniert auch alles gut und sehr performant. Allerdings habe ich eine sehr große Datenstruktur unterhalb von javascript. Diese Werte werden nicht automatisch wieder gefüllt. Gibt es eine Möglichkeit alle states vorher zu exportieren und nach dem Wechsel auf redis wieder einzuspielen? Über den Struktur Ex-/Import wird leider nur die Struktur geschrieben, nicht aber die values. Durch die fehlenden Values laufen natürlich die meisten meiner Skripte nicht und es werden somit auch die Daten nicht neu gefüllt.

                            Danke und Gruß

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

                              @pepp86:

                              Hallo,

                              ich habe heute mal auf redis umgeschwenkt, es funktioniert auch alles gut und sehr performant. Allerdings habe ich eine sehr große Datenstruktur unterhalb von javascript. Diese Werte werden nicht automatisch wieder gefüllt. Gibt es eine Möglichkeit alle states vorher zu exportieren und nach dem Wechsel auf redis wieder einzuspielen? Über den Struktur Ex-/Import wird leider nur die Struktur geschrieben, nicht aber die values. Durch die fehlenden Values laufen natürlich die meisten meiner Skripte nicht und es werden somit auch die Daten nicht neu gefüllt.

                              Danke und Gruß `
                              Leider momentan nicht.

                              Aber ich kann mir gut vorstellen einen JS-Skript zu schreiben welches alle States ausliest und als JSON speichert.

                              Und auch ein Skript welches dann bei REDIS die Werte einspielt. Sollte 10 Zeilen sein. Vielleicht hilft dir jemand.

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

                                @Bluefox:

                                @pepp86:

                                Hallo,

                                ich habe heute mal auf redis umgeschwenkt, es funktioniert auch alles gut und sehr performant. Allerdings habe ich eine sehr große Datenstruktur unterhalb von javascript. Diese Werte werden nicht automatisch wieder gefüllt. Gibt es eine Möglichkeit alle states vorher zu exportieren und nach dem Wechsel auf redis wieder einzuspielen? Über den Struktur Ex-/Import wird leider nur die Struktur geschrieben, nicht aber die values. Durch die fehlenden Values laufen natürlich die meisten meiner Skripte nicht und es werden somit auch die Daten nicht neu gefüllt.

                                Danke und Gruß `
                                Leider momentan nicht.

                                Aber ich kann mir gut vorstellen einen JS-Skript zu schreiben welches alle States ausliest und als JSON speichert.

                                Und auch ein Skript welches dann bei REDIS die Werte einspielt. Sollte 10 Zeilen sein. Vielleicht hilft dir jemand. `

                                ok. Habe mir jetzt "Quick&Dirty" die setState befehle ins Log ausgeben lassen und nach der Umstellung in ein Skript gepackt. Nu sind alle States wieder da und regis läuft fehlerfrei bis jetzt.

                                1 Reply Last reply Reply Quote 0
                                • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            542
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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