Hallo Zusammen
(Achtung viel Text)
Ich bin gerade dabei das Plugwise-System direkt aus IP-Symcon heraus laufen zu lassen, doch beim überprüfen ob ein Befehl auch angekommen ist und bestätigt wird bräuchte ich mal eure Hilfe.
Man bekommt zwar eine Fehlermeldung wenn ein Befehl nicht angekommen ist, aber jetzt muss man der Fehlermeldung noch der ID des angesprochenen Gerätes(Circle) zuordnen.
So läuft das ganze ab:
IP-Symcon sendet über eine Registervariable/Serial Port den Befehl+ID des Circle an den USB Stick und wird vom Stick mit einer fortlaufenden Funknummer bestätigt.
Der Stick sendet dann den Befehl an den gewünschten Circle und bekommt dann die Rückmeldung das der Befehl angekommen ist.
Wenn der Funkbefehl nicht innerhalb 5 Sekunden vom Circle bestätigt wird sendet der Stick einen Fehler, aber nur mit der Funknummer und nicht mit der ID des Circle zurück.
IP-Symcon sendet an den Stick 0017 000D6F0000D3879C 00 EF0B
0017 ist der Befehl von IP-Symcon zum schalten des Verbrauchers
000D6F0000D3879C die Adresse des Circle <------------------------------ Die will ich speichern
00 wäre der Befehl zum ausschalten
EF0B ist die CRC Kontrollsumme
Der Stick antwortet dann 0000 0B30 00C1 7EDE
0000 Ist immer die Kennung des Sticks
0B30 die fortlaufende Funknummer für diesen Befehl <--------------- zusammen mit dieser Nummer
00C1 Alles Empfangen
7EDE die CRC Kontrollsumme
Und wenn der Befehl vom Circle bestätigt wird kommt in IP-Symcon das an
0000 0B30 00DE 000D6F0000D3879C 793C
0000 wieder der Stick
0B30 die Funknummer
00DE die Info das ausgeschaltet worden ist
000D6F… Die ID des Circle
793C die CRC Kontrollnummer
Das ist ja alles super und immer mit der ID des Circle, also genau was ich brauche.
Wenn der Befehl aber nicht vom Circle empfangen wurde kommt vom Stick nur das zurück 0000 0B31 00E1 FA6A
0000 wieder der Stick
0B31 die Funknummer
00E1 Info das der Befehl nicht bestätigt wurde
FA6A CRC Kontrollnummer
Jetzt müsste ich diese Funknummer irgendwie der dazugehörigen ID des Gerätes zuordnen um darauf reagieren zu können(nochmals senden, Fehlermeldung ausgeben welcher Circle nicht erreichbar ist usw.).
Ich habe mir das so vorgestellt das wenn ein Befehl abgesendet wird die ID des Circle gespeichert wird und von der Antwort des Sticks die Funknummer dazu.
Dann könnte man, wenn der Befehl nicht ankommt nachschauen welche ID zu der Funknummer gehört.
Soweit die Theorie. Jetzt aber endlich die FRAGE:
Wo(Variable, Text Datei, … ) und wie könnte ich die Daten speichern (wir reden hier von zur Zeit 25 Befehlen innerhalb von 4 Sekunden und den dazugehörigen Antworten).
Hoffe Ihr habt ne Idee bzw. habt erstmal verstanden was ich eigentlich will
Gruß Jannis