Also... PIO ist etwas schwierig, auch nach 2 Jahren verstehe ich immer noch nicht alles, was da passiert. Und zudem sind wir in OpenKNX auch noch auf der Suche nach der richtigen Projektstruktur, um sowohl unsere Entwicklung reibungslos zu gestalten wie auch andere möglichst reibungslos zu unterstützen. So weit sind wir aber noch nicht. Deswegen gibt es immer wieder Projektänderungen. Und die Doku ist nach einer Umstellung sicherlich nicht auf dem neusten Stand, sorry. Soweit zum Hintergrund.
Zu den Fehlermeldungen: In PIO gibt es immer nur ein Projekt, dessen Symbole analysiert und verfolgt werden. Im Logikmodul sind das alle Dateien, die im src-Verzeichnis liegen und alles, was im lib-Verzeichnis liegt. Auch wenn im lib-Verzeichnis nur Links auf die Projekte im Hauptverzeichnis stehen, ist es für PIO immer noch eine Datei mit ihrem kompletten Pfad, die Zählt.
Wenn Du also OpenKNX/OGM-Common/src/Helper.h anguckst, wirst Du Fehler gemeldet bekommen, weil es hier kein Projekt und keine gesetzten Pfade gibt.
Wenn Du auf die SELBE Datei über OpenKNX/OAM-LogicModule/lib/OGM-Common/src/Helper.h zugreifst, bekommst Du keine Fehler, weil das Projekt gültig ist und PIO weiß, wo es alles zu finden hat.
An welcher Datei was geändert wird, ist aber egal, da die ja verlinkt sind und somit wirklich die SELBE Datei sind.
Die Projekte liegen im Hauptverzeichnis, damit sie entsprechend in Git verwaltet werden können und in mehreren anderen Projekten verwendet werden können.
Und zu OGM-SensorDevices: Im Rahmen unserer Projektänderungen versuchen wir auch, die Projekte immer mehr zu kapseln und unabhängiger zu machen. Inzwischen benötigt das Logikmodul kein OGM-SensorDevices nicht mehr. Deswegen habe ich den Link entfernt.
Ich hoffe, so etwas Licht ins Dunkel gebracht zu haben.
Gruß, Waldemar
Ankündigung
Einklappen
Keine Ankündigung bisher.
OpenKNX-Logikmodul release
Einklappen
X
-
Habe nun noch mal genauer hingeschaut. Sieht so aus als würde das Phänomen tatsächlich nur in den anderen Projekten (knx und OGM-Common) auftreten.Zitat von mumpf Beitrag anzeigenkomplexe Projektstruktur, mit eigentständigen Projekten [...]. PlatformIO kann hier nicht immer automatisch alle include finden. Deswegen gibt es immer wieder rote Markierungen. Und der QuickFix kann da nicht helfen. IMO sollte aber das Logikmodu-Projekt keine roten Markierungen enthalten, Subprojekte schon.
Das Logikmodul baut auch für SAMD und RP2040. Weiter habe ich den Prozess aber noch nicht ausprobiert.
Btw.: In der Dokumentation war auch noch das Projekt OGM-SensorDevices genannt, wobei das ja inzwischen auch keine formelle Abhängigkeit vom Logikmodul ist (anders heraum wahrscheinlich schon, könnte also in Gesamtbetrachtung doch wieder sinnvoll sein die gemeinsam im selben Verzeichnis liegen zu habe.)
Einen Kommentar schreiben:
-
Ja, unsere Antworten haben sich überschnitten.
Wenn Synlinks nur mit Admin-Modus gehen, solltest Du den Developer-Mode (ja, den von Windows) einschalten. Die Anleitung im Wiki ist die aktuellste, die im Projekt werde ich ändern.
Wenn es baut, funktioniert alles. Wir haben eine sehr komplexe Projektstruktur, mit eigentständigen Projekten, die aber auch von anderen Projekten wiederverwendet werden können. PlatformIO kann hier nicht immer automatisch alle include finden. Deswegen gibt es immer wieder rote Markierungen. Und der QuickFix kann da nicht helfen. IMO sollte aber das Logikmodu-Projekt keine roten Markierungen enthalten, Subprojekte schon.
Was meinst Du mit "teilweise klemmen"?Zitat von wknx Beitrag anzeigenDas teilweise klemmen muss also noch eine andere Ursache haben.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Nein, nach https://github.com/OpenKNX/OAM-Logic...O-dev-setup.mdZitat von mumpf Beitrag anzeigenBist Du nach unserem Wiki https://github.com/OpenKNX/OpenKNX/w...atformIO-(PIO) vorgegangen? Der Screenshot ist wichtig, also das gelb hervorgehobene.
Die Option hatte ich allerdings aktiviert. Dort wird übrigens auch noch das Projekt OGM-SensorDevices mit gecloned, was zumindest vom Logik-Modul nicht benötigt wird.
Vielleicht hat sich Deine Prüfung mit meinem Update überschnitten: Mit Admin-Rechten funktionierte das Clonen inklusive Symlinks.
Das teilweise klemmen muss also noch eine andere Ursache haben.
Von Windows?Zitat von mumpf Beitrag anzeigenUnd Du musst den Developer Mode eingeschaltet haben
Einen Kommentar schreiben:
-
Ja, nach 0.11 hat sich das Build-System verändert, es sind die Symlinks dazugekommen und einige Files weggefallen (was aber gut ist, weil es für weitere Entkopplung von Modulen gesorgt hat).
Bei git ging es nicht um den aktuellsten Client sondern um die symlink-Unterstützung, die man gleich beim installieren angeben muss. Bist Du nach unserem Wiki https://github.com/OpenKNX/OpenKNX/w...atformIO-(PIO) vorgegangen? Der Screenshot ist wichtig, also das gelb hervorgehobene.
Ich habe es soeben nochmal in einem komplett neuen Verzeichnis probiert, clone hat mit Links geklappt. Und bauen auch.
Du musst in der Reihenfolge clonen, die anegeben ist.
Falls das clonen mit symlinks nicht klappt UND Du sicher bist, die symlink-Unterstützung bei der Installation eingeschaltet zu haben, dann mach noch ein
genau in dem Verzeichnis, in dem Du git clone startest. Sollte das false zurückkommen, hast du wahrscheinlich für Deinen user symlinks ausgeschaltet (dann mit git config --user core.symlinks true wieder erlauben).Code:git config core.symlinks
Und Du musst den Developer Mode eingeschaltet haben, sonst musst Du immer alle git Befehle in der Admin-Console ausführen (cmd, Command Prompt, Eingabeaufforderung).
Mehr fällt mir nicht ein, außer dass wir sonst mal im Laufe der Woche ne Online-Session machen müssten..
Gruß, Waldemar
Einen Kommentar schreiben:
-
Wollte ich mal testen. Zwischendurch lief es auch schon mal durch der Build (AFAIR mit der 0.11), jetzt aber nicht mehr. Scheitert immer an Includes. (Beginnend mit Helper.h) Hatte zwischenzeitlich es schon mal mit QuickFixes über die Config versucht, wobei das für mich vollkommen intransparent ist wo VSCode dann etwas an der Konfiguration ändert.Zitat von mumpf Beitrag anzeigenFalls Du selber bauen willst, musst Du bitte auch noch auf den Merge warten.
Die libs musste ich übrigens von Hand nachbiegen. Das war die Stelle an der es beim gescheitert war bevor es dann zwischendurch funktionierte. Mit den Symlinks hat es bei mir auch mit Update von git auf neusten Stand und setzen als Standard-Config nicht funktioniert. Fehlermeldung beim Check-Out gibt es allerdings keine.
Irgendwelche Vorschläge was ich probieren sollte?
UPDATE:
Nach erneutem Checkout funktioniert es nun erst mal.
Mit Admin-Rechten werden auch die Symlinks korrekt erstellt.
Kompiliert nun auch, aber im Editor bekomme ich weiterhin teilweise die Meldung zu angeblich nicht gefundenen Includes.
Einen Kommentar schreiben:
-
So, habe jetzt noch ein 0.12.1-Beta nachgeschoben, jetzt hoffentlich mit den korrekten Ständen. Ich möchte nochmal betonen: Funktional hat sich nichts geändert, wer 0.12 hat, muss kein Upgrade auf 0.12.1 machen.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Jein... Die Firmware und die ETS-Applikation haben den aktuellsten Stand. Allerdings hab ich den Merge mit dem main-Branch vergessen, so dass github das Label 0.12 auf einen falschen Stand vergeben hat.Zitat von wknx Beitrag anzeigenIst das wirklich der aktuelle Stand?
Danke für den Hinweis. Ich werde dann noch ein 0.12.1-Beta mit den passenden Ständen machen, wird aber erst morgen was.
Du kannst die ETS-Applikation und die Firmware bereits verwenden, die Applikaitonsbeschreibung ist im "new-include" Branch (der ist noch nicht gemerged): https://github.com/OpenKNX/OAM-Logic...ibung-Logik.md. Falls Du selber bauen willst, musst Du bitte auch noch auf den Merge warten.
Und ich muss nochmal in mich gehen, um den Release-Prozess zu automatisieren.
Gruß, Waldemar
- Likes 1
Einen Kommentar schreiben:
-
Ist das wirklich der aktuelle Stand? Der Tag 0.12-Beta verweist auf einen Stand von Sonntag (genau wie der Code im Git-Repo), die Applikationsbeschreibung hat auch noch nicht alle Änderungen mit drin.Zitat von mumpf Beitrag anzeigenab sofort gibt es ein neues 0.12-Beta auf Github: https://github.com/OpenKNX/OAM-Logic.../tag/0.12-Beta
Die Applikationsbeschreibung ist auch aktualisiert: https://github.com/OpenKNX/OAM-Logic...ibung-Logik.md
Einen Kommentar schreiben:
-
Hmm, also auch auf dem SAMD. Darauf hab ich auch getestet mit meinen ursprünglichen 400ms, jetzt 40 ms, allerdings mit nur 16 belegten Kanälen. Dass 25 Kanäle 1 Sekunde dauern sollten, finde ich verwunderlich. Bei 80 Kanälen vielleicht, aber als ich früher mal den Durchsatz gemessen habe, bin ich nicht über 300 ms Processing über alle Kanäle gekommen. Bei 80 belegten Kanälen.
Nein, das sollte nicht sein.Zitat von wknx Beitrag anzeigenVielleicht ist das schon relativ viel?
Prinzipiell hast Du recht. An sich tun aber die Kanäle meistens gar nichts. Und selbst wenn viele Kanäle gleichzeitig was tun müssen, ist das so programmiert, dass ein Kanal aus vielen Teilschritten aufgebaut ist (Eingangskonverter, Logikfunktion, Treppenlicht, Ein-/Ausschaltverzögerung, Ausgangsfilter, Ausgangskonverter), die quasi-parallel verarbeitet werden, indem sie Rechenzeit an parallel laufende Kanalfunktionen abgeben. Deswegen verstehe ich eine so große Verzögerung nicht.Zitat von wknx Beitrag anzeigenwürde die Verzögerung nach meinem bislang nur groben Verständnis der Implementierung vom Umfang der erforderlichen Verarbeitungsschritte abhängen.
Jetzt ist der Fix +1000 drin, den solltest Du mit Deiner Hardware nutzen können. Einmal die 25 Kanäle manuell übertragen ist zwar blöd (sorry für die 0.10), aber in Zukunft wird das nicht nötig sein. Ich hab in meinem Haus inzwischen bestimmt 200 Logikkanäle aktiv (auf verschiedene Module verteilt), die will ich nicht neu machen müssen. Deswegen ist es auch in mienem Interesse, das kompatibel zu halten.
Meiner Meinung nach braucht man das in KNX immer, ich bin eigenlich stolz drauf, dass ich recht viele Varianten unterstütze. Das Du gleich am Anfang einen Bug gefunden hast, tut mir leid. Wobei nicht so wirklich, denn so hab ich ein Feedback bekommen und konnte das fixen.Zitat von wknx Beitrag anzeigenDazu braucht es z.B. auch die Flankenerkennung.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Aktuell auf einem Sensor-Modul mit nur Beeper auf der Platine.Zitat von mumpf Beitrag anzeigenwknx Nochmal ne Rückfrage: Auf was läuft den das Logikmodul bei Dir? Also welches Software/Hardware-Package? Sensormodul/EnoceanGateway/Standalone?
Habe diese Implementierung derzeit "nur" experimentell im Einsatz und will einige Funktionen dadurch abbilden die jetzt teilweise noch in OpenHab hängen. Dazu braucht es z.B. auch die Flankenerkennung. In der aktuellen Konfiguration sind es 25 Logikkanäle, davon 6 Schaltuhren die wahrscheinlich auch eher exotisch sind (jede Minute/Stunde/Tag/Woche/Monat/Jahr) und bislang nur aus Neugier angelegt wurden. Vielleicht ist das schon relativ viel? Ohne den Fix mit +1000ms würde die Verzögerung nach meinem bislang nur groben Verständnis der Implementierung vom Umfang der erforderlichen Verarbeitungsschritte abhängen.
Lokale Abweichungen im Sekundenbereich halte ich auch für unproblematisch. Der Drift ist bei mir wahrscheinlich auch nur aufgefallen, weil ich bislang nur die Uhrzeit-Datum-Kombination auf den Bus sende und niemals die reine Zeit.
Einen Kommentar schreiben:
-
Hi,
ab sofort gibt es ein neues 0.12-Beta auf Github: https://github.com/OpenKNX/OAM-Logic.../tag/0.12-Beta
Die Applikationsbeschreibung ist auch aktualisiert: https://github.com/OpenKNX/OAM-Logic...ibung-Logik.md
Auszug aus dem Changelog:- NEU: Interne Ausgänge (als Quelle für die X- und Y-Eingänge eines Logikkanals) können jetzt neben EIN- und AUS-Werten auch nur EIN- oder nur AUS-Werte weiterleiten.
- NEU: Zu den mathematischen Funktionen, die Ausgangswerte berechnen können, ist jetzt die Funktion % (Modulo), also Rest-Division, hinzugekommen.
- NEU: Neben den mathematischen Funktionen, die Ausgangswerte berechnen können, sind jetzt auch Bitoperationen hinzugekommen. Es gibt jetzt
- & (Bit-Und),
- | (Bit-Oder),
- ^ (Bit-Exklusiv-Oder),
- << (Bit-Links-Verschiebung),
- >> (Bit-Rechts-Verschiebung)
- FIX: Bei der Einstellung "Nur bei geändertem Ergebnis, aber erstes Telegramm immer senden" wurde das zweite Telegramm auch gesendet, wenn es gleich zum unterdrückten war. Das ist jetzt korrigiert.
- Die Zeitbasis für Zeitschaltuhren ist jetzt genauer, die Zeitschaltuhren driften jetzt weniger.
Die mathematischen Funktionen sind etwas erweitert worden, vor allem die Bitfunktionen erlauben jetzt neue Funktionalitäten.
Es gab eine Lücke, wenn erste Telegramme nicht gesendet werden. Die ist jetzt auch geschlossen, danke wknx für die Meldung. Ebenso danke ich Dir für die Idee, die Zeitbasis für die Zeitschaltuhren zu verbessern.
Viel Spaß mit dem Release,
Gruß, Waldemar
- Likes 3
Einen Kommentar schreiben:
-
Noch eine Anmerkung, falls das (irgendjemandem) passiert, dass ein neues Release kein upgrade kann: Bitte meldet euch bei mir hier übers Forum. Ich achte sehr darauf, dass man bei meinen ETS-Applikationen einen upgrade machen kann und nicht nochmal alles neu parametrieren muss. Aber auch ich mache Fehler. Normalerweise kann ich sowas zeitnah korrigieren und dann geht ein Upgrade ohne Probleme.Zitat von wknx Beitrag anzeigenIch hatte nun gerade zwischendurch die 0.10-Beta erwischt.
Gruß, Waldemar
- Likes 2
Einen Kommentar schreiben:
-
Wenn man 2 Kerne hätte... das Logikmodul muss auch auf dem SAMD laufen können. Hier wäre der bessere Weg ganz klar, einen der internen Timer des Prozessors zu nehmen. Aber auch dafür muss man sich Zeit nehmen (die Sourcen sind verfügbar, es muss nicht immer ich sein).Zitat von jeff25 Beitrag anzeigenkönnte man das nicht auf 2 Kerne aufteuilen dann wäre das Problem gelöst....
Und mal ernsthaft, ich weigere mich, das als Problem zu sehen (auch wenn ich mir das grundsätzlich anschaue): Wir reden hier von Zeitschaltuhren, die Geräte im Haus steuern. Ob der Rollanden morgens um 07:05:00 oder um 07:05:01 aufgeht, ist vollkommen egal, selbst wenn es 07:06:04 werden sollte. Die alten mechanischen Zeitschaltuhren für die Steckdose hatten ein 15 Minuten-Raster...
Dazu wollte ich auch was sagen: Die Zeitbasis von 1/10 Sekunden sagt nicht, dass die Uhren besonders genau laufen, sondern nur, dass man Verzögerungen bauen kann, die unter einer Sekunde ligen, was häufig hilft, wenn man Probleme mit Telegrammlaufzeiten hat.Zitat von wknx Beitrag anzeigenAn anderer Stelle finden man eine Zeitbasis von 1/10 Sekunden, was hier vielleicht einfach zu hohe Erwartungen weckt.
- Likes 2
Einen Kommentar schreiben:
-
Hi Waldemar,
könnte man das nicht auf 2 Kerne aufteuilen dann wäre das Problem gelöst....
Gruß
Robert
Einen Kommentar schreiben:


Einen Kommentar schreiben: