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
    5
    1
    177

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    193

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

Ext Website steuern (Enpal)

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
10 Beiträge 4 Kommentatoren 114 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
    #1

    Hallo zusammen,

    ich möchte gerne über eine Website meine Wallbox steuern. Es ist eine interne Seite ohne Login von Enpal. Anbei ein Screenshot.
    Ich habe es mir über die Entwicklertools angeschaut aber komme da nicht weiter. Die Buttons (Set Eco, Set Solar... etc) kann ich leider nicht anklicken und Hyperlink kopieren - so wie ich es gehofft habt :).

    Hat jemand eine Idee?

    Screenshot 2026-04-14 234001.png

    1 Antwort Letzte Antwort
    0
    • 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 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 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 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

                      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

                      512

                      Online

                      32.8k

                      Benutzer

                      82.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