Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Development03 #566

Merged
merged 7 commits into from
Jan 16, 2023
Merged

Development03 #566

merged 7 commits into from
Jan 16, 2023

Conversation

dAjaY85
Copy link
Contributor

@dAjaY85 dAjaY85 commented Jan 9, 2023

Hab die MonoDisplay Klasse umgeschrieben, jetzt werden alle drei Displays mit der selber Lib eingebunden.
Das Display sollte für Nokia als auch für 0,96" und 1,3" die selbe Struktur haben. Die beiden Displays werden nun auch mit SSD1306 angesprochen, angeblich erlaubt diese Funktion mehr möglichkeiten als SH1106.
Zusätzlich hat das 0,96 und 1,3 " Display einen PowerSave Mode, welcher nach 1 Minute, sobald der WR offline geht, angeht.

Habe leider keinen ESP8266 hier vorliegen, sollte noch an dme geprüft werden, ob diese Implementierung Ahoy verlangsamt.

Gruß

@knickohr
Copy link

knickohr commented Jan 9, 2023

Aääää ??? Den Power Save kann man aktivieren/deaktivieren ?

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

jeep, habs jetzt so gemacht, dass der 1 Minute nach Offline aktiv wird und danach fleißig, wenn wieder produciert wird, deaktiviert wird. Muss es noch Bei Nokia nachpflegen.

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

Müssen leider SH1106 wieder aktivieren, weil ein SH1106 Display beim Ansteuern mit dem SD1306, einen weißen Rand von 2 px erzeugt, siehe Discord und https://forum.arduino.cc/t/oled-shifted/323480/6

@knickohr
Copy link

knickohr commented Jan 9, 2023

jeep, habs jetzt so gemacht, dass der 1 Minute nach Offline aktiv wird und danach fleißig, wenn wieder produciert wird, deaktiviert wird. Muss es noch Bei Nokia nachpflegen.

Was jetzt, geht aus wenn’s dunkel wird und man kann es nicht abschalten ? Ich hätte schon gerne noch meine Werte gesehen, auch wenn es dunkel ist 😲

Bei Nokia bitte nichts machen, da ist kaum Stromersparnis und leuchtet ja auch nicht. Bei OLED kann ich das akzeptieren wenn man es auch Nachts irgendwie noch einschalten kann zum ablesen .

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

😱
Ja wäre möglich bei Nokia das zu deaktivieren. Leider gibt es keinen touch, aber es wäre mit einem Button möglich das Display aufzuwecken, müsste aber aus dem esp kommen, weiß nicht ob das so eine gute Idee wäre.

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

IMG_20230109_131936.jpg
IMG_20230109_132027.jpg

So sieht es jetzt aus, Nokia ist Power save deaktiviert.

Copy link
Contributor Author

@dAjaY85 dAjaY85 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Musste leider das SH1106 wieder einfügen, da bei der Ansteuerung eines SH1106 Display mittels SSD1306 zu zwei px unterschied kommt.
Zusätzlich wurde ein Logo eingefügt, in der Ecke oben Rechts, Ahoy Logo ging nicht, da zu wenig Kontur, deswegen habe ich aus MDI:solar-power-variant genommen.

Zusätzlich habe alle Displays eine Umschaltung bei der today Production, falls diese die 999 Übersteigt, springt das System auf kWh um.

da Display überladen aussah.
@knickohr
Copy link

knickohr commented Jan 9, 2023

😱
Ja wäre möglich bei Nokia das zu deaktivieren. Leider gibt es keinen touch, aber es wäre mit einem Button möglich das Display aufzuwecken, müsste aber aus dem esp kommen, weiß nicht ob das so eine gute Idee wäre.

Nein, ich meine ein Schalter/Kästchen in den Settings wo ich dieses Feature aktivieren oder deaktivieren kann 😅

ich möchte nicht das meine Displays nachts aus gehen 😪

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

Das muss zuerst wer Programmieren 😂

Es wäre vielleicht besser, den constructed dynamisch auszuführen, wo erst in der App das Display ausgewählt werden muss.

@lumapu
Copy link
Owner

lumapu commented Jan 9, 2023

danke fürs beisteuern, jetzt kann ich sie nächstes versuchen auch @knickohr s Wünsche zu berücksichtigen.

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

Wenn man ein Kästchen oder so definiert, kriegen wir knickohrs wünsche umgesetzt 😂

@knickohr
Copy link

knickohr commented Jan 9, 2023

@dAjaY85

Hast Du eigentlich den Pixelversatz von @gh-fx2 bedacht/gesehen, der verhindert das die OLEDs mit der Zeit einbrennen ?

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

Ne nicht gesehen, die implementierung ist analog zum Nokia Display, halt nur an die Auflösung angepasst.

@knickohr
Copy link

knickohr commented Jan 9, 2023

Bitte nicht falsch verstehen, aber wir entwickeln gerade einige Features zurück 😲

Ich bin eigentlich mit der jetzigen Darstellung der Displays ganz zufrieden und würde gerne folgende Punkte auf jedem Fall beibehalten :

  • Display dauerhaft an (optional über Settings ausschaltbar)
  • OLED mit „Einbrennschutz“
  • Icons sind nett, müssen aber nicht sein, vor allem wenn sie keinen Mehrwert haben. Stören mich allerdings auch nicht 😉
  • Wurde bedacht, das einige User auch mehr als nur ein oder zwei Inverter dran haben ? Momentan kann das Display ja 2 Inverter abvespern.
  • Wenn mehrere Seiten angedacht sind, kann man die auch im x-Sekundentakt durchrollieren, man braucht nicht unbedingt platzfressende Taster/Schalter

Just my 2 cents 😉

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

Überlege im 10 Minutentakt die Farbe der Pixel zu ändern, als einbrennschutz.
So ungefähr:
Screenshot_2023-01-09-21-09-56-927_com.android.chrome.jpg

@gh-fx2
Copy link
Contributor

gh-fx2 commented Jan 9, 2023

