Ich muss zugeben dieses Video hat mich gerade um einiges weiter gebracht. Habe zwar nicht das gleiche Ziel gehabt wie du, aber ich musste auf meine Hue-Bridge und auf eine Steckdose im System mit Python zugreifen. Dank dir hat es auch bei mir mal "Klick" gemacht. Also danke dafür.
Hey, wie immer ein Top Video. Kannst du mal ein Video zum Studiengang Technische Informatik machen? Es gibt das ja auch als Modul im normalen Studium, da reist man das Thema ja bestimmt nur an
Hallo, sehr informatives Video, leider weiß ich nicht von wo bis wo der "hue" Farbbereich geht. Ich habe viel über HSV und HSL gelesen jedoch gehen diese nicht mal ansatzweise in diesen Zahlenbereich. Wie heißt dieser Farbbereich und hast du zufällig auch eine Art colorpicker? Edit ich habe mittlerweile herausgefunden, dass der Farbbereich von 0 bis 65535 geht
Für set_color wäre ein Dictionary eigentlich die bessere Datenstruktur gewesen und die Color dementsprechend einfach als Indizies und nur die Farbe zurück geben, da die restliche Datenstruktur gleich ist und hier Redundanz besteht
Hey Algorithmen verstehen, könntest du vielleicht mal ein Video machen in dem du erklärst wie man ein Programm schreiben kann das einen String Ende zu Ende verschlüsselt? Insbesondere interessiert mich wie diese Schlüssel erstellt werden können und was man dann damit anfangen kann. Das Prinzip von der Ende zu Ende Verschlüsselung verstehe ich, jedoch weiß ich eben nicht wie das mit den keys funktioniert und besonders nicht wie man diese dann benutzt um die Datei wirklich zu verschlüsseln
Das mit den Keys funktioniert so, du genierst am Anfang 2 Keys, einen Public Key und einen Private Key. Den Public Key verschickst du dann an die andere Person die dir eine Nachricht schicken will. Dieser benutzt den Public Key um die Nachricht zu verschlüsseln. Diese Nachricht kann jetzt nicht mehr mit dem Public Key entschlüsselt werden, sondern nur noch mit dem Private Key, den ja nur du haben solltest. Das ganze nennt sich Asymmetrische Kryptografie, kannst ja selber mal ein bisschen Googeln, falls du nicht weiter kommst, schreib mir einfach mal privat, ich glaube ich hab sowas mal just4fun geschrieben.
@@nicht_menschlich Ich garantiere nicht dafür das alles komplett funktioniert, aber nur damit du einen Anfang hast ;) Ich hoffe ich konnte helfen, LG Philipp
ich habe noch vor 2 stunden überlegt, ob man sich sowas mit nem raspberry basteln kann und dann lädst du hoch xD.. Allerdings finde ich die bridge echt teuer, fast 50€
Eine Frage... ich hab mir nen Algorithmus geschrieben um aus rgb values x und y Wert für die hue zu bekommen. Allerdings tut sich da farblich nix. Sowohl wenn ich die request an .../State/xy mit json = {„0“: x,“1“:y} sende, als auch wenn ich an .../state mit Json = {„xy“:{„0“: x,“1“:y}} sende. Irgendeine Idee?
Nein hab ich getestet. Für alle möglichen Kombis kommen immer Werte unter 1 raus. Ich hab’s sogar jetzt so gemacht, dass auf 4 nach Komma stellen gerundet wird. Ich Versuchs heute mal noch dass ich statt ner Float mal nen int oder str schicke vllt klappt’s ja dann...den Code kann ich nachher auch noch schicken bin aber grade am Handy und da hab ich den nicht ;)
@@Florian.Dalwigk hab jetzt die Lösung gefunden!! Ich hab’s mir immer im JSON Format visualisieren lassen und dabei ist mir entgangen, dass dem key xy statt jeweils neuen key wie angenommen 0 und 1 eine LISTE zu geordneten wird... wurde natürlich in der schönen grafischen Darstellung falsch geladen aber.... danke dass du mir helfen wolltest :)
Hey, warum benutzt du eigentlich bei 07:29: self.url = '{}/api/{}/lights/{}/state/'.format(self.ip, self.user, self.lamp)? Ich finde einen fString viel übersichtlicher: self.url = f'{self.ip}/api/{self.user}/lights/{self.lamp}/state/' Trotzdem ein gutes Video, weiter so ;)
@@Florian.Dalwigk Hab grade auch noch mal nachgelesen, fStrings wurden erst in 3.5 implementiert, schadet bestimmt nicht das so zu machen für die backwards compatibility :)
@@Florian.Dalwigk Ein Schwede, der englischsprachige Videos auch rund um Informatik auf seinem Kanal hochlädt. Bei ihm sind es jedoch immer eher Erfahrungsberichte und Experimente, bei denen er irgendwas selbst ausprobiert und versucht zu lernen :D Kann den Kanal nur weiterempfehlen
Danke dir, werde ich mir mal anschauen :) Übrigens: Am Freitag lade ich auch mal so ein "Experiment" Video hoch ;) Mal schauen, wie das bei euch so ankommt.
@@Florian.Dalwigk Ich hab einen LED Streifen von ELK Bledom und ich will in per Sprachsteuerung Steuen dazu gibt es ne App weißt du wie ich sie mit Pyhton steuer da es dazu keine Bridge gibt?
Oh, vielen Dank für den Hinweis! Ich habe ihn jetzt in der Videobeschreibung ergänzt. Sorry, ich dachte, ich hätte den schon hinterlegt. Viel Spaß beim Ausprobieren :)
Ist dein Kanal eigentlich auch von der Aktion gegen IT-Security und Hacking Videos betroffen die ja gerade auf UA-cam durch den Algorithmus stattfindet?
@@Florian.Dalwigk das Problem habe ich bereits gelöst aber ich bekomme jetzt dem fehler beim starten : File "C:/Users/USER/PycharmProjects/huecontroller/main.py", line 10 self.url = '{}/api/{}/lights/{}/state/'.fo..., self.user, self.lamp) ^ SyntaxError: invalid syntax
Stimmt (wurde schon erwähnt). Allerdings wollte ich zeigen, wie man so etwas (ohne Anwendung einer Lib) selber machen kann. Das andere kann ja jeder ... ;)
@@Florian.Dalwigk Sorry wenn ich etwas schwer von Begriff bin, aber sagen wir ich habe die RGB -Werte 255,165,0 (Orange). Wie komme ich mit diesen Formeln auf einen Wert, der ungefähr 10880 hue entspricht, die du im Video angibst?
Ganz einfach: Übersetze die RGB Werte in den HSV Raum (dafür gibt es ebenfalls Rechner im Internet). Lies den Wert für H ab (in deinem Beispiel H=39). Multipliziere den Faktor H/255 mit 65535.
Moin, habe mal wieder eine Frage, die wieder nur im Ansatz mit dem Video zu tun hat, aber egal^^ Ich will mit Python ein Programm programmieren, welches Bilder "geometrisiert" alla dem Programm Geometrize, bitte mal nachschlagen^^ Also ich habe mir jetzt schon mal so einen Ablaufplan erstellt, aber scheitere jetzt schon, überhaupt Kreise oder Rechtecke in einem Fenster zu zeichnen. Hast du da eine Idee, weil ich verzweifle echt.. Ist das überhaupt in Python so in dem Ausmaß möglich, wie es in dem Programm "Geometrize" gemacht wird? Ich bin so gesehen gerade noch ein "blutiger" Anfänger.
Ja, das kann man damit programmieren. Das kann ich dir aber nicht in einem kurzen Kommentar erklären. Du brauchst dafür übrigens viel Wissen im Bereich Computergrafik und Bildverarbeitung - das ist für ein Anfängerprojekt vlt. etwas too much.
Du kannst dir aber mal anschauen, wie Geometrize das gemacht hat: github.com/Tw1ddle/geometrize/tree/master/scripts Das ist zwar nur der Generator, aber dann siehst du schonmal, wie groß der Aufwand für "einfache" Tasks ist. Geometrize ist übrigens größtenteils in C++ geschrieben. Da kannst du dir zumindest die Algorithmik vorab durchlesen ;)
Kannst du mir mal den Zusammenhang zwischen Tangens und Tangente erklären?^^ Ich sollte das die Tage rausfinden und habe noch bis morgen Zeit, konnte aber nichts finden :/ Ich hoffe du kannst mir da weiterhelfen
Das passt ja mal gar nicht zu dem Video 😄 Da wird man im Internet eigentlich recht schnell fündig. Male dir mal einen Einheitskreis auf und schaue, wo dort der Tangens liegt. Dann siehst du, dass dieser den Einheitskreis *berührt*.
@@Florian.Dalwigk Also den Tangens bestimmt man ja dadurch, dass man eine Hilfslinie ganz rechts bzw. ganz links einzeichnet, also am äußersten Punkt des Kreises und dann den Radius so weit zeichnet, bis er die Hilfslinie schneidet/berührt.(Sorry, klingt grade mega kacke, weil schreiben^^). Ist damit gemeint, dass diese Hilfslinie eine Tangente ist? Alter das klingt grade so durcheinander^^ Aber danke, dass du so schnell antwortest :) Habe einfach unter dem neusten Video gepostet, weil es halt am neusten ist xD Feier deine Videos
@@Florian.Dalwigk Also tangente ist eine gerade, die eine Kurve/Funktion/wasauchimmer in einem Punkt berührt. Der Tangens ist außerhalb des Einheitskreises, wenn du das meinst. Also der Wert des Tangens ist an der Ordinate ablesbar, oder nicht? Entweder die Ordinate ist eine Tangente, wenn der Mittelpunkt keine Schnitt bzw. Berührpunkt ist, allerdings ist er es, was mich dazu führt, dass die Hilfslinie die Tangente sein muss, allerdings trifft diese den Kreis in einem Punkt, aber auch mit Punkt P. Die Werte des Tangens sind nur im 1.und 4. Quadranten des Kreises definiert, was mir allerdings immernoch nichts bringt.. Ich finde echt Klasse, wie du versuchst mich zur Lösung hinzuführen, aber anscheinend übersehe ich was entscheidendes, oder ich missverstehe die Definition von der Lage des Tangens..
Ich bin beeindruckt!
Von was?
Ich muss zugeben dieses Video hat mich gerade um einiges weiter gebracht.
Habe zwar nicht das gleiche Ziel gehabt wie du, aber ich musste auf meine Hue-Bridge und auf eine Steckdose im System mit Python zugreifen.
Dank dir hat es auch bei mir mal "Klick" gemacht. Also danke dafür.
Das freut mich!
Ich mag das neue Profilbild ^^
Das freut mich 🙂 Ich wollte jetzt endlich auf meinen Avatar umsteigen, den ich immer in den Videos und auf den Thumbnails verwende.
Kannst du mal den REST-Standard erklären?
Ich schaue mal, ob ich dazu ein Video mache.
@@Florian.Dalwigk Würde mich sehr freuen
@@Florian.Dalwigk würde mich auch sehr interessieren
+
++
Hey, wie immer ein Top Video. Kannst du mal ein Video zum Studiengang Technische Informatik machen? Es gibt das ja auch als Modul im normalen Studium, da reist man das Thema ja bestimmt nur an
Danke für dein Lob :) Dazu habe ich schon ein Video gemacht: ua-cam.com/video/itm_25jrYxw/v-deo.html
In meinem Video zum 1. Semester des Informatikstudiums spreche ich auch über technische Informatik als Modul: ua-cam.com/video/KK68VbnNWME/v-deo.html
Hallo,
sehr informatives Video, leider weiß ich nicht von wo bis wo der "hue" Farbbereich geht. Ich habe viel über HSV und HSL gelesen jedoch gehen diese nicht mal ansatzweise in diesen Zahlenbereich. Wie heißt dieser Farbbereich und hast du zufällig auch eine Art colorpicker?
Edit ich habe mittlerweile herausgefunden, dass der Farbbereich von 0 bis 65535 geht
Ja, sehr gut! Dazu kommt auf jeden Fall noch ein Video.
Kann man auch alles was du mit Python hier auf den Kanal machst mit anderen Programmiersprachen, wie C#?
Das hier auf jeden Fall. Alles andere, was ich bisher gezeigt habe, müsste auch in C# gehen.
Hi,
warum sprichst du Router so untypisch aus? Hat das einen bestimmten Grund?
Ja, weil das die *richtige* Aussprache ist ;)
@@Florian.Dalwigk warum hört man dann bei jedem Englischduden die andere Aussprache? :D
Englischduden? Schau mal hier: www.dict.cc/?s=router ;)
@@Florian.Dalwigk vielen Dank
Gerne doch ;)
Für set_color wäre ein Dictionary eigentlich die bessere Datenstruktur gewesen und die Color dementsprechend einfach als Indizies und nur die Farbe zurück geben, da die restliche Datenstruktur gleich ist und hier Redundanz besteht
Jo, geht auch
Hallo, Andre mal wieder interessantes Video. Wo bleibt jetzt eigentlich der Discord-Server?
Hallo Florentin, wieder mal ein interessanter Kommentar. Wird die Frage nicht irgendwann langweilig? ;)
@@Florian.Dalwigk Okay, ich mach doch nur Spaß. Solange bis der Discord-Server kommt 😂. Okay, glaube langsam reicht es aber wirklich
@@Florian.Dalwigk Dann ab Heute Andre
Haha, weiß ich doch ;)
Das gleiche hatte ich vor ner Woche auch mal gemacht
Cool! 😎
Hey Algorithmen verstehen,
könntest du vielleicht mal ein Video machen in dem du erklärst wie man ein Programm schreiben kann das einen String Ende zu Ende verschlüsselt?
Insbesondere interessiert mich wie diese Schlüssel erstellt werden können und was man dann damit anfangen kann.
Das Prinzip von der Ende zu Ende Verschlüsselung verstehe ich, jedoch weiß ich eben nicht wie das mit den keys funktioniert und besonders nicht wie man diese dann benutzt um die Datei wirklich zu verschlüsseln
Ja, das klingt sehr interessant. Für die nächste Zeit sind aber erst noch ein paar andere Videos in der Pipe.
Das mit den Keys funktioniert so, du genierst am Anfang 2 Keys, einen Public Key und einen Private Key. Den Public Key verschickst du dann an die andere Person die dir eine Nachricht schicken will. Dieser benutzt den Public Key um die Nachricht zu verschlüsseln. Diese Nachricht kann jetzt nicht mehr mit dem Public Key entschlüsselt werden, sondern nur noch mit dem Private Key, den ja nur du haben solltest. Das ganze nennt sich Asymmetrische Kryptografie, kannst ja selber mal ein bisschen Googeln, falls du nicht weiter kommst, schreib mir einfach mal privat, ich glaube ich hab sowas mal just4fun geschrieben.
@@greansilver das weiß ich ja, meine Frage ist wie man diese keys im code benutzen kann um das dann auch wirklich zu entschlüsseln bzw. Verschlüsseln.
@@nicht_menschlich
import cryptography
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import padding
import os, json
_dir = os.path.dirname(__file__)
class P2P_Key():
def __init__(self, keys=None, path=None, key_size=1):
self._update_keys(keys, key_size=key_size)
def get_new_keys(self, key_size=1):
self._update_keys(key_size=key_size)
def get_private_bytes(self):
return self.private.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.NoEncryption()
)
def get_public_bytes(self):
return self.public.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
def save_pem(self):
private_key = self.private.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.NoEncryption()
)
with open(f'{_dir}/private_key.pem', 'wb') as f:
f.write(private_key)
public_key = self.public.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
with open(f'{_dir}/public_key.pem', 'wb') as f:
f.write(public_key)
def save_private_pem(self):
private_key = self.private.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.NoEncryption()
)
with open(f'{_dir}/private_key.pem', 'wb') as f:
f.write(private_key)
def save_public_pem(self):
public_key = self.public.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
with open(f'{_dir}/public_key.pem', 'wb') as f:
f.write(public_key)
def load_pem(self, path=None):
tmp_path = path or _dir
with open(f"{tmp_path}/private_key.pem", "rb") as key_file:
self.keys = serialization.load_pem_private_key(
key_file.read(),
password=None,
backend=default_backend()
)
self.private = self.key_size
self.public = self.keys.public_key()
def load_private_pem(self, path=None):
tmp_path = path or _dir
with open(f"{tmp_path}/private_key.pem", "rb") as key_file:
return serialization.load_pem_private_key(
key_file.read(),
password=None,
backend=default_backend()
)
def load_public_pem(self, path=None):
tmp_path = path or _dir
with open(f"{tmp_path}/public_key.pem", "rb") as key_file:
return serialization.load_pem_public_key(
key_file.read(),
backend=default_backend()
)
def save_json(self):
with open(f'{_dir}/keys.json', 'wb') as f:
json.dump(self._get_json(), f, indent=4)
def save_private_json(self):
with open(f'{_dir}/private_key.json', 'wb') as f:
json.dump(self._get_json()['private_key'], f, indent=4)
def save_public_json(self):
with open(f'{_dir}/public_key.json', 'wb') as f:
json.dump(self._get_json()['public_key'], f, indent=4)
def load_json(self):
with open(f'{_dir}/keys.json', 'rb') as f:
json_data = json.load(f)
self.keys = serialization.load_pem_private_key(
json_data['private_key'],
password=None,
backend=default_backend()
)
self.private = self.keys
self.public = self.keys.public_key()
return json_data
def load_private_json(self):
with open(f'{_dir}/private_key.json', 'rb') as f:
json_data = json.load(f)
return json_data
def load_public_json(self):
with open(f'{_dir}/public_key.json', 'rb') as f:
json_data = json.load(f)
return json_data
def _update_keys(self, keys=None, key_size=1):
"""
key_size = 1 | 0 = 1028, 1 = 2048, 3 = 4096, ...
"""
self.keys = keys or self._get_new_keys(key_size)
self.private = self.keys
self.public = self.keys.public_key()
def _load_private_bytes(self, some_bytes):
if some_bytes:
return serialization.load_pem_private_key(
some_bytes,
password=None,
backend=default_backend()
)
else:
return self.public
def _load_public_bytes(self, some_bytes):
if some_bytes:
return serialization.load_pem_public_key(
some_bytes,
backend=default_backend()
)
else:
return self.public
def _get_new_keys(self, key_size=1):
return rsa.generate_private_key(
public_exponent = 65537,
key_size = self._get_key_size(key_size),
backend = default_backend()
)
def _get_json(self):
return {
'private_key': self.get_private_bytes(),
'public_key': self.get_public_bytes()
}
def _get_key_size(self, exponent):
return int(1024 * (2 ** exponent))
class P2P_Encrypt():
def __init__(self, keys=None, path=None, key_size=1):
self.keys = P2P_Key(keys=keys, path=path, key_size=key_size)
def encrypt(self, some_string, public_key=None):
public_key = self.keys._load_public_bytes(public_key)
return public_key.encrypt(
some_string.encode(),
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
def decrypt(self, user_string, private_key=None):
private_key = self.keys._load_private_bytes(private_key)
try:
return private_key.decrypt(
user_string,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
).decode()
except Exception as e:
return f"Error: {e}"
if __name__ == "__main__":
crypto = P2P_Encrypt()
print(f'Private Key:
{crypto.keys.get_private_bytes()}
Public Key:
{crypto.keys.get_public_bytes()}
')
print(f'JSON Data: {crypto.keys._get_json()}')
json_keys = crypto.keys._get_json()
private_key_save = crypto.keys.get_private_bytes()
some_text = "Funktioniert das auch mit Umlauten? äöüÄÖÜ"
encrypted = crypto.encrypt(some_text, public_key = json_keys['public_key'])
crypto.keys.get_new_keys()
decrypted = crypto.decrypt(encrypted, private_key = json_keys['private_key'])
print(f'Original Message:
{some_text}
Encrypted Message:
{encrypted}
Decrypted Message:
{decrypted}' )
@@nicht_menschlich Ich garantiere nicht dafür das alles komplett funktioniert, aber nur damit du einen Anfang hast ;)
Ich hoffe ich konnte helfen, LG Philipp
Ich finde bei sowas Microcontroller viel besser aber das ist nicht schlecht
Wie lange programmierst du schon mit Java, falls du das schon beantwortet hast tut es mir leid ich bin gerade erst auf deinen Kanal gestoßen.
Kein Problem 😉 Ich programmiere jetzt seit fast 7 Jahren mit Java.
Weißt du ob das auch mit einer:
Xiaomi Mi Smart LED Bulb Essential White and Color geht?
Bzw. Wie es mit der Xiaomi Lampe gehen würde?
Es gibt einige Hersteller, mit denen das geht. Ob auch Xiaomi das anbietet, weiß ich allerdings nicht. Notfalls einfach mal googeln ;)
Was hälst du davon den Source-Code auf GitHub zu veröffentlichen?
Nicht so viel. Ich poste den Code (in den meisten Fällen) direkt in der Videobeschreibung.
Genau :)
Für mein Video kommenden Freitag wäre es aber eine Überlegung wert, da es diesmal ziemlich viel Code geworden ist 🤔
Weißt du wie man die Lampen am besten zum blinken bekommt? :D
Einfach das Skript anpassen ;)
ich habe noch vor 2 stunden überlegt, ob man sich sowas mit nem raspberry basteln kann und dann lädst du hoch xD.. Allerdings finde ich die bridge echt teuer, fast 50€
Ja, im Eigenbau ist das auch möglich (und günstiger!).
@@Florian.Dalwigk danke für die (schnelle) antwort! Schön das nochmal von jemandem mit Ahnung zu hören bzw. zu lesen!
Danke für die Blumen 😊
Filips Huu-E😂😂 Sorry, das hat mich so getriggert(Hi-U)
Hi-U? Wird das wirklich so ausgesprochen? 😄
@@Florian.Dalwigk ich glaub schon, aber gut, wir wissen ja, was du meinst ;-))
Eine Frage... ich hab mir nen Algorithmus geschrieben um aus rgb values x und y Wert für die hue zu bekommen. Allerdings tut sich da farblich nix. Sowohl wenn ich die request an .../State/xy mit json = {„0“: x,“1“:y} sende, als auch wenn ich an .../state mit Json = {„xy“:{„0“: x,“1“:y}} sende. Irgendeine Idee?
Ohne deinen Code kann ich nur mutmaßen, dass dein Algorithmus nicht funktioniert.
Nein hab ich getestet. Für alle möglichen Kombis kommen immer Werte unter 1 raus. Ich hab’s sogar jetzt so gemacht, dass auf 4 nach Komma stellen gerundet wird. Ich Versuchs heute mal noch dass ich statt ner Float mal nen int oder str schicke vllt klappt’s ja dann...den Code kann ich nachher auch noch schicken bin aber grade am Handy und da hab ich den nicht ;)
Der Code wird irgendwie jedes Mal gelöscht wenn ich ihn poste...
Liegt wohl am YT Algorithmus.
@@Florian.Dalwigk hab jetzt die Lösung gefunden!! Ich hab’s mir immer im JSON Format visualisieren lassen und dabei ist mir entgangen, dass dem key xy statt jeweils neuen key wie angenommen 0 und 1 eine LISTE zu geordneten wird... wurde natürlich in der schönen grafischen Darstellung falsch geladen aber.... danke dass du mir helfen wolltest :)
Ich hab im ThumbnAIL Das Wort "Steuern" gesehen und mein Cortisolspiegel ist auf einem Tageshoch
Lul
Hey, warum benutzt du eigentlich bei 07:29:
self.url = '{}/api/{}/lights/{}/state/'.format(self.ip, self.user, self.lamp)?
Ich finde einen fString viel übersichtlicher:
self.url = f'{self.ip}/api/{self.user}/lights/{self.lamp}/state/'
Trotzdem ein gutes Video, weiter so ;)
Das habe ich schon einmal in einem anderen Kommentar beantwortet :) Deine Lösung ist aber auch übersichtlich (ist allerdings Geschmacksache) ;)
@@Florian.Dalwigk Hab grade auch noch mal nachgelesen, fStrings wurden erst in 3.5 implementiert, schadet bestimmt nicht das so zu machen für die backwards compatibility :)
Alles hat seine Vor- und Nachteile ;)
Das Video erinnert mich an eines der letzten Videos von Kalle Hallden, geheime Koorperation? 😉😉😂
Wer ist Kalle Hallden? :D
@@Florian.Dalwigk Ein Schwede, der englischsprachige Videos auch rund um Informatik auf seinem Kanal hochlädt. Bei ihm sind es jedoch immer eher Erfahrungsberichte und Experimente, bei denen er irgendwas selbst ausprobiert und versucht zu lernen :D Kann den Kanal nur weiterempfehlen
Danke dir, werde ich mir mal anschauen :) Übrigens: Am Freitag lade ich auch mal so ein "Experiment" Video hoch ;) Mal schauen, wie das bei euch so ankommt.
@@Florian.Dalwigk Oh, da freue ich mich drauf :D Um wie viel Uhr wird das Video veröffentlicht?
16 Uhr, wenn alles gut läuft 🙂
Kannst du evtl. mal ein python-video zu nanoleafs machen?
Ist derzeit nicht geplant.
@@Florian.Dalwigk Ich hab einen LED Streifen von ELK Bledom und ich will in per Sprachsteuerung Steuen dazu gibt es ne App weißt du wie ich sie mit Pyhton steuer da es dazu keine Bridge gibt?
Wo ist der Link zum Simulator?
Oh, vielen Dank für den Hinweis! Ich habe ihn jetzt in der Videobeschreibung ergänzt. Sorry, ich dachte, ich hätte den schon hinterlegt. Viel Spaß beim Ausprobieren :)
Ist dein Kanal eigentlich auch von der Aktion gegen IT-Security und Hacking Videos betroffen die ja gerade auf UA-cam durch den Algorithmus stattfindet?
Dazu kommt heute noch ein Video.
Kannst du mal ein Video zu mealy und Moore Automaten machen?
Aktuell ist dazu noch kein Video geplant, doch ich setze es auf die Themenliste.
Shit, hab keine Bridge, meine Lampe wird nur per Alexa gesteuert
Meh
bei mir lässt sich pip request nicht installieren
Wie lautet denn die Fehlermeldung?
@@Florian.Dalwigk das Problem habe ich bereits gelöst aber ich bekomme jetzt dem fehler beim starten : File "C:/Users/USER/PycharmProjects/huecontroller/main.py", line 10
self.url = '{}/api/{}/lights/{}/state/'.fo..., self.user, self.lamp)
^
SyntaxError: invalid syntax
Steht die Zeile wirklich so dort? Du musst .format( usw. verwenden.
Hey du hast vergessen den Simulator zu verlinken :D
Nope, der ist verlinkt 🙂
@@Florian.Dalwigk ah jetzt hab ichs gefunden danke :D
Gerne doch!
Ich hab einen HP 27f 4K 😋
?
@@Florian.Dalwigk Mir fiel dein Monitor auf! 😅
Achso 😅👍
Gibt eine Library phue die für die Lampen existiert für Python.
Stimmt (wurde schon erwähnt). Allerdings wollte ich zeigen, wie man so etwas (ohne Anwendung einer Lib) selber machen kann. Das andere kann ja jeder ... ;)
DIGGA WAS SOLL DAS LAD CODE DOCH AUF PASTEBIN HOCH WAS SOLL ICG DDAIMIT IN DER BESCHRIEBINNG?????
DIGGA WAS SOLL DAS SEI FROH DASS DU IHN NED ABTIPPEN MUSST WAS SOLL ICG MIT DIESEM KOMMENTAR??????
Gibt es eine Möglichkeit, Farbwerte von RGB in die Werte sat, bri und hue umzurechnen?
Btw. Gratulation zu den 30k
Danke! :) www.rapidtables.com/convert/color/hsv-to-rgb.html
@@Florian.Dalwigk Aber wie bekomme ich den Wert zwischen 0 und 0xFFFF und nicht den Winkel?
Unten stehen die Formeln. Einfach umstellen 😉
@@Florian.Dalwigk Sorry wenn ich etwas schwer von Begriff bin, aber sagen wir ich habe die RGB -Werte 255,165,0 (Orange). Wie komme ich mit diesen Formeln auf einen Wert, der ungefähr 10880 hue entspricht, die du im Video angibst?
Ganz einfach: Übersetze die RGB Werte in den HSV Raum (dafür gibt es ebenfalls Rechner im Internet). Lies den Wert für H ab (in deinem Beispiel H=39). Multipliziere den Faktor H/255 mit 65535.
Moin,
habe mal wieder eine Frage, die wieder nur im Ansatz mit dem Video zu tun hat, aber egal^^
Ich will mit Python ein Programm programmieren, welches Bilder "geometrisiert" alla dem Programm Geometrize, bitte mal nachschlagen^^
Also ich habe mir jetzt schon mal so einen Ablaufplan erstellt, aber scheitere jetzt schon, überhaupt Kreise oder Rechtecke in einem Fenster zu zeichnen. Hast du da eine Idee, weil ich verzweifle echt.. Ist das überhaupt in Python so in dem Ausmaß möglich, wie es in dem Programm "Geometrize" gemacht wird?
Ich bin so gesehen gerade noch ein "blutiger" Anfänger.
Hier nochmal, wo ich das entdeckt habe:
ua-cam.com/video/4GAINNDlKnI/v-deo.html
Ja, das kann man damit programmieren. Das kann ich dir aber nicht in einem kurzen Kommentar erklären. Du brauchst dafür übrigens viel Wissen im Bereich Computergrafik und Bildverarbeitung - das ist für ein Anfängerprojekt vlt. etwas too much.
Du kannst dir aber mal anschauen, wie Geometrize das gemacht hat: github.com/Tw1ddle/geometrize/tree/master/scripts Das ist zwar nur der Generator, aber dann siehst du schonmal, wie groß der Aufwand für "einfache" Tasks ist. Geometrize ist übrigens größtenteils in C++ geschrieben. Da kannst du dir zumindest die Algorithmik vorab durchlesen ;)
@@Florian.Dalwigk Okay, danke :) C++ ist doch wie beim Arduino, oder? Werde da morgen mal reinschauen :)
Ja, genau.
Python ist DRY!, dein if elif elif könnte besser ein dict sein
Stimmt! Allerdings kennen das viele Anfänger noch nicht. Ich bin auch ein Freund von "Don't Repeat Yourself"
bruh, wofür gibts die Himbeertorte?
?
@@Florian.Dalwigk raspberry pi.
🤦😅
Kannst du mir mal den Zusammenhang zwischen Tangens und Tangente erklären?^^ Ich sollte das die Tage rausfinden und habe noch bis morgen Zeit, konnte aber nichts finden :/ Ich hoffe du kannst mir da weiterhelfen
Das passt ja mal gar nicht zu dem Video 😄 Da wird man im Internet eigentlich recht schnell fündig. Male dir mal einen Einheitskreis auf und schaue, wo dort der Tangens liegt. Dann siehst du, dass dieser den Einheitskreis *berührt*.
@@Florian.Dalwigk Also den Tangens bestimmt man ja dadurch, dass man eine Hilfslinie ganz rechts bzw. ganz links einzeichnet, also am äußersten Punkt des Kreises und dann den Radius so weit zeichnet, bis er die Hilfslinie schneidet/berührt.(Sorry, klingt grade mega kacke, weil schreiben^^). Ist damit gemeint, dass diese Hilfslinie eine Tangente ist?
Alter das klingt grade so durcheinander^^
Aber danke, dass du so schnell antwortest :)
Habe einfach unter dem neusten Video gepostet, weil es halt am neusten ist xD
Feier deine Videos
und im Internet habe ich garnichts gefunden..^^
Wie ist denn eine Tangente definiert? Wenn du das herausgefunden hast, dann schaust du dir nochmal die Lage des Tangens am Einheitskreis an.
@@Florian.Dalwigk Also tangente ist eine gerade, die eine Kurve/Funktion/wasauchimmer in einem Punkt berührt.
Der Tangens ist außerhalb des Einheitskreises, wenn du das meinst. Also der Wert des Tangens ist an der Ordinate ablesbar, oder nicht?
Entweder die Ordinate ist eine Tangente, wenn der Mittelpunkt keine Schnitt bzw. Berührpunkt ist, allerdings ist er es, was mich dazu führt, dass die Hilfslinie die Tangente sein muss, allerdings trifft diese den Kreis in einem Punkt, aber auch mit Punkt P.
Die Werte des Tangens sind nur im 1.und 4. Quadranten des Kreises definiert, was mir allerdings immernoch nichts bringt..
Ich finde echt Klasse, wie du versuchst mich zur Lösung hinzuführen, aber anscheinend übersehe ich was entscheidendes, oder ich missverstehe die Definition von der Lage des Tangens..