@richimaint Danke für die Infos! Wir haben die betroffenen Stellen gefunden und setzen uns daran.
Fix ist jetzt im Beta Kanal verfügbar. Ich freue mich auf euer Feedback.
paresy
@Dr.Niels @paresy
Fehlermeldung ist bei mir leider immer noch vorhanden. Nach dem entfernen des Scripts (Siehe PM) funktioniert alles)
Gruß Thomas
Magst du schauen, ob du wirklich die Version von heute installiert hast? Ich habe hier auch ein passendes, defektes Skript am Laufen und kann es nicht mehr nachstellen.
Bei dir kommt es noch im Util Control? (Beim Öffnen des betroffenen Skriptes gibt es die Fehlermeldung noch - ggf. wollen wir dort den Dialog verbessern, sodass wir das Korrigieren vorschlagen)
paresy
Also Version 3b80b713700b-#350 von heute.
Keine Fehlermeldung beim Öffnen des Skripts.
Fehlermeldung im Util Control sobald das Skript im Verzeichnis existiert.
Auch Bearbeiten und Speichern des Skripts beseitigt das Probleme nicht.
Gruß Thomas
Magst du mir noch mal kurz das Skript per PM zusenden? Alternativ hole ich es mir Morgen von Niels, damit ich es ggf. direkt damit nachstellen kann. Bin gespannt, wo ich noch etwas übersehen habe.
paresy
Ich hab eben die letze Version eingespielt. Der UTF-8 Fehler bei meinem MQTT Device kommt nach wie vor. Mit 6.2 hat es einwandfrei funktioniert. Ich hätte das gerne wieder so.
Hier das Debug vom MQTT Server und Socket
mqtt_socket_daten.txt (13,8 KB)
mqtt_server_daten.txt (25,3 KB)
MQTT Configurator
Was kommen denn für Daten auf diesem Topic? Laut MQTT müssen Daten UTF-8 kodiert sein und dein Endgerät hält sich nicht daran, sondern sendet irgendwelche Binärdaten. Wie wertest du diese Daten aus? Was ist das für ein Gerät?
paresy
Mit der Revision 07e763adc3e27a ist bei mir der Fehler im Util Control behoben
Gruß Thomas
//Rohdaten aufbereiten
$rohdaten = GetValue ($rohdaten_ID);
$rohdaten_aufbereitet = bin2hex ( $rohdaten );
$redox = (hexdec (substr ($rohdaten_aufbereitet, 24,2)) *256 + hexdec (substr ($rohdaten_aufbereitet, 26,2)) ) - 2000;
$ph = (hexdec (substr ($rohdaten_aufbereitet, 20,2)) *256 + hexdec (substr ($rohdaten_aufbereitet, 22,2)) ) / 100;
Damit hole ich aus der erstellten Variable die Werte
Ist ein Wassermessgerät mit WLAN Anschluss, PH-803W.
Wie gesagt, mit der Version 6.2 hat das einwandfrei funktioniert.
Wie es scheint, is soeben noch eine Version online gegangen. Ich hab die vom 20.11. installiert. Die neue von heute habe ich noch nicht gesehen.
Aktuell läuft
IP-Symcon 6.3, Windows (amd64), 20.11.2022, 3b80b713700b
Auch mit der heute online gegangenen Version funktioniert es nicht.
Hab mich noch mal schlau gemacht. Bei MQTT muss fast alles UTF-8 Konform sein - außer dem Payload. Der darf egal was an Bytes enthalten. Es wird zum nächsten Update bei MQTT ein Update geben mit einem „Binary“ Type, der die Daten dann HEX Kodiert in der String Variable ablegt. Du kannst dir dann das bin2hex sparen und IP-Symcon ist auch glücklich, dass die binären Daten sauber behandelt werden.
paresy
Perfekt. Vielen Dank. Ich werde berichten. Wir haben ja noch Winter und der Pool ist nicht aktiv. Somit kein wirkliches Problem.
Hallo in die Runde,
bei mir verstecken sich auch einige Skripte die den genannten UTF-8-Fehler bringen. Laufen tun sie alle nur im Editor zeigen sie den Fehler.
Util Control startet und zeigt keine Auffälligkeiten.
Jage ich das Skript durch Notepad++ und konvertiere es nach UTF-8 lädt es anschließend im internen Editor einwandfrei.
Das nur als Feedback zur Version IP-Symcon 6.3, Ubuntu (Docker) (amd64), 29.11.2022, 07e763adc3e2, ich kann damit leben.
Gruß
Werner
leider ist der Mistfehler bei mir immer noch nicht weg…
Ich habe die aktuelle V6.3 Rev. 02625c0a25d0
@paresy Wenn du mehr Infos brauchst, sag Bescheid.
Grüße
Jürgen
Zu schnell editiert. Siehe unten.
paresy
jepp
symcon/beta,now 6.3-225 arm64
Welches Modul ist das von dem die Daten kommen? Also zu wem gehören die Instanzen?
paresy
Shelly und MQTT. Und ganz skuril: Selbst eine inaktive MQTT-Instanz schmeißt den Fehler.
Korrektur: Die Instanz ist aktiv, aber der MQTT-Client der die Daten bereitstellt ist inaktiv/abgeschaltet.
Das Problem wird vermutlich eher beim Kodieren passieren. Ich dachte nur, dass ich in der Beta alle MQTT Probleme zu diesem Fehler gelöst hatte :-/ Kannst du mir irgendwie aus dem ServerSocket einen Payload zusenden, mit dem ich den Fehler nachstellen kann?
paresy
Habe gerade versucht mit grep die Daten aus dem logfile zu zaubern. Da bekomme ich allerdings den Fehler
grep: (Standardeingabe): Übereinstimmungen in Binärdatei
Wenn ich dann versuche, das logfile mit einem Editor zu öffnen, bekomme ich nur die Aussage,
fehlerhaft codierte Zeichen
Danach stürzt der Editor ab…
Ich kann Dir das Logfile aber gerne zur Verfügung stellen, hat aber 290MB.