Hallo,
Im LogFile kommt bei mir immer wieder ein Eintrag ich vermute vom EasyESP 2.0.0 dev.7 wenn auf der LCD geschrieben wird.
Ich würde gerne verhindern das mir das LogFile voll läuft, wie kann ich das am besten machen?
<script language="javascript"><!--
function dept_onchange(frmselect) {frmselect.submit();}
//--></script><head><title>ESP58</title><style>* {font-family:sans-serif; font-size:12pt;}h1 {font-size:16pt; color:black;}h6 {font-size:10pt; color:black; text-align:center;}.button-menu {background-color:#ffffff; color:blue; margin: 10px; text-decoration:none}.button-link {padding:5px 15px; background-color:#0077dd; color:#fff; border:solid 1px #fff; text-decoration:none}.button-menu:hover {background:#ddddff;}.button-link:hover {background:#369;}th {padding:10px; background-color:black; color:#ffffff;}td {padding:7px;}table {color:black;}.div_l {float: left;}.div_r {float: right; margin: 2px; padding: 1px 10px; border-radius: 7px; background-color:#080; color:white;}.div_br {clear: both;}</style></head><h1>Welcome to ESP Easy Mega: ESP58</h1><BR><a class="button-menu" href=".">Main</a><a class="button-menu" href="config">Config</a><a class="button-menu" href="controllers">Controllers</a><a class="button-menu" href="hardware">Hardware</a><a class="button-menu" href="devices">Devices</a><a class="button-menu" href="notifications">Notifications</a><a class="button-menu" href="tools">Tools</a><BR><BR><form><table><TH>Tools<TH><TR><TD>System<TD><a class="button-link" href="/?cmd=reboot">Reboot</a><a class="button-link" href="log">Log</a><a class="button-link" href="sysinfo">Info</a><a class="button-link" href="advanced">Advanced</a><BR><BR><TR><TD>Wifi<TD><a class="button-link" href="/?cmd=wificonnect">Connect</a><a class="button-link" href="/?cmd=wifidisconnect">Disconnect</a><a class="button-link" href="/wifiscanner">Scan</a><BR><BR><TR><TD>Interfaces<TD><a class="button-link" href="/i2cscanner">I2C Scan</a><BR><BR><TR><TD>Settings<TD><a class="button-link" href="/upload">Load</a><a class="button-link" href="/download">Save</a><TR><TD>Firmware<TD><a class="button-link" href="/update">Load</a><a class="button-link" href="http://www.letscontrolit.com/wiki/index.php/EasyOTA" target="_blank">?</a><TR><TD>Filesystem<TD><a class="button-link" href="/filelist">Flash</a><a class="button-link" href="/SDfilelist">SD Card</a><BR><BR><TR><TD>Command<TD><input type='text' name='cmd' value='NeoPixel,6,0,0,0'><TR><TD><TD><input class="button-link" type='submit' value='Submit'><TR><TD></table></form><h6>Powered by www.letscontrolit.com</h6></body><script language="javascript"><!--
function dept_onchange(frmselect) {frmselect.submit();}
Hi,
zeig doch mal die Log-Einträge, dann kann man vielleicht was dazu sagen.
...und was hat das JavaScript, das Du mitgegeben hast, damit zu tun?
Gruß,
Thorsten
Du scheinst _irgendwie_ auf das ESPEasy Webinterface zuzugreifen, dabei wird anscheinend der Inhalt ins Log geschrieben.
Achso, das ist der Eintrag im Log...
Vielleicht ;)
Ja, der Java Eintrag ist der Logfile Eintrag.
Es geht wie schon beschrieben um das FHEM System Logfile also
attr global logfile .....
Ich weiß auch das man mit :(?!blablabla).* etwas ausschließen kann.
Aber wie kann ich das auf attr global logfile ..... anwenden?
Der Logeintrag könnte bspw. durch einen falsch angewendeten http request aus einem notify, at, etc. kommen. Dort solltest Du ansetzen und den Aufruf korrigieren.
Das mit dem Aufruf würde ich ehr ausschließen, habe ich schon überprüft, hängt wohl mit der noch frühen ESPEasyMega 2.0.0 dev.7 zusammen.
Auf einem ESPEasy 147RC8 und 120 läuft der gleiche Aufruf ohne Probleme.
Zitat
hängt wohl mit der noch frühen ESPEasyMega 2.0.0 dev.7 zusammen.
Sehr unwahrscheinlich.
Hi,
wie sieht das ganze denn auf der FHEM-Seite aus? D.h. wie genau wird denn von FHEM aus "auf der LCD geschrieben"?
Gibt's dafür ein Modul oder geht das per 99_myUtils-Funktion oder...?
Gruß,
Thorsten
Der Aufruf
Wie schon beschrieben, der identische Aufruf unter ESPEasy147 146 145 120 funktioniert.
define OLED_ESP58 dummy
define esp_oled58 at +*00:01 {\
my $temp=(ReadingsVal ("KS300","temperature","0"));;\
my $humi=(ReadingsVal ("KS300","humidity","0"));;\
my $wind=(ReadingsVal ("ESP86_DWohnz_10_Count_ber1","state","0"));;\
my $rain=(ReadingsVal ("KS300","rain","0"));;\
my $israining=(ReadingsVal ("KS300","israining","0"));;\
my $pressnn=(ReadingsVal ("BMP180OUTDOOR","pressure-nn","0"));;\
my $energieb=(ReadingsVal ("POWERZAEHLER","power","0"));;\
my $energiee=(ReadingsVal ("POWERZAEHLER","feed_L1","0"));;\
my $HeizWasser=(ReadingsVal ("Heizung_Wasser_Temp","state","0"));;\
# Log 3, "set OLED_ESP58: $temp$humi";;\
{GetHttpFile("192.168.1.58:80","/control?cmd=lcdcmd,clear")};;\
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,1,1,T:+$temp+H:+$humi+HT:+$HeizWasser")};;\
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,2,1,Wi:+$wind+Re:+$rain")};;\
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,3,1,hPa:+$pressnn+$israining")};;\
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,4,1,B:+$energieb+E:+$energiee+Watt")};;\
}
define FileLog_OLED_ESP58 FileLog ./log/OLED_ESP58-%Y-%m.log OLED_ESP58:.*
attr FileLog_OLED_ESP58 logtype text
attr FileLog_OLED_ESP58 room MQTT
define FileLog_esp_oled58 FileLog ./log/esp_oled58-%Y-%m.log esp_oled58:.*
attr FileLog_esp_oled58 logtype text
attr FileLog_esp_oled58 room MQTT
Beende den Perlteil des at mal mit "return undef;".
Wenn ich
"return undef;".
eingebe, geht der Aufruf nicht mehr.
return undef;
Ohne die Anführungszeichen und Satzzeichen. Syntax ist für den Def Editor.
...am besten mal nach der Änderung, wenn es nicht funktioniert, ein "list esp_oled58" liefern.
Gruß,
Thorsten
Hat leider nicht funktioniert
Internals:
COMMAND {
my $temp=(ReadingsVal ("KS300","temperature","0"));
my $humi=(ReadingsVal ("KS300","humidity","0"));
my $wind=(ReadingsVal ("ESP86_DWohnz_10_Count_ber1","state","0"));
my $rain=(ReadingsVal ("KS300","rain","0"));
my $israining=(ReadingsVal ("KS300","israining","0"));
my $pressnn=(ReadingsVal ("BMP180OUTDOOR","pressure-nn","0"));
my $energieb=(ReadingsVal ("POWERZAEHLER","power","0"));
my $energiee=(ReadingsVal ("POWERZAEHLER","feed_L1","0"));
my $HeizWasser=(ReadingsVal ("Heizung_Wasser_Temp","state","0"));
# Log 3, "set OLED_ESP58: $temp$humi";
{GetHttpFile("192.168.1.58:80","/control?cmd=lcdcmd,clear")};
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,1,1,T:+$temp+H:+$humi+HT:+$HeizWasser")};
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,2,1,Wi:+$wind+Re:+$rain")};
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,3,1,hPa:+$pressnn+$israining")};
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,4,1,B:+$energieb+E:+$energiee+Watt")};
return undef;
}
DEF +*00:01 {
my $temp=(ReadingsVal ("KS300","temperature","0"));
my $humi=(ReadingsVal ("KS300","humidity","0"));
my $wind=(ReadingsVal ("ESP86_DWohnz_10_Count_ber1","state","0"));
my $rain=(ReadingsVal ("KS300","rain","0"));
my $israining=(ReadingsVal ("KS300","israining","0"));
my $pressnn=(ReadingsVal ("BMP180OUTDOOR","pressure-nn","0"));
my $energieb=(ReadingsVal ("POWERZAEHLER","power","0"));
my $energiee=(ReadingsVal ("POWERZAEHLER","feed_L1","0"));
my $HeizWasser=(ReadingsVal ("Heizung_Wasser_Temp","state","0"));
# Log 3, "set OLED_ESP58: $temp$humi";
{GetHttpFile("192.168.1.58:80","/control?cmd=lcdcmd,clear")};
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,1,1,T:+$temp+H:+$humi+HT:+$HeizWasser")};
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,2,1,Wi:+$wind+Re:+$rain")};
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,3,1,hPa:+$pressnn+$israining")};
{GetHttpFile("192.168.1.58:80","/control?cmd=lcd,4,1,B:+$energieb+E:+$energiee+Watt")};
return undef;
}
NAME esp_oled58
NR 440
NTM 04:03:33
PERIODIC yes
RELATIVE yes
REP -1
STATE Next: 04:03:33
TIMESPEC 00:01
TRIGGERTIME 1492913013.89277
TRIGGERTIME_FMT 2017-04-23 04:03:33
TYPE at
Readings:
2017-04-23 04:02:34 state Next: 04:03:33
Attributes:
Hi,
was meinst Du mit "nicht funktioniert"? Der Krempel ladet immer noch im Log oder es geht gar nicht?
Gruß,
Thorsten
Das gezeigte at scheint gar nicht der Auslöser für den Logeintrag zu sein. Wenn Du Dir Logeintrag näher ansiehst, dann geht es um einen (falschen?) Aufruf des NeoPixel Plugins und nicht des LCDs Plugins.
Nebenbei: die geschweiften Klammern um den GetHttpFile-Aufruf sind überflüssing und falsch. Zudem blockiert GetHttpFile() Dein FHEM, wenn der ESP nicht erreichbar ist, besser HttpUtils_NonblockingGet() verwenden. Weiterhin kann das ESPEasy Modul alles das, was Du da selbst versuchst umzusetzen.
Hallo,
Ja die Fehlermeldungen landen immer noch im Log.
DANKE @dev0
Wäre dieser Aufruf dann richtig?
HttpUtils_NonblockingGet({ url=>"http://192.168.1.58:80","/control?cmd=lcdcmd,clear" })
HttpUtils_NonblockingGet({ url=>"http://192.168.1.58/tools?cmd=NeoPixel,1,50,0,0" })
Mein jetziger Aufruf für NeoPixel war
define LEDAnzeige1_1_1 notify LEDAnzeige1_1:red "wget -q -O- 'http://192.168.1.58/tools?cmd=NeoPixel,1,50,0,0'"
Und da das der erste ESPEasy ist wo ich NeoPixel nutze ist das wohl auch die Ursache.
Ich suche noch eine Anleitung wie ich in ESPEasy ein Plugin hinzufüge, kennt da jemand eine?
Warum nutzt Du nicht das ESPEasy Modul? Zu einfach?
Beim HttpUtils_NonblockingGet Aufruf fehlt der callback hash-Parameter. Siehe Wiki.
Bist Du sicher, dass es in NeoPixel Url "tools?cmd" heißen soll? Kenne ich so nicht, habe jetzt aber nicht nachgesehen.
Hallo @dev0
Es gibt zum ESPEasy Modul noch kein Wiki Eintrag.
Habe schon etwas gesucht jetzt aber noch nichts gefunden wie man im ESPEasy Modul LCD & NeoPixel ansteuert, aber vielleicht hast du gerade einen Link wo die Syntax gut beschrieben ist. Der ESPEasy Modul Three ist ja schon 57 Seiten stark
Die Doku ist in der commandref zu finden.
Alle offiziellen Plugins sind im Modul auch mit einer Hilfe bedacht:
set <esp> help
Usage: 'set <esp> help <clearreadings|dots|erase|gpio|help|irsend|lcd|lcdcmd|lights|longpulse|mcpgpio|oled|oledcmd|pcapwm|pcfgpio|pcflongpulse|pcfpulse|pulse|pwm|pwmfade|raw|reboot|reset|servo|status|statusrequest>'
set <esp> help lcd
Usage: set <esp> lcd <row> <col> <text>
Nicht offizielle Plugins lassen sich über den RAW Befehl aufrufen:
set <esp> raw neopixel 1 255 255 255