After mega-20180426-normal sending TEXT tro OLED don't work

Moderators: BertB, rtenklooster, Voyager, Stuntteam, Martinus

Message
Author
User avatar
M*I*B
Normal user
Posts: 38
Joined: 22 Jan 2018, 15:47
Location: Germany
Contact:

After mega-20180426-normal sending TEXT tro OLED don't work

#1 Post by M*I*B » 14 Jun 2018, 22:31

Hello there again,

I use it also with the small OLED SSD1306. Controller is FHEM and I'm sending TXT and rtttl from FHEM to the OLED.

Today I have try the last ESP_Easy_mega-20180614_normal_ESP8266_4096 and see that rttti work well and also the 2nd two lines defined in EE, but sending TXT don't work; no errormessages or anything else.
I step down to ESP_Easy_mega-20180524_normal_ESP8266_4096 with the same result
I step down to ESP_Easy_mega-20180426_normal_ESP8266_4096 and all work fine
I step down to ESP_Easy_mega-20180316_normal_ESP8266_4096 and all work fine
I step up to ESP_Easy_mega-20180426_normal_ESP8266_4096 and all work fine
I step up to ESP_Easy_mega-20180524_normal_ESP8266_4096 and I can't sending TXT again

Sometime between the two versions from the 26th of April to the 24th of May I must have crept in a BUG.

Or has something changed meanwhile what I have not noticed yet?
DLzG
Micha

User avatar
M*I*B
Normal user
Posts: 38
Joined: 22 Jan 2018, 15:47
Location: Germany
Contact:

Re: After mega-20180426-normal sending TEXT tro OLED don't work

#2 Post by M*I*B » 14 Jun 2018, 22:50

20180504 work well
20180511 work well
20180515 work well
20180522 work well
20180524 don't work
...
20180606 don't work

The error must have crept in from version 0522 to version 0524
DLzG
Micha

TD-er
Normal user
Posts: 744
Joined: 01 Sep 2017, 22:13
Location: the Netherlands
Contact:

Re: After mega-20180426-normal sending TEXT tro OLED don't work

#3 Post by TD-er » 14 Jun 2018, 23:57

Please post the exact command you try to send and to what plugin version (there are 2 OLED plugins)

You mention 20180522 - 0524.
Then I know what commit is was.
There were several bug reports related to it and I applied already a quick fix for it, but apparently there is some other that's still not working.

User avatar
M*I*B
Normal user
Posts: 38
Joined: 22 Jan 2018, 15:47
Location: Germany
Contact:

Re: After mega-20180426-normal sending TEXT tro OLED don't work

#4 Post by M*I*B » 15 Jun 2018, 10:42

... the complete FHEM like commandstructure is this:

Code: Select all

