Ich kann meine Wohnungstür und die Gebäudeeingangstür schon lange über HTTPS öffnen: die Wohnungstür über ein Tedee-Schloss, die Eingangstür über eine selbst gebastelte Lösung mit Raspberry Pi und Gegensprechanlage. Es war immer ganz praktisch, die Türen mit dem Handy zu öffnen, ohne einen Schlüssel zu benötigen.
Manchmal gehe ich aber joggen. Dabei habe ich nur meine Pixel Watch mit LTE dabei. Auch hier hätte ich es praktisch gefunden, keinen Schlüssel zu benötigen. Dann habe ich mir gedacht, ich hacke schnell eine kleine App, mit der ich die benötigten Befehle über HTTPS direkt über die Uhr senden kann.
Schlussendlich habe ich mir gedacht: Mach es gleich ordentlich und universell. In der App können jetzt beliebig viele Buttons definiert werden, die beliebig viele Befehle über HTTPS ausführen können. Ich brauche bei mir ja zwei Befehle für einen Button: einen für den Hauseingang und einen für den Wohnungseingang.
Natürlich kann man alle HTTP-Verben verwenden und eigene Header-Werte definieren. Das benötigt man beispielsweise für die Tedee-API.
Ich habe die App dann auch gleich im Play Store veröffentlicht:
Falls jemand genau das gleiche Problem hat und mit seiner Pixel Watch Befehle über HTTP abschicken muss ;-)
Um die häufigsten Fragen zu beantworten:
Was tust du bei einem Stromausfall????
Ich wohne in einem zivilisierten Gebiet und kann mich an keinen Stromausfall in dieser Wohnung erinnern. Falls es doch einmal passiert: Das Türschloss funktioniert mit einem Akku. ;-) Ansonsten habe ich für Notfälle einen Schlüssel versteckt.
Ist das sicher?
Ja: HTTPS plus Authentifizierungs-Token im Header.
Muss gestehen: Wenn jemand eine solche Terminologie gebraucht, erweckt das in mir die Befürchtung, dass derjenige nicht wirklich wusste, womit er da hantiert, und dass die Anwendung mit hoher Wahrscheinlichkeit vibrationscodiert ist – was auf einem Device, das Netzzugang hat und möglicherweise sicherheitsrelevante Aktionen ausführen kann (etwa remote Haustüren aufzuschließen), möglicherweise nicht die beste Idee ist.
Tut mir leid, aber nein: Keiner, der davon Ahnung hätte, würde es so nennen. Der würde konkret schreiben, was er macht. Oder eben die Überschrift des Subforums berücksichtigen: „Projekte bitte nur mit Code oder Schaltplan posten“ – dann kann jeder selbst nachschauen, was da genau passiert und wie es implementiert ist.
Könntest du den Code bitte entsprechend verlinken? Ansonsten würde es ja eher wie billige Werbung aussehen, und das war doch bestimmt nicht deine Absicht?
dann sag mir was du anders nennen willst wenn du so viel ahnung hast.
Ich hätte es mehr im Detail erläutert – denn das ist der Zweck dieses Subforums. HTTP ist halt nur das Transportprotokoll, das von verschiedenen APIs genutzt wird.
Ich hätte es mehr im Detail erläutert – denn das ist der Zweck dieses
Subforums. HTTP ist halt nur das Transportprotokoll, das von
verschiedenen APIs genutzt wird.
Eben alles, was über http erreichbar ist. Ein http request mit allen http verben und Header feldern kann frei definiert werden. Viele haben einen Raspberry Pi laufen mit einem http Server über dem Steuerungskommandos empfangen werden können. Ich habe es damit z.B. auch geschafft über ein Gateway am Raspi eine Tuya Lampe zu steuern.
Aber warum dann der Thread in diesem Subforum, in dem der Beschreibung
nach der Code von Projekten gezeigt werden soll?
Viele veröffentlichen keinen Code hier. Ich denke weniger dass der UI Code der App und die Dart api für http request so interessant ist. Aber viele in diesem Forum haben Projekte mit einem http interface. In diesem Forum verstehen die Leute den Zweck für so eine App am besten, nicht jeder weiß was http ist ;-)
In diesem
Forum verstehen die Leute den Zweck für so eine App am besten, nicht
jeder weiß was http ist ;-)
Offensichtlich hast du dich im Forum geirrt, und wolltest eigentlich ganz woanders hin, etwa zu android-hilfe.de oder so? Hier sind sehr viele Leute, die sich teils sehr gut damit auskennen.
… befiehlst du einem Webserver auch, dir die Seite zu geben? Oder fragst du vielleicht doch mittels HTTP-Request an?
Wenngleich das wie Erbsenzählerei anmutet, ist das zumindest für mich ’n deutlicher Hinweis darauf, dass da was ohne Verständnis in der nötigen Tiefe erstellt wurde, wie’s heute halt in gewissen Kreisen üblich ist, und nicht zu selten zu richtigen Problemen bei den Anwendern führt.
Der Code wäre geeignet, einerseits diese Befürchtungen auszuräumen, und andererseits der Idee dieses Subforums gerecht zu werden, sodass es nicht nur wie billige Werbung aussieht.
Eigentlich ist bei nahezu jedem hier vorgestellten Softwareprojekt der
Code dabei.
Ich hab viele gefunden auch nur mit nützlichen Tools
Ist er. Und sei’s nur, um meine in der ersten Antwort thematisierten
Befürchtungen auszuräumen.
Es steht dir frei, nur Software auszuführen bei der du vorher den Sourcecode studiert hast und selbst kompiliert hast. Gibts ja mit Linux auch problemlos die Möglichkeit dazu.
Manche finden es auch praktisch eine App einfach über den Play Store installieren zu können.
In diesem
Forum verstehen die Leute den Zweck für so eine App am besten, nicht
jeder weiß was http ist ;-)
Offensichtlich hast du dich im Forum geirrt, und wolltest eigentlich
ganz woanders hin, etwa zu android-hilfe.de oder so? Hier sind sehr
viele Leute, die sich teils sehr gut damit auskennen.
Ich kenne sonst kein deutschsprachiges Forum wo es so viel wie hier um Bastelprojekte geht. Die App ist für ein Bastelprojekt entstanden, das ist auch die Zielgruppe.
… befiehlst du einem Webserver auch, dir die Seite zu geben? Oder fragst
du vielleicht doch mittels HTTP-Request an?
Du schickst Befehle an einen Server (schalte bitte das licht an), über das Transferprotokoll http.
Aber ich würde vorschlagen das in Zukunft über chatgpt klären zu lassen, der erklärt das sehr ausführlich und vor allem sehr geduldig.
Ich kenne sonst kein deutschsprachiges Forum wo es so viel wie hier um
Bastelprojekte geht.
Genau, Bastelprojekte – die Leute hier wollen sehen, wie die Dinge entstanden sind, um es gegebenenfalls nachzubasteln oder für sich anzupassen. „Ich hab da was gemacht, bei der Datenkrake dort könnt ihr das fertige Ding laden“ ist nicht der Sinn dieses Forums. Denn das ist schlicht plumpe Werbung.
… und die Zeit, die du hier reinsteckst, um dein Vorgehen irgendwie zu rechtfertigen, statt einfach den Code zu zippen und hochzuladen, oder auf beispielsweise auf codeberg.org zu schieben und zu verlinken, zeigt deine Intention recht deutlich. Du willst die Reichweite des Forums nutzen, um dein Projekt zu promoten – nicht, um es technisch interessierten Usern (wie mir, denn mich interessiert, wie das Ding unter der Haube aussieht) hier im Detail vorzustellen.
Ich habe es damit z.B. auch
geschafft über ein Gateway am Raspi eine Tuya Lampe zu steuern.
Toll! Was ist da jetzt Besonderes?
Ich habe es geschafft über einen RasPi mehrere Kronleuchter zu steuern. Ein zweiter RasPi zeigt mir u.a. den Füllstand meiner Regentonnen über eine Webseite an. Ist das was Besonderes? Nein natürlich nicht, das ist lediglich eine von vielen Anwendungsmöglichkeiten eines RasPi mit einem HTTP/HTTPS-Server, etwas HTML und Java Script - mehr nicht. Natürlich muß man sich dazu mit der Thematik befassen, aber es ist eben auch kein Hexenwerk und schon gar nicht eine besondere Leistung.
Ähm...Wer behauptet dass das was besonderes ist ? Ich habe ein Beispiel
gegeben was die Motivation war diese App zu machen.
Wenn man es so darstellt wie Du, dann erweckt das beim Leser den Eindruck als sei es was Besonderes (zumindest für Dich).
Was hat die Ansteuerung einer Lampe mit der Motivation eine Türöffner App zu programmieren zu tun? Ja, da erschließt sich mir der Zusammenhang nicht wirklich.
Hier muß ich dem Jack wirklich mal recht geben, Dein Post hier ist eigentlich völlig unnütz, weil man nicht sieht wie es gelöst wurde. Das man mit dem HTTP Protokoll Steurungsaufgaben erledigen kann dürfte jedem hier im Forum klar sein. Ebenso wie das prinzipiell funktioniert.
Aber vielleicht ist ja die Pixelwatch was Besonderes, was ich allerdings nicht denke. Die benutzt am Ende, zumindest wenn das Ganzer über eine Website läuft, auch nur einen Browser und sendet einen Request an den Server. Und ja man kann es am Ende auch in eine eigene App packen die den HTTP-Request sendet. Ist aber auch kein besonderes Ereignis, zumindest dann nicht wenn man mit den dazu erforderlichen Programmierwerkzeugen umgehen kann.
Was ist denn nun das Besondere an Deiner Lösung? Ich sehe da bisher nichts was von allgemeinem Interesse ist. Deine Arbeit in allen Ehren, aber für die Allgemeinheit bei dieser Darstellungsform leider völlig nutzlos.
Selbst im Google Store hat sich für Deine App in 2 Monaten nur ein einziger User interessiert und die App geladen. Deshalb sieht das Ganze hier schon sehr nach Eigenwerbung aus. Du bist einfach nur sauer, weil keiner Deine Arbeit so richtig würdigt. Es gibt genug bewährte alternative Apps die das auch können. Deine App ist da leider nur eine Insellösung.
… und die Zeit, die du hier reinsteckst, um dein Vorgehen irgendwie zu
rechtfertigen, statt einfach den Code zu zippen und hochzuladen, oder
auf beispielsweise auf codeberg.org zu schieben und zu verlinken, zeigt
deine Intention recht deutlich. Du willst die Reichweite des Forums
nutzen, um dein Projekt zu promoten – nicht, um es technisch
interessierten Usern (wie mir, denn mich interessiert, wie das Ding
unter der Haube aussieht) hier im Detail vorzustellen.
Für mich war die Anwendung interessant und die Use Cases, der Code enthält für mich keine Rocket Science, ich denke man kann sich denken wie man mit einem UI Framework eine UI definiert und dann eben HTTPS requests damit abschickt.
Um alle Zweifel auszuräumen und weils mittlerweile trotzdem mehr Arbeit ist zu argumentieren warum ichs nicht tue, anbei der Code gezipped ;-)
Falls jemand meint eine grobes Sicherheitsproblem zu finden beim Abschicken eines Https requests: gerne her damit.
Ansonsten bin ich aber an keinem code review interessiert warum z.B. eine Variable nicht exakt benannt ist was sie tut....
Ähm...Wer behauptet dass das was besonderes ist ? Ich habe ein Beispiel
gegeben was die Motivation war diese App zu machen.
Wenn man es so darstellt wie Du, dann erweckt das beim Leser den
Eindruck als sei es was Besonderes (zumindest für Dich).
Was hat die Ansteuerung einer Lampe mit der Motivation eine Türöffner
App zu programmieren zu tun? Ja, da erschließt sich mir der Zusammenhang
nicht wirklich.
Hier muß ich dem Jack wirklich mal recht geben, Dein Post hier ist
eigentlich völlig unnütz, weil man nicht sieht wie es gelöst wurde. Das
man mit dem HTTP Protokoll Steurungsaufgaben erledigen kann dürfte jedem
hier im Forum klar sein. Ebenso wie das prinzipiell funktioniert.
......
Ich möchte da jetzt nicht genauer eingehen, ist mir zu mühsam.
Für mich ist das Besondere dass ich ohne Handy joggen gehen kann :-)
Danke. Da hätte ich ’ne Frage zu: Ist es bei Dart üblich, die Programmlogik in einem dem Namen nach als Konfigurationsdatei gedachten File (›/lib/src/models/app_config.dart‹) unterzubringen?
Danke. Da hätte ich ’ne Frage zu: Ist es bei Dart üblich, die
Programmlogik in einem dem Namen nach als Konfigurationsdatei gedachten
File (›/lib/src/models/app_config.dart‹) unterzubringen?
app_config.dart ist keine konfigurationsdatei, sondern das datenmodell für die konfiguration. diese ist als json gespeichert. werte der klasse werden aufgrund des jsons geladen und umgekehrt wieder gespeichert.
David schrieb:
warum z.B.
eine Variable nicht exakt benannt ist was sie tut.
Weil’s Claude halt so ausgespuckt hat, und du nie in den Code geschaut
hast?
Seit Opus 4.8 macht claude super richtige variablen namen ;-)