Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Einsteigerfragen
  4. Ext Website steuern (Enpal)

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    7
    1
    277

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    255

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    906

Ext Website steuern (Enpal)

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
12 Beiträge 4 Kommentatoren 166 Aufrufe 4 Beobachtet
  • Ä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.
  • K Offline
    K Offline
    ktsalti
    schrieb am zuletzt editiert von
    #2

    Hi,
    mit Hilfe der KI (Google) habe ich es hinbekommen. Anbei alle Informationen (auch von der KI) zusammengefasst.
    Ich habe es jetzt in 3x Scripten - geht vielleicht auch noch in ein Script - aber ich bin froh das es erstmal funktioniert und baue mir jetzt erstmal eine View.

    Anleitung: Website-Button über ioBroker klicken (Puppeteer)
    Diese Anleitung beschreibt, wie ein Button auf einer externen Webseite (z. B. Wallbox-Steuerung) automatisiert über ioBroker geklickt wird.

    1. Systemvorbereitung (Linux/Konsole)
      Damit der Browser (Chromium/Puppeteer) unter Linux (Debian/Ubuntu) korrekt startet, müssen notwendige Grafik-Bibliotheken installiert sein. Führe folgende Befehle per SSH aus:
    bash
    sudo apt-get update
    sudo apt-get install -y libnss3 libnspr4 libatk1.0-0t64 libatk-bridge2.0-0t64 libcups2t64 \
    libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 libasound2t64 \
    libpango-1.0-0 libcairo2 libxfixes3 libx11-6 libx11-xcb1 libxcb1 libxcursor1 libxi6 libxtst6
    

    Verwende Code mit Vorsicht.
    2. ioBroker Konfiguration

    1. Gehe zu Instanzen -> javascript.0 -> Einstellungen.
    2. Trage unter Zusätzliche NPM-Module das Wort puppeteer ein.
    3. Speichere die Einstellungen (der Adapter startet neu).
    4. Das Steuerungs-Skript
      Erstelle ein neues JavaScript im ioBroker und füge folgenden Code ein. Passe die URL und den Selektor ggf. an. Hier mein Beispiel für den Button SET SOLAR
    
    const puppeteer = require('puppeteer');
    
    async function wallboxKlick() {
        console.log('Starte Browser für Wallbox-Steuerung...');
        
        const browser = await puppeteer.launch({
            headless: true,
            args: ['--no-sandbox', '--disable-setuid-sandbox']
        });
    
        try {
            const page = await browser.newPage();
            
            // Timeout erhöhen, falls die Wallbox-Seite langsam lädt
            await page.goto('http://192.168.188.110/wallbox', { 
                waitUntil: 'networkidle2', 
                timeout: 30000 
            });
    
            // Dein kopierter Selektor
            const selector = 'body > div.page > main > div:nth-child(3) > div.mud-card-actions > button:nth-child(3) > span';
            
            // Warten, bis der Button im DOM erscheint
            await page.waitForSelector(selector, { visible: true, timeout: 10000 });
            
            // Klick ausführen
            await page.click(selector);
            
            console.log('Wallbox-Button Solar erfolgreich geklickt!');
        } catch (e) {
            console.error('Fehler beim Klicken des Wallbox-Buttons: ' + e.message);
        } finally {
            await browser.close();
            console.log('Browser geschlossen.');
        }
    }
    
    // Beispiel: Trigger über einen Datenpunkt (musst du ggf. anlegen)
    // Ersetze '0_userdata.0.wallbox_laden_start' durch deinen Datenpunkt
    on({id: '0_userdata.0.Wallbox.SET_SOLAR', val: true, ack: false}, (obj) => {
        wallboxKlick();
        // Optional: Datenpunkt wieder auf false setzen
        setState(obj.id, false, true);
    });
    

    Verwende Code mit Vorsicht.
    4. Fehlersuche
    Sollte der Browser nicht starten, prüfe mit folgendem Befehl in der Konsole, welche Bibliothek noch fehlt:
    ldd /home/iobroker/.cache/puppeteer/chrome/linux-XXXX/chrome-linux64/chrome | grep not


    OliverIOO 1 Antwort Letzte Antwort
    0
    • K ktsalti

      Hi,
      mit Hilfe der KI (Google) habe ich es hinbekommen. Anbei alle Informationen (auch von der KI) zusammengefasst.
      Ich habe es jetzt in 3x Scripten - geht vielleicht auch noch in ein Script - aber ich bin froh das es erstmal funktioniert und baue mir jetzt erstmal eine View.

      Anleitung: Website-Button über ioBroker klicken (Puppeteer)
      Diese Anleitung beschreibt, wie ein Button auf einer externen Webseite (z. B. Wallbox-Steuerung) automatisiert über ioBroker geklickt wird.

      1. Systemvorbereitung (Linux/Konsole)
        Damit der Browser (Chromium/Puppeteer) unter Linux (Debian/Ubuntu) korrekt startet, müssen notwendige Grafik-Bibliotheken installiert sein. Führe folgende Befehle per SSH aus:
      bash
      sudo apt-get update
      sudo apt-get install -y libnss3 libnspr4 libatk1.0-0t64 libatk-bridge2.0-0t64 libcups2t64 \
      libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 libasound2t64 \
      libpango-1.0-0 libcairo2 libxfixes3 libx11-6 libx11-xcb1 libxcb1 libxcursor1 libxi6 libxtst6
      

      Verwende Code mit Vorsicht.
      2. ioBroker Konfiguration

      1. Gehe zu Instanzen -> javascript.0 -> Einstellungen.
      2. Trage unter Zusätzliche NPM-Module das Wort puppeteer ein.
      3. Speichere die Einstellungen (der Adapter startet neu).
      4. Das Steuerungs-Skript
        Erstelle ein neues JavaScript im ioBroker und füge folgenden Code ein. Passe die URL und den Selektor ggf. an. Hier mein Beispiel für den Button SET SOLAR
      
      const puppeteer = require('puppeteer');
      
      async function wallboxKlick() {
          console.log('Starte Browser für Wallbox-Steuerung...');
          
          const browser = await puppeteer.launch({
              headless: true,
              args: ['--no-sandbox', '--disable-setuid-sandbox']
          });
      
          try {
              const page = await browser.newPage();
              
              // Timeout erhöhen, falls die Wallbox-Seite langsam lädt
              await page.goto('http://192.168.188.110/wallbox', { 
                  waitUntil: 'networkidle2', 
                  timeout: 30000 
              });
      
              // Dein kopierter Selektor
              const selector = 'body > div.page > main > div:nth-child(3) > div.mud-card-actions > button:nth-child(3) > span';
              
              // Warten, bis der Button im DOM erscheint
              await page.waitForSelector(selector, { visible: true, timeout: 10000 });
              
              // Klick ausführen
              await page.click(selector);
              
              console.log('Wallbox-Button Solar erfolgreich geklickt!');
          } catch (e) {
              console.error('Fehler beim Klicken des Wallbox-Buttons: ' + e.message);
          } finally {
              await browser.close();
              console.log('Browser geschlossen.');
          }
      }
      
      // Beispiel: Trigger über einen Datenpunkt (musst du ggf. anlegen)
      // Ersetze '0_userdata.0.wallbox_laden_start' durch deinen Datenpunkt
      on({id: '0_userdata.0.Wallbox.SET_SOLAR', val: true, ack: false}, (obj) => {
          wallboxKlick();
          // Optional: Datenpunkt wieder auf false setzen
          setState(obj.id, false, true);
      });
      

      Verwende Code mit Vorsicht.
      4. Fehlersuche
      Sollte der Browser nicht starten, prüfe mit folgendem Befehl in der Konsole, welche Bibliothek noch fehlt:
      ldd /home/iobroker/.cache/puppeteer/chrome/linux-XXXX/chrome-linux64/chrome | grep not


      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #3

      @ktsalti

      das mag zwar funktionieren, ist aber mit ganz schön overhead verbunden.
      im endeffekt lädt der im hintergrund einen browser und sagt dem dann, klick hier, klick da und lese dann das ergebnis von der webseite.

      besser wäre es die api direkt anzusteuern. dazu muss man aber die seite ein wenig reengineeren

      was du machen kannst um erstmal grundlagen zu schalfen

      • öffne im browser die seite
      • dann öffne die web developer tools im browser mit F12
      • dann gehen auf den Network tab. falls in der iste schon was drin steht, leere diese. in chrome sieht es dann so aus
        af38fb96-d6f2-47bd-a920-de4f9db7e256-image.jpeg
      • dann drücke einen knopf
      • es müssten dann 1 bis mehrere Zeilen erscheinen. Meist ist es die erste aber ggfs muss man mehrere Zeilen durchschauen. Jede Zeile entspricht einen http-request. Also Daten die an den Webserver (also dein Gerät) gesendet werden und die dazugehörige Antwort (wenn was gesendet wird
      • du schaust dann der reihe nach die zeilen an, an welchen link das gesendet wurde und ob das mit der funktion des knopfes irgendwie übereinstimmt. zusätzlich schaust du dir dann noch den untertab response an, ob da was drin steht
        -wenn du die richtige zeile gefunden hast, dann rechtsklick auf diese zeile und den requestbefehl aus dem kontextmenü "Copy -> Copy as fetch (node.js)" kopieren.

      Dann kann man weiterschauen.

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      1 Antwort Letzte Antwort
      1
      • K Offline
        K Offline
        ktsalti
        schrieb am zuletzt editiert von ktsalti
        #4

        Hi OliverIO,

        vielen Dank für deine Antwort!
        Leider passiert in den DEV-Tools unter Network garnichts, wenn ich auf den Button klicke.
        Das war meine (und sogar von der KI) erste Idee.

        Deshalb den Umweg. Bin natürlich für jede weitere Idee offen :)

        NegaleinN OliverIOO 2 Antworten Letzte Antwort
        0
        • K ktsalti

          Hi OliverIO,

          vielen Dank für deine Antwort!
          Leider passiert in den DEV-Tools unter Network garnichts, wenn ich auf den Button klicke.
          Das war meine (und sogar von der KI) erste Idee.

          Deshalb den Umweg. Bin natürlich für jede weitere Idee offen :)

          NegaleinN Offline
          NegaleinN Offline
          Negalein
          Global Moderator
          schrieb am zuletzt editiert von
          #5

          @ktsalti sagte:

          Leider passiert in den DEV-Tools unter Network garnichts, wenn ich auf den Button klicke.

          aktivier mal invert.
          Ist bei mir zumindest so.

          cc873ead-aa11-4314-98bb-bddd147f61dc-image.jpeg

          ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
          ° Node.js Fixer ---> iob nodejs-update
          ° Fixer ---> iob fix

          1 Antwort Letzte Antwort
          0
          • K ktsalti

            Hi OliverIO,

            vielen Dank für deine Antwort!
            Leider passiert in den DEV-Tools unter Network garnichts, wenn ich auf den Button klicke.
            Das war meine (und sogar von der KI) erste Idee.

            Deshalb den Umweg. Bin natürlich für jede weitere Idee offen :)

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von OliverIO
            #6

            @ktsalti

            All muss selektiert sein
            Und im Suchfeld darf auch nix drin stehen
            Sonst wird alles ausgefiltert

            Invert kehrt das Suchfeld glaube ich um

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            1 Antwort Letzte Antwort
            0
            • skvarelS Online
              skvarelS Online
              skvarel
              Developer
              schrieb am zuletzt editiert von skvarel
              #7

              Mit dem Thema habe ich mich intensiv beschäftigt, als ich den Enpal Adapter gebaut habe.

              Ein Steuern wird von Enpal nicht gedultet, es gibt auch keine API-Doku. Lediglich das Auslesen der Daten ist gestattet.

              EDIT:
              Enpal ist da sehr streng mit ihrem geschlossenen System. Es kann sogar zur Sperrung der lokalen Ui kommen (Info von deren IT)

              EDIT:
              Aus diesem Grund ist mein Enpal Adapter auch Read-Only, um nicht gegen deren Bestimmungen zu verstoßen.

              #TeamInventwo
              Unsere Adapter:
              Autodarts, FoxESS, Enpal, Life360ng, Tidy, vis-inventwo, vis-2-widgets-inventwo, vis-icontwo, vis-2-widgets-icontwo

              Wer uns mit einem Kaffee unterstützen möchte: PayPal

              1 Antwort Letzte Antwort
              1
              • K Offline
                K Offline
                ktsalti
                schrieb am zuletzt editiert von
                #8

                Ich habe nochmal mit den DEV-Tools rumgespielt - leider kein Erfolg. Es bleibt leer wenn ich den Button drücke. Mit und ohne Invert - beides ausprobiert.
                PS: Ein Reload der Seite bringt viele Daten. Aber das hilft ja nicht bei meinen Problem.

                Screenshot 2026-04-16 213446.png

                @skvarel
                wenn sie das umschalten per WebSite nicht erlauben würden, wäre es bestimmt nicht so sichtbar. Aber ja- man sollte es nicht übertreiben.
                Früher konnte man über die Enpal-Box noch viel mehr Sachen einstellen. Aber das ist verschwunden - aber auch besser so. Da konnte man echt viel kaputt machen. Habe selbst mal ausversehen was angeklickt und mein Speicher hat nicht mehr geladen...😕

                Ich werde es jetzt erstmal so weiterlaufen lassen - Vorbereitung für den Winter und die Tibber-Ladung, wenn die Sonne nicht mehr ausreicht

                Danke euch und Viele Grüße
                Marcus

                OliverIOO skvarelS 2 Antworten Letzte Antwort
                0
                • K ktsalti

                  Ich habe nochmal mit den DEV-Tools rumgespielt - leider kein Erfolg. Es bleibt leer wenn ich den Button drücke. Mit und ohne Invert - beides ausprobiert.
                  PS: Ein Reload der Seite bringt viele Daten. Aber das hilft ja nicht bei meinen Problem.

                  Screenshot 2026-04-16 213446.png

                  @skvarel
                  wenn sie das umschalten per WebSite nicht erlauben würden, wäre es bestimmt nicht so sichtbar. Aber ja- man sollte es nicht übertreiben.
                  Früher konnte man über die Enpal-Box noch viel mehr Sachen einstellen. Aber das ist verschwunden - aber auch besser so. Da konnte man echt viel kaputt machen. Habe selbst mal ausversehen was angeklickt und mein Speicher hat nicht mehr geladen...😕

                  Ich werde es jetzt erstmal so weiterlaufen lassen - Vorbereitung für den Winter und die Tibber-Ladung, wenn die Sonne nicht mehr ausreicht

                  Danke euch und Viele Grüße
                  Marcus

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #9

                  @ktsalti

                  Du hast jetzt das Suchfeld leer und invert angekreutzt. Das könnte schon ausfiltern.

                  Ganz ohne ein Request wäre seltsam.
                  Als Nächstes bleibt dann eigentlich nur noch websocket. Die Verbindung wurde dann aber bereits am Anfang aufgebaut.

                  Da wäre dann die Vorgehensweise

                  • Rekord der Seite mit F5
                  • Filtern auf socket
                  • dann in den Request rein klicken und im untertan dass auf messages gehen. Mit jedem Klick auf einen Knopf müssten dann mehr messages erscheinen

                  Websocket ist allerdings etwas aufwändiger zu programmieren

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  1 Antwort Letzte Antwort
                  0
                  • K ktsalti

                    Ich habe nochmal mit den DEV-Tools rumgespielt - leider kein Erfolg. Es bleibt leer wenn ich den Button drücke. Mit und ohne Invert - beides ausprobiert.
                    PS: Ein Reload der Seite bringt viele Daten. Aber das hilft ja nicht bei meinen Problem.

                    Screenshot 2026-04-16 213446.png

                    @skvarel
                    wenn sie das umschalten per WebSite nicht erlauben würden, wäre es bestimmt nicht so sichtbar. Aber ja- man sollte es nicht übertreiben.
                    Früher konnte man über die Enpal-Box noch viel mehr Sachen einstellen. Aber das ist verschwunden - aber auch besser so. Da konnte man echt viel kaputt machen. Habe selbst mal ausversehen was angeklickt und mein Speicher hat nicht mehr geladen...😕

                    Ich werde es jetzt erstmal so weiterlaufen lassen - Vorbereitung für den Winter und die Tibber-Ladung, wenn die Sonne nicht mehr ausreicht

                    Danke euch und Viele Grüße
                    Marcus

                    skvarelS Online
                    skvarelS Online
                    skvarel
                    Developer
                    schrieb am zuletzt editiert von skvarel
                    #10

                    @ktsalti .. ich habe mich etwas unglücklich ausgedrückt.

                    Ja, das Schalten über die Ui ist natürlich zulässig und gewollt. Es geht um automatisierte Zugriffe, die nicht gestattet sind. Ob Enpal kontrollieren kann, ob man den Button mit dem Finger oder einem Befehl drückt, bezweifle ich.

                    Ich schaue mir das aber auch mal an. Die Wallbox per VIS zu starten wäre schon nicht schlecht. Allerdings würde ich das bei mir auch nur als Script laufen lassen und es nicht in den Enpal Adapter übernehmen.

                    #TeamInventwo
                    Unsere Adapter:
                    Autodarts, FoxESS, Enpal, Life360ng, Tidy, vis-inventwo, vis-2-widgets-inventwo, vis-icontwo, vis-2-widgets-icontwo

                    Wer uns mit einem Kaffee unterstützen möchte: PayPal

                    1 Antwort Letzte Antwort
                    0
                    • K Offline
                      K Offline
                      ktsalti
                      schrieb am zuletzt editiert von
                      #11

                      @oliverio
                      ist das die richtige Stelle? Auch ohne das ich klicke, werden dort in Millisekunden-Bereich Messages geschickt.

                      Screenshot 2026-04-19 203559.png

                      OliverIOO 1 Antwort Letzte Antwort
                      0
                      • K ktsalti

                        @oliverio
                        ist das die richtige Stelle? Auch ohne das ich klicke, werden dort in Millisekunden-Bereich Messages geschickt.

                        Screenshot 2026-04-19 203559.png

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von
                        #12

                        @ktsalti

                        Ja das ist die richtige Stelle,
                        Die vielen nachrichten bedeuten das die Webseite Regelmäßig mit dem Server Daten austauscht.

                        Da du eine Nachricht markiert hast, sehe ich das der Inhalt leider binär Daten sind.
                        Jetzt wird es leider noch komplizierter. Jetzt müsste man das ebenfalls noch aufschlüsseln. Ohne Dokumentation wird das schwierig.
                        An der Stelle überwiegt dann der Aufwand den nutzen. Insbesondere dann, wenn die Firma da sagt das sie den Zugang nur sehr restriktiv handhaben.

                        Du kannst mal probieren mehrfach hintereinander einen Knopf zu drücken und schauen ob du den messages irgendwelche Unterschiede Gemeinsamkeiten findest die sich auf den Knopfdruck zurück führen lassen.

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        1 Antwort Letzte Antwort
                        0

                        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                        Registrieren Anmelden
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        261

                        Online

                        32.8k

                        Benutzer

                        82.8k

                        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