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. Error/Bug
  4. [gelöst] Zweite javascript Instanz

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[gelöst] Zweite javascript Instanz

Geplant Angeheftet Gesperrt Verschoben Error/Bug
20 Beiträge 6 Kommentatoren 1.8k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • eric2905E Offline
    eric2905E Offline
    eric2905
    schrieb am zuletzt editiert von
    #3

    Moin,

    Du arbeitest mit Redis - zumindest hast Du die Konfiguration so angegeben.
    @Goersch:

    Type of states DB [(f)file, (r)edis], default [file]: r

    Host of states DB (redis), default[127.0.0.1]: 192.168.20.3 `

    Hast Du auf dem Master den Redis-Zugriff auch freigegeben?

    Ohne dem läuft da nix im Multihost-Betrieb.

    Gruß,

    Eric

    Roses are red, violets are blue,

    if I listen to metal, my neighbours do too

    1 Antwort Letzte Antwort
    0
    • GoerschG Offline
      GoerschG Offline
      Goersch
      schrieb am zuletzt editiert von
      #4

      ja, das funktioniert - ein setState funktioniert und die Verbindung zwischen Haupt und Neben Raspi ist Ok. Es laufen bereits mehrere Instanzen (Cloud, ping, ical) Problemlos auf dem Neben-Raspi. Nur das getState des javascript adapters macht ärger :cry:

      1 Antwort Letzte Antwort
      0
      • GoerschG Offline
        GoerschG Offline
        Goersch
        schrieb am zuletzt editiert von
        #5

        ich hab die config des Neben-Raspi mal geändert:

        ` > Type of objects DB [(f)ile, ©ouch, (r)edis], default [file]: r

        Host of objects DB(file), default[127.0.0.1]: 192.168.20.3

        Port of objects DB(file), default[9001]: 6379

        Type of states DB [(f)file, (r)edis], default [file]: r

        Host of states DB (redis), default[127.0.0.1]: 192.168.20.3

        Port of states DB (redis), default[9000]: 6379

        Host name of this machine [iobroker2]: `

        So leider keine Verbindung zwischen Haupt und Neben-Raspi.

        1 Antwort Letzte Antwort
        0
        • HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #6

          Nicht die objects ändern!

          sondern die redis-config auf dem Master:

          http://www.iobroker.net/?page_id=3068&l … _mit_redis

          Gruß

          Rainer

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          1 Antwort Letzte Antwort
          0
          • GoerschG Offline
            GoerschG Offline
            Goersch
            schrieb am zuletzt editiert von
            #7

            ist geändert - die verbindung zu redis steht 8-)

            siehe auch hier am Ende des Threads.

            http://forum.iobroker.net/viewtopic.php?f=17&t=365

            Ich stocher gerade im Nebel rum :) und find das Problem nicht.

            1 Antwort Letzte Antwort
            0
            • apollon77A Offline
              apollon77A Offline
              apollon77
              schrieb am zuletzt editiert von
              #8

              Also das Asynchrone sollte so gehen (aber siehe auch Anmerkungen im anderen Thread!)

              getState(id, function(err, state) { 
                var status = state.val;
                ...
              });
              

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              1 Antwort Letzte Antwort
              0
              • GoerschG Offline
                GoerschG Offline
                Goersch
                schrieb am zuletzt editiert von
                #9

                damit läuft es - zumindestens komme ich an den State des Objects ran.

                Nur hilft mir das leider auch nicht weiter, da der call async läuft. Bei der Abfrage eines States wäre das noch OK und man könnte den Rest der Logik in den asynchronen Callback legen - nur brauch ich natürlich mehrere getStates, womit es etwas schwierig wird

                8-) mal abgesehen davon, dass es nicht schön ist, wenn man in der Instanz auf dem Neben-Raspi die Zugriffe anders Programmieren muss.

                1 Antwort Letzte Antwort
                0
                • apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #10

                  Ich persönlcih gehe immer so vor das ich mir alle State-Werte quasi als Lokale Variablen hole. Damit entkoppelst Du das holen der Werte und die Skript-Logik.

                  Also quasi per "on(id…) jeden State dem man im Skript brauchst einer variable zuweisen bzw damit aktuell halten. Und dann das Skript in eine Funktion die dann von mehreren Stellen oder direkt in den "on" aufgerufen wird, was dann die lokalen Skript-Variablen benutzt

                  Dann entfällt das "getState" kram immer wieder zu machen :-)

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #11

                    @apollon77:

                    Ich persönlcih gehe immer so vor das ich mir alle State-Werte quasi als Lokale Variablen hole. Damit entkoppelst Du das holen der Werte und die Skript-Logik. `
                    Genau so halte ich es auch. Damit vermeidet man auch unnötige Aufrufe der komplexen Funktion getState(id). Prinzip:

                    // ID als String eingeben oder mittels getIdByName('name') ermitteln.
                    var id1 = '...';
                    var id2 = '...';
                    ...
                    
                    // getState für den Skriptstart, falls erforderlich
                    var v1 = getState(id1).val;
                    var v2 = getState(id2).val;
                    ...
                    
                    function auswertung() {
                        Hier werden v1, v2, ... ausgewertet;
                    }
                    
                    auswertung();  // Skriptstart
                    
                    on(id1, function(dp) {  // Änderung des Wertes von id1
                        v1 = dp.state.val;
                        auswertung();
                    });
                    on(id2, function(dp) {
                        v2 = dp.state.val;
                        auswertung();
                    });
                    ...
                    
                    

                    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
                    • GoerschG Offline
                      GoerschG Offline
                      Goersch
                      schrieb am zuletzt editiert von
                      #12

                      das geht sicherlich prinzipiell - funktioniert aber nicht, wenn man die ids zur Laufzeit erst zusammenbaut (bzw. wie in meinem Fall den Zugriff auf die Homematic Geräte via getIdByName macht und den Namen des Gerätes zur Laufzeit zusammenbaut).

                      Ich habe es häufig, dass ich einer Funktion z.B. den Raumnamen übergebe und die Funktion dann die ids selber zusammenbaut, um das setState/getState zu machen. Das ersparrt mir jede Menge gleichen Code, der sich nur durch die ids unterscheiden würde (bzw. wenn ich es so machen würde wie ihr, durch die unterschiedliche Verwendung von Variablen unterscheiden würde).

                      1 Antwort Letzte Antwort
                      0
                      • apollon77A Offline
                        apollon77A Offline
                        apollon77
                        schrieb am zuletzt editiert von
                        #13

                        Dann hast Du recht … und musst aber ggf mit dem asynchronen leben ... that's JavaScript ;-(

                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                        1 Antwort Letzte Antwort
                        0
                        • GoerschG Offline
                          GoerschG Offline
                          Goersch
                          schrieb am zuletzt editiert von
                          #14

                          8-) hab ich befürchtet :|

                          1 Antwort Letzte Antwort
                          0
                          • GoerschG Offline
                            GoerschG Offline
                            Goersch
                            schrieb am zuletzt editiert von
                            #15

                            mh, ich könnt mir ja auch ein array anlegen, in das die Werte geschrieben werden

                            var values = [];
                            on(....., function(obj) {values[obj.common.name] = obj.state.val;....
                            
                            

                            Dann könnte ich weitermachen wie bisher und müsste das getState nur durch ein value[name] ersetzen (und natürlich für jedes zu lesende Objekt ein on(…) programmieren).

                            Muss ich mal drüber nachdenken tun :geek:

                            1 Antwort Letzte Antwort
                            0
                            • GoerschG Offline
                              GoerschG Offline
                              Goersch
                              schrieb am zuletzt editiert von
                              #16

                              8-) mal ganz abgesehen davon, dass mir nicht wirklich klar ist, warum ein getState auf dem neben-Raspi nicht funktioniert oder nicht funktionieren könnte, ohne dass ich die callbacks nutzen muss.

                              Aber das kann an meinem wenig vorhandenen javascript wissen liegen….

                              1 Antwort Letzte Antwort
                              0
                              • BluefoxB Offline
                                BluefoxB Offline
                                Bluefox
                                schrieb am zuletzt editiert von
                                #17

                                @Goersch:

                                8-) mal ganz abgesehen davon, dass mir nicht wirklich klar ist, warum ein getState auf dem neben-Raspi nicht funktioniert oder nicht funktionieren könnte, ohne dass ich die callbacks nutzen muss.

                                Aber das kann an meinem wenig vorhandenen javascript wissen liegen…. `
                                Wie sieht es bei dir aus?

                                Nicht auf alle Zustände beim Start abonnieren: - AN oder AUS?
                                
                                1 Antwort Letzte Antwort
                                0
                                • GoerschG Offline
                                  GoerschG Offline
                                  Goersch
                                  schrieb am zuletzt editiert von
                                  #18

                                  mh, unterschiedlich

                                  Haupt-Raspi AUS

                                  Neben-Rasp EIN

                                  Also bei der Instanz, wo das Problem besteht, ist die Option eingeschaltet

                                  1 Antwort Letzte Antwort
                                  0
                                  • apollon77A Offline
                                    apollon77A Offline
                                    apollon77
                                    schrieb am zuletzt editiert von
                                    #19

                                    Dann schalte das auf dem Neben-Raspi mal auch aus … gehts dann wieder ohne asynchron?

                                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                    1 Antwort Letzte Antwort
                                    0
                                    • GoerschG Offline
                                      GoerschG Offline
                                      Goersch
                                      schrieb am zuletzt editiert von
                                      #20

                                      wie nicht anders zu erwarten: das getState funzt jetzt ohne irgendwelche beschwerden :D

                                      Danke, bluefox + apollon77 :)

                                      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

                                      572

                                      Online

                                      32.5k

                                      Benutzer

                                      81.7k

                                      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