Mini-Diagramme in Studio

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Antworten
Thomas79
Beiträge: 22
Registriert: 08.12.2008, 22:26
Wohnort: Stuttgart
Kontaktdaten:

Mini-Diagramme in Studio

Beitrag von Thomas79 » 27.12.2008, 20:09

Hallo zusammen,
ich komme mit diesem Diagram einfach nicht weiter.

Quelle: http://homematic-forum.de/forum/viewtop ... ini#p11262

Ich habe es nun soweit geschaft, dass die Logdateien brav geschrieben werden.
Aus dem Makro:

Code: Alles auswählen

Logging := ZEIT
Logging := Logging + "	" + Buero.Temperatur
SCHREIBEDATEI("c:\logs\buero.log", Logging)
...kommt folgendes heraus:
...
27.12.2008 19:17:41 23,0
27.12.2008 19:18:00 23,0
27.12.2008 19:19:00 23,0
...
Soweit so gut. Doch (1.) Auf was stellt man hier das "Ausführungsintervall"?

Nun weiter zu der Anleitung.
Unter Punkt 1. soll man nun ein Objekt anlegen.
- Typ "EAGeraet"
- Makroinhalt ("Ausführen bei Eingabe" gesetzt) <- Ich gehe mal davon aus dass hiermit der Hacken "Ausführung bei Änderung" gemeint ist, oder?

Das OriginalMakro aus dem Forum ist:

Code: Alles auswählen

<?
  $LogName  = "KS300T_1";
  include("Z:\\fs20\\php\\MiniDiagramm.php");
?>

** Anzeige:=Scriptoutput
DiagrammKS300 umschalten
in meinem Fall wäre es dann:

Code: Alles auswählen

<?
$LogName = "buero";
include("c:\\skripte\\Heizung\\MiniDiagramm.php");
?>

** Anzeige:=Scriptoutput
DiaBuero umschalten
(2.) Die doppelten Backslashes im Pfad gehören so, oder?

In der Anleitung bei Punkt 2 kommt nun das Makro im Objekt des Temperatursensors.

Code: Alles auswählen

Makro ausführen DiagrammKS300
In meinem Fall ist das der FHT80b-Raumregler.
In diesem Makro steht ja schon:

Code: Alles auswählen

Logging := ZEIT
Logging := Logging + "	" + Buero.Temperatur
SCHREIBEDATEI("c:\logs\buero.log", Logging)
drin.
(3.)Ist das richtig, dass ich nun als vierte Zeile "Makro ausführen DiaBuero" eintragen darf?

Die MiniDiagramm.php habe ich unter c:\skripte\Heizung\ liegen und die ersten Zeilen (Pfade) wiefolgt geändert:

Code: Alles auswählen

...
    //$filebmp = "c:\\skripte\\Diagramm".$LogName.".bmp";
    $filelog = "c:\\logs\\".$LogName.".log";
    $filejpg = "c:\\skripte\\Diagramm".$LogName.".jpg";
...
(4.) Hier werden die Grafiken vom Skript erzeugt und abgelegt, oder?

Das Ergebnis:
- In der Ansicht habe ich nun ein Gerät (Ventilator) welches DiaBuero heißt und aus ist.
- Nach ca. einer Minute wird die Studiosoftware automatisch geschlossen.
in der FS20.log steht dann folgendes:
27.12.2008 20:07:10 DLL-Initialisierung ######################
27.12.2008 20:07:11 Sendung 81 06 c9 2c 02 01 1f 0a
27.12.2008 20:07:12 Empfang 81 0c c9 5d 01 02 1f 05 a0 07 b6 58 01 80
27.12.2008 20:07:13 Sendung 81 05 04 50 c9 01 86
27.12.2008 20:07:13 Sendung 81 0b 04 d1 02 01 83 46 3c 65 ff 66 ff
27.12.2008 20:07:14 Sendung 81 0b 04 84 02 01 83 04 31 65 ff 66 ff
27.12.2008 20:07:14 Sendung 81 0b 04 d3 02 01 83 3d 47 65 ff 66 ff
27.12.2008 20:07:14 Sendung 81 0b 04 c7 02 01 83 46 32 65 ff 66 ff
27.12.2008 20:07:14 Sendung 81 05 04 4f c9 01 85
27.12.2008 20:07:14 Empfang 81 07 c9 b7 01 02 85 01 2e
27.12.2008 20:07:14 Sendung 81 06 04 62 c9 01 96 02
27.12.2008 20:07:29 Empfang 81 0b 04 d7 83 09 83 01 04 31 65 ff 2e
27.12.2008 20:07:29 Empfang 81 0c 04 cc 09 09 a0 01 04 31 7e 00 67 ff
Hat mir hier jemand einen Tip? Oder sieht wo der Fehler liegt?
Danke und Grüße, Thomas
FHZ 1350 PC USB | 5 FHT80b | 9 Heizungsregelventiele | 1 FS20 S20 | 5 FS20 ST-2 | 1 KeyMatic+CodeSchloss | 1 FS20HGS | homeputer-Studio V2.0 auf WHS.

