Closed ozwo71 closed 2 years ago
Hallo,
das muss ich analysieren. Dazu benötige ich aber die Original-Images des Scan-Vorgangs.
In dem beschreibbaren Pfad, der in dem base.xml-File angegeben ist sollte ein Ordner "LearnedImages" liegen. Darin müssten sowohl die Screens, als auch die Screens in gezippter Form liegen. Könntest Du mir hier die gezippte Datei der Bildschirme hier reinlegen?
Ich vermute, dass etwas mit dem Anlernen des Screens "Heizkreis" schief geht. Dabei wird in Wirklichkeit die Überschrift des Screens Heizkreis-1-1/5 ohne die Ziffern gemerkt. Wenn er dann das Bild Heizkreis-1-4/5 versucht, kann er offenbar 1-4/5 nicht erkennen. Vielleicht erwartete er die an falscher Position.
Den Zusammenhang zur V1.04.04 sehe ich momentan noch nicht. Ich weiß, ich hatte dort etwas geändert, aber das war in der Version V1.02.04. Vorher hatte ich die Ziffern immer ab einer bestimmten Position erwartet. Wenn man jedoch Screens im Wartungsbereich auf ähnlichwerweise scant, funktioniert das nicht mehr. daher wird der Ort der Ziffern mittels eines Algorithmus gesucht. Wenn Du die Version V1.02.04 in Wirklichkeit meinst, muss ich da vermutlich noch den Algorithmus verbessern, damit es auch bei Dir geht.
Viele Grüße Stefan
Vielen Dank für's Kümmern. Es ist definitiv mit 1.04.04 noch in Ordnung - alle späteren Versionen (inkl. V01.05.01-rc4) scheitern an der gleichen Stelle. Screens habe ich angehängt. Grüße Oliver LearnedImages.zip
P.S.: Ich habe auch einige Versuche mit Änderungen der Timings (<tns:Duration id="ModeChange" usw.) versucht - leider ohne Erfolg.
Hallo Oliver,
habe es mir gerade angesehen.
Man sieht das Problem im Bild "020_sc_ChaosSolvisgraphicHeizkreis__0.png", dort ist die 1 zuviel. In der Grafik darf nur der Text "Heizung>Heizkreis" erfasst sein. Ist deine Solvis-Anlage wirklich so chaotisch ? Ich hoffe nicht ;).
Es liegt schon an der Positionserkennung, die ich in 1.02.04 eingeführt habe. Warum es trotzdem mit späteren noch geht, weiß ich noch nicht, ein Verdacht habe ich. Es könnte daran liegen, dass ich bei einer späteren Version auch noch Änderungen für die Mehrsprachigkeit eingeführte hatte. Abgeschlossen war die Änderung erst mit der Version 01.04.06, in der Version 01.04.05 gab es dazu schon Änderungen (ohne das in der Changes.txt zu dokumentieren, da es noch nicht abgeschlossen war).
Bei Dir ist die Bildschirmkalibrierumg etwas anders als bei mir. Mit dieser Kalibrierung an der SolvisControl verschiebt man in kleinen Bereichen den Inhalt des Bildschirms so, dass er in den kleineren Ausschnitt des Kunststoffrahmens der SolvisControl2 passt. Damit werden Fertigungstoleranzen des SolvisControl2-Gehäuses ausgeglichen. Daran wird es vermutlich liegen, dass es (bisher) nur bei Dir auftritt. Solche ähnlichen Probleme hatte ich schon bei einem anderen Anwender, da ging es um die Bildschirmschoner-Erkennung.
Wenn ich Dein Screen mit dem Screen meiner Anlage vergleiche, so ist bei Dir der Inhalt des Bildes um einen Pixel nach oben verschoben, die horizontale Ausrichtung ist identisch. Warum die Verschiebung nach oben zu diesem Problem führt, kann ich mir momentan nicht erklären, das schaue mir morgen genauer an, heute wird das nichts mehr. Der Algorithmus war etwas knifflig.
Viele Grüße Stefan
Hallo Stefan,
leider kann ich bei meiner Anlage den Touchscreen nicht mehr bedienen - ist irgendwie kaputt (also kann ich nur noch die SC2 zur Bedienung der Heizung nutzen...). Bzw. die Kalibrierung des Touchscreens ist komplett daneben... Und die Anzeigeeinstellungen inkl. Kalibrierung gehen nicht Remote, so wie es aussieht. Da sollte es mal einen Reset geben...
Alle andere Screens lassen sich remote prima bedienen...
Vg Oliver
Hallo Oliver,
also doch ChaosSolvis?
das ist kein Problem, das muss der SolvisSmartHomeServer von sich aus können.
Ja, ich weiß, die Kalibrierung geht nicht Remote, das hatte ich auch schon festgestellt. Bei mir geht der Zugriff auch nur noch Remote, da ich das Haus mit der Anlage inzwischen verkauft habe. Ich werde aber weiterhin Remote-Zugriff auf die Anlage haben, da der jetzige Besitzer an der Sache ebenfalls interessiert ist. Demnächst muss ich aber mehrere Monate Pause einlegen, da die Elektrik des gesamten Hauses modernisiert wird (hat noch Nullung, ist von 1965).
Die Ursache ist mir inzwischen klar. Der ^-Button ist durch die Kalibrierung weiter nach oben gerutscht und wird nun als "Zeichen" interpretiert. Da die Suche von grafischen Elementen von rechts nach links erfolgt, ist die zu früh beendet und die 1 wird als Überschrift statt Ziffer interpretiert. Bei der Sprachanpassung für Französisch musste ich den Suchbereich weit nach rechts erweitern, da die Ziffern oberhalb des ^-Buttons stehen! So wie es aussieht, muss ich nicht nur den horizontalen Start der Ziffern per Algorithmus erkennen, sondern auch den vertikalen, denn der Abstand zwischen Text und dem Rand des Buttons ist gerade mal 2 Pixel. Das kann man nicht fest einstellen, der Kalibierbereich - soweit ich es in Erinnerung habe - ist +- 2 Pixel (oder gar +-3 Pixel), d.h. ich muss das mit einem Algorithmus ausgleichen.
Wie gesagt, das wird etwas knifflig, da gehe ich morgen dran. Ich weiß nicht, ob ich es morgen noch schaffe.
Viele Grüße Stefan
Hallo Oliver,
habe gerade einen neuen Release Candidate erstellt. Ich habe den Algorithmus entsprechend erweitert und gleichzeitig den Scan-Bereich vertikal vergrößert, da der Bereich für größere Offset-Werte in die andere Richtung (nach unter verschoben) zu knapp war. Durch die Erweiterung des Scan-Bereichs gerät nun der ^-Button schon im Normalfall (ohne Offset) in den Scan-Bereich und man sieht, dass der Algorithmus den Bereich sauber abtrennt .
Ich hoffe jetzt funktioniert es.
Könntest Du die LearnedImages hier wieder reinlegen, dann werfe ich nochmal ein Blick drauf, ob es bei anderen Screens mit diesem Offset noch Probleme gibt (die sich u.U. nicht bemerkbar machen).
Doch noch eine Frage, ist Dein Display seit kurzem erst ausgefallen? Wie machst Du es mit dem Schonsteinfeger-Modus? Der funktioniert bei mir ebenfalls nicht per Web-Interface. Verendest Du stattdessen die Schnellaufheizung?
Viele Grüße Stefan
Hallo Stefan, vielen Dank - das sieht doch schon mal gut aus. Ich habe nun drei Durchläufe gemacht, die alle funktioniert haben. Anbei die Screens dazu.
Images_2021-12-20T183538999_sc_ChaosSolvis.zip
Den Schornsteinfegermodus habe ich seither noch nicht wieder benötigt - war davon ausgegangen, dass man den auch Remote nutzen kann. Offenbar haben die tatsächlich so einige Funktionen remote abgeklemmt... ...habe mir also bisher keine Gedanken dazu gemacht. Aber wenn Du Ideen zu einem Workaround hast, wäre das etwas für ein Feature-Request.
Weitere off-topic Frage: da ich die Mailfunktion nicht benötige, habe ich die Einträge dazu in der base.xml nicht angefasst.
Das liefert nun natürlich
18:40:26,746|ERROR|de.sgollmer.solvismax.mail.ExceptionMail - base.xml error of passwordCrypt in Mail tag, mail disabled: Decryption error Server started, Version 01.05.01-rc5, 3 heating circuits beta, compiled at 2021-12-20 16:16:39
Macht ja dann, was ich will - ist aber kosmetisch dann natürlich ein ERROR im Log, der eigentlich keiner sein müsste (weil SendMailOnError=false). Oder habe ich da in der Doku etwas übersehen (fand nämlich nix...). Kann ich einfach den gesamten Bereich "ExceptionMail" löschen?
Danke und viele Grüße Oliver
Der eigentliche issue hier kann geschlossen werden - Problem wurde mit V01.05.01-rc5 gefixed.
Hallo Oliver,
Danke für die Rückmeldung.
Ich habe mir auch alle Screens angesehen, das sieht jetzt OK aus. Ich schließe daher das Issue.
Bzgl. Mail, ich habe die Reader i.A. so programmiert, dass man das Tag, das man nicht benötigt, einfach weglassen kann. Ich vermute, dass es dann keine Meldung im Log mehr gibt.
Viele Grüße Stefan
PS.: Ja SendMailOnError müsste eigentlich reichen. Ich hatte ursprünglcih an weitere Mail-Ereignisse gedacht, aber ich denke, es wird dann für jedes ein Feature geben. Noch zur Schonsteinfeger-Mode: Rein theoretisch kann man vieles umbiegen, so dass hätte den Vorteil, dass der Schornsteinfeger-Mode quasi Remote ginge. Das muss ich mir nochmal überlegen, ob das Sinn macht und man muss ja danach wieder alles in den ursprünglcihen Zustand setzen. Schon etwas kritisch!
Schon etwas kritisch!
Auch wieder wahr...
Hallo, vielen Dank für dieses außergewöhnliche Projekt. Ich nutze den SolvisSmartHomeServer nun schon seit einiger Zeit (hat immer klaglos seinen Dienst verrichtet). Nun ziehe ich von FHEM nach ioBroker um und wollte den SHS in dem Zuge auch auf die neueste Version bringen.
Dabei bekomme ich im Lernmodus die obenstehende Fehlermeldung. Komplette Ausgabe:
pi@chaosdocker:~/ssh $ sudo make learn systemctl stop SolvisSmartHomeServer systemctl stop DebugSolvisSmartHomeServer cp SolvisSmartHomeServer.jar /home/pi/ssh/solvisshs/SolvisSmartHomeServer.jar chown -c pi:pi /home/pi/ssh/solvisshs/SolvisSmartHomeServer.jar sudo -u pi /usr/bin/java -jar /home/pi/ssh/solvisshs/SolvisSmartHomeServer.jar --server-learn 14:11:29,877|ERROR|de.sgollmer.solvismax.mail.ExceptionMail - base.xml error of passwordCrypt in Mail tag, mail disabled: Decryption error 14:11:30,952|LEARN|de.sgollmer.solvismax.model.Solvis - Learning initialized. 14:11:56,548|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <Home1> learned. 14:11:56,573|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <Home2> learned. 14:11:56,586|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <Home3> learned. 14:12:00,654|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <Solar> learned. 14:12:04,287|LEARN|de.sgollmer.solvismax.model.Solvis - Configuration mask: 0x1004009 14:12:12,937|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <Nachttemperatur> learned. 14:12:12,952|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <NachttemperaturNotSelected> learned. 14:12:16,967|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <NachttemperaturSelected> learned. 14:12:32,478|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <Warmwasser> learned. 14:12:40,115|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <Sonstiges-1> learned. 14:12:40,124|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <Sonstiges> learned. 14:12:44,111|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenGraficDescription - Screen grafic <Heizkreise> learned. 14:12:48,101|LEARN|de.sgollmer.solvismax.model.objects.screen.ScreenOcr - Screen grafic <Heizkreis> learned. 14:13:03,653|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:13:07,164|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:13:18,636|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:13:22,149|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:13:33,623|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:13:37,147|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:13:48,616|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:13:52,128|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:14:03,629|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:14:07,143|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:14:18,629|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:14:22,143|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:14:33,663|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:14:37,176|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:14:48,666|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:14:52,179|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:15:03,649|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:15:07,160|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:15:18,618|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Warning: Goto with an unlearned Screen, algorithm or control.xml fail? 14:15:22,129|LEARN|de.sgollmer.solvismax.model.objects.screen.Screen - Pepartation failed, goto learning will tried again. 14:15:25,675|ERROR|de.sgollmer.solvismax.model.objects.screen.Screen - Learning of screen <Heizkreis-1-4_5> not possible. Learning terminated. 14:15:25,676|ERROR|de.sgollmer.solvismax.Main - Exception on reading configuration or learning files occured, cause:: de.sgollmer.solvismax.error.LearningTerminationException: Learning of screen <Heizkreis-1-4_5> not possible. Learning terminated. at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:459) at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:433) at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:433) at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:433) at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:433) at de.sgollmer.solvismax.model.objects.screen.Screen.learnScreens(Screen.java:364) at de.sgollmer.solvismax.model.Solvis.learning(Solvis.java:556) at de.sgollmer.solvismax.model.Instances.learn(Instances.java:113) at de.sgollmer.solvismax.Main.execute(Main.java:337) at de.sgollmer.solvismax.Main.main(Main.java:494) de.sgollmer.solvismax.error.LearningTerminationException: Learning of screen <Heizkreis-1-4_5> not possible. Learning terminated. at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:459) at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:433) at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:433) at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:433) at de.sgollmer.solvismax.model.objects.screen.Screen.learn(Screen.java:433) at de.sgollmer.solvismax.model.objects.screen.Screen.learnScreens(Screen.java:364) at de.sgollmer.solvismax.model.Solvis.learning(Solvis.java:556) at de.sgollmer.solvismax.model.Instances.learn(Instances.java:113) at de.sgollmer.solvismax.Main.execute(Main.java:337) at de.sgollmer.solvismax.Main.main(Main.java:494) make: *** [Makefile:127: learn] Fehler 10
Ich habe versucht, den Fehler über die Versionen zurückzuverfolgen. Bis 1.04.04 klappt alles ohne Probleme, bei allen Folgeversionen tritt der Fehler immer identisch auf. Beim Lernen wird versucht, durch die Untermenüs des Heizkreis 1 zu kommen, auf dem Bildschirm sehe ich auch, dass die Menüs weiter geschaltet werden nur offenbar wird es nicht korrekt erkannt. Hier der Screenshot, wie Heizkreis-1-4_5 bei mir aussieht:
Meine SolvisRemote läuft mit der 2.22.01/2.20.06. Die Solvis-Konfiguration ist wie folgt:
Was benötigst Du für weitere Infos, um das Problem zu finden/beheben?
Danke und Grüße Oliver