E muss ja hier mehr Anwender, nicht zuletzt auch den Entwickler geben, die sowas schon mal gemacht haben.
Ich denke ein String-Vergleich ist nicht ganz so exotisch und vermutlich auch nicht ein Vergleich mit einem Empfangenen DPT-16-0 Telegram
Ich warte mal, bevor ich da selber Hand anlege. Is ja Wochenende und schönes Wetter
Besten Dank aber schon mal für die Hilfe
Mike
Ankündigung
Einklappen
Keine Ankündigung bisher.
HomeKit Brücke für KNX
Einklappen
X
-
Klar kann man den Stringvergleich auch zeichenweise selbst implementieren. Aber das erinnert mich an Asemmbler auf dem C64, als man selbst Integer-Multiplikationen selbst implementieren musst, weil der 6502/6510 Prozessor keine Multiplikation geschweige Division kannte.
- Likes 1
Einen Kommentar schreiben:
-
Hast Du beide Seiten der Kommunikation im Griff? Also das "*GO*" durch ein einzelnes Zeichen ersetzten wie "G"
Alternativ den Vergleich zeichenweise implementieren
Einen Kommentar schreiben:
-
Also mit Debug-Ausgaben (println) funktionieren die Zuweisungen.
Das Problem ist schon der Stringvergleich, aber der ist sowohl syntaktisch als auch semantisch richtig, natürlich im Rahmen meines Verständnisses.
.
Ich vermute irgendeine blöde Type-Cast Geschichte, die mir fehlt.
Auf dem BUs werden ja 16-Byte-Texte, die kürzer sind als 16 Byte immer mit aufgefüllten Nullen geschickt. Deswegen habe ich statt demauch mal einCode:TrimSpace(hkknx.ParseDPT16000(buf))"
probiert. Gleiches Nicht-ErgebnisCode:Trim(hkknx.ParseDPT16000(buf), "\x00")
- Likes 1
Einen Kommentar schreiben:
-
Okay - GO gehört nicht zu "meinen" Sprachen; schau mal, ob das = für Initialisierung und das := für eine Zuweisung an eine Variable verwendet werden muss
Einen Kommentar schreiben:
-
In der Go-Doku gibt es noch die funktionale Alternative strings.Compare, aber die scheint in der HomeKit Bridge nicht zu funktionieren.
Einen Kommentar schreiben:
-
Ja, der == Operator. Ist in C++ auch so und steht auch in der Go-Doku. Ergebnis des Operators sollte Bool sein.
bin aber dankbar für eine Korrektur.
Einen Kommentar schreiben:
-
in jeder bekannten Sprache muss an der Stelle ein String-Vergleich verwendet werden.
Einen Kommentar schreiben:
-
Hallo zusammen,
erstmal ein extrem großes Lob, an den Entwickler. Bin zwar noch am Testen, weil ich nicht so viel Zeit habe auch schon länger. Aber jedes mal wenn ich mich dran setze, bin ich echt begeistern und werde das Paket auch kaufen. Man sieht und "fühlt" was da an Arbeit drin steckt, plus dem Support. Dafür ist der Lizenzpreis absolut geschenkt!!!
Nun zu meinem Problemchen, es geht um das Scripting. Ich muss zugeben. dass ich gerade das erste Mal mit GO zu tun hatte. Habe 30 Jahre lang als Softwareentwickler gearbeitet, aber die letzten Jahre im Projektmanagement kommt einem an intuitiver Erfahrung doch viel abhanden... :-(
Was ich möchte ist Teilstrings, die via 14-Byte-Objekte vom HS über den Bus zur Homekit Brücke gehen, in dem Script sammeln und bei einem "*GO*" dann als Notification auf's Handy geschickt werden. Als allgemeine Alarmierungsfunktion. Klappt im Prinzip, nur - und das ist eigentlich peinlich - die Erkennung des Terminierungssymbols "*GO*" bekomme ich nicht hin
[CODE
]var hkknx = import("hkknx")
var strings = import("strings")
var oCh = hkknx.GroupWriteNotify("0/5/200")
var strComplete = ""
for {buf = <-oChmsg = strings.TrimSpace(hkknx.ParseDPT16000(buf))
if (msg == "*GO*") {hkknx.SendNotification("Meldung von HS", strComplete, "Mike")
println("Send:" + strComplete)
strComplete = ""} else {strComplete = strComplete + msg + " "}
}[/CODE]
Ich bitte untertänigst um Erleuchtung
Mike
Nachtrag: Die ParseFunktion auf ASCII "ParseDPT16000" geändert, macht aber keinen UnterschiedZuletzt geändert von MikeR; 13.04.2024, 13:46.
Einen Kommentar schreiben:
-
Noch eine weitere Frage bzgl. der Temperatursteuerung: Ist der Kelvin-Wert links und rechts festeingestellt bzw. von HomeKit vorgegeben?
IMG_9359.png
IMG_9360.png
Ich möchte Lampen ansteuern die einen sehr hohen CCT-Bereich abdecken können (von 1800-16000K)...
Einen Kommentar schreiben:
-
Nein, wenn du HSV, RGB, oder Farbe für eine Lampe konfiguriert hast, dann bekommst du die Farbauswahl in der Home-App angezeigt.Zitat von wwfr Beitrag anzeigenLiege ich richtig, dass dann sowohl die Farbansteuerung als auch eine Auswahl der CCT möglich ist - wie bei Philips Hue? D.h. die Brücke rechnet CCT in HSV um und leitet diese umgerechneten Werte weiter?
Wenn du die Farbtemperatur konfiguriert hast, dann bekommst du die Farbtemperaturauswahl angezeigt. Eine Umrechnung von Farbtemperatur auf Farbe steht nicht zur Verfügung.
Einen Kommentar schreiben:
-
Danke, wurde geändert.Zitat von AndiVaio Beitrag anzeigenDas solltest du dann auch in deiner Doku aktualisieren, denn dort weist du explizit darauf hin, dass es ohne Angabe eines Paketes aufgerufen werden muss:
https://hochgatterer.me/de/hkknx/doc...pts/dashboard/
Einen Kommentar schreiben:
-
Nachdem ich in der Suchfunktion hier im Thread nicht fündig geworden bin... eine Frage bzgl. der Farb- und CCT-Ansteuerung:
In der Home app gibt es beim Beispiel von farbigen Philips Hue Leuchten sowohl eine Farbauswahl und eine Auswahl der CCT:
IMG_9242.png
Ich plane RGBW-Stripes über ein DALI Gateway und hkknx in die Home app zu bringen. Es sind mit der Brücke Objekte für Ein/Aus, Helligkeit, Hue, Saturation parametriert.
Liege ich richtig, dass dann sowohl die Farbansteuerung als auch eine Auswahl der CCT möglich ist - wie bei Philips Hue? D.h. die Brücke rechnet CCT in HSV um und leitet diese umgerechneten Werte weiter?
Screenshot 2024-03-22 at 13.43.30.png
Einen Kommentar schreiben:
-
Vielen Dank, das hat funktioniert.Zitat von brutella Beitrag anzeigen
Ja, die Funktion ListenAndServe ist jetzt im net/http Package – das hätte schon immer so sein sollen und wurde in Version 2.8.1 geändert – sorry, dass das nicht besser kommuniziert wurde.
Das solltest du dann auch in deiner Doku aktualisieren, denn dort weist du explizit darauf hin, dass es ohne Angabe eines Paketes aufgerufen werden muss:
https://hochgatterer.me/de/hkknx/doc...pts/dashboard/
Einen Kommentar schreiben:


Einen Kommentar schreiben: