freebus.org

Open Bus System
Aktuelle Zeit: 15. Juni 2015 15:06

Alle Zeiten sind UTC + 2 Stunden




Ein neues Thema erstellen Auf das Thema antworten  [ 29 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 27. Dezember 2007 13:54 
Offline
Junior Boarder
Junior Boarder

Registriert: 11. Juni 2007 21:37
Beiträge: 38
Hallo
Das sieht ja schon Klasse aus.

Ich habe das Script nochmal bearbeitet.
In der mySQL-DB muss noch eine Spalte für "log" und "EIS" eingefügt werden.
Steht in der log eine 1 wird "Uhrzeit Grpadr wert und Namen" in eine mySQL-Tabelle "log" abgelegt.
In EIS steht die EIS der Gruppenadresse z.Z. 1,5 und 6.
Diese Version braucht nur vbusmonitor1.
Gruss NetFritz [file name=myhouse.zip size=3709]http://www.freebus.org/images/fbfiles/files/myhouse.zip[/file]


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 10. Januar 2008 09:14 
Offline
Fresh Boarder
Fresh Boarder

Registriert: 14. Januar 2008 22:41
Beiträge: 4
Hallo zusammen

Bis jetzt hat mit dieses Forum ermuntert, das EIBD mit PHP anzusteuern.
Was ich im Web niergedes gefunden habe, sind Beispiele, wie ich mit PHP Zeitzeitegesteuert script ausführen kann (ohen Cronjob).

Verwendet Ihr für die Webseiten auch PHP Scripts zum steuern der Aktore z.B.

php
$command="groupswrite ip:127.0.0.1 1/2/3 0";

oder verwendet Ihr Perl.

Ein Beispiel Projekt als Zip Datei währe auch was schönes, so könnte man sicher seine eigene Umgebung damit ableiten.

Vielen Dank für eine Antwort


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 11. Januar 2008 22:48 
Offline
Junior Boarder
Junior Boarder

Registriert: 11. Juni 2007 21:37
Beiträge: 38
Hallo

Warum nicht über cron.
Habe dir mal meine Schaltuhr.php als Dateianhang zum Download bereitgestellt.
Ich rufe Schaltuhr.php über cron jede Minute auf.
Du kannst aber auch die #-Zeichen von der While-Schleife und Sleep(60) entfernen dann wird die While-Schleife jede Minute durchlaufen.

Gruss NetFritz Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 11. Januar 2008 22:52 
Offline
Junior Boarder
Junior Boarder

Registriert: 11. Juni 2007 21:37
Beiträge: 38
Hallo
Neuer Versuch mit dem Dateianhang.
Gruss NetFritz

Wieder nichts. Ich gebe es auf.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 12. Januar 2008 16:55 
Offline
Administrator
Administrator

Registriert: 11. Juni 2007 15:54
Beiträge: 357
Hi Fritz,

so mal mein Versuch.

Verwende hier den Mozilla Firefox.

Bei mir klappts, das File ist über 1MB gross.

Versuche es bitte nochmals!

Gruß
David [file name=putty.zip size=1518921]http://www.freebus.org/images/fbfiles/files/putty.zip[/file]

_________________
--------------------------------------------------------------------------------------------------------
Schöne Grüsse
David [Lumo]


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 12. Januar 2008 19:08 
Offline
Junior Boarder
Junior Boarder

Registriert: 11. Juni 2007 21:37
Beiträge: 38
Hallo
Ein neuer Versuch auch mit Firefox.
Gruss NetFritz [file name=schaltuhr.zip size=1457]http://www.freebus.org/images/fbfiles/files/schaltuhr.zip[/file]


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 14. Januar 2008 23:30 
Offline
Fresh Boarder
Fresh Boarder

Registriert: 14. Januar 2008 22:41
Beiträge: 4
Hallo Netfritz

Ich komme der Sache langsam näher ab:

Leider schreibt mein PHP nur so wen es Lust hat was in die DB.

echo "Gradr= $address EIS= $eis_wert Wert= $value \n";

bringt auch nur selten was

Wie kann ich im PHP den Echo Befehl vor den Eintrag in die DB stellen damit ich sehe was auf dem Bus passirt

Wen ich den Vbusmonitor1 mit 127.0.0.1 aufrufe, sehe ich alle Bewegungen nur auf der Shell mit PHP bleibt alles beim alten.

Der Aufruf der eibclient.php Datei mache ich mit

sudo /usr/bin/php -q /var/www/eibd/eibclient.php

könnte da was falsch sein?
Wie schon gesagt habe ich Unbuntu im Einsatz.

Ach ja sudo apt-get install php5-cli ist auch gemacht.

Du hast da was noch von:

# watchdog schreibt die aktuelle Zeit in eine Datei

# ein cronjob vergleicht jede minute die watchdog-zeit

# mit der aktuellen

# ein EIB-Gruppenadresse sendet jede Minute

watchdog.txt ist dies von nöten? Ich habe dieses auskomentiert

muss ich damit was machen?

Sorry für meine Dummy Fragen, aber ich kommen von der Windowswelt und arbeite bis jetzt ausschlisslich mit ASP.

Danke für Deine Unterstützung


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 15. Januar 2008 13:17 
Offline
Junior Boarder
Junior Boarder

Registriert: 11. Juni 2007 21:37
Beiträge: 38
Hallo

@mwfv
watchdog.txt ist dies von nöten? Ich habe dieses auskomentiert
muss ich damit was machen?

Wenn Du das nicht brauchst kannst Du das auskommentieren oder auch drin lassen schreibt ja nur die Zeit in eine Datei.

@mwfv
Wie kann ich im PHP den Echo Befehl vor den Eintrag in die DB stellen damit ich sehe was auf dem Bus passirt


# echo "read= $read \n"; # Telegramm anzeigen

# Array ausgeben
# for($x=0; $x < count($eib_data); $x++)
# {
# echo "=$x=$eib_data[$x]= \n";
# }


Wenn Du im Script eibclient.php oben hinter While in diesen Zeilen vom Code
das Kommentarzeichen entfernst schreibt dir echo das Orginal-Telegramm auf dem Bildschirm.

Benutze bitte das Script.
File Attachment:
File Name: myhouse.zip
File Size: 3709

Gruss NetFritz


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 15. Januar 2008 23:01 
Offline
Fresh Boarder
Fresh Boarder

Registriert: 14. Januar 2008 22:41
Beiträge: 4
Ja sieht nicht schlecht aus, die Logs kommen rein) aber das Problem liegt bei mir ganz einfach an der Tabelle
Ich galube ich habe nicht die richten Felder erfasst und die richtigen Werte Varchar usw gegeben.