mehr als 2 Inverter: ja ist drin.
Einbrennschutz: Es brennen ja nur die 'eingeschalteten' Pixel ein - daher muesstest du immer invers darstellen. weiss nicht ob man das möchte - aber n Versuch isses wohl wert. (Alternativ kann ich das 'shiften' auch bei Nokia einbauen - ist ja nicht viel Aufwand.

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

Muss ich morgen schauen, mit dem invertieren, sollte vieles bringen.
Wenn dazu noch aus der App heraus die Helligkeit eingestellt werden kann und eventuell die px Verschiebung wieder einfügt wird, sollte es reichen, denke ich.

Main müsste das schiften noch haben, kann ja dort anschauen.

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

Was interessant wäre, ist der dynamische constructor, kannst du da unterstützen?

Meine C++ Programmierungen sind schon über 10 Jahre her 😄

Ich meine eine Möglichkeit schaffen den Typ vom mDisplay aus dem app.cpp Programm beim initialisieren des Monodisplay zu übergeben, dadurch waren wir für alle von der Lib u8g2 unterstützten displays vorbereitet.

Dazu müsste ich die Displayanordnung dynamisch gestalten, sollte aber möglich werden, denke ich.

@knickohr
Copy link

knickohr commented Jan 9, 2023

mehr als 2 Inverter: ja ist drin.
Einbrennschutz: Es brennen ja nur die 'eingeschalteten' Pixel ein - daher muesstest du immer invers darstellen. weiss nicht ob man das möchte - aber n Versuch isses wohl wert. (Alternativ kann ich das 'shiften' auch bei Nokia einbauen - ist ja nicht viel Aufwand.

Nokia braucht kein Wackler, bitte nicht, ist ein LCD, das brennt nicht ein. Außerdem hat das Display eh schon weniger Pixel.

Der absolute Einbrennschutz ist, den Text/Grafik durchlaufen zu lassen, vorzugsweise von unten nach oben. Dann werden alle Pixel mehr oder weniger gleich gealtert und es kommt nicht zu den unschönennSchatteneffekten.

@Loetnase
Copy link

Loetnase commented Jan 9, 2023

Also meine Erfahrung ist,
das Oled sollte nach ca. 3 Jahren Dauerbetrieb ausgetauscht werden.
das schöne Weiß wird leider immer grauer.
Auch die wechselnden Zahlen werden dann unscharf. Vielleicht wäre ein einstellbarer Zeitbereich z.B. 7 - 22 Uhr machbar. Wer möchte könnte 24 Stunden lang anzeigen oder sonst nach Belieben und das Display hält entsprechend länger oder kürzer.

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 9, 2023

Aktuell ist es so, sobald WR offline geht, wird das Display ausgeschaltet, sobald WR wieder produziert, geht das Display an.

@knickohr
Copy link

Einspruch Euer Ehren !

Aktuell ist es so das die Displays immer an sind. Bis auf die Anzeige „Offline“ im oberen Bereich bleibt das Display immer aktiv. Einzig das „Pixelzittern“ bei den OLEDs um das Einbrennen hinaus zu zögern sollte da auch nichts weiter getan werden, zumindest bis es eine Option im Setup gibt, die diesen Feature Request dann aktivieren/deaktivieren kann.

@knickohr
Copy link

knickohr commented Jan 10, 2023

@Loetnase

Die weißen OLED altern wesentlich schneller als die anders farbigen. Am längsten halten die Blauen. Ich habe in meinem Auto ein selbstgebasteltes Thermometer im Dashboard, das ist dort schon 10 Jahre drin und man erkennt noch keine Alterungserscheinungen. Allerdings ist auch hier das „Pixelzittern“ einprogrammiert.

Man konnte das Power off an die Communication Start/Stop Zeiten koppeln. Aber wie gesagt, bitte mit der Option das (Display off) auch komplett zu deaktivieren, unabhängig von anderen Einstellungen.

@Sinned42
Copy link

Das Pixelzittern ist ja nur die Hälfte der Displaylebensdauer, es gibt ja z. B. noch die Linie. Um das Display vor dem Einbrennen zu bewahren könnte man zwischen invers und normal hin und her schalten (z. B. alle 10 Minuten), dann hat man die maximale Lebensdauer des Displays, ist nur die Frage, ob man das (optisch) so will...

@knickohr
Copy link

Das Pixelzittern geht, wenn es ordentlich gemacht ist, nicht nur nach links oder rechts, sondern über 9 Pixel :

  • Links
  • Rechts
  • Oben
  • Unten
  • Links oben
  • Rechts oben
  • Links unten
  • Rechts unten
  • und die „Nullposition“ in der Mitte

Also haben wir die Lebensdauer schon mal verneunfacht. Zumindest in der Theorie. Da die Schrift aber nicht nur 1 Pixel breit ist und danach aufhört, wird es wohl so in Summe verdrei- bis vervierfacht sein. Besser als gar nix !

Von inverser Darstellung halte ich nichts, da sie den Stromverbrauch erhöht und nur eine max. Verdoppelung der Lebensdauer bring.

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 10, 2023

Also Pixelzittern über 9 Pixel hinweg, sehe ich ich auch am oled als kritisch an, wir haben 124x64 Pixel zur Verfügung.

Somit wäre eine nutzbare Fläche von 115x55.

@knickohr
Copy link

knickohr commented Jan 10, 2023

Falsch !

Es sind nur 3x3. Die nutzbare Fläche wäre 128-3 x 64-3

Also nich verschlimmern als es wirklich ist 😉

@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 10, 2023

Naja, beim teilbuffer macht es Probleme mit dem Y zittern, Versuche noch mittels full buffer, ob es besser wird.

@dAjaY85 dAjaY85 closed this Jan 10, 2023
@dAjaY85 dAjaY85 reopened this Jan 10, 2023
@dAjaY85
Copy link
Contributor Author

dAjaY85 commented Jan 10, 2023

Pixel Zittern ging nur in x Richtung, sobald y im spiel war, sah es nach einiger Zeit sehr unschön aus.
Farbe umkehren sieht grauenhaft aus, nicht umgesetzt.
Oled Display wird auf 60% gedimmt.

Jetzt fehlt noch, das einstellen vom Dimmwert und das blockieren des PowerSave aus der App heraus.

lumapu added a commit that referenced this pull request Jan 16, 2023
…s are introduced but not able to be modified, will be included in next version)
@lumapu lumapu merged commit 7c3a78e into lumapu:development03 Jan 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants