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. ioBroker Allgemein
  4. Parser

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    477

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

Parser

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
parser
108 Beiträge 3 Kommentatoren 9.6k Aufrufe 3 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.
  • OliverIOO OliverIO

    mir fällt auf, das in dem geposteten bild mit dem HTML gar kein Temperaturwert steht,
    sondern nur ein geschütztes Leerzeichen &nbsp
    Da du nach Zahlen mit \d suchst, findet er da nichts

    S Offline
    S Offline
    steinerma
    schrieb am zuletzt editiert von
    #5

    @OliverIO Hallo Oliver - das ist leider der Punkt - ich weiss nicht genau wie suchen, dass ich den Temperaturwert aus dem Quelltext erhalte. Habe mal den gesamten Quelltext gepostet (siehe meine Antwort weiter unten)

    1 Antwort Letzte Antwort
    0
    • S steinerma

      @Homoran Hallo, vielen Dank schon mal fürs Antworten. Den kompletten Seitenquelltext lege ich im Anhang bei
      Seitenquelltext.txt

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #6

      @steinerma In dem Quelltext versteckt sich keine Temperatur.

      Zumindest finde ich sie nicht, nur Definitionen von CSS-Klassen

      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 -

      S 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @steinerma In dem Quelltext versteckt sich keine Temperatur.

        Zumindest finde ich sie nicht, nur Definitionen von CSS-Klassen

        S Offline
        S Offline
        steinerma
        schrieb am zuletzt editiert von
        #7

        @Homoran Wenn ich mit dem Entwicklertool schaue, ist sie ersichtlich (siehe Anhang bei Mauszeiger). Sie ist zur Zeit 57.0°C

        Entwickertool_.jpg

        HomoranH 1 Antwort Letzte Antwort
        0
        • S steinerma

          @Homoran Wenn ich mit dem Entwicklertool schaue, ist sie ersichtlich (siehe Anhang bei Mauszeiger). Sie ist zur Zeit 57.0°C

          Entwickertool_.jpg

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von Homoran
          #8

          @steinerma Das ist zur Laufzeit über die Variablen S1 - R0 gefüllt aus einer anderen Quelle.
          Im Quelltext der Seite ist es nicht drin!

          <div id="schema">
          						<script language="JavaScript" type="text/javascript">
          						document.write ("<img src='default.jpg'>");
          						</script>
          						<div id="S1" class="moveablevaluetemp" >S1:&nbsp;</div>
          						<div id="S2" class="moveablevaluetemp" >S2:&nbsp;</div>
          						<div id="S3" class="moveablevaluetemp" >S3:&nbsp;</div>
          						<div id="S4" class="moveablevaluetemp" >S4:&nbsp;</div>
          						<div id="S5" class="moveablevaluetemp" >S5:&nbsp;</div>
          						<div id="S6" class="moveablevaluetemp" >S6:&nbsp;</div>
          						<div id="S7" class="moveablevaluetemp" >S7:&nbsp;</div>
          						<div id="Q" class="moveablevaluemisc" >Q:&nbsp;</div>
          						<div id="R1" class="moveablevalueout" >R1:&nbsp;</div>
          						<div id="R2" class="moveablevalueout" >R2:&nbsp;</div>
          						<div id="R3" class="moveablevalueout" >R3:&nbsp;</div>
          						<div id="R0" class="moveablevalueout" >R0:&nbsp;</div>
          					</div>
          

          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 -

          S 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @steinerma Das ist zur Laufzeit über die Variablen S1 - R0 gefüllt aus einer anderen Quelle.
            Im Quelltext der Seite ist es nicht drin!

            <div id="schema">
            						<script language="JavaScript" type="text/javascript">
            						document.write ("<img src='default.jpg'>");
            						</script>
            						<div id="S1" class="moveablevaluetemp" >S1:&nbsp;</div>
            						<div id="S2" class="moveablevaluetemp" >S2:&nbsp;</div>
            						<div id="S3" class="moveablevaluetemp" >S3:&nbsp;</div>
            						<div id="S4" class="moveablevaluetemp" >S4:&nbsp;</div>
            						<div id="S5" class="moveablevaluetemp" >S5:&nbsp;</div>
            						<div id="S6" class="moveablevaluetemp" >S6:&nbsp;</div>
            						<div id="S7" class="moveablevaluetemp" >S7:&nbsp;</div>
            						<div id="Q" class="moveablevaluemisc" >Q:&nbsp;</div>
            						<div id="R1" class="moveablevalueout" >R1:&nbsp;</div>
            						<div id="R2" class="moveablevalueout" >R2:&nbsp;</div>
            						<div id="R3" class="moveablevalueout" >R3:&nbsp;</div>
            						<div id="R0" class="moveablevalueout" >R0:&nbsp;</div>
            					</div>
            
            S Offline
            S Offline
            steinerma
            schrieb am zuletzt editiert von
            #9

            @Homoran Ups, heisst das es gibt keinen Weg, wie ich an die Daten ran komme?

            HomoranH OliverIOO 2 Antworten Letzte Antwort
            0
            • S steinerma

              @Homoran Ups, heisst das es gibt keinen Weg, wie ich an die Daten ran komme?

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von Homoran
              #10

              @steinerma sagte in Parser:

              @Homoran Ups, heisst das es gibt keinen Weg, wie ich an die Daten ran komme?

              Zumindest nicht über parsen dieser Seite

              EDIT:
              War der Wert zum Zeitpunkt des Quelltexts auch 57?

              Die finde ich auch woanders nicht

              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 -

              S 1 Antwort Letzte Antwort
              1
              • HomoranH Homoran

                @steinerma sagte in Parser:

                @Homoran Ups, heisst das es gibt keinen Weg, wie ich an die Daten ran komme?

                Zumindest nicht über parsen dieser Seite

                EDIT:
                War der Wert zum Zeitpunkt des Quelltexts auch 57?

                Die finde ich auch woanders nicht

                S Offline
                S Offline
                steinerma
                schrieb am zuletzt editiert von
                #11

                @Homoran Danke für deine Inputs :-)
                Leider kann ich den genauen Wert zum Zeitpunkt des Quelltexts nicht reproduzieren. Habe aber noch eine andere Seite gefunden, wo der Wert von S1 und die anderen Variablen vermutlich berechnet, respektive die Variablen definiert werden (Details siehe Anhang). Kannst du daraus etwas entnehmen?
                parser.txt

                OliverIOO 1 Antwort Letzte Antwort
                0
                • S steinerma

                  @Homoran Ups, heisst das es gibt keinen Weg, wie ich an die Daten ran komme?

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

                  @steinerma öffne deine Seite mit den Werten mal in Chrome oder Firefox
                  mit geöffneter Developer Console (F12)
                  Da gibt es einen Reiter irgendwas mit Netzwerk.
                  Darüber kannst du sehen welche Daten tatsächlich im Browser ankommen.
                  Evtl. hast du glück und deine Seite ruft per javascript direkt etwas mit JSON auf.
                  Filtere der Reihe nach mal nach
                  XHR,JS,Doc,WS (bei chrome)
                  XHR,JS,HTML,Websockets (bei firefox)

                  und schau dir den Inhalt der einzelnen Daten an, ob du da irgendwo deine Temperaturdaten findest.

                  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
                  • S steinerma

                    @Homoran Danke für deine Inputs :-)
                    Leider kann ich den genauen Wert zum Zeitpunkt des Quelltexts nicht reproduzieren. Habe aber noch eine andere Seite gefunden, wo der Wert von S1 und die anderen Variablen vermutlich berechnet, respektive die Variablen definiert werden (Details siehe Anhang). Kannst du daraus etwas entnehmen?
                    parser.txt

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

                    @steinerma habe mir gerade das javascript mal angeschaut.
                    die Datei heißt logging.txt und da müssten viele Hex-Zahlen drin stehen.
                    In der javascript steht halt drin, wie diese Werte dekodiert werden.
                    Ist aber etwas aufwändiger, ggfs. könnte man den code kopieren und teile davon anpassen, so dass er deine werte in die richtigen datenpunkte schreibt

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

                    S 1 Antwort Letzte Antwort
                    1
                    • OliverIOO OliverIO

                      @steinerma habe mir gerade das javascript mal angeschaut.
                      die Datei heißt logging.txt und da müssten viele Hex-Zahlen drin stehen.
                      In der javascript steht halt drin, wie diese Werte dekodiert werden.
                      Ist aber etwas aufwändiger, ggfs. könnte man den code kopieren und teile davon anpassen, so dass er deine werte in die richtigen datenpunkte schreibt

                      S Offline
                      S Offline
                      steinerma
                      schrieb am zuletzt editiert von
                      #14

                      @OliverIO Hallo Oliver, vielen Dank für deinen Input. Die logging.txt habe ich gefunden und ja, da stehen sehr viele Hex-Werte drin. Leider übersteigt dies meine Fähigkeiten bei weitem, ein skript hierfür zu erstellen. Ich denke ich muss hier aufgeben :-(.

                      OliverIOO 1 Antwort Letzte Antwort
                      0
                      • S steinerma

                        @OliverIO Hallo Oliver, vielen Dank für deinen Input. Die logging.txt habe ich gefunden und ja, da stehen sehr viele Hex-Werte drin. Leider übersteigt dies meine Fähigkeiten bei weitem, ein skript hierfür zu erstellen. Ich denke ich muss hier aufgeben :-(.

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

                        @steinerma steht eigentlich alles in der JS-Datei oben drin.
                        Betroffen sind nur 2-3 Funktionen.
                        Da muss man etwas anpassen. den Großteil des Skriptes kann man wegwerfen, da es irgendwelchen uhrzeiten gedönst betrifft.
                        an einer Stelle werden die Daten dann in ein Chart-Objekt geschrieben und dass muss ausgetauscht werden um es in Datenpunkte zu schreiben.
                        Was in diesem Skript allerdings nicht enthalten ist, ist der Punkt, wo die Daten an die Stellen, von oben geschrieben werden. Das muss noch ein anderes Skript sein

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

                        S 1 Antwort Letzte Antwort
                        1
                        • OliverIOO OliverIO

                          @steinerma steht eigentlich alles in der JS-Datei oben drin.
                          Betroffen sind nur 2-3 Funktionen.
                          Da muss man etwas anpassen. den Großteil des Skriptes kann man wegwerfen, da es irgendwelchen uhrzeiten gedönst betrifft.
                          an einer Stelle werden die Daten dann in ein Chart-Objekt geschrieben und dass muss ausgetauscht werden um es in Datenpunkte zu schreiben.
                          Was in diesem Skript allerdings nicht enthalten ist, ist der Punkt, wo die Daten an die Stellen, von oben geschrieben werden. Das muss noch ein anderes Skript sein

                          S Offline
                          S Offline
                          steinerma
                          schrieb am zuletzt editiert von
                          #16

                          @OliverIO hab noch die im Anhang befindlichen Skripte gefunden. Könnte das in einem von diesem stehen?

                          skript4.txt skript3.txt skript2.txt skript.txt

                          OliverIOO 1 Antwort Letzte Antwort
                          0
                          • S steinerma

                            @OliverIO hab noch die im Anhang befindlichen Skripte gefunden. Könnte das in einem von diesem stehen?

                            skript4.txt skript3.txt skript2.txt skript.txt

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

                            @steinerma
                            ok habs entschlüsselt.
                            Das Skript steht direkt in der html Seite.
                            Deine Werte werden so abgerufen:

                            function updateData()
                            {
                            sendRequest('medius_val.xml?dummy='+Math.round((Math.random()*99999999)), dataRequest);	
                            }
                            

                            und in
                            function dataRequest(req)
                            verarbeitet

                            Diese Funktion kann mehrere Datentypen verarbeiten.
                            Deine Temperaturen stehen nur in elementen mit einem ID S1,S2 usw

                            Die Daten werden in der dataRequest Funktion in diesem Bereich verarbeitet

                            			if(i < 7)
                            			{
                            				if(value > 32768)
                            				{
                            					value -= 65536;
                            				}
                            				
                            				var vdd = document.getElementById('S'+(i+1));
                            				vdd.innerHTML = 'S' + (i+1) + ': ' + (value/10).toFixed(1) + '°C';
                            			}
                            

                            Diese beiden Zeilen setzen den berechneten Termperaturwert dann in die HTML-Elemente

                            				var vdd = document.getElementById('S'+(i+1));
                            				vdd.innerHTML = 'S' + (i+1) + ': ' + (value/10).toFixed(1) + '°C';
                            

                            Wenn du nun Teile des Codes in sein Skript kopierst
                            function updateData() und function dataRequest und function convertAtoH
                            sowie die beiden zeilen dann oben gegen Code tauschst, der dir die Werte dann in Datenpunkte schreibst, dann könnte es tun

                            Die dataRequest funktion könnte dann so aussehen

                            function dataRequest(req)
                            {
                            	if (req.readyState == 4)
                            	{
                            		var string = req.responseText.substring(11);
                            		var size = convertAtoH(string,2);
                            		string = string.substring(2);
                            		string = string.substring(8);  // Timestamp übergehen
                            		var ertrag = 0;
                            		for (var i=0;i < (size/2);i++)
                            		{
                            			var value = convertAtoH(string,4);
                            			string = string.substring(4);
                            			//temps
                            			if(i < 7)
                            			{
                            				if(value > 32768)
                            				{
                            					value -= 65536;
                            				}
                            				
                            				//////Hier den Code für Datenpunkt schreiben einfügen
                                                            //////In i+1 steht dann die Nummer drin
                                                            ////// der Temperaturwert rechnet sich dann (value/10).toFixed(1)
                            			}
                            		}
                            	}
                            }
                            

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

                            S 1 Antwort Letzte Antwort
                            1
                            • OliverIOO OliverIO

                              @steinerma
                              ok habs entschlüsselt.
                              Das Skript steht direkt in der html Seite.
                              Deine Werte werden so abgerufen:

                              function updateData()
                              {
                              sendRequest('medius_val.xml?dummy='+Math.round((Math.random()*99999999)), dataRequest);	
                              }
                              

                              und in
                              function dataRequest(req)
                              verarbeitet

                              Diese Funktion kann mehrere Datentypen verarbeiten.
                              Deine Temperaturen stehen nur in elementen mit einem ID S1,S2 usw

                              Die Daten werden in der dataRequest Funktion in diesem Bereich verarbeitet

                              			if(i < 7)
                              			{
                              				if(value > 32768)
                              				{
                              					value -= 65536;
                              				}
                              				
                              				var vdd = document.getElementById('S'+(i+1));
                              				vdd.innerHTML = 'S' + (i+1) + ': ' + (value/10).toFixed(1) + '°C';
                              			}
                              

                              Diese beiden Zeilen setzen den berechneten Termperaturwert dann in die HTML-Elemente

                              				var vdd = document.getElementById('S'+(i+1));
                              				vdd.innerHTML = 'S' + (i+1) + ': ' + (value/10).toFixed(1) + '°C';
                              

                              Wenn du nun Teile des Codes in sein Skript kopierst
                              function updateData() und function dataRequest und function convertAtoH
                              sowie die beiden zeilen dann oben gegen Code tauschst, der dir die Werte dann in Datenpunkte schreibst, dann könnte es tun

                              Die dataRequest funktion könnte dann so aussehen

                              function dataRequest(req)
                              {
                              	if (req.readyState == 4)
                              	{
                              		var string = req.responseText.substring(11);
                              		var size = convertAtoH(string,2);
                              		string = string.substring(2);
                              		string = string.substring(8);  // Timestamp übergehen
                              		var ertrag = 0;
                              		for (var i=0;i < (size/2);i++)
                              		{
                              			var value = convertAtoH(string,4);
                              			string = string.substring(4);
                              			//temps
                              			if(i < 7)
                              			{
                              				if(value > 32768)
                              				{
                              					value -= 65536;
                              				}
                              				
                              				//////Hier den Code für Datenpunkt schreiben einfügen
                                                              //////In i+1 steht dann die Nummer drin
                                                              ////// der Temperaturwert rechnet sich dann (value/10).toFixed(1)
                              			}
                              		}
                              	}
                              }
                              
                              S Offline
                              S Offline
                              steinerma
                              schrieb am zuletzt editiert von
                              #18

                              @OliverIO wow Oliver, vielen Dank schon mal für das Entschlüsseln!!
                              Ich hab noch so meine Mühe wie ich das jetzt bewerkstelligen muss, da ich mich mit Skripten nicht wirklich auskenne.

                              Hier meine Fragen dazu:
                              Wenn du nun Teile des Codes in sein Skript kopierst function updateData() und function dataRequest und function convertAtoH --> welche Teile soll ich ich sein Skript schreiben? Und: kann ich überhaupt in sein Skript schreiben, da dieses ja auf einem Gerät (Regler von Solaranlage) läuft?

                              sowie die beiden Zeilen dann oben gegen Code tauschst, der dir die Werte dann in Datenpunkte schreibst, dann könnte es tun
                              ---> durch welchen Code austauschen? Hab da leider keine Ahnung davon, wie dieser Code ausschauen müsste :-(

                              			//////Hier den Code für Datenpunkt schreiben einfügen
                                                          //////In i+1 steht dann die Nummer drin
                                                          ////// der Temperaturwert rechnet sich dann (value/10).toFixed(1)
                              
                              OliverIOO 1 Antwort Letzte Antwort
                              0
                              • S steinerma

                                @OliverIO wow Oliver, vielen Dank schon mal für das Entschlüsseln!!
                                Ich hab noch so meine Mühe wie ich das jetzt bewerkstelligen muss, da ich mich mit Skripten nicht wirklich auskenne.

                                Hier meine Fragen dazu:
                                Wenn du nun Teile des Codes in sein Skript kopierst function updateData() und function dataRequest und function convertAtoH --> welche Teile soll ich ich sein Skript schreiben? Und: kann ich überhaupt in sein Skript schreiben, da dieses ja auf einem Gerät (Regler von Solaranlage) läuft?

                                sowie die beiden Zeilen dann oben gegen Code tauschst, der dir die Werte dann in Datenpunkte schreibst, dann könnte es tun
                                ---> durch welchen Code austauschen? Hab da leider keine Ahnung davon, wie dieser Code ausschauen müsste :-(

                                			//////Hier den Code für Datenpunkt schreiben einfügen
                                                            //////In i+1 steht dann die Nummer drin
                                                            ////// der Temperaturwert rechnet sich dann (value/10).toFixed(1)
                                
                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von OliverIO
                                #19

                                @steinerma
                                Nein, ich denke die Skripte sind vorgegeben, aber
                                iobroker hat ein skript engine,
                                da kann man eigene skripte anlegen, die regelmäßig ausgeführt werden.
                                Wie man von dort aus Datenpunkte schreibt weiß ich nicht genau, aber hier im Forum
                                gibt es genügen Hilfe dazu.

                                Könnte eine kleine challenge für dich werden, ab so lernt man neue Sachen. So schwer ist es nicht, aber man muss sich am Anfang etwas durchbeißen.

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

                                S HomoranH 3 Antworten Letzte Antwort
                                1
                                • OliverIOO OliverIO

                                  @steinerma
                                  Nein, ich denke die Skripte sind vorgegeben, aber
                                  iobroker hat ein skript engine,
                                  da kann man eigene skripte anlegen, die regelmäßig ausgeführt werden.
                                  Wie man von dort aus Datenpunkte schreibt weiß ich nicht genau, aber hier im Forum
                                  gibt es genügen Hilfe dazu.

                                  Könnte eine kleine challenge für dich werden, ab so lernt man neue Sachen. So schwer ist es nicht, aber man muss sich am Anfang etwas durchbeißen.

                                  S Offline
                                  S Offline
                                  steinerma
                                  schrieb am zuletzt editiert von
                                  #20

                                  @OliverIO o.k. ich versuchs mal :-) hab vielen Dank für deine Hilfe - ich weiss dies sehr zu schätzen! Auf ein andermal

                                  1 Antwort Letzte Antwort
                                  0
                                  • OliverIOO OliverIO

                                    @steinerma
                                    Nein, ich denke die Skripte sind vorgegeben, aber
                                    iobroker hat ein skript engine,
                                    da kann man eigene skripte anlegen, die regelmäßig ausgeführt werden.
                                    Wie man von dort aus Datenpunkte schreibt weiß ich nicht genau, aber hier im Forum
                                    gibt es genügen Hilfe dazu.

                                    Könnte eine kleine challenge für dich werden, ab so lernt man neue Sachen. So schwer ist es nicht, aber man muss sich am Anfang etwas durchbeißen.

                                    HomoranH Nicht stören
                                    HomoranH Nicht stören
                                    Homoran
                                    Global Moderator Administrators
                                    schrieb am zuletzt editiert von
                                    #21

                                    Hallo @OliverIO ,
                                    jetzt bist du für mich der mögliche Held.

                                    ich habe diesen Thread weiterverfolgt, aber fast nichts verstanden.
                                    Prompt habe ich einen ähnlichen Anwendungsfall.
                                    Gestern fiel auf einmal mein Wechselrichter aus.
                                    Die Geschichte dazu lass ich mal aus.
                                    Fazit ist, dass ein Fehlercode im Display stand an den ich nicht wirklich rankomme.
                                    Laut Aussage von Kostal soll man im Handbuch nachsehen.
                                    Da steht erst ein 404 dann nach weiterem Suchen nur der Link zur WebUI

                                    Die sieht so aus:
                                    Helios_error_WebUI.png

                                    Der Quellcode ist mit dem im Thread vergleichbar. Der Wert wird irgendwie dazu geholt:

                                    
                                    <!DOCTYPE html>
                                    <html ng-app="kbApp" ng-controller="kbAppCtrl">
                                    <head>
                                      <link rel="icon" href="/assets/favicon.ico">
                                      <title ng-bind="inverterTypeName + ' <> ' + inverterName"></title>
                                      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
                                      <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
                                      <!--Deaktivate Chaching to avoid problems-->
                                      <meta http-equiv="cache-control: private, max-age=0, no-cache" content="no-store" />
                                      <meta http-equiv="expires" content="0" />
                                      <meta http-equiv="pragma" content="no-cache" />
                                    
                                      <!-- compiled CSS -->
                                      <link rel="stylesheet" type="text/css" href="assets/kbApp-1.1.1.css"/>
                                      
                                    </head>
                                    <body>
                                    <!-- Loading -->
                                    <div kb-Hide-After-Init class = "loader" style="z-index: 3000">
                                      <div class="loader-inner-big">
                                         <i class="icon-spinner animate-spin"></i>
                                         <div id="errorMsg"></div>
                                      </div>
                                    </div>
                                    <!-- Page -->
                                    <div class="kbContainer">
                                      <div class="kbBanner">
                                         <div class="kbLogoPrim"></div>
                                         <div class="kbLogoSec"></div>
                                         <div class="kbLanguageSelectBar" ng-controller="languageSelCtrl">
                                            <div ng-repeat="language in languages">
                                               <div kb-language-select-item></div>
                                            </div>
                                         </div>
                                      </div>
                                      <div class="kbPage">
                                         <div class="kbDivider"></div>
                                         <div class="kbNav" ng-controller="navigationCtrl">
                                            <kb-navigation nodes="menu"></kb-navigation>
                                            <div class="kbLogoSlogan"></div>
                                         </div>
                                         <div class="kbContent">
                                            <div class="kbContentHeading">
                                               <div class="kbInfo">
                                                  <div class="kbInverter">
                                                     <span class="inverterType"> {{inverterTypeName}}</span>
                                                     <span class="inverterName"> ({{inverterName}})</span>
                                                  </div>
                                                  <div class="kbUserAndDate">
                                                     <div><i class="icon-calendar"><span>{{appDate | date:'short'}}</span></i></div>
                                                     <div><i class="icon-user"><span>{{appUserTranslationId | translate}}</span></i></div>
                                                  </div>
                                               </div>
                                               <div class="kbNavTitle" ng-controller="navigationCtrl">
                                                  <kb-navigation-breadcrumb breadcrumbs="breadcrumbs"></kb-navigation-breadcrumb>
                                               </div>
                                            </div>
                                            <div class="kbContentView">
                                               <div ng-show="appPageInfo.loadingInProgress" ng-cloak class = "loader" style="z-index: 2000">
                                                  <div class="loader-inner">
                                                     <i class="icon-spinner animate-spin"></i>
                                                  </div>
                                               </div>
                                               <div ng-show="appPageInfo.loadingFailed" ng-cloak class = "loader" style="z-index: 2000">
                                                  <div class="loader-inner">
                                                     <i class="icon-error"></i>
                                                  </div>
                                               </div>
                                               <div ng-show="appPageInfo.submitInProgress" ng-cloak class = "loader-transparent" style="z-index: 2000">
                                                  <div class="loader-inner">
                                                     <i class="icon-spinner animate-spin"></i>
                                                  </div>
                                               </div>
                                               <div class="kbView" ng-view></div>
                                               <div class="kbViewInfo" ng-show="appPageInfo.submitSuccessful || appPageInfo.submitFailed">
                                                  <div ng-show="appPageInfo.submitSuccessful">
                                                     <i class="icon-ok info-ok">{{appPageInfo.displayMsgId | translate}}</i>
                                                  </div>
                                                  <div ng-show="appPageInfo.submitFailed">
                                                     <i class="icon-error info-error">{{appPageInfo.displayMsgId | translate}}</i>
                                                  </div>
                                               </div>
                                            </div>
                                         </div>
                                      </div>
                                      <div class="kbFooter">
                                         <div class="kbWebversion">v1.1.1</div>
                                      </div>
                                    </div>
                                    
                                    <!-- compiled JavaScript -->
                                    <script type="text/javascript" src="assets/kbApp-1.1.1.js"></script>
                                    
                                    </body>
                                    </html>
                                    

                                    Meiner Meinung muss der Fehler im unteren Abschnitt bei

                                                   <div ng-show="appPageInfo.submitSuccessful">
                                                      <i class="icon-ok info-ok">{{appPageInfo.displayMsgId | translate}}</i>
                                                   </div>
                                                   <div ng-show="appPageInfo.submitFailed">
                                                      <i class="icon-error info-error">{{appPageInfo.displayMsgId | translate}}</i>
                                                   </div>
                                    

                                    gezogen werden

                                    Hast du da vielleicht auch einen Ansatz?

                                    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 -

                                    OliverIOO 1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Homoran

                                      Hallo @OliverIO ,
                                      jetzt bist du für mich der mögliche Held.

                                      ich habe diesen Thread weiterverfolgt, aber fast nichts verstanden.
                                      Prompt habe ich einen ähnlichen Anwendungsfall.
                                      Gestern fiel auf einmal mein Wechselrichter aus.
                                      Die Geschichte dazu lass ich mal aus.
                                      Fazit ist, dass ein Fehlercode im Display stand an den ich nicht wirklich rankomme.
                                      Laut Aussage von Kostal soll man im Handbuch nachsehen.
                                      Da steht erst ein 404 dann nach weiterem Suchen nur der Link zur WebUI

                                      Die sieht so aus:
                                      Helios_error_WebUI.png

                                      Der Quellcode ist mit dem im Thread vergleichbar. Der Wert wird irgendwie dazu geholt:

                                      
                                      <!DOCTYPE html>
                                      <html ng-app="kbApp" ng-controller="kbAppCtrl">
                                      <head>
                                        <link rel="icon" href="/assets/favicon.ico">
                                        <title ng-bind="inverterTypeName + ' <> ' + inverterName"></title>
                                        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
                                        <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
                                        <!--Deaktivate Chaching to avoid problems-->
                                        <meta http-equiv="cache-control: private, max-age=0, no-cache" content="no-store" />
                                        <meta http-equiv="expires" content="0" />
                                        <meta http-equiv="pragma" content="no-cache" />
                                      
                                        <!-- compiled CSS -->
                                        <link rel="stylesheet" type="text/css" href="assets/kbApp-1.1.1.css"/>
                                        
                                      </head>
                                      <body>
                                      <!-- Loading -->
                                      <div kb-Hide-After-Init class = "loader" style="z-index: 3000">
                                        <div class="loader-inner-big">
                                           <i class="icon-spinner animate-spin"></i>
                                           <div id="errorMsg"></div>
                                        </div>
                                      </div>
                                      <!-- Page -->
                                      <div class="kbContainer">
                                        <div class="kbBanner">
                                           <div class="kbLogoPrim"></div>
                                           <div class="kbLogoSec"></div>
                                           <div class="kbLanguageSelectBar" ng-controller="languageSelCtrl">
                                              <div ng-repeat="language in languages">
                                                 <div kb-language-select-item></div>
                                              </div>
                                           </div>
                                        </div>
                                        <div class="kbPage">
                                           <div class="kbDivider"></div>
                                           <div class="kbNav" ng-controller="navigationCtrl">
                                              <kb-navigation nodes="menu"></kb-navigation>
                                              <div class="kbLogoSlogan"></div>
                                           </div>
                                           <div class="kbContent">
                                              <div class="kbContentHeading">
                                                 <div class="kbInfo">
                                                    <div class="kbInverter">
                                                       <span class="inverterType"> {{inverterTypeName}}</span>
                                                       <span class="inverterName"> ({{inverterName}})</span>
                                                    </div>
                                                    <div class="kbUserAndDate">
                                                       <div><i class="icon-calendar"><span>{{appDate | date:'short'}}</span></i></div>
                                                       <div><i class="icon-user"><span>{{appUserTranslationId | translate}}</span></i></div>
                                                    </div>
                                                 </div>
                                                 <div class="kbNavTitle" ng-controller="navigationCtrl">
                                                    <kb-navigation-breadcrumb breadcrumbs="breadcrumbs"></kb-navigation-breadcrumb>
                                                 </div>
                                              </div>
                                              <div class="kbContentView">
                                                 <div ng-show="appPageInfo.loadingInProgress" ng-cloak class = "loader" style="z-index: 2000">
                                                    <div class="loader-inner">
                                                       <i class="icon-spinner animate-spin"></i>
                                                    </div>
                                                 </div>
                                                 <div ng-show="appPageInfo.loadingFailed" ng-cloak class = "loader" style="z-index: 2000">
                                                    <div class="loader-inner">
                                                       <i class="icon-error"></i>
                                                    </div>
                                                 </div>
                                                 <div ng-show="appPageInfo.submitInProgress" ng-cloak class = "loader-transparent" style="z-index: 2000">
                                                    <div class="loader-inner">
                                                       <i class="icon-spinner animate-spin"></i>
                                                    </div>
                                                 </div>
                                                 <div class="kbView" ng-view></div>
                                                 <div class="kbViewInfo" ng-show="appPageInfo.submitSuccessful || appPageInfo.submitFailed">
                                                    <div ng-show="appPageInfo.submitSuccessful">
                                                       <i class="icon-ok info-ok">{{appPageInfo.displayMsgId | translate}}</i>
                                                    </div>
                                                    <div ng-show="appPageInfo.submitFailed">
                                                       <i class="icon-error info-error">{{appPageInfo.displayMsgId | translate}}</i>
                                                    </div>
                                                 </div>
                                              </div>
                                           </div>
                                        </div>
                                        <div class="kbFooter">
                                           <div class="kbWebversion">v1.1.1</div>
                                        </div>
                                      </div>
                                      
                                      <!-- compiled JavaScript -->
                                      <script type="text/javascript" src="assets/kbApp-1.1.1.js"></script>
                                      
                                      </body>
                                      </html>
                                      

                                      Meiner Meinung muss der Fehler im unteren Abschnitt bei

                                                     <div ng-show="appPageInfo.submitSuccessful">
                                                        <i class="icon-ok info-ok">{{appPageInfo.displayMsgId | translate}}</i>
                                                     </div>
                                                     <div ng-show="appPageInfo.submitFailed">
                                                        <i class="icon-error info-error">{{appPageInfo.displayMsgId | translate}}</i>
                                                     </div>
                                      

                                      gezogen werden

                                      Hast du da vielleicht auch einen Ansatz?

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

                                      @Homoran die Seite wurde in Angular geschrieben. Ich glaube das ist von Google. Es erleichtert einem eine ein Seiten Applikation zu schreiben.
                                      Ein Programmierer hat ja immer die Möglichkeit zu entscheiden, ob er das fertige HTML Ergebnis bereits auf dem Server generiert. Nachteil es müssen immer sehr viele Daten geladen werden. Das macht dynamische Seiten immer etwas träge.
                                      Die andere Alternative ist, den eigentlichen Anzeige Rahmen in (HTML) einmal zu übertragen, und nur die eigentlichen Daten immer mit dem Server auszutauschen.

                                      Das ist bei den moderneren Web Anwendungen fast immer der Fall.
                                      Deswegen auch hier mein Vorschlag über die Developer Konsole von Chrome oder Firefox einmal auf die übertragenen Daten zu schauen.

                                      Näheres habe ich in der Post hier oben beschrieben
                                      https://forum.iobroker.net/topic/30628/parser/12
                                      Wenn die Daten dann codiert oder gar verschlüsselt vorliegen, dann wird es schwieriger. Dann muss man den Code analysieren. Grundsätzlich gilt alles was der Browser anzeigen kann kann man auch irgendwo anderst auswerten.

                                      Poste auch einmal den Inhalt der folgenden Datei
                                      assets/kbApp-1.1.1.js

                                      Was ist dein eigentliches Ziel? Den Fehlercode in einen Datenpunkt Zu schreiben? Dann kannst du dir noch überlegen was passiert wenn mehr wie ein Fehlercode in dieser Auflistung steht.

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

                                      HomoranH 3 Antworten Letzte Antwort
                                      1
                                      • OliverIOO OliverIO

                                        @Homoran die Seite wurde in Angular geschrieben. Ich glaube das ist von Google. Es erleichtert einem eine ein Seiten Applikation zu schreiben.
                                        Ein Programmierer hat ja immer die Möglichkeit zu entscheiden, ob er das fertige HTML Ergebnis bereits auf dem Server generiert. Nachteil es müssen immer sehr viele Daten geladen werden. Das macht dynamische Seiten immer etwas träge.
                                        Die andere Alternative ist, den eigentlichen Anzeige Rahmen in (HTML) einmal zu übertragen, und nur die eigentlichen Daten immer mit dem Server auszutauschen.

                                        Das ist bei den moderneren Web Anwendungen fast immer der Fall.
                                        Deswegen auch hier mein Vorschlag über die Developer Konsole von Chrome oder Firefox einmal auf die übertragenen Daten zu schauen.

                                        Näheres habe ich in der Post hier oben beschrieben
                                        https://forum.iobroker.net/topic/30628/parser/12
                                        Wenn die Daten dann codiert oder gar verschlüsselt vorliegen, dann wird es schwieriger. Dann muss man den Code analysieren. Grundsätzlich gilt alles was der Browser anzeigen kann kann man auch irgendwo anderst auswerten.

                                        Poste auch einmal den Inhalt der folgenden Datei
                                        assets/kbApp-1.1.1.js

                                        Was ist dein eigentliches Ziel? Den Fehlercode in einen Datenpunkt Zu schreiben? Dann kannst du dir noch überlegen was passiert wenn mehr wie ein Fehlercode in dieser Auflistung steht.

                                        HomoranH Nicht stören
                                        HomoranH Nicht stören
                                        Homoran
                                        Global Moderator Administrators
                                        schrieb am zuletzt editiert von
                                        #23

                                        @OliverIO erst einmal Danke!

                                        Mache ich sobald ich wieder an der Installation bin

                                        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
                                        • OliverIOO OliverIO

                                          @Homoran die Seite wurde in Angular geschrieben. Ich glaube das ist von Google. Es erleichtert einem eine ein Seiten Applikation zu schreiben.
                                          Ein Programmierer hat ja immer die Möglichkeit zu entscheiden, ob er das fertige HTML Ergebnis bereits auf dem Server generiert. Nachteil es müssen immer sehr viele Daten geladen werden. Das macht dynamische Seiten immer etwas träge.
                                          Die andere Alternative ist, den eigentlichen Anzeige Rahmen in (HTML) einmal zu übertragen, und nur die eigentlichen Daten immer mit dem Server auszutauschen.

                                          Das ist bei den moderneren Web Anwendungen fast immer der Fall.
                                          Deswegen auch hier mein Vorschlag über die Developer Konsole von Chrome oder Firefox einmal auf die übertragenen Daten zu schauen.

                                          Näheres habe ich in der Post hier oben beschrieben
                                          https://forum.iobroker.net/topic/30628/parser/12
                                          Wenn die Daten dann codiert oder gar verschlüsselt vorliegen, dann wird es schwieriger. Dann muss man den Code analysieren. Grundsätzlich gilt alles was der Browser anzeigen kann kann man auch irgendwo anderst auswerten.

                                          Poste auch einmal den Inhalt der folgenden Datei
                                          assets/kbApp-1.1.1.js

                                          Was ist dein eigentliches Ziel? Den Fehlercode in einen Datenpunkt Zu schreiben? Dann kannst du dir noch überlegen was passiert wenn mehr wie ein Fehlercode in dieser Auflistung steht.

                                          HomoranH Nicht stören
                                          HomoranH Nicht stören
                                          Homoran
                                          Global Moderator Administrators
                                          schrieb am zuletzt editiert von
                                          #24

                                          @OliverIO sagte in Parser:

                                          Was ist dein eigentliches Ziel? Den Fehlercode in einen Datenpunkt Zu schreiben?

                                          Ja!
                                          und dannin Klartext umwandeln - Habe vom Solarteur die Codeliste bekommen

                                          und ggf. einen Alarm mit Meldung lostreten

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          540

                                          Online

                                          32.5k

                                          Benutzer

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