Das habe ich gemacht:

eibdb angelegt (root ohne Passwort)
eib_tabelle eingerichtet mit
uhrzeit datetime Null Ja
gradr varchar 100 Null Ja
wert varchar 100 Null Ja
name varchar 100 Null Ja
mit utf8_unicode_ci (ist das wichtig)
Kein Index definiert!

ich denke da fehlt noch so einiges
Messbereichsanpassung mb_anpassung.inc.ph ausgeklammert

Werde mal noch ein bisscchen rumprobieren.

Aber ich komme immer ein Stück näher.... irgendwie fehlt hier der Wert

LPDU: BC 11 76 0A 3D E1 00 80 72 :L_Data low from 1.1.118 to 1/2/61 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
LPDU: BC 11 0D 0A 3E E2 00 80 E9 E0 :L_Data low from 1.1.13 to 1/2/62 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write E9
LPDU: BC 11 76 0A 3D E1 00 81 73 :L_Data low from 1.1.118 to 1/2/61 hops: 06 T_DATA_XXX_REQ A_GroupVal
EIS=
17.01.08 19:27:04 Gradr= 1/2/15 EIS= Wert=
17.01.08 19:27:04 Gradr= 1/2/15 EIS= Wert=


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 21. Januar 2008 11:11 
Offline
Fresh Boarder
Fresh Boarder

Registriert: 14. Januar 2008 22:41
Beiträge: 4
So ... ich habe es geschaft

Daten werden mit PHP sauber gelogt und in die DB geschrieben.
Vbusmonitor1 musste ich mit dem fflush(stdout); noch neu compilieren, sonst klappt es beim auslesen vom Bus im PHP nicht.
Ich habe irgend wo gelesen, dass dies mit der neuen Version von EIBD nicht mehr nötig sei, dem ist aber "nocht nicht" so.

http://knx-user-forum.de/showthread.php?t=790

Jetzt noch eine Frage:
Kann ich den Zustand eines Aktors mit EIBD auslesen?
Habe dazu nichts gefunden

Hat einer Erfahrung mit EIBD auf einem VMware ESX 2.5 ... bei mir läuft es nicht richtig.

Danke für Eure hilfe


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 21. Januar 2008 18:56 
Offline
Junior Boarder
Junior Boarder

Registriert: 11. Juni 2007 21:37
Beiträge: 38
Hallo

@ mwfv
Jetzt noch eine Frage:
Kann ich den Zustand eines Aktors mit EIBD auslesen?
Habe dazu nichts gefunden


