[Gelöst] CCU-CGI Dateiupload via HTTP-POST
Moderator: Co-Administratoren
-
- Beiträge: 33
- Registriert: 15.04.2019, 14:52
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
[Gelöst] CCU-CGI Dateiupload via HTTP-POST
Hallo miteinander
In den letzten 2 Monaten habe ich mich reingekniet, und die Homematic studiert, und konnte erfolgreich ein eigenes Sonos-Add-On, sowie ein Automatisches Backup mit FTP Upload programmieren.
Jetzt bin ich aber steckengeblieben.
Ich möchte mithilfe des Webinterfaces einen einfachen weg zum Upload von Dateien ermöglichen.
Aktuell habe ich ein "Funktionales" Add-On, mit dem schaffen wir es kleinere Dateien auf die Homematic zu laden.
Ich Benutze dafür aktuell eine Mischung von Base64 Encoding, sowie einer CGI (tclsh) die mit Http-Get Angesprochen wird.
Das ist natürlich nicht sehr zuverlässig, da einerseits Base64 nur weniger KB mag, und da ich natürlich RiesenURL's generieren muss, um den Inhalt zu übertragen.
Deshalb wollte ich das ganze mit einem POST lösen, anstatt mit der GET Funktion.
Um ehrlich zu sein, mit dem TCL komme ich immer noch nicht so gut zu recht, deshalb verdreht es mir fast den Magen wenn ich versuche die Beispiele zu dem Thema von Google in ihre Einzelteile zu zerlegen.
Die Forumsuche musste ich leider gottes aufgeben, da "POST", sowie "HTTP POST" mehr als 100 Seiten zurückliefen.
Ich würde mich über eine Hilfestellung zum Thema HTTP-POST via TCLSH-CGI Freuen.
MfG
Fabian
In den letzten 2 Monaten habe ich mich reingekniet, und die Homematic studiert, und konnte erfolgreich ein eigenes Sonos-Add-On, sowie ein Automatisches Backup mit FTP Upload programmieren.
Jetzt bin ich aber steckengeblieben.
Ich möchte mithilfe des Webinterfaces einen einfachen weg zum Upload von Dateien ermöglichen.
Aktuell habe ich ein "Funktionales" Add-On, mit dem schaffen wir es kleinere Dateien auf die Homematic zu laden.
Ich Benutze dafür aktuell eine Mischung von Base64 Encoding, sowie einer CGI (tclsh) die mit Http-Get Angesprochen wird.
Das ist natürlich nicht sehr zuverlässig, da einerseits Base64 nur weniger KB mag, und da ich natürlich RiesenURL's generieren muss, um den Inhalt zu übertragen.
Deshalb wollte ich das ganze mit einem POST lösen, anstatt mit der GET Funktion.
Um ehrlich zu sein, mit dem TCL komme ich immer noch nicht so gut zu recht, deshalb verdreht es mir fast den Magen wenn ich versuche die Beispiele zu dem Thema von Google in ihre Einzelteile zu zerlegen.
Die Forumsuche musste ich leider gottes aufgeben, da "POST", sowie "HTTP POST" mehr als 100 Seiten zurückliefen.
Ich würde mich über eine Hilfestellung zum Thema HTTP-POST via TCLSH-CGI Freuen.
MfG
Fabian
Zuletzt geändert von Nucom AG am 23.04.2019, 14:15, insgesamt 1-mal geändert.
-
- Beiträge: 3978
- Registriert: 12.07.2009, 20:01
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 176 Mal
- Kontaktdaten:
Re: CCU-CGI Dateiupload via HTTP-POST
Müsstest Dir in Jan's rmupdate Addon abschauen können: https://github.com/j-a-n/raspberrymatic ... t.cgi#L103
-
- Beiträge: 33
- Registriert: 15.04.2019, 14:52
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: CCU-CGI Dateiupload via HTTP-POST
Vielen Dank hobbyquaker
Ich konnte das dem RMUpdate abgucken, hat nur etwa 12h gedauert, bis es möglich war, mehr als ein File auf einmal hochzuladen.
Ich werde den Code hier Posten, sobald ich "aufgeräumt" habe, das aktuell ist noch quick&dirty.
Mfg
Fabian
Ich konnte das dem RMUpdate abgucken, hat nur etwa 12h gedauert, bis es möglich war, mehr als ein File auf einmal hochzuladen.
Ich werde den Code hier Posten, sobald ich "aufgeräumt" habe, das aktuell ist noch quick&dirty.
Mfg
Fabian
- jmaus
- Beiträge: 9846
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: CCU-CGI Dateiupload via HTTP-POST
Mach das bitte ja. Weil dann lässt sich das vielleicht ja sogar direkt in die WebUI integrieren (via des RaspberryMatic Projektes) um ein besseren Upload/Download Dialog umzusetzen. Und wenn du selbst dafür Ressourcen hast, dann immer her damit!
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 33
- Registriert: 15.04.2019, 14:52
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: CCU-CGI Dateiupload via HTTP-POST
So, ich habs in ein Repository gepackt.
Ich habe den TCL-CGI Code so gut's geht Kommentiert.
Leider gilt das gleiche nicht für's Javascript auf der Webseite.
Das Javascript macht einen AJAX Call mit einer Formdata -> Post -> upload.cgi
Die Webseite prüft aktuell nicht, ob man überhaupt eingeloggt (SID-Check) ist, und es gibt auch keine limiterungen, was hochgeladen werden darf.
//edit: Macht in der Zwischenzeit SID Check
Aber es funktioniert
https://github.com/Fabian95qw/rm-nuhome-files
MfG
Fabian
Ich habe den TCL-CGI Code so gut's geht Kommentiert.
Leider gilt das gleiche nicht für's Javascript auf der Webseite.
Das Javascript macht einen AJAX Call mit einer Formdata -> Post -> upload.cgi
Die Webseite prüft aktuell nicht, ob man überhaupt eingeloggt (SID-Check) ist, und es gibt auch keine limiterungen, was hochgeladen werden darf.
//edit: Macht in der Zwischenzeit SID Check
Aber es funktioniert
https://github.com/Fabian95qw/rm-nuhome-files
MfG
Fabian
Zuletzt geändert von Nucom AG am 16.07.2019, 14:15, insgesamt 1-mal geändert.
- jmaus
- Beiträge: 9846
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: CCU-CGI Dateiupload via HTTP-POST
Danke für das Repository, Fabian. Allerdings hast du hier als Lizenz die GPL-3.0 gewählt und die beisst sich leider mit der Apache 2.0 Lizenz unter der RaspberryMatic steht. Insofern kann ich dann leider davon nichts direkt in die WebUI der RaspberryMatic bzw. CCU3 übernehmen. Wenn du also gerne etwas zur Weiterentwicklung beitragen willst wäre es schön wenn du das ganze auch unter die Apache 2.0 Lizenz stellen könntest.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
- jmaus
- Beiträge: 9846
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: CCU-CGI Dateiupload via HTTP-POST
Danke dir. Das macht es wesentlich einfacher!
P.S: Und wenn du natürlich selbst freie Entwicklungsressourcen hast um in der WebUI das Web-Dateiupload entsprechend zu verbessern (Progress-Bar, etc.) dann immer vortreten bitte denn das RaspberryMatic Projekt lebt in der Tat von der Mithilfe vieler!
P.S: Und wenn du natürlich selbst freie Entwicklungsressourcen hast um in der WebUI das Web-Dateiupload entsprechend zu verbessern (Progress-Bar, etc.) dann immer vortreten bitte denn das RaspberryMatic Projekt lebt in der Tat von der Mithilfe vieler!
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 33
- Registriert: 15.04.2019, 14:52
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: CCU-CGI Dateiupload via HTTP-POST
Hallo Jens
Das ehrt mich sehr.
Habe mir aktuell mal das ganze Projekt gezogen. Mal sehen ob ich was produktives hinkriege
//edit:
Ich habe leider nach einer Woche noch nichts vorzuweisen, was in irgendeiner Art nützlich wäre.
Ich möchte eigentlich im Menüpunkt Einstellungen ==> Systemsteuerung einen neuen Punkt (nicht als Add-On) hinzufügen, in dem ich dann die ganze Funktionalität verbaue.
Geplant wäre:
Modus für den DateiUpload (Upload erlauben für: Admins/User)
Foldermanagement mit Rechten (Einsicht erlauben für: Admins/User/Gast)
Dateityp Restriction bei Upload (Konfigurierbar durch Admin)
Ich würde mich um eine Hilfestellung freuen. Wo im Projekt ist diese Komponente zu finden?
MfG
Fabian
Das ehrt mich sehr.
Habe mir aktuell mal das ganze Projekt gezogen. Mal sehen ob ich was produktives hinkriege
//edit:
Ich habe leider nach einer Woche noch nichts vorzuweisen, was in irgendeiner Art nützlich wäre.
Ich möchte eigentlich im Menüpunkt Einstellungen ==> Systemsteuerung einen neuen Punkt (nicht als Add-On) hinzufügen, in dem ich dann die ganze Funktionalität verbaue.
Geplant wäre:
Modus für den DateiUpload (Upload erlauben für: Admins/User)
Foldermanagement mit Rechten (Einsicht erlauben für: Admins/User/Gast)
Dateityp Restriction bei Upload (Konfigurierbar durch Admin)
Ich würde mich um eine Hilfestellung freuen. Wo im Projekt ist diese Komponente zu finden?
MfG
Fabian