[Gelöst] CCU-CGI Dateiupload via HTTP-POST

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
Nucom AG
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

Beitrag von Nucom AG » 15.04.2019, 15:52

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.

Bild

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.

hobbyquaker
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

Beitrag von hobbyquaker » 15.04.2019, 16:35

Müsstest Dir in Jan's rmupdate Addon abschauen können: https://github.com/j-a-n/raspberrymatic ... t.cgi#L103

Nucom AG
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

Beitrag von Nucom AG » 17.04.2019, 14:18

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. :lol:

Ich werde den Code hier Posten, sobald ich "aufgeräumt" habe, das aktuell ist noch quick&dirty.

Mfg

Fabian

Benutzeravatar
jmaus
Beiträge: 9845
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

Beitrag von jmaus » 17.04.2019, 16:05

Nucom AG hat geschrieben:
17.04.2019, 14:18
Ich werde den Code hier Posten, sobald ich "aufgeräumt" habe, das aktuell ist noch quick&dirty.
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 / ☕️

Nucom AG
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

Beitrag von Nucom AG » 18.04.2019, 08:57

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 :D

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.

Benutzeravatar
jmaus
Beiträge: 9845
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

Beitrag von jmaus » 18.04.2019, 11:15

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 / ☕️

Nucom AG
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

Beitrag von Nucom AG » 18.04.2019, 11:24

Hallo jmaus

Ist angepasst.

MfG

Fabian

Benutzeravatar
jmaus
Beiträge: 9845
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

Beitrag von jmaus » 18.04.2019, 12:00

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!
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Nucom AG
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

Beitrag von Nucom AG » 23.04.2019, 13:20

Hallo Jens

Das ehrt mich sehr.
Habe mir aktuell mal das ganze Projekt gezogen. Mal sehen ob ich was produktives hinkriege :D

//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

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“