Thomas79
Beiträge: 22
Registriert: 08.12.2008, 22:26
Wohnort: Stuttgart
Kontaktdaten:

Re: Mini-Diagramme in Studio

Beitrag von Thomas79 » 27.12.2008, 20:18

Dr.Watson wirft danach ein Event im Anwendungsprotokoll:
Die Anwendung "C:\Programme\contronics\homeputer Studio\homeputerStudio.exe" hat einen Programmfehler verursacht. Datum und Zeit des Fehlers: 27.12.2008 um 20:08:00.001 Ausnahme: c0000005 an Adresse 00000000 (<nosymbols>)
FHZ 1350 PC USB | 5 FHT80b | 9 Heizungsregelventiele | 1 FS20 S20 | 5 FS20 ST-2 | 1 KeyMatic+CodeSchloss | 1 FS20HGS | homeputer-Studio V2.0 auf WHS.

tsa
Beiträge: 725
Registriert: 03.01.2008, 17:42
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Mini-Diagramme in Studio

Beitrag von tsa » 28.12.2008, 08:49

Hallo Thomas,

Auf den ersten überfliegenden Blick sieht (fast) alles ganz gut aus. Nun schnell zu Deinen Fragen, bevor meine Liebste etwas merkt :lol:

Zu 1.)
eigentlich sollte kein Ausführungsintervall nötig sein, denn ausgeführt soll das Makro immer bei Datenempfang werden. Gibt es eine solche Möglichkeit beim FHT? Mal Bümpi fragen...
Bei Deinem "EA-Gerät" darf auf keinen Fall "Ausführen bei Änderung" eingeschaltet sein, denn es würde sich durch den Umschalten-Befehl sofort immer selber wieder aufrufen. Vielleicht ist das sogar Dein Problem.
Gemeint war wirklich "Ausführen bei Eingabe" auf der Seite "Allgemein" der Objektbearbeitung. Dadurch kann man durch Anklicken das Diagrammes aktualisieren.

Zu 2.)
Die doppelten Backslashes im Pfad gehören (innerhalb der PHP-Scripts) so.

Zu 3.)
Vollkommen richtig. Ich allerdings würde vorher noch ein WARTE("00:00:02") einfügen. Dadurch legt das Dateischreiben und die Diagrammerstellung homeputer nicht "so lange lahm".