define set_oled DOIF ([HWBR] eq "on" and [HWi1] ne "on" and [HWi2] ne "on" and [HWi3] ne "on") (set WM_08 oled 4 1 BR: . Vorwaermen)(set WM_08 rtttl 16:d=10 o=6 b=180 c) \
	DOELSEIF ([HWBR] eq "on" and [HWi1] eq "on" and [HWi2] ne "on" and [HWi3] ne "on") (set WM_08 oled 4 1 BR: Normal-Betrieb)(set WM_08 rtttl 16:d=10 o=6 b=180 e g) \
	DOELSEIF ([HWi2] eq "on") (set WM_08 oled 4 1 BR: ! STOERUNG !)(set WM_08 rtttl 16:d=10 o=6 b=180 c e g e c e g e c e g e c e g e c e g e c e g e c) \
	DOELSEIF ([HWi3] eq "on") (set WM_08 oled 4 1 BR: ! OVERTEMP !)(set WM_08 rtttl 16:d=10 o=6 b=180 c e g e c e g e c e g e c e g e c e g e c e g e c) \
	DOELSEIF ([HWBR] ne "on") (set WM_08 oled 4 1 BR: . STAND BY . )(set WM_08 rtttl 16:d=10 o=6 b=180 g c) \
	DOELSEIF ([HWHP] eq "on") (set WM_08 oled 5 1 UP: . RUN  67.0^C)(set WM_08 rtttl 16:d=10 o=6 b=180 c g) \
	DOELSEIF ([HWHP] ne "on") (set WM_08 oled 5 1 UP: . OFF  52.7^C)(set WM_08 rtttl 16:d=10 o=6 b=180 g c) \
	DOELSEIF ([HWWP] eq "on") (set WM_08 oled 6 1 LP: . RUN  63.2^C)(set WM_08 rtttl 16:d=10 o=6 b=180 c g) \
	DOELSEIF ([HWWP] ne "on") (set WM_08 oled 6 1 LP: . OFF  52.7^C)(set WM_08 rtttl 16:d=10 o=6 b=180 g c) \
	DOELSEIF ([HWZP] eq "on") (set WM_08 oled 7 1 ZP: . RUN  52.7^C)(set WM_08 rtttl 16:d=10 o=6 b=180 c g) \
	DOELSEIF ([HWZP] ne "on") (set WM_08 oled 7 1 ZP: . OFF  52.7^C)(set WM_08 rtttl 16:d=10 o=6 b=180 g c) \
	DOELSEIF ([HM4SW2_4] eq "on")(set WM_08 oled 8 1 GP: . RUN . )(set WM_08 rtttl 16:d=16 o=4 b=120 g c g) \
	DOELSEIF ([HM4SW2_4] eq "off")(set WM_08 oled 8 1 GP: . OFF	. )(set WM_08 rtttl 16:d=16 o=4 b=120 c g c)
attr set_oled do always
... including 0524 and up command like "set WM_08 rtttl 16:d=10 o=6 b=180 c e g e c e g e c e g e c e g e c e g e c e g e c" work well, command for writing text like "set WM_08 oled 4 1 BR: ! STOERUNG !" don't do anything

I belive you mean what I have declare as Device in ESPEasy? That's the whole time "Display - OLED SSD1306" for the cheap I²C China-Trash...


Hint: If you plan to use the china-display 24/7 it's better to order a hand full of them and make it plugable. After arround 4 months the luminace is down to 50% and I belive after lates a year the display is for the trash...

EDIT say by the way:
What I'm missing with that is an option to send a ETX (end of text, ASCII 0003) and/or FF (form feed, ASCII 0012) that clear the rest of the line (ETX) or clear the rest of the line and jump to the next one. The Problem is that you have to send a SPACE for every sign or fill the line with a sign like a dot tro delete the unwanted rest of the line. Also a problem is that (sending from FHEM) more as one SPACE are ignored; this way to clean to EOL don't work...
DLzG
Micha

TD-er
Normal user
Posts: 744
Joined: 01 Sep 2017, 22:13
Location: the Netherlands
Contact:

Re: After mega-20180426-normal sending TEXT tro OLED don't work

#5 Post by TD-er » 15 Jun 2018, 20:55

About the OLEDs... I added some dimmer function to the OLED Framed plugin just to save the lifetime of those OLED pixels.
Those organic LEDs already have a limited lifetime and setting them to full brightness is shorting that even more.
And I have lots of them laying around. Even among those cheap Chinese clones there is some variation in cheapness.
Some don't allow to be set below some dimming threshold while others can. (or they start making noise)

About the command.
So the command you're giving to ESPeasy is something like "oled 4 1 BR: ! STOERUNG !"

And about that other feature. Would it be helpful to add a clear display command, although it may lead to some flickering.

User avatar
M*I*B
Normal user
Posts: 38
Joined: 22 Jan 2018, 15:47
Location: Germany
Contact:

Re: After mega-20180426-normal sending TEXT tro OLED don't work

#6 Post by M*I*B » 15 Jun 2018, 21:53

So the command you're giving to ESPeasy is something like "oled 4 1 BR: ! STOERUNG !"
Jepp, that's right. The stuff before is simple the Device in FHEM that you have to adress (name can be as you like)

I believe that a full clear is not a good idea. Bot about the bad idea later...

