Die Kommunikation (lesen und schreiben) via API funktioniert nach Erhalt des Syntax vom Lieferant. Getestet habe ich mit Postman und umgesetzt mit Node Red.
Das Auslesen der Daten über die Website verfolge ich nicht mehr weiter.
Nochmals vielen Dank für die Unterstützung und die Tipps.
NEWS

Best posts made by bugs
-
RE: Bestimmte Daten aus einer Webseite auslesen und steuern
Latest posts made by bugs
-
RE: FATAL ERROR: Reached heap limit Allocation failed JavaS....
@thomas-braun sagte in FATAL ERROR: Reached heap limit Allocation failed JavaS....:
@bugs sagte in FATAL ERROR: Reached heap limit Allocation failed JavaS....:
Dass der Desktop suboptimal ist ist mir bewusst, solange jedoch alles ohne Probleme läuft behalte ich die Version mit Desktop.
Wozu? Macht das Ganze nur unnötig komplex. Updates sind aufwändiger, Sicherheitslücken wahrscheinlicher (mehr Code da unnötigerweise mitläuft), Ressourcen werden verballert usw.
Ein Desktop ist auf einem Server überflüssig wie ein Kropf.
Da ich nicht häufig mit Linux arbeite sind mir die Befehle und der Syntax im Terminal nicht geläufig.
Für mich ist dann die Bedienung über den Desktop z.B. Dateimanager, Geany oder das Kopieren der Speicherkarte mit 'SD Card Copier' usw. einfacher, übersichtlicher und schneller. -
RE: FATAL ERROR: Reached heap limit Allocation failed JavaS....
@marc-berg
Vielen Dank für die rasche Antwort und treffende, fachkundige Rückmeldung.Der Raspberry läuft nun seit 24h ohne Absturz, ich bin sehr zuversichtlich dass die projektierte Speichergzuweisung zu knapp war. Neu ist sie auf 256 MB eingestellt, wie von dir vorgeschlagen. Der aktuelle "heapUsed" Wert liegt aktuell im Bereich 130MB bis 145MB, sollte der Wert steigen werde ich die Speicherzuweisung weiter erhöhen.
@Codierknecht
Dass der Desktop suboptimal ist ist mir bewusst, solange jedoch alles ohne Probleme läuft behalte ich die Version mit Desktop. -
FATAL ERROR: Reached heap limit Allocation failed JavaS....
Hallo
Ich habe einen Raspberry 4B+ 4GB mit einer SDD 120GB neu aufgesetzt und IoBroker installiert.
Soweit funktioniert alles wie es soll ausser dass gelegentlich, ca. einmal pro Tag, IoBroker (Node Red) abstürzt und aber sofort automatisch wieder startet. Meistens geschieht das am Morgen wenn die Benutzeroberfläche (Projektiert in Node Red) geöffnet wird. Solange am System, insbesondere in Node Red projektiert wird gab es auch über längere Zeit kein Absturtz.
Auf dem Raspberry läuft nur der IoBroker und das integrierte Node Red. Node Red dient für verschiedene Kommunikationen und für die Visualisierung und Bedienung.Folgendes zeigt iob diag:
Ausschnitt aus der Log-Datei von iobroker:
<--- Last few GCs ---> [2335:0x3fa20cd0] 58199875 ms: Scavenge (reduce) 125.2 (129.9) -> 125.1 (130.9) MB, 3.72 / 0.00 ms (average mu = 0.997, current mu = 0.353) allocation failure; [2335:0x3fa20cd0] 58200056 ms: Mark-Compact (reduce) 126.1 (130.9) -> 125.7 (131.9) MB, 132.68 / 0.01 ms (average mu = 0.993, current mu = 0.484) allocation failure; scavenge might not succeed <--- JS stacktrace ---> FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory ----- Native stack trace ----- 1: 0xb8859c node::OOMErrorHandler(char const*, v8::OOMDetails const&) [node-red] 2025-08-05 08:02:24.711 - [33mwarn[39m: node-red.0 (2145) 2: 0xecd59c v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node-red] 3: 0xecd76c v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node-red] 4: 0x10d53fc [node-red] 5: 0x10eb8d4 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node-red] 6: 0x10c463c v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node-red] 7: 0x10c5400 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node-red] 8: 0x10a4420 v8::internal::Factory::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [node-red] 9: 0x1095c98 v8::internal::FactoryBase<v8::internal::Factory>::AllocateRawWithImmortalMap(int, v8::internal::AllocationType, v8::internal::Map, v8::internal::AllocationAlignment) [node-red] 10: 0x109845c v8::internal::FactoryBase<v8::internal::Factory>::NewRawOneByteString(int, v8::internal::AllocationType) [node-red] 11: 0x150aef0 v8::internal::IncrementalStringBuilder::Extend() [node-red] 12: 0x11f79e8 v8::internal::JsonStringifier::SerializeDouble(double) [node-red] 13: 0x11fdca4 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node-red] 14: 0x11fd8d0 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node-red] 15: 0x11fb38c v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node-red] 16: 0x11fb6f8 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node-red] 17: 0x11fdca4 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node-red] 18: 0x11fb38c v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node-red] 19: 0x11fdca4 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node-red] 20: 0x11fd8d0 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node-red] 21: 0x11fe8e0 v8::internal::JsonStringify(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [node-red] 22: 0xf603c0 v8::internal::Builtin_JsonStringify(int, unsigned long*, v8::internal::Isolate*) [node-red] 23: 0x18b7964 [node-red] 2025-08-05 08:02:24.749 - [32minfo[39m: node-red.0 (2145) Node-RED exited with null
Wenn ich das richtig intepretiere gibt es einen Speicherüberlauf durch die Ausführung eines JavaScript innerhlab von Node Red.
Wie finde ich die Ursache des Problems (Vorgehen)?
Vielen Dank
Heinz -
RE: Bestimmte Daten aus einer Webseite auslesen und steuern
Die Kommunikation (lesen und schreiben) via API funktioniert nach Erhalt des Syntax vom Lieferant. Getestet habe ich mit Postman und umgesetzt mit Node Red.
Das Auslesen der Daten über die Website verfolge ich nicht mehr weiter.
Nochmals vielen Dank für die Unterstützung und die Tipps. -
RE: Bestimmte Daten aus einer Webseite auslesen und steuern
Ich erstellte noch einige Screenshot die eventuell helfen meine Idee, die Selection einer Variablen (Wassertemperatur), umzusetzen.
Screenshots_HTML.pdf@OliverIO
Unter Network gibt es ein ajax.php (siehe Screenshot), vielleicht hilft das weiter. -
RE: Bestimmte Daten aus einer Webseite auslesen und steuern
@OliverIO
Die Screenshots sind aus dem Reiter Network, der Reiter Response war immer leer. -
RE: Bestimmte Daten aus einer Webseite auslesen und steuern
@OliverIO Hier einige Screenshots, vielleicht helfen die weiter, dort kann ich jedoch die Wassertemperatur nicht finden.
Screenshots_HTML-Seite.pdf
Heisst das jetzt, dass die Daten vom Server nicht direkt zur Verfügung gestellt werden und somit nicht einfach mit Select erfasst werden können? -
RE: Bestimmte Daten aus einer Webseite auslesen und steuern
@rewenode Hier die gespeicherte HTML-Seite:
Anlage Control 1.2 GatewayControl 1.2.html -
RE: Bestimmte Daten aus einer Webseite auslesen und steuern
Da ich vom Lieferant betreffend API immer noch keine näheren Infos erhalten habe versuche ich die Daten via html und Selector herauszufiltern. Wenn ich jedoch mit Chrome-Entwicklertools unter Elements nach der Wassertemperatur suche kann ich diese nicht finden. Liegt das eventuell daran, dass der Server die Daten erst nach dem Durchlauf mit javascripts bereitstellt, so wie OliverO das im Beitrag vom 4.3.2020 15:14h beschreibt und deshalb die Daten garn nicht zur Verfügung stehen? Unter Sources sehe ich die Variable mit der Wassertemperatur.
So wie ich verstanden habe funktioniert das Prinzip via html-Site und Selector nur dann (meistens) richtig wenn die Daten (Aufbau der html-Site) immer gleich bleiben. Bei meiner Applikation möchte ich die Wassertemperatur herauslesen und dieser Wert ändert sich logischerweise. Ist es denkbar den String, welcher die Wassertemperatur beinhaltet mit einem Selector zur filtern und anschliessend mit String-Manipulationen eventuell mit RegEx den Wert der Wassertemperatur zu separieren oder funktioniert der Selector nicht mehr richtig sobald sich der Zahlenwert der Wassertemperatur ändert?
@rewenode
Kann es sein, dass mit dem neusten Node Red V1.0.3 XPath funktioniert, egal ob ich mit selector arbeite oder mit XPath oder full XPath erhalte ich die gleichen Ergebnisse.Für die definitive Lösung werde ich versuchen die API-Schnittstelle zu nutzen.
Ist das richtig, dass API-Schnittstellen (REST-API siehe auch Beitrag vom 5.3.2020 12:49h) nicht generell syntaktisch gleich aufgebaut sind, sondern je nachdem wie diese programmiert wurden unterschiedlich sein können und somit eine genaue Beschreibung der zu verwendenden API-Schnittstelle notwendig ist? Einige Versuche mit Postman blieben bis jetzt erfolglos. -
RE: Bestimmte Daten aus einer Webseite auslesen und steuern
@rewenode Super, vielen Dank für den ausführlichen, aufwendigen Beitrag. Damit sollte sogar ich einen Schritt weiter kommen. Ich verfolge im Moment noch beide Lösungsvarianten mit und ohne API.
Dass nicht alle Daten im Debug Fenster sichtbar sind habe ich vermutet, unsicher war ich als auch die Daten von payload, gespeichert in ein File, nicht vollständig waren.
Wie entwickelt man so einen CSS-Selector?