Zu 4.)
Wenn es nun immer noch abstürzt, finde erst mal heraus, ob es an der eingebundenen PHP-Datei liegt. Also einfach den Include-Befehl auskommentieren (bei PHP mit //)
Sollte dies der Fall sein, kontrolliere noch mal Deine Log-Datei - die MUSS VORHANDEN UND GEFÜLLT SEIN zum Zeitpunkt des Diagrammerstellens.
Notfalls noch im PHP das korrekte öffnen des Logfiles überprüfen:

Code: Alles auswählen

    $fileHandle = fopen($filelog, "r");
    if ($fileHandle)
    {
//die schließende Klammer dann unmittelbar vor dem folgenden Kommentar einfügen
    }
    //3-d Rahmen zeichnen
Soweit erstmal (meine Frau bittet zum Frühstück :roll: )

Gruss
Thomas

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Mini-Diagramme in Studio

Beitrag von buempi » 28.12.2008, 09:15

Hallo Thomas

Was deinem Namensvetter vermutlich wegen der Eile nicht aufgefallen ist:

Im Makro-Teil, wo du die Log-Datei schreibst, hast du nicht ein TAB-Zeichen zwischen den Anführungszeichen, wie das die weitere Auswertung in PHP erfordert. Schaut man sich den Quelltext dieser Internet-Seite an, stehen dort zwei geschützte Leerzeichen (&nbsp;) und dazwischen ein gewöhnliches Leerzeichen.

Ersetze also mal diese drei Zeichen durch ein einziges TAB-Zeichen. Ein solches kannst du eintragen, indem du die Alt-Taste festhältst und auf der Zehnertastatur 009 eingibst.

Zur Zusatzfrage von tsa: "Ausführen bei Änderung" gibt es beim FHT und du solltest es (anstelle eines Intervalls) verwenden. Allerdings haben die Raumregler die Angewohnheit, manchmal bis zu 3 Signale innert kürzester Zeit zu senden, was dann zu Problemen führen könnte, weil das Makro auch 3x gestartet wird. Deshalb empfehle ich dir, am Anfang des Makros im Raumregler ein «warte("00:00:02")» einzufügen. So wird das Makro und das folgende PHP-Skript nur einmal ausgeführt.

Ausser dem TAB-Zeichen scheint mir alles richtig. Die Pfade sind ja bestimmt vorhanden und richtig geschrieben?

Ich habe bei mir versuchsweise auch mal deine drei Zeichen eingetragen. Da wird einfach ein leeres Diagramm gezeichnet, ohne Werte. Homeputer stürzt deswegen nicht ab.

Wenn nicht das "Ausführen bei Änderung" beim EA-Gerät Schuld war deshalb meine Frage: Hast du PHP richtig installiert, so wie es tsa im PS seines Beitrages beschrieben hat?

Viele Grüsse
Bümpi

PS: Die vorhandene LOG-Datei löschen; bevor du mit dem TAB-Zeichen eine neue schreibst!

Thomas79
Beiträge: 22
Registriert: 08.12.2008, 22:26
Wohnort: Stuttgart
Kontaktdaten:

Re: Mini-Diagramme in Studio

Beitrag von Thomas79 » 28.12.2008, 14:52

Hallo zusammen und Danke für die Hilfe,
um es mal vorweg zu nehmen, es klappt leider immernoch nicht.

- Die Einstellungen im EAGeraet hab ich korrigiert.
- Es sind tatsächlich Tabs im Logfile und keine Leerzeichen. (zwischen Uhrzeit und Temperatur).

Buempi hatte recht, die Raumregler senden wirklich immer 3 Signale. Und wenn man das Programm startet schreibt es als Temperaturwert -999,0 ins Logfile. Erst nach ca. 2-3 Minuten wird im Logfile die richtige Tempertur angezeigt.

- Ein weiterer Fehler war, dass ich als Webserver xampp installiert hab, und dies mit PHP4 lief. Hab den mal auf PHP5 geswitcht.
- Die "php5ts.dll" hatte ich auch nicht im Programmverzeichnis. Nun liegt sie neben der "php4app.dll" in "C:\Programme\contronics\homeputer Studio\"

Wenn ich nun die Studiosoftware starte bekomme ich folgenden Fehler:
Fatal Error: Call to undefined funktion imagecreaturecolor() in c:\skripte\Heizung\MiniDiagramm.php on line 34

Also ich glaub dass das ganze was mit meinem PHP zu tun hat, oder?. Hier ein Ausschnitt aus meiner PHP.ini. Die DLL ist natürlich in dem Verzeichnis.

Code: Alles auswählen

; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:\xampp\php\ext\"
...
extension=php_gd2.dll
Hab die php_gd2.dll auch mal durch die aus dem contronics-php-packet ersetzt, jedoch ohne Erfolg.

Die "Demoanwendung Raumregler FHT08B" aus shens Beitrag http://homematic-forum.de/forum/viewtop ... f=17&t=345 funktioniert jedoch.

Hmm,... Ideen?
Danke, und Grüße, Thomas
FHZ 1350 PC USB | 5 FHT80b | 9 Heizungsregelventiele | 1 FS20 S20 | 5 FS20 ST-2 | 1 KeyMatic+CodeSchloss | 1 FS20HGS | homeputer-Studio V2.0 auf WHS.

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Mini-Diagramme in Studio

Beitrag von buempi » 28.12.2008, 15:10

Hallo Thomas

Also so weit, dass Homeputer nicht mehr abstürzt, sind wir wenigstens schon. Lag wohl am "Ausführen bei Änderung" im EA-Gerät, was zu einem Loop geführt hat, wie tsa richtig vermutete.

Jetzt müsste es eigentlich laufen. - Was mich stutzig macht. Du zeigst einen Ausschnitt deiner PHP.ini. In der INI für Homeputer braucht es tatsächlich nur diesen Ausschnitt. Ist das eine PHP.ini, die irgendwo anders steht?

Dann erstelle mal eine PHP.ini im Homeputer-Programmverzeichnis (also da, wo HomeputerStudio drin ist) mit nur diesem Inhalt. - Dann müsste es laufen; vorausgesetzt der Verweis zeigt auf die gleiche PHP-Version wie die php5ts.dll

Viele Grüsse
Bümpi

Thomas79
Beiträge: 22
Registriert: 08.12.2008, 22:26
Wohnort: Stuttgart
Kontaktdaten:

Re: Mini-Diagramme in Studio

Beitrag von Thomas79 » 28.12.2008, 15:25

Klasse es funktioniert nun, Danke Euch!

Ich habe nun im C:\Programme\contronics\homeputer Studio\ Verzeichnis ebenfalls ein Verzeichnis /ext angelegt und die dlls aus dem contronics-php-paket hineinkopiert.

die C:\Programme\contronics\homeputer Studio\PHP.ini sieht nun so aus.

Code: Alles auswählen

extension_dir = "C:\Programme\contronics\homeputer Studio\ext\"
extension=php_gd2.dll
Nunja,... warum das mit der PHP.ini von xampp net ging?? Egal,... lassen wir es mal so. ;)

Thank´s a lot... und Grüße, Thomas
FHZ 1350 PC USB | 5 FHT80b | 9 Heizungsregelventiele | 1 FS20 S20 | 5 FS20 ST-2 | 1 KeyMatic+CodeSchloss | 1 FS20HGS | homeputer-Studio V2.0 auf WHS.

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“