[GELÖST] Raspberrymatic hängt nach http Abfrage

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

dehell
Beiträge: 58
Registriert: 14.10.2014, 12:35

[GELÖST] Raspberrymatic hängt nach http Abfrage

Beitrag von dehell » 02.03.2023, 18:27

Hallo,
ich baue gerade eine kleine externe Steuerung für meine Raspberrymatic. Der Raspberry hängt im WLAN und die Steuerung (Arduino ESP8266) auch. Die beiden tauschen wenige Daten über HTTP (Get) Requests aus. Die Verbindung wird dabei minimal minütlich, maximal alle 30 Minuten zur Steuerung aufgebaut - alles gut.
Da die Steuerung noch nicht fertig ist, liegt sie oft ohne Stromversorgung rum und da scheint das Problem zu liegen. Nach 1-4 Tagen bricht die Raspberrymatic den WLAN Kontakt (zum Netz) ab, läuft sonst aber normal. Da greift auch nicht der WLAN Watchdog.
Ich bin jetzt nicht der Held in Scriptprogrammierung, hoffe aber, dass ich mir die richtigen Passagen zusammengeklaut habe :D .
Habe mit cURL und wget probiert, aber irgendwann gibt es Probleme.

Code: Alles auswählen

integer power_vorgabe = dom.GetObject("GKW_power_soll").Value().ToInteger();

! wget
string url="'http://Soyosource/set?power=" + power_vorgabe.ToString() + "'";
! dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null " # url # "&");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q --spider -O /dev/null -timeout=5 " # url # "&");
! cURL
! system.Exec("curl -s --max-filesize 4096 --max-time 10 'http://192.168.x.x/cm?cmnd=Power%20On' &");
! dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s --max-filesize 1024 --max-time 5 -o /dev/null " # url # "&");
! WriteLine(url);
Habt ihr eine Idee?
Zuletzt geändert von dehell am 10.03.2023, 08:54, insgesamt 1-mal geändert.

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: Raspberrymatic hängt nach http Abfrage

Beitrag von Xel66 » 02.03.2023, 18:56

Habe ich schon oft genug zu geschrieben und genau das Verhalten beschrieben und auch die Gründe, die zu dem Verhalten führen. Und jedes Mal findet sich ein Forenmitglied, der behauptet, dass dieses ja gar kein Problem wäre. Nun ja, Dein Post ist ein weiterer Gegenbeweis.. Du musst den URL-Aufruf eben sichern (ein "&" ohne die Anführungszeichen anhängen und mit einem Timeout versehen). Die Firmware ist im Grunde nicht für derartige Vorgänge vorgesehen.

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

dehell
Beiträge: 58
Registriert: 14.10.2014, 12:35

Re: Raspberrymatic hängt nach http Abfrage

Beitrag von dehell » 02.03.2023, 19:21

Danke, aber ein Timeout ist doch drin .. :roll:
Und das "&" brauche ich doch, um den String verketten zu können. Im Ergebnis ist doch kein " mehr drin.


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

Re: Raspberrymatic hängt nach http Abfrage

Beitrag von Henke » 02.03.2023, 19:47

Aua, timeout drin, das geliebte "&", Aufruf über CUxD und trotzdem labert Xell wieder...

Vielleicht sollte man eher nach dem Fehler suchen?

Wenn ich das richtig verstanden habe, bekommst du Werte durch den wget - CUxD Aufruf zurück. Da ist das "&" am Ende eher zu viel.
Wenn, dann müsste es auch " &" sein.
Teste das mal bitte:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/usr/bin/timeout 10 /usr/bin/wget -q --spider -O /dev/null -T 2 " # url);
läuft es nicht, dann das:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q --spider -O /dev/null -T 2 " # url # " &");

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: Raspberrymatic hängt nach http Abfrage

Beitrag von Xel66 » 02.03.2023, 19:54

Henke hat geschrieben:
02.03.2023, 19:47
Aua, timeout drin, das geliebte "&", Aufruf über CUxD und trotzdem labert Xell wieder...]
Getroffene Hunde bellen. Und ja ist drin, trotzdem ist die Syntax falsch. Das zu debuggen überlasse ich anderen, bzw. mache es nur, wenn ich es checken kann. Da ich aber gerade gegen das Eisen arbeite und nur ein Phone mit im Studio habe, sind meine Möglichkeiten begrenzt. Und dass Du mit Deiner Meinung etwas auf holprigen Wege unterwegs bist, wurde Dir ja auch schon mitgeteilt. Weiter im Text... Wie schon geschrieben, ich schätze Deine Scriptigkompetenz, aber bei der Firmware vertraue ich auf den Maintainer.

Gruß Xel66
Zuletzt geändert von Xel66 am 02.03.2023, 19:56, insgesamt 1-mal geändert.
-------------------------------------------------------------------------------------------
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

[sprotte80]
Beiträge: 331
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 23 Mal

Re: Raspberrymatic hängt nach http Abfrage

Beitrag von [sprotte80] » 02.03.2023, 19:55

Henke hat geschrieben:
02.03.2023, 19:47
und trotzdem labert Xell wieder...
:lol: :lol: :lol:
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

dehell
Beiträge: 58
Registriert: 14.10.2014, 12:35

Re: Raspberrymatic hängt nach http Abfrage

Beitrag von dehell » 02.03.2023, 20:17

OK, ab jetzt läuft der Versuch.. kann ein paar Tage dauern :| . Das Leerzeichen vor dem & ist natürlich korrekt, danke!

dehell
Beiträge: 58
Registriert: 14.10.2014, 12:35

Re: Raspberrymatic hängt nach http Abfrage

Beitrag von dehell » 10.03.2023, 08:32

Henke hat geschrieben:
02.03.2023, 19:47
Teste das mal bitte:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/usr/bin/timeout 10 /usr/bin/wget -q --spider -O /dev/null -T 2 " # url);
Die Variante scheint gutr zu laufen - danke.

Benutzeravatar
jmaus
Beiträge: 9819
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1856 Mal
Kontaktdaten:

Re: Raspberrymatic hängt nach http Abfrage

Beitrag von jmaus » 10.03.2023, 09:33

dehell hat geschrieben:
10.03.2023, 08:32
Henke hat geschrieben:
02.03.2023, 19:47
Teste das mal bitte:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/usr/bin/timeout 10 /usr/bin/wget -q --spider -O /dev/null -T 2 " # url);
Die Variante scheint gutr zu laufen - danke.
Dafür brauchst du kein CUxD bemühen. Einfach system.Exec() wie folgt nutzen um es noch leichtgewichtiger zu machen:

Code: Alles auswählen

system.Exec("/usr/bin/timeout 10 /usr/bin/wget -q --spider -O /dev/null -T 2 " # url # " &");
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Antworten

Zurück zu „RaspberryMatic“