Beiträge von Zweckmair_B

    Hallo.


    Hier sind die Dateien:
    index.php


    PHP
    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">   <head>      <title>Heizkessel Status</title>      <style type="text/css">         *         {                     background-color: #CFCFCF;                     font-family: Arial;                     font-size: 16px;                     width: 450px;                  }         h1         {                     font-size: 22px;                  }         table      {                     background-color: #FFFFFF;                  }      </style>   </head>   <body>      <h1 align="center">Guntamatic Powerchip Status</h1>      <?php         $email = "zweckmair_b@gmx.at";         $_url = "http://10.0.0.100/daqdata.cgi";         $grenzeascheleeren = 8;         $_buffer = implode('', file($_url));         $lines = explode("\n", $_buffer);       //echo $_buffer;         $betrieb = $lines[78];         $programm = $lines[79];         $ascheleeren = $lines[108];         $kesseltemp = $lines[3];         $leistungStokerSchneckeProzent = $lines[8];         $leistungStokerAmpere = $lines[9];         $leistungRaumaustragungA1Prozent = $lines[11];         $leistungRaumaustragungAmpere = $lines[12];         $CO2 = $lines[18];         $kesselleistung = $lines[95];         $FEHLERMELDUNG = $lines[96];         $FEHLERZEITPUNKT = $lines[97];      ?>      <table border='0'>         <tr>            <th>Bezeichnung</th>            <th>Wert</th>         </tr>         <tr>            <td>Betrieb</td>            <td><?php echo $betrieb; ?></td>         </tr>         <tr>            <td>Programm</td>            <td><?php echo $programm; ?></td>         </tr>         <tr>            <td>Kesseltemperatur</td>            <td><?php echo $kesseltemp; ?> &deg;C</td>         </tr>         <tr>            <td>Kesselleistung</td>            <td><?php echo $kesselleistung; ?> %</td>         </tr>         <tr>            <td>Ascheleeren</td>            <td style="background-color:#<?php               if ($ascheleeren < $grenzeascheleeren) {                  echo "FF0000";               }               else {                  echo "#FFFFFF";               }            ?>"><?php echo $ascheleeren; ?> Stunden</td>         </tr>         <tr>            <td>Leistung Stokerschnecke</td>            <td><?php echo $leistungStokerSchneckeProzent; ?> %</td>         </tr>         <tr>            <td>Leistung Stoker</td>            <td><?php echo $leistungStokerAmpere; ?> Ampere</td>         </tr>         <tr>            <td>Leistung Raumaustragung A1</td>            <td><?php echo $leistungRaumaustragungA1Prozent; ?> %</td>         </tr>         <tr>            <td>Leistung Raumaustragung</td>            <td><?php echo $leistungRaumaustragungAmpere; ?> Ampere</td>         </tr>         <tr>            <td>CO<sub>2</sub></td>            <td><?php echo $CO2; ?> </td>         </tr>         <?php            if ($FEHLERMELDUNG != " ") {            echo "<tr><td colspan='2' style='background-color:#FF0000'>$FEHLERMELDUNG$FEHLERZEITPUNKT</td></tr>";            include "include.php";            }         ?>      </table>      <a href="http://10.0.0.100/demo/index.htm">Guntamatic Dashboard</a>      <a href="http://10.0.0.131:8080/">QNAP Server</a>      <a href="http://10.0.0.131:9000/">Twonky Server</a>	  <a href="http://10.0.0.138/cgi/b/ST/?ce=1&be=0&l0=0&l1=-1">speedTOUCH Dashboard</a>   </body></html>


    und include.php



    Ich teste jetzt nochmal alles durch. Ich melde mich gleich wieder.

    Hallo!
    Ich habe jetzt wie du vorgeschlagen hast die "test.php" erzeugt und die Zeile <include "test.php;"> eingefügt.
    Nach dem Aufruf der Seite erscheint die Meldung "EMAIL ERFOLGREICH GESENDET." und ich habe wirklich die Nachricht bekommen. Na das schaut doch nach einem Erfolg aus! :D
    Ich hatte jetzt aber keine Störung am Kessel verursacht (nur zur info)


    Was soll ich jetzt machen?
    (nur am Rande: ein falsches php Format kann nicht der Grund sein? verwende den Editor "Phase 5" und immer die Dateierweiterung ".php". Es gibt da aber auch noch "php3" +"php4" + "php5")

    Hallo. Ich habe die php.ini geändert, um alle Meldungen anzuzeigen.
    Da kommt nichts. Ich probierte auch die maileinstellung der php.ini auf meine zu ändern.
    Auch kein Erfolg.
    Ich habe einen Vorschlag.
    Wenn man das Skript auf 2 Dateien aufteilt. Das eine zeigt die infos an und stellt die infos einer Meldung bereit.
    Das andere prüft im ersten Skript ob ein Fehler vorliegt und sendet.
    da das testskript funktionierte kann ich mir vorstellen das es vielleicht so funktioniert.
    was meinst du?

    Hallo.
    Morgen werde ich wie gesagt das mit den Fehlermeldungen probieren.
    Ein paar Fragen hätte ich da noch:
    *Du hast was vom internen virtuellen mailserver gesprochen. Also ich habe eine Menge Arten von Server vorinstalliert, aber ein Mailserver ist nicht dabei. Muß ich den Nachinstallieren? (qpkg xmail oder xeams)
    *was bewirkt die Funktion "Register globals" beim Webserver? ist bei mir abgeschaltet

    Hallo.
    Bin gerade nicht Zuhause. Google gerade herum.
    Ich las das möglichweise das mail versendet wird, aber von gmx nicht angenommen wird da der Absender nicht passt.
    Dort half man sich in der php.ini mit dem eintrag 'sendmail_from = meinemail.gmx.at'
    was haltest du davon?

    Hallo.
    Das mit der roten Zeile klappt jetzt.


    die php.ini ist bei mit auf den Standardwerten. aber hier gebe ich sie jetzt trotzdem rein.


    Code
    [PHP]engine = Onshort_open_tag = Onasp_tags = Offprecision    =  12y2k_compliance = Onoutput_buffering = Offzlib.output_compression = Offimplicit_flush = Offunserialize_callback_func=serialize_precision = 100allow_call_time_pass_reference = Onsafe_mode = Offsafe_mode_gid = Offsafe_mode_include_dir =								safe_mode_exec_dir =safe_mode_allowed_env_vars = PHP_safe_mode_protected_env_vars = LD_LIBRARY_PATHdisable_functions =disable_classes =expose_php = Offmax_execution_time = 86400   ; Maximum execution time of each script, in secondsmax_input_time = 86400	; Maximum amount of time each script may spend parsing request datamemory_limit = 128M      ; Maximum amount of memory a script may consumeerror_reporting  =  E_ALL & ~E_NOTICEdisplay_errors = Offdisplay_startup_errors = Offlog_errors = Offlog_errors_max_len = 1024ignore_repeated_errors = Offignore_repeated_source = Offreport_memleaks = Ontrack_errors = Offvariables_order = "EGPCS"register_globals = offregister_argc_argv = Ongpc_order = "GPC"magic_quotes_gpc = Onmagic_quotes_runtime = Off    magic_quotes_sybase = Offauto_prepend_file =auto_append_file =default_mimetype = "text/html"doc_root =user_dir =include_path = ".:/etc/config/php"extension_dir = /usr/local/apache/modulesenable_dl = Onpost_max_size = 2047Mfile_uploads = Onupload_max_filesize = 2047Mallow_url_fopen = Ondefault_socket_timeout = 300upload_tmp_dir = /share/Webextension = sqlite.so[Syslog]define_syslog_variables  = Off[mail function]SMTP = localhostsmtp_port = 25sendmail_path = /usr/sbin/sendmail -t -i[Java][Date]date.timezone = "Asia/Taipei"[SQL]sql.safe_mode = Off[ODBC]odbc.allow_persistent = Onodbc.check_persistent = Onodbc.max_persistent = -1odbc.max_links = -1  odbc.defaultlrl = 4096  odbc.defaultbinmode = 1  [MySQL]mysql.allow_persistent = Onmysql.max_persistent = -1mysql.max_links = -1mysql.default_port =mysql.default_socket = "/tmp/mysql.sock"mysql.default_host =mysql.default_user =mysql.default_password =mysql.connect_timeout = 60mysql.trace_mode = Off[mSQL]msql.allow_persistent = Onmsql.max_persistent = -1msql.max_links = -1[PostgresSQL]pgsql.allow_persistent = Onpgsql.auto_reset_persistent = Off pgsql.max_persistent = -1pgsql.max_links = -1pgsql.ignore_notice = 0pgsql.log_notice = 0[Sybase]sybase.allow_persistent = Onsybase.max_persistent = -1sybase.max_links = -1sybase.min_error_severity = 10sybase.min_message_severity = 10sybase.compatability_mode = Off[Sybase-CT]sybct.allow_persistent = Onsybct.max_persistent = -1sybct.max_links = -1sybct.min_server_severity = 10sybct.min_client_severity = 10[dbx]dbx.colnames_case = "unchanged"[bcmath]bcmath.scale = 0[browscap][Informix]ifx.default_host =ifx.default_user =ifx.default_password =ifx.allow_persistent = Onifx.max_persistent = -1ifx.max_links = -1ifx.textasvarchar = 0ifx.byteasvarchar = 0ifx.charasvarchar = 0ifx.blobinfile = 0ifx.nullformat = 0[Session]session.save_handler = filessession.use_cookies = 1session.name = PHPSESSIDsession.auto_start = 0session.cookie_lifetime = 0session.cookie_path = /session.cookie_domain =session.serialize_handler = phpsession.gc_probability = 1session.gc_divisor     = 100session.gc_maxlifetime = 1440session.bug_compat_42 = 1session.bug_compat_warn = 1session.referer_check =session.entropy_length = 0session.entropy_file =session.cache_limiter = nocachesession.cache_expire = 180session.use_trans_sid = 0url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="session.save_path = /share/CACHEDEV1_DATA/.php_session[MSSQL]mssql.allow_persistent = Onmssql.max_persistent = -1mssql.max_links = -1mssql.min_error_severity = 10mssql.min_message_severity = 10mssql.compatability_mode = Offmssql.secure_connection = Off[Assertion][Ingres II]ingres.allow_persistent = Oningres.max_persistent = -1ingres.max_links = -1ingres.default_database =ingres.default_user =ingres.default_password =[Verisign Payflow Pro]pfpro.defaulthost = "test-payflow.verisign.com"pfpro.defaultport = 443pfpro.defaulttimeout = 30[com][Printer][mbstring][FrontBase][exif][Crack]; End:


    Vielleicht findet je jemand den Grund warum keine Nachrichten von diesem Skript gesendet werden, es aber mit dem testskript funktioniert.
    Um Fehler anzuzeigen habe ich "Display error" und "log error" auf on gesetzt. Ich bekomme aber keine Fehlermeldungen.
    Ich gehe davon aus das ich "log error" bei den systemverbindungsprotokollen finde.
    Ich habe bei der Heizung einen Fehler verursacht ( Tür auf ) und dann die Seite vom PC aus geöffnet. Ich bekomme auf der Seite zwar die Störung, aber es wird kein Programmierfehler angezeigt. Und auch keine Mail gesendet.


    --- ModEdit ---


    Habe einen Verdacht!


    kann es sein das es an einem Falschen Port liegt?
    auszug php.ini


    Code
    [mail function]
    SMTP = localhost
    smtp_port = 25
    sendmail_path = /usr/sbin/sendmail -t -i


    Der smtp port bei gmx ist aber 465?!?
    Sollte ich nur den Port Ändern oder auch bei SMTP auch auf mail.gmx.net ändern? Wenn ja, passt dann der "sendmail_path"????

    Hallo habe die Vorschläge getestet. Leider ohne Erfolg.
    Bitte nicht aufgeben.


    Hier nochmal das komplette Skript


    Hallo!
    Ich bin wieder einen schritt weiter! Die CRONTAB funktioniert! :thumb:
    und so hab ich es gemacht


    Code
    55 7 * * * /usr/bin/wget http://10.0.0.131/index.php


    Das heißt um 7.55 Uhr - täglich wird das Skript "index.php" gestartet! Das heißt ich kann jetzt alle paar Stunden prüfen ob alles in Ordnung ist. Wunderbar!
    Danke "eraser-emc2"! :D


    Jetzt sollte nur mehr das Problemchen im Skript behoben werden, bitte. Dann wäre ich am Ziel!

    Hallo TobiasK!
    Ich habe gerade das Testskript getestet und habe sofort eine mail bekommen. Das heißt das die Konfiguration des NAS einwandfrei ist. Ich stelle hier noch einmal das gesamte Skript wie ich es in Betrieb habe herein.
    Hier habe nur geringfügig herumgeschrieben und eben auch meine mailadresse eingetragen.



    Es funktioniert soweit recht gut, nur die Mailfunktion eben nicht. Leider habe ich auch noch immer nicht das umfärben des Ascheleeren getestet. Werde ich morgen wissen da ich morgen sowieso diesen Wert erreichen werde.
    Ich bitte dich TobiasK schau nochmal drüber oder teste das Skript.
    Den Screenshot den ich kürzlich eingestellt habe, hatte deswegen keinen Fehler in der Roten Zeile da zu diesem Zeitpunkt auch kein Fehler vorlag. Funktioniert aber.


    Ich werde jetzt das testskript mit der crontab testen.

    Hallo!
    Ich habe jetzt das script getestet. es zeigt immer den korrekten Heizkesselstatus an!
    Ich habe die Farben noch etwas geändert. Ob die Farbe ändert wenn nur mehr wenige Stunden zum Asche - leeren sind sehe ich morgen.
    Auch in der Roten Zeile erscheint die Störung. Aber ich bekomme keine email?!?


    Hier der etwas angepasste qellcode


    Hier noch die Einstellung am NAS. Wenn ich im Dashboard des NAS eine Testmail sende bekomme ich diese sofort. Wenn aber im Moment eine Störung vorliegt ( Brennraumtür offen ) und ich die IP des NAS eingebe, zum öffnen der Webseite bekomme ich keine Email. ??? Stimmt das SCRIPT??? oder was könnte das Problem sein?? die mailadresse ist korrekt eingegeben!




    Weiters habe ich versucht das ganze zu automatisieren. und zwar wie schon vorgeschlagen per cronjob.


    *ich habe mich mit WINSCP per ssh angemeldet in im Verzeichniss "etc/config/" die Datei crontab heruntergeladen.
    *sicherungskopie erstellt
    *Datei crontab mit Notepad++ editiert (siehe bild ) ( Start um 7.55 + 11.55 + 15.55 + 19.55 UHR )
    *Die geänderte Datei zurückgespeichert.
    * mit dem Programm PUTTY angemeldet und die CRONtab neu gestartet (Befehl: /etc/init.d/crond.sh restart)
    * und sicherheitshalber den NAS neu gestartet.


    Soweit sollte jetzt alles soweit sein das ich 4mal am Tag prüfe ob eine Störung vorliegt und sollte dies der Fall sein, eine email bekomme.
    Ich hoffe ich habe die CRONtab richtig editiert. Das script liegt in der Webfreigabe des webservers = Verzeichniss "Web"


    Das ich noch keine mails erhalte liegt wahrscheinlich am script. Ob das überhaupt 4mal pro Tag gestartet wird kann ich noch nicht sagen.
    Sollte hier jemand sich besser auskennen und einen möglichen fehler sehen, dann bitte meldet euch.
    Danke