Oh… du hast recht.
Dem Modul fehlt da noch ein Update.
Ich hatte es schon veröffentlicht, bevor es die Debug-Ausgabe für PHP-Module gab.
Die Screenshots sind aus IPS3.X :rolleyes:
Es dauert auch leider noch etwas, bis das Modul zu 100% dem aus der 3.X entspricht und wird wohl erst zu IPS 4.1 etwas.
Funktionieren wird es dennoch, nur halt ohne eigene Debug-Ausgabe.
Setz mal hinter den Splitter eine RegVar und öffnen deren Debug, dann siehst du alles was du mit dem Terminal-Programm an den Router sendest.
Nach dem sehr hilfreichen Hinweis von Nall chan, kann ich jetzt die Daten von meiner Wetterstation und auch von dem Vliesfilter über den einen Coordinator am IPS-Server empfangen und wie bisher weiter verarbeiten.
Ein Problem gibt es allerdings noch mit dem Senden von Nachrichten an die Routers von Wetterstation und Vliesfilter.
Bisher habe ich dazu die jeweiligen RegVars mit einem ASCII-Text bechrieben - z.B.:
Aber vielleicht gleich, ich habe mal fix den Splitter um die Debug-Ausgabe erweitert und die Fehlerbehandlung (OMG :eek: was ich ich da gemacht…naja war ja eins der ersten Module ) angepasst.
Damit sollte es möglich sein den Fehler zu finden.
Testen konnte ich aber noch nicht.
Update ist jetzt online.
Also bitte ein Update laden, und dann den Debug des betreffenden Splitters öffnen. Wenn du dann etwas sendest, sollte da stehen was nicht funktioniert…(Timeout oder NACK etc…)
[Warning:
Warning: Invalid error type specified in C:\IP-SYMCON - 4\modules\IPSXBeeZigBee\XBeeZBSplitter\module.php on line 125
RESULT: in C:\IP-SYMCON - 4\scripts\Functions.ips.php on line 163
und hier das Debug Fenster:
Ich sende den String „TST“ und der Vliesfilter quittiert mit „OK“ - scheint alo zu gehen - aber warum die Fehlermeldung?
ok ich werde da morgen mal eine Testumgebung aufbauen und noch mal prüfen.
Um den Fehler zu erklären, muss ich kurz ausholen.
Der Coordinator sendet das Paket an deinen Ziel-Node.
Dieser muss den Empfang bestätigen. Diese Quittung (oder auch das fehlen derselben) wertet der Coordinator intern aus und gibt sie an IPS zurück.
Diese Auswertung vom Coordinator nutze ich um zu prüfen ob die Daten erfolgreich am Ziel angekommen sind.
Und genau da scheine ich einen Fehler zu haben
Das zusätzlich deine ‚Nutzschicht‘ auch noch seine Übertragung per Quittung sichert, interessiert das XBee-Netzwerk wenig
Aufgefallen ist es bei mir nicht, da mein XBees noch immer am 3.X-IPS hängen :o
Michael
PS: Ich nehme die Prüfung erstmal raus, dann hast du Ruhe. Und den ‚leeren‘ Fehler im Debug habe ich auch behoben (Update ist online)
So, ich glaube ich habe den Fehler gefunden…ich konnte wohl nicht zählen
Dadurch das die Debug Ausgabe nun funktioniert, war es einfacher.
Wenn du also ein Update gemacht hast, sollte es nicht nur funktionieren, sondern auch im Debug des Splitters als auch des Coordinator sinnvolle Ausgaben geben.
Hier ein Beispiel wie es aussehen sollte:
Wichtig ist dass bei Transmit_Status das mittlere Byte 00 ist.
XBEE/XBEE PRO Serie 1 - ist/war die erste Generation und die Pro -Variante hat lediglich eine stärkere Sendeleistung (die Maximale ist in Deutschland eigentlich gar nicht erlaubt )
Die Serie 1 hat nicht die ZigBee Netzwerktopologie.
Mit der Serie 2 wurde wohl auch der ZigBee Stack implementiert, d.h. man kann ZigBee Netzwerk aufbauen und dabei Router definieren, welche Netzwerknachrichtenauf dem besten Weg zu dem Coordinator ‚routen‘.
Ich habe mir die Serie 2 C gekauft, da wurden wohl neue Prozessoren verwendet, bessere Sendeleistung realisiert und es gibt sogar eine programmierbare Variante mit einem zusätzlichen HC08 Prozessor drauf, den man für eigene Anwendungen programmieren kann. Und - ganz wichtig - der Speicher der Serie 2 C ist nun so groß, dass das gesamte verfügbare Betriebssystem drauf passt, d.h. die verschiedenen Funktionen werden nur noch durch richtiges setzten von Variablen realisiert.
Ich habe z.Zt einen Coordinator an Symcon und 2 Router (Wetterstation und Teichfliesfilter) in der normalen (nicht PRO) realisiert und es läuft extra prima (dank Nall chan).
Nun noch ein paar Fragen an Nall chan zur Einrichtung der XBEE-IOs:
Erstens ist mir aufgefallen, dass wenn man Deine „Device Instanz“ installieren will, nochmals ein serieller Port und ein Gateway eingerichtet wird - ist das so gewollt?
Auch hat es dabei wieder jede Menge Fehlermeldungen gehagelt - sicher habe ich noch was falsch gemacht.
Ich möchte eigentlich nur ein End Device (Router) für das lesen/schreiben der IOs einrichten - wird das dann beim installieren der Device Instanz richtig erkannt?
Irgendwie komme ich als DAU mit Deiner Beschreibung (noch) nicht klar - Sorry
Nein, ist nicht. War sowohl beim Splitter als auch beim Device falsch.
Habe ich mal angepaßt und hochgeladen.
Ich glaube eher, dass die Fehler entstanden sind, weil diese Instanz die falschen ‚leeren‘ Splitter und Gateways angesprochen hat.
Entweder Instanz löschen, Update laden und neu anlegen… oder einfach per Hand korrekt den Parent (also den Node dessen IOs du ansprechen möchstest) als übergeordnete Instanz auswählen.
Tip: Da hilft immer wieder gerne die physikalische Baumansicht und das vergeben von aussagekräftigen Namen der jeweiligen Instanzen, sonst steht da nachher 3x XBee ZigBee Splitter.
Ja, wird (sollte sag ich mal lieber ) es.
Die Config der IOs wird jedesmal neu einelesen aus dem Node (= der übergeordnete Parent), sobald du ‚übernehmen‘ in der Instanz anklickst.
Oder per PHP mit XBee_ReadConfig($IInstanzID).
Den aktuellen Zustand der IOs kannst du über die Parameter IC und IS im XBee steuern.
Bei IC ist es eine Bitmaske für jeden IO welcher bei Änderung übertragen werden soll.
Also z.B. 0x000F für die IOs 0 bis 4.
Der IC-Parameter funktioniert bei Analogwerte nicht!
Dafür muss dann zusätzlich über Parameter IS eine Intervall im XBee konfiguriert werden, in welchen Abständen er die Werte überträgt.
Um Ausänge aus IPS heraus zu setzen, gibt es dann den Befehl XBEE_WriteBoolean(12345, ‚D0‘, true);
Hallo Michael - BINGO - jetzt bin ich auch ‚drin‘ und es funktioniert prima!
Habe ein neues Test End Device angelegt, dass sich sogar schlafen legt, damit ergeben sich ungeahnte neue Möglichkeiten (nun der Winter steht ja vor der Tür )
Zum Verständnis: Die Instanz ‚Device‘ hat einen Event Timer mit einer Sekunde, der jedoch ‚disabled‘ ist. Für was ist/war der vorgesehen?
Nochmals ganz herzlichen Dank für Deine Hilfe und ein schönes Wochenende.
Gern geschehen.
Der Timer entspricht dem Intervall in der Konfig der Instanz.
Damit kann man auch periodisch die IOs über IPS getriggert auslesen.
Besser ist aber immer die Lösung im Xbee selbst.
Verursacht meistens weniger Funkverkehr.
Michael