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. Entwicklung
  4. Javascript Synchron

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

Javascript Synchron

Geplant Angeheftet Gesperrt Verschoben Entwicklung
17 Beiträge 10 Kommentatoren 3.0k 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.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich habe die Möglichkeit gefunden die Befehle im Javascript adapter synchron auszuführen:

    Es wird so was möglich sein:

    setState('A', true);
    sleep(2000); <= sehr ungenau
    setState('A', false);
    
    

    Dabei müssen die synchrone Funktionen anders heißen.

    mir fehlt nicht anders ein, als Suffix Sync

    setStateSync
    createStateSync
    setObjectSync
    extendObjectSync
    ...
    sleep
    
    

    Fehlt jemandem bessere Idee ein? Man kann noch statt callback einfach true schreiben oder ..

    setStateEx, 
    setStateS, 
    setState("A", val, ack, isSync (nicht callback))
    
    
    1 Antwort Letzte Antwort
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von
      #2

      Sync am Namen anzuhängen wäre zumindestens Kompatibel mit nodejs (siehe File-kram). Wäre dafür

      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
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3

        Kann man auch mehr als einen Daumen hoch vergeben? :D

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

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

          EIne alternative ist die Frage "was sollte für die User der Standard sein"?

          ALso Vllt "setState" -> syncron und setStateAsync für die Profis? :-)

          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
          • P Offline
            P Offline
            Pman
            schrieb am zuletzt editiert von
            #5

            @apollon77:

            EIne alternative ist die Frage "was sollte für die User der Standard sein"?

            ALso Vllt "setState" -> syncron und setStateAsync für die Profis? :-) `
            Damit würdest du jetzt alle jemals geschriebenen Skripte inkompatibel machen, ich glaube dafür ist es zu spät. :lol:

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

              Oder sonderhandlung das sobald eine callback-Funktion beim aufruf verwendet wird es async wird :-)

              Die meisten "aktuellen Skripte "behaupte ich mal gehen von einer synchronen ausführung aus …

              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
              • L Offline
                L Offline
                looxer01
                schrieb am zuletzt editiert von
                #7

                Hi,

                ich habe es bisher vermieden states anzulegen oder zu aendern und anschliessend zu verwenden oder abzufragen, zumindest innerhalb der gerade laufenden Routinen.

                Der synchrone Ablauf hat Vorteile, wenn es Abhängigkeiten gibt aber m.E. eine möglicherweise erhebliche Performanceeinbuße.

                Daher würde ich nicht unbedingt standardmaessig auf synchron umschalten. Oder denke ich falsch ?

                vG Looxer

                1 Antwort Letzte Antwort
                0
                • ThisoftT Offline
                  ThisoftT Offline
                  Thisoft
                  schrieb am zuletzt editiert von
                  #8

                  Das finde ich super, dass jetzt die Möglichkeit der synchronen Abarbeitung geschaffen wird :D :D :D

                  Ich wäre eindeutig für das Suffix "Sync". Damit bleibt die Kompatibilität gewahrt und man sieht auf Anhieb was man verwendet hat. Ein (optionaler) Parameter beim Aufruf wäre zwar auch eine gangbare Möglichkeit - finde ich aber wesentlich unübersichtlicher als die Variante mit Suffix.

                  22 HM-Geräte; PivCCU2 auf RasPi

                  ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

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

                    @Thisoft:

                    Ich wäre eindeutig für das Suffix "Sync". Damit bleibt die Kompatibilität gewahrt und man sieht auf Anhieb was man verwendet hat. Ein (optionaler) Parameter beim Aufruf wäre zwar auch eine gangbare Möglichkeit - finde ich aber wesentlich unübersichtlicher als die Variante mit Suffix. `
                    Dem schließe ich mich an.
                    @looxer01:

                    …eine möglicherweise erhebliche Performanceeinbuße.

                    Daher würde ich nicht unbedingt standardmaessig auf synchron umschalten. Oder denke ich falsch ? `
                    Sehe ich auch so. Benötigt man die synchrone Variante wirklich ?

                    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
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #10

                      Ich sehe die Anmerkung von apollon77 mit kein callback als gangbar.

                      1 Antwort Letzte Antwort
                      0
                      • Jey CeeJ Online
                        Jey CeeJ Online
                        Jey Cee
                        Developer
                        schrieb am zuletzt editiert von
                        #11

                        Ich bin auch für Suffix 'sync'. Das drückt am deutlichsten aus was passiert und ist für Anfänger sicher einfach zu verstehen.

                        Gesendet von meinem m8 mit Tapatalk

                        Persönlicher Support
                        Spenden -> paypal.me/J3YC33

                        1 Antwort Letzte Antwort
                        0
                        • frankjokeF Offline
                          frankjokeF Offline
                          frankjoke
                          schrieb am zuletzt editiert von
                          #12

                          Ich finde es eine gute Idee aber leider wird es nicht wirklich Synchron und einige Lewute noch mehr verwirren.

                          Es scheint so zu funktionieren dass nur die ioBroker-Funktionen synchron sind, aber nicht der restliche code.

                          Sorry, zu früh abgesendet:

                          Beispiel:

                          function inc(xxx) {
                          	var x = getState(xxx).val
                          	x = x +1;
                          	setState(xxx,x);
                          }
                          
                          inc(abc);
                          inc(abc);
                          
                          wird nicht funktionieren.
                          
                          

                          bin eher dafür neue Dinge mit neuen NodeJS-Sprachversionen zu implementieren,

                          Ein Beispiel sind Promises (wie ich sie verwende) oder auch in der ganz neuen Version Yields.

                          Frank,

                          NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                          Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

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

                            @fsjoke:

                            Ich finde es eine gute Idee aber leider wird es nicht wirklich Synchron und einige Lewute noch mehr verwirren.

                            Es scheint so zu funktionieren dass nur die ioBroker-Funktionen synchron sind, aber nicht der restliche code.

                            Sorry, zu früh abgesendet:

                            Beispiel:

                            function inc(xxx) {
                            	var x = getState(xxx).val
                            	x = x +1;
                            	setState(xxx,x);
                            }
                            
                            inc(abc);
                            inc(abc);
                            
                            wird nicht funktionieren.
                            
                            

                            bin eher dafür neue Dinge mit neuen NodeJS-Sprachversionen zu implementieren,

                            Ein Beispiel sind Promises (wie ich sie verwende) oder auch in der ganz neuen Version Yields. `
                            Genau das wird gehen Synchron.

                            1 Antwort Letzte Antwort
                            0
                            • frankjokeF Offline
                              frankjokeF Offline
                              frankjoke
                              schrieb am zuletzt editiert von
                              #14

                              @Bluefox:

                              Genau das wird gehen Synchron. `

                              Dann gibt's auc einen dicken 'Daumen'-hoch von mir, am besten mit Sync-Endung :)

                              Frank,

                              NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                              Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                              1 Antwort Letzte Antwort
                              0
                              • AlCalzoneA Offline
                                AlCalzoneA Offline
                                AlCalzone
                                Developer
                                schrieb am zuletzt editiert von
                                #15

                                Verstehe ich das richtig, dass das die Implementierung wird, die ich mir Anfang des Jahres gewünscht habe? Eine synchrone (Promise-) Kapselung um die asnychronen Methoden?

                                Denke dann macht xxxSync() Sinn, ist vom Verständnis her analog zu den NodeJS-Libraries.

                                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

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

                                  @AlCalzone:

                                  Verstehe ich das richtig, dass das die Implementierung wird, die ich mir Anfang des Jahres gewünscht habe? Eine synchrone (Promise-) Kapselung um die asnychronen Methoden?

                                  Denke dann macht xxxSync() Sinn, ist vom Verständnis her analog zu den NodeJS-Libraries. `
                                  Ne.. Promise ist doch Asynchron.

                                  Es geht tatsächlich um synchrone Ausführung, damit die Leute, die aus Arduino- oder SPS- Welt kommen, immer noch zurecht kommen.

                                  1 Antwort Letzte Antwort
                                  0
                                  • AlCalzoneA Offline
                                    AlCalzoneA Offline
                                    AlCalzone
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #17

                                    Ahhh…

                                    Na dann ist der Name xxxSync erst recht passend. Find ich super!

                                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                    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

                                    643

                                    Online

                                    32.4k

                                    Benutzer

                                    81.5k

                                    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