hab jetzt mal den letzten Stand ausgecheckt, bekomme da aber folgende Meldung: "saved memory doesn't match manufacturerId, version or hardwaretype"
Ich hab da scheinbar was übersehen, du prüfst da neuerdings irgendwelche Dinge ab die bei einem "blanken" Controller noch fehlen, wie und wo definiere ich diese Dinge?
Ankündigung
Einklappen
Keine Ankündigung bisher.
ESP8266 KNX mit ETS
Einklappen
X
-
Danke, dann hab es doch richtig verstanden. So werde ich es machen. Wenn die Kommunikation läuft kann ich ja die ETS zur Konfiguration verwenden.Zitat von thesing Beitrag anzeigenDazu würde ich einfach eine Instanz der Linuxplatform erzeugen und dann direkt als uint8_t* ein festes Telegramm senden.
Einen Kommentar schreiben:
-
Hallo Werner,
Machbar ist das ganze zwar, aber ich glaube nicht das es notwendig ist. Du willst ja nur in der Linuxplatform die Methoden zum Lesen und schreiben über uart implementieren. Dazu würde ich einfach eine Instanz der Linuxplatform erzeugen und dann direkt als uint8_t* ein festes Telegramm senden. Wenn du dass in Monitor von ETS siehst ist das Senden erledigt. In einer Schleife würde ich Telegramme lesen. Wenn du dort die gleichen liest die du auch im Monitor siehst bist du damit auch fertig.
Dann kannst du einfach testen ob das Beispiel auch mit der Bau07B0 funktioniert.
Wenn du den Stack unbedingt per Code konfigurieren willst: Du müsstest für AdressTable, AssociationTable, ApplicationProgramm und GroupObjectTable Speicher über das TableObject holen und dann den dann richtig füllen. Das Format dazu steht in der Knx-Spezifikation, sollte sich aber auch aus dem Code ableiten lassen.
Im Wesentlichen (aus dem Kopf):
ApplicationProgramm: Die konfigurierten Parameter.
AddressTable: uint16_t[]; {Länge des Arrays, GA0, GA1, ....} (AT)
GroupObjectTable: uint16_t[] {Länge des Arrays; KO0, KO1, ...} (GOT)
AssociationTable: uint16_t[] {Länge des Arrays( der Paare); Paar1(Index von AT, Index von GOT), Paar2(Index von AT, Index von GOT)
Das wäre also schon relativ viel Aufwand das per Code zu konfigurieren.
VG
Thomas
Einen Kommentar schreiben:
-
Hallo,
ich fange jetzt mit der RS232 Kommunkation unter Linux an.
Die Konfiguration des Gerätes wird aus dem Speicher gelesen. Gibt es eine Möglichkeit Kommunikationsobjekte und Gruppenadressen ohne die ETS anzulegen, da noch keine Verbindung zum KNX Bus besteht. So würde ich mir gerne ein Gerät mit folgenden Daten erzeugen:- Physikalische Adresse 1.1.150
- Gruppe 2/0/10 Schalten Ein/Aus
- Gruppe 2/0/11 Status Schalten
Jetzt könnte ich mir 2 Möglichkeiten vorstellen:- Beim Starten werden die entsprechenden Daten im Speicher des Gerätes erzeugt
- Die Konfiguration des Gerätes wird gelesen und geschrieben (readMemory/WriteMemory). Kann ich eine gültige Konfiguration erzeugen und im entsprechenden Format erzeugen?
Vielen Dank
Werner
Einen Kommentar schreiben:
-
Hallo Bernhard,
der Stack an sich sollte damit klar kommen. Im DataLink-Layer werden nur Telegramme verarbeitet die als Ziel die eigene PA oder eine GA aus der GA-Tabelle haben.
Wahrscheinlich wäre es am einfachsten einfach zwei Network-Layer über ein DataLink-Layer zu packen. Das DataLinkLayer kann dann über PA und GA entscheiden an welche NetworkLayer die Telegramme gehen. Beim Senden muss man nur drauf achten das Telegramm ggf. auch in das andere Networklayer zu geben.
VG
Thomas
Einen Kommentar schreiben:
-
Hallo Thomas,
wäre es prizipiell denkbar mehrere Instanzen des Stacks laufen zu lassen? Mir ist bewusst das man an der Platform Implementierung etwas anpassen müsste da sich jede Instanz ja den Kommunikationskanal mit den anderen teilt. In der ETS wäre jede Instanz ein eigenes Gerät mit eigener physikalischer Adresse.
Ist nur so ein Gedanke den ich noch nicht zu Ende gedacht habe, aber gibt es aus deiner Sicht bereits K.O. Kriterien?
Einen Kommentar schreiben:
-
Das sollte da keinen Unterschied zwischen der ESP8266- und der Linuxversion geben. Die Konfiguration per ETS sollte auch ohne knxd gehen. Allerdings braucht man den natürlich immer noch zum Routing zwischen TP und IP.
Einen Kommentar schreiben:
-
Hallo Thomas,
super vielen Dank für die Erklärung. Werde ich gleich prüfen, wenn es nicht so wichtig ist den Prog Taster drückt man eh nur einmal :-)
Das ganze kann ich bis jetzt nur in KNX-linux Beispiel testen oder in knx-demo und meinem esp8266 geht es noch nicht oder? Da muss ich
noch über knxd als router gehen oder?
Gruß
RObert
Einen Kommentar schreiben:
-
jeff25 Der Stack läuft normal. Lediglich der Zugriff auf die GPIOs ist gescheitert. Vermutlich hast du keine Recht auf /sys/class/gpio/export usw. zuzugreifen. Das benötigst du aber nur für den Programmierbutton, die ProgrammierLED und zur Verbindung zum RF-Modul bei knx-rf. Die Fehler kommen also durch pinMode; digitalwrite usw. Wenn du GPIOs nutzen willst muss du das Rechteproblem lösen:
Es muss in der Shell ein "ls /sys/class/gpio" funktionieren. Dafür sollte "sudo usermod -a -G gpio pi" den User pi in die Gruppe gpio packen. Nach einem abmelden und anmelden sollte der Benutzer auch auf die gpios Zugriff haben.
Prinzipiell ist im Linux-Demo-Code aber noch die Funktion, dass der Programmiermodus automatisch aktiviert wird, wenn das Gerät nicht konfiguriert wurde. Wenn man die Fehlermeldungen weglässt siehst du das auch bei deiner Ausgabe:
Du kannst also auch einfach die Fehler ignorieren und mit ETS konfigurieren.Code:main() start. <-- Start saved memory doesn't match manufacturerId, version or hardwaretype <-- Speicher passt nicht zum Programm (oder ist nicht da) not configured <-- Nicht konfiguriert progmode on <-- Programmiermodus aktiv
VG
Thomas
Einen Kommentar schreiben:
-
hallo thesing ,
wollte gerad emal deinen erweiterten stack testen und bei mir kommt auf einem Raspberry PI 3 folgendes:
main() start.
saved memory doesn't match manufacturerId, version or hardwaretype
not configured
Export GPIO pin 0
Could not export GPIO pin(write)!
: Device or resource busy
Set GPIO direction for pin 0 to OUTPUT
Export GPIO pin 0
Could not export GPIO pin(write)!
: Device or resource busy
Set GPIO direction for pin 0 to OUTPUT
Could not set mode for GPIO pin(write)!
: Device or resource busy
progmode on
Was mache ich denn da falsch?
Gruß
Robert
Einen Kommentar schreiben:
-
Na klar. Das habe ich jetzt mal vorausgesetzt.Zitat von wkaa Beitrag anzeigenDie Teile sind jetzt bestellt, werden GND und 5V auch jeweils angeschlossen? (CP2101<->ADUM und ADUM<->BCU)
Ich meinte damit nur, dass nicht noch andere Signale wie RTS/CTS, DTR/DSR oder so angeschlossen werden bzw. belegt werden müssen.
UPDATE:
Die Pinbelegung der Siemens-BCU hatte ich hierher: https://www.konnekting.de/wp-content...bcu_pinout.png
Weitere Details gab es hier: https://michlstechblog.info/blog/ras...r-with-the-pi/
Allerdings verwende ich die 5WG1117-2AB12.Zuletzt geändert von Nanosonde; 28.12.2019, 16:43.
Einen Kommentar schreiben:
-
Die Teile sind jetzt bestellt, werden GND und 5V auch jeweils angeschlossen? (CP2101<->ADUM und ADUM<->BCU)Zitat von Nanosonde Beitrag anzeigenNur TXD/RXD fertigZuletzt geändert von wkaa; 28.12.2019, 01:04.
Einen Kommentar schreiben:
-
Ich nutze die Siemens BCU mit einem ADUM1201 an einer CP2102 USB-Serial UART Bridge. Nur TXD/RXD fertig.Zitat von wkaa Beitrag anzeigenich würde mir das anschauen. Aber ich warte noch auf die Hardware, vielleicht sollte ich mir noch einen Optokoppler für die Siemens-BCU holen.
Dann per USB am Raspberry Pi angeschlossen.
Einen Kommentar schreiben:
-
Der würde passen, mit den Ethernet Buchsen geht es bei mir eng zuZitat von thesing Beitrag anzeigenzwei Ethernet-Buchsen
Einen Kommentar schreiben:


Einen Kommentar schreiben: