cuxd curl oder system curl oder wget

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
grmpf
Beiträge: 958
Registriert: 21.01.2012, 12:16
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 18 Mal
Danksagung erhalten: 22 Mal

cuxd curl oder system curl oder wget

Beitrag von grmpf » 13.09.2025, 10:41

Ich platziere das Thema w/ curl mal hier aber...

Gerade kommt bei der neuen RM-FW die Diskussion zu timeout und system.exec wget oder eben cuxd curl auf. Ich möchte das Thema gerne besser verstehen.

Gestern kam es bei Telegram zu Serverproblemen und ich hatte einige Push-Nachrichten deshalb nicht bekommen. Mir fiel das Problem aus früheren Zeiten wieder ein, dass es bei Internetzugriffen ohne Antwort dazu kommen konnte dass die komplette CCU stand. Erst nach 1 oder 2 Jahren bin ich diesem Fehler auf die Schliche gekommen und er hat mich viel Schweiß und Ärger gekostet. Und einen Steckeradapter um den passenden Restart-Watchdog zum Laufen zu kriegen...

Also habe ich ins log geschaut und dabei gefunden:

Code: Alles auswählen

Sep 12 15:49:41 HM daemon.info cuxd[18879]: system(extra/curl -s -k xxx/sendPhoto -F photo='@/tmp/snapshotH.jpg' -F caption='HAUSTÜR' -F chat_id=-yyy) exit(35) 5s
Sep 12 15:51:51 HM daemon.info cuxd[18876]: system(extra/curl -s -k xxx/sendPhoto -F photo='@/tmp/snapshotS.jpg' -F caption='SÜD' -F chat_id=-yyy) exit(28) 135s
Sep 12 15:51:51 HM daemon.info cuxd[18878]: system(extra/curl -s -k xxx/sendPhoto -F photo='@/tmp/snapshotN.jpg' -F caption='NORD' -F chat_id=-yyy) exit(28) 135s
Sep 12 15:51:53 HM daemon.info cuxd[18886]: system(extra/curl -s -k xxx/sendMessage -d text='Bewegung%20Au%C3%9Fen%20bei%20Abwesenheit%20erkannt!' -d chat_id=-yyy) exit(28) 135s
.
.
.
Sep 12 16:57:28 HM daemon.info cuxd[28405]: system(extra/curl -s -k xxx/sendMessage -d text='Garagentor-Status%20UNDEFINERT!' -d chat_id=-yyy) exit(16) 120s
Daraus kann man eigentlich schließen, dass mein System 2 bis mehr als 3 Minuten während dieser Skripte hing. Oder gilt das beim Aufruf über cuxd nicht???

Hier viewtopic.php?f=65&t=86284&start=90#p843185
wird das Thema im Rahmen der neuen RM-FW kurz angeschnitten und ich möchte eben auch, dass diese Internetzugriffe nach maximal 5 Sekunden einfach zuverlässig gecanceled werden - bevor das Gesamtsystem länger steht!

Was ist denn nun der richtige Weg? Oder kann man beide Wege gehen? Bauchgefühl sagt mir ich solle auf wget mit tiemout 5 umstellen...
Zuletzt geändert von grmpf am 13.09.2025, 12:17, insgesamt 1-mal geändert.
Gert
________________________________
HM1 | Raspi 3B+/RFUSB HM+HMIP (Altbau), nur Funk: >80 Geräte
HM2 | Raspi 3B/HM-MOD-RPI-PCB (Altbau), nur Funk: HM 18x Rollladensteuerung + FB, tw. HMIP Heizungssteuerung
HM3 | CCU3 mit RM (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FBH-Steuerung) plus HMIP (BROLL, Bewmelder etc.)
HM4 | Raspi 3B/RFUSB (Neubauinst.) HMIPW (1x DRI, 3x DRS, kpl. FBH-Steurung) plus HMIP (BROLL, Bewmelder etc.)

Benutzeravatar
Baxxy
Beiträge: 13893
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Berlin
Hat sich bedankt: 856 Mal
Danksagung erhalten: 3101 Mal

Re: cuxd curl oder wget

Beitrag von Baxxy » 13.09.2025, 11:07

grmpf hat geschrieben:
13.09.2025, 10:41
Oder gilt das beim Aufruf über cuxd nicht???
CUxD spawnt eigene Prozesse direkt auf OS-Ebene.
Solange du in deinen Scripten nicht auf eine Rückgabe wartest, was bei Telegram-Push m.E. nicht nötig ist, ist das also "ungefährlich" und blockiert auch nichts.

Benutzeravatar
grmpf
Beiträge: 958
Registriert: 21.01.2012, 12:16
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 18 Mal
Danksagung erhalten: 22 Mal

Re: cuxd curl oder wget

Beitrag von grmpf » 13.09.2025, 11:13

Das klingt gut. Beruhigt mich erstmal.
Aber was bedeuten dann diese "...exit(28) 135s" im log? Für mich sieht es aus, als habe der Befehl 135 Sekunden gebraucht bevor er abbrach. Richtig?
Gert
________________________________
HM1 | Raspi 3B+/RFUSB HM+HMIP (Altbau), nur Funk: >80 Geräte
HM2 | Raspi 3B/HM-MOD-RPI-PCB (Altbau), nur Funk: HM 18x Rollladensteuerung + FB, tw. HMIP Heizungssteuerung
HM3 | CCU3 mit RM (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FBH-Steuerung) plus HMIP (BROLL, Bewmelder etc.)
HM4 | Raspi 3B/RFUSB (Neubauinst.) HMIPW (1x DRI, 3x DRS, kpl. FBH-Steurung) plus HMIP (BROLL, Bewmelder etc.)

joerg_rw
Beiträge: 102
Registriert: 09.02.2015, 13:20
Hat sich bedankt: 134 Mal
Danksagung erhalten: 6 Mal

Re: cuxd curl oder wget

Beitrag von joerg_rw » 13.09.2025, 11:23

ich denke, ob curl oder wget, du solltest den - kombinierten - Befehl

Code: Alles auswählen

timeout 5 wget ...
bzw

Code: Alles auswählen

timeout 5 curl ...
verwenden.
siehe auch z.B. "wget über system.Exec nutzen" @ viewtopic.php?f=31&t=59101#p585248
Ich wuerde das erweitern dahingehend, den return code (Fehlercode) zu pruefen, so:

Code: Alles auswählen

