Forum: Projekte & Code HTTPS Kommandos mit der Pixelwatch senden


von David (dave6644)


Angehängte Dateien:

Lesenswert?

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:

REstMote:
https://play.google.com/store/apps/details?id=com.david.restmote

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.
: Bearbeitet durch User
von Jack V. (jackv)


Lesenswert?

David schrieb:
> HTTPS-Befehle

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.
von David (dave6644)


Lesenswert?

glaub mir, ich habe ahnung davon. habe es aber editiert falls es dich zu 
sehr ablenkt.
von Jack V. (jackv)


Lesenswert?

David schrieb:
> glaub mir, ich habe ahnung davon.

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?
: Bearbeitet durch User
von David (dave6644)


Lesenswert?

dann sag mir was du anders nennen willst wenn du so viel ahnung hast.

hab den code noch nirgends veröffentlicht
von Jack V. (jackv)


Lesenswert?

David schrieb:
> 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.

David schrieb:
> hab den code noch nirgends veröffentlicht

Aber warum dann der Thread in diesem Subforum, in dem der Beschreibung 
nach der Code von Projekten gezeigt werden soll?
: Bearbeitet durch User
von Finn R. (finn_der_ii)


Lesenswert?

Sieht nach Schleichwerbung aus
von David (dave6644)


Lesenswert?

Jack V. schrieb:
> 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.

> David schrieb:
>> hab den code noch nirgends veröffentlicht
>
> 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 ;-)
von Finn R. (finn_der_ii)


Lesenswert?

Jack V. schrieb:
> David schrieb:
>> HTTPS-Befehle

HTTP(S) ist ein Protokoll!
von Jack V. (jackv)


Lesenswert?

David schrieb:
> Viele veröffentlichen keinen Code hier.

Eigentlich ist bei nahezu jedem hier vorgestellten Softwareprojekt der 
Code dabei.

David schrieb:
> Ich denke weniger dass der UI
> Code der App und die Dart api für http request so interessant ist.

Ist er. Und sei’s nur, um meine in der ersten Antwort thematisierten 
Befürchtungen auszuräumen.

David schrieb:
> 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.
von David (dave6644)


Lesenswert?

Finn R. schrieb:
> Jack V. schrieb:
>> David schrieb:
>>> HTTPS-Befehle
>
> HTTP(S) ist ein Protokoll!

ich les das nirgends. war schon lääääängst editiert vor deinem post ;-)
von Jack V. (jackv)


Lesenswert?

David schrieb:
> ich les das nirgends.

David schrieb:
> Befehle über HTTPS

… 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.
von David (dave6644)


Lesenswert?

Jack V. schrieb:
> David schrieb:
>> Viele veröffentlichen keinen Code hier.
>
> 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.

> David schrieb:
>> 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.
von David (dave6644)


Lesenswert?

Jack V. schrieb:
> David schrieb:
>> ich les das nirgends.
>
> David schrieb:
>> Befehle über HTTPS

> … 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.
: Bearbeitet durch User
von David (dave6644)


Lesenswert?

Finn R. schrieb:
> Sieht nach Schleichwerbung aus

Im prinzip ja. Aber die app ist gratis und hat keine Werbung. Wird auch 
immer so bleiben.
von Jack V. (jackv)


Lesenswert?

David schrieb:
> Manche finden es auch praktisch eine App einfach über den Play Store
> installieren zu können.

Ja, und da spricht auch nix gegen. Nur eben, dass dieses Forum als 
Werbeplattform dafür missbraucht wird, ist schlecht.

David schrieb:
> 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.
: Bearbeitet durch User
von Hans (ths23)


Lesenswert?

David schrieb:
> 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.
: Bearbeitet durch User
von David (dave6644)


Lesenswert?

Hans schrieb:
> David schrieb:
>> Ich habe es damit z.B. auch
>> geschafft über ein Gateway am Raspi eine Tuya Lampe zu steuern.
>
> Toll! Was ist da jetzt Besonderes?

Ähm...Wer behauptet dass das was besonderes ist ? Ich habe ein Beispiel 
gegeben was die Motivation war diese App zu machen.

Ich glaube du hast irgend was nicht verstanden
von Hans (ths23)


Lesenswert?

David schrieb:
> Ä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.
von David (dave6644)


Angehängte Dateien:

Lesenswert?

Jack V. schrieb:
> … 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....
von David (dave6644)


Lesenswert?

Hans schrieb:
> David schrieb:
>> Ä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 :-)
von Jack V. (jackv)


Lesenswert?

David schrieb:
> anbei der Code gezipped

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?

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?
von David (dave6644)


Lesenswert?

Jack V. schrieb:
> David schrieb:
>> anbei der Code gezipped
>
> 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 ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.