A command that clear the rest of a line will be much more helpfull. I.e. let us say that ASCII 0003 (ETX) will delete the rest of the line. And also let us say that the 1st textmessage sending is ...

Code: Select all

oled 4 1 Some Text here
That will generate in line 4 the Text "Some Text here"
If you now send a shorter text similar the 1st one like ...

Code: Select all

oled 4 1 Thats it
... you get "Thats itt here" as result. Not nice, right?
So if you can sent the ETX like ...

Code: Select all

oled 4 1 Thats it{ETX}
... so ETX (as example) delete or override the rest of the line with spaces...

Full clear Idea...
If you clear the full display you also have to write all (!) information again. That will be a monster construct in FHEM :cry: Problem is that you must catch every event that can create a new text (i.e. a temperature) and trigger all other events parallel and also you must write static information also... Simply you must write the whole display again from top to botton. This is also mucht traffic and recources if you have to do that every second...

Just some words to my construct line by line and translated:
Line 1: Date and Time with seconds (display refresh = 1sec)
Line 2: IP Adress and RSSI
Line 3: empty
Line 4: Status of oilburner (BR, Centralheating). Can be "Stand by", "Preheat nozzle", "Burning", "Fault" and "Overtemp boiler" (what also creat an alarm, emergency shutdown, email and WhatsApp message)
Line 5: Status of circulating pump (WP). Can be "OFF" or "RUN", followed by the temp of the forerun, that can be change every second
Line 6: Status of loading pump (LP) for warm water. Can be "OFF" or "RUN", followed by the temp of the warmers, that can be change every second
Line 7: Status of circulating pump (ZP) for warm water. Can be "OFF" or "RUN", followed by the temp of the temp on pin spot, that can be change every second
Line 8: Status of gardening groundwater pump (GP). Can be "OFF" or "RUN", followed by the pressure of the sytem, that can be change every second
DLzG
Micha

TD-er
Normal user
Posts: 744
Joined: 01 Sep 2017, 22:13
Location: the Netherlands
Contact:

Re: After mega-20180426-normal sending TEXT tro OLED don't work

#7 Post by TD-er » 15 Jun 2018, 23:12

OK Point taken :)
I will add an issue for it on Github.

danmero
Normal user
Posts: 63
Joined: 11 May 2017, 01:19

Re: After mega-20180426-normal sending TEXT tro OLED don't work

#8 Post by danmero » 16 Jun 2018, 12:04

If you don't want to clear the display and reconstruct from FHEM, why not use event to clean the line.

Code: Select all

on CL do
  oled,%eventvalue%,1, 
endon
and from here you call event using the line value

Code: Select all

event,CL=4
That will clean the line 4

Regards,

User avatar
M*I*B
Normal user
Posts: 38
Joined: 22 Jan 2018, 15:47
Location: Germany
Contact:

Re: After mega-20180426-normal sending TEXT tro OLED don't work

#9 Post by M*I*B » 16 Jun 2018, 12:48

.... äääääähhhh ...
Sorry, I have no Idea how it works.

The on...endon comes into RULES as a new Rules set??? And "event,CL=4" comes where? As a command sending from FHEM? :cry:
DLzG
Micha

danmero
Normal user
Posts: 63
Joined: 11 May 2017, 01:19

Re: After mega-20180426-normal sending TEXT tro OLED don't work

#10 Post by danmero » 16 Jun 2018, 14:50

This will be a new event on rules(first rules set or next)

Code: Select all

on CL do
  oled,%eventvalue%,1, 
endon
now from your previous post

Code: Select all

DOELSEIF ([HWBR] ne "on") (set WM_08 oled 4 1 BR: . STAND BY . )(set WM_08 rtttl 16:d=10 o=6 b=180 g c) \
you call on device WM_08 the function OLED to write on ROW 4 & COL 1 the text "BR: . STAND BY ." (correct me if I'm wrong).

Code: Select all

(set WM_08 oled 4 1 BR: . STAND BY .)
base on this assumption you can try

Code: Select all

(set WM_08 event CL=4)
if works as expected should clear the ROW 4

Please let me know if the solution works for you.

Regards,

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 3 guests