Hallo Joachim,
vielen Dank für deine schnelle Reaktion und deine Unterstützung!
Vielleicht noch kurz zum Hintergrund, ich möchte einen PBM-01 von ElabNET an IPS anbinden. Da der Controller über OWFS angesprochen werden kann, wollte ich es einmal mit deinem Modul probieren. Ich nutze die Version 7.0 von IPS in einer Docker-Umgebung. Da der Zugriff auf OWFS aber über owhttp läuft, ist das kein Nachteil.
Am PBM-01 sind derzeit 7 DS18B20 angeschlossen, die beiden DS2431 sind im PBM-01 eingebaut. Perspektivisch sollen neben den Temperatursensoren auch noch weitere Bausteine eingebunden werden, z.B. ein DS2438. Aber das ist noch Zukunftsmusik…
Ich habe jetzt einmal deine Änderungen bei mir eingespielt und erneut versucht die Geräte zu konfigurieren. Die Fehlermeldung ist aber die gleiche geblieben. Deshalb habe ich noch diese zusätzlichen Debug-Ausgaben eingebaut:
In IPS2OWFS_Configurator/module.php Z. 45ff:
If (($this->HasActiveParent() == true) AND (IPS_GetKernelRunlevel() == KR_READY)) {
**IPS_LogMessage("OWFS", "GetData in GetConfigurationForm(): >".var_dump($this->GetData())."<");**
$DeviceArray = unserialize($this->GetData());
In IPS2OWFS_Configurator/module.php Z. 105ff:
$Result = $this->SendDataToParent(json_encode(Array("DataID"=> "{F1CAC7F7-BA28-F711-7E0E-481F338200A4}",
"Function" => "DeviceList" )));
//$this->SendDebug("GetData", $Result, 0);
IPS_LogMessage("OWFS", "GetData in GetData(): >".$Result."<");
Mit diesen beiden Änderungen sehe ich beim Ausführen des Configurators folgende Meldungen im Syslog:
03.03.2024 11:29:01 | 00000 | CUSTOM | OWFS | GetData in GetData(): ><
03.03.2024 11:29:01 | 00000 | CUSTOM | OWFS | GetData in GetConfigurationForm(): ><
03.03.2024 11:29:03 | 00000 | CUSTOM | OWFS | GetData in GetData(): ><
Im Debug-Log des Splitters sind diese Meldungen:
03.03.2024, 11:29:01 | DeviceList | a:10:{s:15:"2D.4874C0120000";a:2:{s:7:"Address";s:16:"2D4874C01200004D";s:4:"Type";s:6:"DS2431";}s:15:"2D.6731C0120000";a:2:{s:7:"Address";s:16:"2D6731C0120000E4";s:4:"Type";s:6:"DS2431";}s:15:"2D.F177C0120000";a:2:{s:7:"Address";s:16:"2DF177C012000092";s:4:"Type";s:6:"DS2431";}s:15:"28.C739FD0C0000";a:2:{s:7:"Address";N;s:4:"Type";N;}s:15:"28.7B16FD0C0000";a:2:{s:7:"Address";N;s:4:"Type";N;}s:15:"28.CBB1FD0C0000";a:2:{s:7:"Address";N;s:4:"Type";N;}s:15:"28.5314FD0C0000";a:2:{s:7:"Address";N;s:4:"Type";N;}s:15:"28.8E22FD0C0000";a:2:{s:7:"Address";N;s:4:"Type";N;}s:15:"28.06DCFD0C0000";a:2:{s:7:"Address";N;s:4:"Type";N;}s:15:"28.F23AFD0C0000";a:2:{s:7:"Address";N;s:4:"Type";N;}}
03.03.2024, 11:29:01 | Netzanbindung | Angegebene IP 192.168.11.99 reagiert
03.03.2024, 11:29:03 | DeviceList | a:0:{}
Das heißt aber für mich jetzt, dass die Methode $this->SendDataToParent() in IPS2OWFS_Configurator/module.php Z106 nichts zurückliefert. Wenn ich das richtig verstehe, dann müsste hier eigentlich der serialisierte JSON-String der Devices zurück kommen. Im Debug Log des Splitters sieht man ja auch, dass der korrekt aufgebaut wird. Aber offenbar wird der nicht weitergegeben. Kann das eventuell mit der Version 7 von IPS zusammenhängen, dass sich hier was bei der Übergabe geändert hat?
VG Malte
P.S. Wenn ich irgendwo noch weitere Debug-Ausgaben einbauen soll, dann immer her damit 