Mehrere URL's senden

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
Henke
Beiträge: 1498
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 302 Mal

Re: Mehrere URL's senden

Beitrag von Henke » 05.02.2023, 03:01

Leider keine weiteren Informationen, sondern nur, ich weiß es. Schade, sehr Schade.

Ich fasse noch mal kurz zusammen.

1. Es ging um wget, nicht um curl oder sonst irgendetwas.
2. Bei Aufrufen von wget, bei denen die zu erwartende Ausführungszeit bekannt ist, sollte eine erhöhte Zeit als timeout (der doppelte Wert sollte meiner Meinung nach in den meisten Fällen reichen) genutzt werden. Davon habe ich nie von abgeraten.
3. Die Aussage das ein timeout immer zu nutzen ist, habe ich als falsch bezeichnet. Das ist nicht richtig. Unter Umständen könnte es sogar nötig sein das default timeout von 900 zu erhöhen. In diesem Fall, 900 sind 15 Minuten, würde ich jedoch das Konzept ernsthaft überdenken. Dementsprechend würde ich die Empfehlung anpassen auf "angepassten" timeout.
4. Es wurde keine konkrete Begründung genannt, das wget mit "-b" in irgendeiner Kombination einen Fehler/Probleme erzeugt.
5. wget mit -b ist wesentlich schneller und gibt der CCU/ReGa damit mehr Luft

Daher ist meine Empfehlung der folgende Aufruf:

Code: Alles auswählen

string sUrl="http://XXXXXX";
! timeout anpassen auf die zu erwartende Ausführungszeit mal 2, in den meisten Fällen dürften 2 Sekunden reichen
system.Exec("wget -b -T 2 -O /dev/null -q '" # sUrl# "'");

Xel66
Beiträge: 14085
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 580 Mal
Danksagung erhalten: 1492 Mal

Re: Mehrere URL's senden

Beitrag von Xel66 » 05.02.2023, 05:03

Henke hat geschrieben:
05.02.2023, 03:01
Leider keine weiteren Informationen, sondern nur, ich weiß es. Schade, sehr Schade.
Mal ein Versuch der Einordnung: Für mich sind derartige Ausführung wie...
jmaus hat geschrieben:
04.02.2023, 00:28
Öhhm, ehrlich gesagt: Nein! Das -b und & sind zwei komplett unterschiedliche paar Schuhe. -b forkt nur das wget in den hintergrund belässt als parent aber ReGa und das & am schluss sagt der ReGa das es einen doppelfork machen soll. Man darf das nicht mit dem & in einer reine Unix/Linux Shell verwechseln. Das & am Ende eines system.Exec() gibt der ReGa eine zusatzinfo um das aufzurufende Programm unabhängig von weiteren Abläufen/Abhängigkeiten die mitunter ansonsten bei blockierenden Subprozessen dem Hauptprozess probleme bereiten könnte.
... Grund und Information genug, einem Entwickler, der Einblick in die Codebasis hat (und einem NDA unterliegt), mehr Glauben zu schenken als den Empfehlungen eines Anwenders, der zugegebenermaßen zweifellos in der Lage ist, gute und nützliche Scripte zu schreiben. Die Ursache ist ganz einfach, dass Deine Linux-Befehle zwar grundsätzlich funktionieren und auch konform mit der dokumentierten Syntax sind. Im Unterschied zum Standardlinux werden derartige Befehle in der Linux-Syntax noch durch die ReGa geschleust. Und wenn die zusätzlichen Optionen (das Ampersand - ja, da ist das Wort wieder) der ReGa noch erweiterte Informationen zur Weiterleitung und Ausführung des Befehls an die unterlagerte Betriebssystemebene mitgeben, dann ist deren Ausführung als stabiler zu bewerten, als die blanken Linux-Aufrufe. Mit diesen Scriptbefehlen befindet man sich immer noch innerhalb der Anwendungsebene der ReGa und nicht auf Betriebssystemebene. Und diesem Fakt ist nun mal Rechnung zu tragen.

Und ferner ist Deine Anwendung (Download irgendwelcher größeren Updates) eben nicht der Standardanwendungsfall für eine Hausautomationszentrale. Ich persönlich halte die ReGa weiterhin nicht für ausufernde Internetkommunikation geeignet, so dass damit maximal ein paar Aktoren angesteuert werden, bzw. ggf. Statusinfos abgefragt werden sollten. Und ein paar zwischenzeitliche Anfragen hier im Forum aus den letzten Tagen haben nachgewiesen, dass es immer noch Systeme gibt, die ohne Beachtung der notwendigen Optionen in Scripten und Aufrufen ins Stolpern geraten, wenn die Internetverbindung nicht verfügbar ist oder der angefragte Server nicht antwortet. Ich gehöre beispielsweise zu der Art Anwender, die die Funktionsfähigkeit ihrer Hausautomation nicht von einer funktionierenden Internetverbindung abhängig sehen möchten.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
Henke
Beiträge: 1498
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 302 Mal

Re: Mehrere URL's senden

Beitrag von Henke » 05.02.2023, 06:36


Xel66
Beiträge: 14085
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 580 Mal
Danksagung erhalten: 1492 Mal

Re: Mehrere URL's senden

Beitrag von Xel66 » 05.02.2023, 13:17

Nun ja, für jemanden, der sich selbst nach eigenem Bekunden als "Linux-Legastheniker" sieht, lehnst Du Dich weit aus dem Fenster. Es ist beim ReGa-Script immer noch in erster Linie die Scriptingengine, die Du ansprichst. Und wenn diese mit bestimmten Parametern bei der Übergabe von Aufrufen an die unterlagerte Betriebssystemebene besser zurecht kommt, als wenn man einen Linux-Aufruf direkt durchleitet, dann kann man das beachten oder eben im Versagensfall mit den Konsequenzen leben. Aber auch Dir sei die gleiche Meinungsfreiheit gegönnt, die ich auch für mich in Anspruch nehme. Dieses ist ein hohes Gut unserer Staatsform, auch wenn es viele Bestrebungen gibt, diese in irgendeiner Form zu untergraben und andere in eine Ecke stellen zu wollen. Bemerkenswerterweise häufig von lauten Minderheiten. Es scheint en vogue zu sein, in der Anonymität des Internets anderen ans Bein zu pissen. Ist ja nix neues. Insofern, einen schönen Sonntag.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic allgemein“