WDE1 Modul liefert keine Daten

Hallo

habe nach der Umstellung auf IPS 4.1 Probleme mit dem Wetterdatenempfänger WDE1.
Alle Alten Einträge gelöscht und versuche das neue Modul

 * WDE1 Gateway IPSymcon PHP Splitter Module Class
 *
 * @author Thomas Dressler
 * @copyright Thomas Dressler 2009-2016
 * @version 4.1.2
 * @date 2016-10-23

Das klappt sofort super. Bekomme auch sofort entsprechende Werte angezeigt:

Aber diese Werte aktualisieren sich nicht mehr.
Als Meldung bekomme ich:
18.04.2017 17:00:49*| WDE1*| Buffer length exceeded, dropping…

Habe das Modul mal mit der Länge des empfangen Buffers erweitert und bekomme dann als Bufferwert meist um die 552 Zeichen (wird auf 500 abgeschnitten).

18.04.2017 17:00:49*| WDE1*| $1;1;;23,3;24,4;20,1;23,9;20,6;21,6;;;33;33;41;34;35;42;;;3,7;73;0,8;733;0;0
$1;1;;23,3;24,4;20,1;23,9;20,6;21,6;;;33;33;41;34;35;42;;;3,9;63;0,5;1687;0;0
$1;1;;23,3;24,4;20,0;23,9;20,6;21,6;;;33;33;41;34;35;42;;;3,9;63;0,5;1687;0;0
$1;1;;23,3;24,4;20,0;23,9;20,5;21,6;;;33;33;41;34;35;42;;;3,9;63;0,5;1687;0;0
$1;1;;23,3;24,4;20,0;23,9;20,5;21,6;;;33;33;41;34;35;42;;;3,9;63;0,5;1687;0;0
$1;1;;23,3;24,4;20,0;23,9;20,5;21,6;;;33;33;41;34;35;42;;;3,7;73;0,5;733;0;0
$1;1;;23,3;24,4;20,0;23,9;20,5;21,6;;;33;33;41;34;35;41;;;3,7;73;0,5;733;0;0

Versuch mit Buffer Vergrößerung auf 600 Zeichen gescheitert - dann sind 629 Zeichen im Buffer.
Nächster Versuch den Buffer auf 1500 zu ändern hat nur das Intervall bis der Buffer voll war verändert.
Bei 550 Zeichen war das nach ca. 130 sec und.bei 1568 Zeichen 370 sec.

Ein Buffer Änderung bringt als nichts.https://www.symcon.de/forum/images/smilies/confused.gif

Konfiguration:
Als Treiber für den USB-WDE1-2 verwende ich den aktuellsten:
CP210x_Win_7_8_8.1_10 Version 6.7.4 von hier geladen: USB to UART Bridge VCP Drivers | Silicon Labs

IP-Symcon 4.10
I/O Instanzen:
wde1_2.png

Splitter Instanzen:

Wenn ich das ReInit (alle 60sec. aktiviere) bekomme ich folgenden Fehler:

18.04.2017 17:23:06*| ScriptEngine*| Ergebnis für Ereignis 48425
<br />
<b>Fatal error</b>: Call to undefined function WDE1_ReInitEvent() in <b>-</b> on line <b>1</b><br />

Was muss ich tun damit sich die Variablen ändern? Wo liegt mein Problem - kann mir hier wer helfen?
Danke
LG
Rudi

Scheinbar findet er das Satzende nicht mehr. Möglicherweise ist bei der Umstellung auf die 4.1 Version was schief gegangen. Ich kann es leider auch nicht selber nachstellen, da ich kein WDE1 mehr habe. Ich bräuchte mal einen Mitschnitt der Daten hereinkommenden Daten und zusatzlich einen DEBUG-Mitschnitt des WDE1-Splitters. Gerne auch per PM.

Tommi

Hallo Tommi

Danke vorab dass du dir das ansehen möchtest:

WDE1.txt = Splitter Instanze Dump
WDE1 Port.txt = I/O Instanze Dump
Dump.zip (8.65 KB)

Hoffentlich liefert das den notwendigen Input.

LG
Rudi

Da hast Du mich bei einem Logikfehler erwischt. Danke fürs melden.

Versuche bitte mal die WDE1/module.php durch Umbenenen zu sichern (wir brauchen genau diese Version wieder sonst kannst Du nicht updaten) und eine Kopie als module.php wie folgt zu ändern:
Zeile 398-403 sollte so aussehen


           if (!$pos) {
                return $inbuf;
            }
            $data = substr($inbuf, 0, $pos);
            $inbuf = substr($inbuf, $pos);
            if (preg_match('/\$([0-9,-;]+0)$/', $data, $records)) {

Bitte genau diese Zeilen ersetzen durch:


      if ($pos===false) {
            break;
        }
        $data = substr($inbuf, 0, $pos);
        $inbuf = substr($inbuf, $pos+1);
       if (preg_match('/\$([0-9,-;]+)$/', $data, $records)) {

Wenn das damit funktioniert, baue ich es als Update ein. Vorher mußt Du die Arbeitskopie wegwerfen und die alte Version in module.php zurückbenennen, damit das GIT wieder happy ist.

Tommi

Hallo Tommi

Super DANKE ;):smiley:

Daten kommen an! Bitte um Update des Modules!

LG
Rudi

Das Update ist jetzt online.

Tommi

Hallo Tommi

Update hat geklappt.
Danke

Bekomme aber immer noch den wenn ich das ReInit (alle 60sec.) aktiviere folgenden Fehler:

19.04.2017 12:39:15*| ScriptEngine*| Ergebnis für Ereignis 48425<br />
<b>Fatal error</b>: Call to undefined function WDE1_ReInitEvent() in <b>-</b> on line <b>1</b><br />

Wie kann ich das beheben?

LG
Rudi

Das kann ich nicht nachvollziehen. Mache doch den ScripEditor auf und Tippe „WDE1_“+<STRG-Leertaste> Dann sollte eine Liste aller verfügbaren WDE1-Funktionen kommen und diese Funktion sollte auch dabei sein.
Es wurde ein Event registriert. Dort sollte die Funktion als auch Ziel auswählbar sein.

Gggfls hilft es, den IPS-Server neu zu starten, damit er alle Funktionen neu einlesen kann.

Tommi

Bin leider noch nicht zum Testen gekommen. Schaffe ich erst am Wochenende.

Aber durch die Änderungen hab ich alle Events, … und so weiter verloren. Das hat sich alles verändert. Gibt es einen Trick wie ich die alle auf die neuen Temperatur Werte hängen kann?

Austausch der ObjektID in allen Events? Geht sicher irgendwie - habt ihr da einen Tipp für mich!
Danke
LG
Rudi