Dann schau mal hier Seite162.
http://www.auto.tuwien.ac.at/~mkoegler/eib/sdkdoc-0.0.3.pdf

groupread müsste das sein.

Gruss NetFritz


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 7. April 2008 10:30 
Offline
Fresh Boarder
Fresh Boarder

Registriert: 16. Dezember 2007 00:26
Beiträge: 5
Wohnort: Karlsruhe, Pfinztal
Hi zusammen,

sorry, hatte in den letzten Wochen so viel um die Ohren, dass ich mich nicht mehr meldete. Ich schäme mich schon ein bisschen dafür.

Aber heute habe ich nun schon wieder eine neue Frage.
Wie berechnet Ihr Temperaturen, um die Werte dann an den Bus mittels eibd zu verschicken?

Ich hab keine Ahnung, wie ich auf die Hex Werte kommen kann. Bisher habe ich das immer nur durch ausprobieren gemacht. Also den Hex Wert solange geändert, bis annähernd die gewünschte Temperatur raus kam...

Ich hab mir bisher schon die Doku angeschaut und auch in dem PHP Script von NetFritz mir die Umrechnung angeschaut. Aber schlau bin ich daraus nicht geworden. Vielleicht könnt ihr mir nochmal helfen?

Gruß
Tommy


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 7. April 2008 10:59 
Offline
Fresh Boarder
Fresh Boarder

Registriert: 12. Juni 2007 07:52
Beiträge: 1
Die Kodierung der verschiedenen Datenformate ist im Standard festgelegt. Die entsprechende Doku kann frei heruntergeladen werden. Gehe auf www.eiba.org, dann auf Downloads, dann auf "03 - KNX Standard", "KNX Standard Public Documents". In "03_07_02 Datapoint Types v13 AS" ist die Doku. Vielleicht klappt auch der direkte Link: http://www.knx.org/fileadmin/downloads/ ... 3%20AS.zip

Grüße
Mike


Nach oben
 Profil  
 
 Betreff des Beitrags: Re:eibd und PHP CLI
BeitragVerfasst: 7. April 2008 14:21 
Offline
Fresh Boarder
Fresh Boarder

Registriert: 15. Oktober 2007 16:14
Beiträge: 6
Ich kram gerade mal in meinen Sourcen......

Decodierung (Eib --> Mensch):
case EIS_IEEE: /* Gleitkommazahl in 16 Bit */
l_len = 4;
sign = (buf[s+8] & 0x80) ? -1 : 1; /* 1. Bit Vorzeichen */
exp = (buf[s+8] & 0x78) >> 3; /* 2. - 5. Bit Exponent zur Basis 2 */
mant = ((buf[s+8] & 0x7) << 8) | buf[s+9]; /* 6. - 16. Bit Mantisse */
exp = 1 << exp; /* exponent= 2^^bit[2-5] */
d = 1.0 * mant * exp * sign; /* zusammenrechnen :-) */
geraete[i].aktwert.float_val = d; /* und speichern */

Kodierung (Mensch --> Eib):
(nach langer Suche in einem extra Modul gefunden)
case EIS_FLOAT:
case EIS_IEEE:
{ double f = wert->float_val;
int exp, mant;

if (f < 0) /* Vorzeichen herausziehen */
{
lpdu[9] = 0x80;
f = (-f);
} else
lpdu[9] = 0;

exp = ((int) log2(f)) - 11;
/* Exponent: dualer logarithmus ergibt eigentlich den Exponenten, aber die Zahl wird vor den Dezimalpunkt normiert, also ist der Exponent 2^^11 kleiner (11 Bit für die Mantisse) */

lpdu[9] |= (exp & 0x0f) << 3;
/* untere 4 Bit des Exponenten verwenden, diese 3 Bit "nach oben schieben" und in den Ausgang schreiben */

mant = (int) (wert->float_val / exp);
/* .... hmmm das verstehe ich gerade nicht.... aber vielleicht stimmts :-) */

lpdu[9] |= ((mant >> 8) & 0x7); /* erste Bits der Mantisse setzen */
lpdu[10] = (mant & 0xff); /* Rest von Mantisse setzen */
len = 11;
break;
} /* und raus damit. */


Versuch es mal damit. Möglicherweise ist die Berechnung der Mantisse noch nicht gaanz richtig, ich werds mir heut abend mal in meinem Bus anschauen.

Gruss,
Volker


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 29 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 2 Stunden


Wer ist online?

Mitglieder in diesem Forum: hschreiber und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de