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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Best practise für Javascript

NEWS

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

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

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

Best practise für Javascript

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 539 Aufrufe 1 Watching
  • Ä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.
  • I Offline
    I Offline
    ignis-draco
    schrieb am zuletzt editiert von
    #1

    Hi Forum,

    Ich bin aktuell dabei einen sehr umfangreichen Telegram Bot zu schreiben. Mit dem ich alles mögliche Steuern möchte.
    Jedoch bin ich mir gerade nicht so ganz sicher ob die Struktur die ich bis jetzt habe sinnvoll ist.

    Kurz zu meiner Struktur bis jetzt:
    Ich habe eine subscribe Funktion die auf change: 'any' vom Telegram adapter reagiert.
    Da drin werte ich mit einem riesigen If else if die Eingabe aus und rufe andere Funktionen in der Datei auf um darauf zu reagieren.
    Dies hat den Nachteil das alles in einer Datei steht (außer ich mache alles Global) und das ganze sehr unübersichtlich wird.

    Mir stellt sich jetzt die Frage ob es nicht sinnvoller wäre für jede Funktion (Sprit preise, Heizungssteuerung, usw. ) eine eigene Datei anzulegen und mittels subscribe Funktion auf den passenden Befehl zu warten.
    Damit wäre alles übersichtlicher und vor allem Wartbarer.

    Was mich jetzt zögern lässt ist wie sieht es mit der Performance aus ? Aktuell wären es zwar nur 10 subscribe auf die gleiche id aber das kann und wird noch viel mehr werden.

    Wenn es ok oder sogar so gedacht ist das über subscribe Funktionen zu machen wie sieht es dann aus wenn man mittels RegExp die Value Variable genauer abgrenzt? Je Nach Implementierung müsste das doch besser sein als ein if in jeder subscribe Funktionen um auszuschließen das auf einen Falschen Befehl reagiert wird.

    Es wäre echt super wenn mir jemand einen Tipp geben könnte wie ich weiter machen soll. Mir fehlt leider die Erfahrung mit ioBroker und javascript um abschätzten zu können welcher der bessere weg für mich ist.

    Gruß
    Arne

    Proxmox [DMAF5] = LXC [Debian 12]
    ioBroker – apt-cacher – Semaphore – NGINX Proxy Manager – gitolite – LMS – tandoor – DokuWiki - paperless-ngx - unifi - mumble - wireguard - heimdall - planka - rustDesk - adguard

    paul53P 1 Antwort Letzte Antwort
    0
    • I ignis-draco

      Hi Forum,

      Ich bin aktuell dabei einen sehr umfangreichen Telegram Bot zu schreiben. Mit dem ich alles mögliche Steuern möchte.
      Jedoch bin ich mir gerade nicht so ganz sicher ob die Struktur die ich bis jetzt habe sinnvoll ist.

      Kurz zu meiner Struktur bis jetzt:
      Ich habe eine subscribe Funktion die auf change: 'any' vom Telegram adapter reagiert.
      Da drin werte ich mit einem riesigen If else if die Eingabe aus und rufe andere Funktionen in der Datei auf um darauf zu reagieren.
      Dies hat den Nachteil das alles in einer Datei steht (außer ich mache alles Global) und das ganze sehr unübersichtlich wird.

      Mir stellt sich jetzt die Frage ob es nicht sinnvoller wäre für jede Funktion (Sprit preise, Heizungssteuerung, usw. ) eine eigene Datei anzulegen und mittels subscribe Funktion auf den passenden Befehl zu warten.
      Damit wäre alles übersichtlicher und vor allem Wartbarer.

      Was mich jetzt zögern lässt ist wie sieht es mit der Performance aus ? Aktuell wären es zwar nur 10 subscribe auf die gleiche id aber das kann und wird noch viel mehr werden.

      Wenn es ok oder sogar so gedacht ist das über subscribe Funktionen zu machen wie sieht es dann aus wenn man mittels RegExp die Value Variable genauer abgrenzt? Je Nach Implementierung müsste das doch besser sein als ein if in jeder subscribe Funktionen um auszuschließen das auf einen Falschen Befehl reagiert wird.

      Es wäre echt super wenn mir jemand einen Tipp geben könnte wie ich weiter machen soll. Mir fehlt leider die Erfahrung mit ioBroker und javascript um abschätzten zu können welcher der bessere weg für mich ist.

      Gruß
      Arne

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @ignis-draco sagte:

      wie sieht es mit der Performance aus ?

      Auf die Performance hat es wenig Einfluss, der RAM-Verbrauch erhöht sich allerdings durch viele "subscribe".

      @ignis-draco sagte in Best practise für Javascript:

      mittels subscribe Funktion auf den passenden Befehl zu warten.

      Du meinst so ?

      on({id: idTelegram, val: 'Befehl 1'}, function() {}); 
      

      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

      I 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @ignis-draco sagte:

        wie sieht es mit der Performance aus ?

        Auf die Performance hat es wenig Einfluss, der RAM-Verbrauch erhöht sich allerdings durch viele "subscribe".

        @ignis-draco sagte in Best practise für Javascript:

        mittels subscribe Funktion auf den passenden Befehl zu warten.

        Du meinst so ?

        on({id: idTelegram, val: 'Befehl 1'}, function() {}); 
        
        I Offline
        I Offline
        ignis-draco
        schrieb am zuletzt editiert von
        #3

        @paul53 said in Best practise für Javascript:

        @ignis-draco sagte:

        wie sieht es mit der Performance aus ?

        Auf die Performance hat es wenig Einfluss, der RAM-Verbrauch erhöht sich allerdings durch viele "subscribe".

        Das ist schon mal sehr gut zu wissen. Dann werde ich das alles auseinander ziehen denn so
        wird es viele übersichtlicher.

        @ignis-draco sagte in Best practise für Javascript:

        mittels subscribe Funktion auf den passenden Befehl zu warten.

        Du meinst so ?

        on({id: idTelegram, val: 'Befehl 1'}, function() {}); 
        

        ja quasi nur halt mit RegExp damit ich am Anfang sofort erkennen ob es zu der Funktion gehört.

        on({ id: 'telegram.0.communicate.request', val: '%SECEDULE;(.*)' }, function (obj) {}
        

        Vielen dank für die Einschätzung paul53.

        Gruß
        Arne

        Proxmox [DMAF5] = LXC [Debian 12]
        ioBroker – apt-cacher – Semaphore – NGINX Proxy Manager – gitolite – LMS – tandoor – DokuWiki - paperless-ngx - unifi - mumble - wireguard - heimdall - planka - rustDesk - adguard

        paul53P 1 Antwort Letzte Antwort
        0
        • I ignis-draco

          @paul53 said in Best practise für Javascript:

          @ignis-draco sagte:

          wie sieht es mit der Performance aus ?

          Auf die Performance hat es wenig Einfluss, der RAM-Verbrauch erhöht sich allerdings durch viele "subscribe".

          Das ist schon mal sehr gut zu wissen. Dann werde ich das alles auseinander ziehen denn so
          wird es viele übersichtlicher.

          @ignis-draco sagte in Best practise für Javascript:

          mittels subscribe Funktion auf den passenden Befehl zu warten.

          Du meinst so ?

          on({id: idTelegram, val: 'Befehl 1'}, function() {}); 
          

          ja quasi nur halt mit RegExp damit ich am Anfang sofort erkennen ob es zu der Funktion gehört.

          on({ id: 'telegram.0.communicate.request', val: '%SECEDULE;(.*)' }, function (obj) {}
          

          Vielen dank für die Einschätzung paul53.

          Gruß
          Arne

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @ignis-draco sagte:

          mit RegExp

          RegExp für val: im Trigger funktioniert ?

          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

          I 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @ignis-draco sagte:

            mit RegExp

            RegExp für val: im Trigger funktioniert ?

            I Offline
            I Offline
            ignis-draco
            schrieb am zuletzt editiert von
            #5

            Hi

            @paul53 said in Best practise für Javascript:

            RegExp für val: im Trigger funktioniert ?

            Leider nicht. Sehr schade eigentlich. Aber zumindest sind meine Skripte jetzt viel übersichtlicher.

            Gruß
            Arne

            Proxmox [DMAF5] = LXC [Debian 12]
            ioBroker – apt-cacher – Semaphore – NGINX Proxy Manager – gitolite – LMS – tandoor – DokuWiki - paperless-ngx - unifi - mumble - wireguard - heimdall - planka - rustDesk - adguard

            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

            359

            Online

            32.4k

            Benutzer

            81.4k

            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