integer rc; 
string stdout; 
string stderr;
rc=system.Exec("timeout 5 wget -q -O - '"#send_data#"'", &stdout, &stderr);
if (rc = 0) { WriteLine("alles glatt gelaufen, hier statt diesem writeln weitermachen") }; 
code nicht getestet

Natuerlich kann man das auch ueber CuXD machen, ist mir aber zu indirekt und daher zu unuebersichtlich
Zuletzt geändert von joerg_rw am 13.09.2025, 12:47, insgesamt 1-mal geändert.

Benutzeravatar
grmpf
Beiträge: 958
Registriert: 21.01.2012, 12:16
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 18 Mal
Danksagung erhalten: 22 Mal

Re: cuxd curl oder wget

Beitrag von grmpf » 13.09.2025, 11:30

wie gesagt: Ist alles historisch gewachsen. Gibt also mittlerweile auch einen curl in der hm und nicht nur unter cuxd?
Früher hieß es mal wget nimmt man um was aus dem Internet zu laden und curl um was ins Netz zu schicken. Gilt das noch?
Also was ist jetzt das für und wider von curl als system.exec oder curl als cuxd-Befehl?
Gert
________________________________
HM1 | Raspi 3B+/RFUSB HM+HMIP (Altbau), nur Funk: >80 Geräte
HM2 | Raspi 3B/HM-MOD-RPI-PCB (Altbau), nur Funk: HM 18x Rollladensteuerung + FB, tw. HMIP Heizungssteuerung
HM3 | CCU3 mit RM (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FBH-Steuerung) plus HMIP (BROLL, Bewmelder etc.)
HM4 | Raspi 3B/RFUSB (Neubauinst.) HMIPW (1x DRI, 3x DRS, kpl. FBH-Steurung) plus HMIP (BROLL, Bewmelder etc.)

Benutzeravatar
Baxxy
Beiträge: 13893
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Berlin
Hat sich bedankt: 856 Mal
Danksagung erhalten: 3101 Mal

Re: cuxd curl oder wget

Beitrag von Baxxy » 13.09.2025, 11:31

grmpf hat geschrieben:
13.09.2025, 11:13
Aber was bedeuten dann diese "...exit(28) 135s" im log?
Was die einzelnen Exit-Codes bedeuten weiß ich jetzt auch nicht, würde das aber auch als Timeout deuten.

joerg_rw
Beiträge: 102
Registriert: 09.02.2015, 13:20
Hat sich bedankt: 134 Mal
Danksagung erhalten: 6 Mal

Re: cuxd curl oder wget

Beitrag von joerg_rw » 13.09.2025, 11:32

grmpf hat geschrieben:
13.09.2025, 11:13
Aber was bedeuten dann diese "...exit(28) 135s" im log? Für mich sieht es aus, als habe der Befehl 135 Sekunden gebraucht bevor er abbrach. Richtig?
sieht fuer mich so aus, aber da hat sicher Baxxy mehr Einblick, ich wuerde mal mutmassen das "exit(28)" ist der returncode
grmpf hat geschrieben:Früher hieß es mal wget nimmt man um was aus dem Internet zu laden und curl um was ins Netz zu schicken. Gilt das noch?
Nein, gilt nicht mehr. Es gibt inzwischen auch ein curl standardmaessig auf der raspimatic, und curl ist "moderner" als wget, ansonsten tun beide mehr oder weniger das gleiche und werden selbst in raspimatic systemscripts beide in ein- und demselben scipt eingesetzt, vermutlich urspruenglich mal nur wget und dann bei ner Erweiterung statt wget dann eben curl, aber die Original wget Befehlszeile blieb erhalten. I tu mich grade schwer eines von beiden zu bevorzugen, curl ist wesentlich komplexer und vielseitiger. Vorteil? Nachteil? :roll:
Zuletzt geändert von joerg_rw am 13.09.2025, 11:46, insgesamt 1-mal geändert.

Benutzeravatar
grmpf
Beiträge: 958
Registriert: 21.01.2012, 12:16
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 18 Mal
Danksagung erhalten: 22 Mal

Re: cuxd curl oder wget

Beitrag von grmpf » 13.09.2025, 11:39

joerg_rw hat geschrieben:
13.09.2025, 11:23
Gibt also mittlerweile auch einen curl in der hm und nicht nur unter cuxd?
???
Gert
________________________________
HM1 | Raspi 3B+/RFUSB HM+HMIP (Altbau), nur Funk: >80 Geräte
HM2 | Raspi 3B/HM-MOD-RPI-PCB (Altbau), nur Funk: HM 18x Rollladensteuerung + FB, tw. HMIP Heizungssteuerung
HM3 | CCU3 mit RM (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FBH-Steuerung) plus HMIP (BROLL, Bewmelder etc.)
HM4 | Raspi 3B/RFUSB (Neubauinst.) HMIPW (1x DRI, 3x DRS, kpl. FBH-Steurung) plus HMIP (BROLL, Bewmelder etc.)

Benutzeravatar
Baxxy
Beiträge: 13893
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Berlin
Hat sich bedankt: 856 Mal
Danksagung erhalten: 3101 Mal

Re: cuxd curl oder wget

Beitrag von Baxxy » 13.09.2025, 11:41

grmpf hat geschrieben:
13.09.2025, 11:39
???
Du kannst mit system.Exec() jeden Befehl den das OS bereitstellt nutzen, also auch curl.

Benutzeravatar
grmpf
Beiträge: 958
Registriert: 21.01.2012, 12:16
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 18 Mal
Danksagung erhalten: 22 Mal

Re: cuxd curl oder wget

Beitrag von grmpf » 13.09.2025, 11:44

ok, wie gesagt, als ich anfing mit hm gab es den curl nicht in HM. Meine ich.

Aber nochmal zum Kern: ist es nun besser curl per system.exec oder per cuxd.exec zu nutzen und ... warum?
Gert
________________________________
HM1 | Raspi 3B+/RFUSB HM+HMIP (Altbau), nur Funk: >80 Geräte
HM2 | Raspi 3B/HM-MOD-RPI-PCB (Altbau), nur Funk: HM 18x Rollladensteuerung + FB, tw. HMIP Heizungssteuerung
HM3 | CCU3 mit RM (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FBH-Steuerung) plus HMIP (BROLL, Bewmelder etc.)
HM4 | Raspi 3B/RFUSB (Neubauinst.) HMIPW (1x DRI, 3x DRS, kpl. FBH-Steurung) plus HMIP (BROLL, Bewmelder etc.)

Antworten

Zurück zu „CUxD“