nur zustand von variable und bild von button soll sich ändern

hallo zusammen,

ich habe mal mit dem beispiel web.zib meine eigenen button angelegt und durch einen hyperlink auf z.b.?action=switchmode&mode=0&instanceid=53072

kann ich auch schalten, aber wie schaffe ich es das sich nur das bild vom button ändert und die variable…so wie es bei leibling funktioniert!

bei mir baut sich die ganze seite neu auf sobald ich den buttton drücke!

danke im voraus

geri

Hallo geri,

das ist auch richtig, dass sich die Seite neu aufbaut. Du musst dem Server ja mitteilen, dass etwas geschaltet werden soll.

Wenn das nicht sichtbar passieren soll, dann würde ich das so machen:

Frameset definieren mit einem Bereich Main und einem Bereich Work. Work würde ich 1 Pixel breit anzeigen lassen. Damit ist Work dann praktisch nicht zu sehen.

Bei den Links muss dann target=„work“ angegeben werden.

Die Bilder lassen sich dann per Javascript ändern.

<a href=„seitenname.php?action=switchmode&mode=0&instanceid=53072“ target=„work“ onClick=„if (image.src==‚images/bild1.jpg‘) image.src=‚images/bild2.jpg‘; else image.src=‚images/bild1.jpg‘;“>
<img name=„image“ src=„images/bild2.jpg“ border=„0“ ></a>

Ich wünsche einen schönen Abend.

Christoph

AJAX ist das Zauberwort. Ist aber nicht ganz simpel.

Der Trick von Christoph sollte aber auch funktionieren :slight_smile:

paresy

mit ajax kannst du auch die schon fertig gerenderte seite ändern. so werden bei mir z.b. die bilder einfach bennant.

dazu läuft eine art watchdog im hintergrund, der jede sekunde jedes gerät auf der seite abfragt. wenn sich der status ändert, wird einfach das bild ausgetauscht.

was steuerst du mit ipsymcon? ich überlege gerade ob ich ipshomecontrol noch um weitere systeme (statt nur fs20 und fht) erweitere.

hallo an alle,

und danke an alle und an peter für seine tel. unterstützung vor ca 3 wochen!!

ich steuere eigentlich nur fs20 hab mit ipshomecontrol schon einige sachen ausprobiert ist echt super habe aber ein kleines problem mit der pda ansicht bei dimmer da wird das bild einwandfrei angezeigt aber die pfeile für auf und ab werden nur als zwei rechtecke angezeigt… gibts da ne lösung peter?

Hallo geri,

denke da bist du in diesem Forum besser aufgehoben:

http://www.ipshomecontrol.de/

Gruß Thomas

hallo christoph ich füge dir mal ein php script ein ich bin blutiger anfänger

vielleicht kannst du mir das einfügen was du oben als beispiel geschrieben hast

wäre super

schönen tag
geri

index.txt (5.34 KB)

@geri:

die fehler sind behoben und habe auf wunsch von mehreren auch nochmal an/aus direkt zum toogle dazu gemacht.

liegt zwar hier schon auf der platte, ist aber noch nicht ins setup gepackt und hochgeladen, da wir mit unserem haus noch ein wenig stress haben.

kommt warhscheinlich am wochenende mit noch 2 weiteren versionen (pda-simple und pda-text).

vielleicht habe ich dann auch schon die nächste überraschung.

Hallo geri,

anbei einZip-Archiv. Einfach entpacken und ds Verzeichnis in Deinen Web-Ordner des IPS ablegen.

Die Datei definition.php musst Du an Deine Variablen anpassen.
$licht=array(„WZ_Computer_Lampe.Status“,65020,50,100);
Das erste ist die Statusvariable des Geräts, das geschaltet werden soll. Dann kommt die Instanz, die Du sonst in den FS20_SwitchMode-Befehlen angeben würdest. Dann kommt die linke und obere Position der Lampe auf der Webseite.

$reload gibt die Zeit an, nach der der Status der Geräte erneut abgefragt wird.

Ansonsten brauchst Du nichts zu ändern, einfach index.htm aufrufen und Du kannst die FS20-Geräte, die in Definition.php angegeben sind schalten.

Dein Aufruf müsste http://192.168.1.2/test/index.htm lauten.

Ich wünsche einen schönen Abend.

Christoph.

Sorry,

habe vergessen das Archiv anzuhängen.

Ich wünsche einen schönen Abend.

Christoph.

_FS20_schalten.ZIP (4.29 KB)

hallo Christoph,

entschuldige das ich erst jetzt antworte,habe ab heute urlaub und nichts besseres zu tun als experimentieren :slight_smile:

hey das beispiel von dir ist genau das was ich brauche!!! es funktioniert super!danke vielmals für deine schnelle unterstützung!!!

wünsche dir einen schönen tag

liebe grüße aus bayern

geri

christoph bitte vielleicht hast du noch ein beispiel parat damit ich eine temperatur abfragen kann?, aber nur wenn es nicht zu viel mühe macht!

dank im voraus

und schönen abend
geri

Hallo Geri,

ich habe ein Script für die HTM100TF geschrieben. Welchen Temperatursensor hast Du denn?

Ich komme aber wahrscheinlich erst am Wochenende dazu das alles zusammenzupacken.

Ich wünsche einen schönen Abend.

Christoph.

christoph,hallo !

danke für die antwort!!!,das wäre super von dir wenn du mir das geben könntest,aber
mach dir bitte keinen streß wegen mir! ich habe zwei, HMS100 TF und HMS100T den HTM100 kenne ich nicht, aber ich glaub du hast dich verschrieben du meinst auch den HMS!,oder?.

schönes wochenende wünscht dir

geri

05.09.2007

ich hab mir dank deiner hilfe selber was gebastelt…aber wenn du zeit hast schick mir deine sachen…noch eine frage wie kann ich einen wert von einer php seite an eine ips variable übergeben???

schöne grüße

geri

Hallo Geri,

mir ist gerade das Thermometer wieder eingefallen. Anbei der Source. Es hat sich einiges geändert. Der Frameset lädt jetzt erst leer.htm in den unteren Frame, um zu vermeiden, dass ein Fehler angezeigt wird, wenn schalte.php bereits auf Variablen im oberen Frame zugreift, bevor die Seite aufgebaut ist.

In der Definition wurde licht in fs20 umbenannt. Im fs20-Array kann jetzt auch ein Grafikname angegeben werden um unterschiedlichen Geräten auch unterschiedliche Grafiken zuzuordnen.

Für Dich interessant ist jetzt das Array $hms100tf. Hier musst DU Deine Daten einfügen. Der Name wird zu den jeweiligen Variablen erweitert.
WG_RX_Thermometer wird für die Temperatur zu
WG_RX_Thermometer_Temperature und zu WG_RX_Thermometer_Moisture für die Luftfeuchte. WG_RX_Thermometer_Power gibt dann den Status der Batterie aus. Wenn Deine Variablen anders heissen, dann musst DU anzeige.php und schalte.php anpassen.

In der Definition.php kannst Du die arrays auch abschalten. Einfach alles, bis auf die erste Zeile löschen. Um also alle fs20-Geräte abzuschalten wird das array zu:

$fs20=array(array("Status","instanz","left","top","grafikname (_on_off)","Grafikformat"))

Übrigens $fht80b funktioniert noch nicht. Ich komme einfach nicht dazu hier weiter zu machen. Aber der Herbst kommt ja noch.

Um Variablen an die IPS-Software zu übergeben benutze einfach SetValueInt /Float /Bolean… Weitere Infos findest Du in der Dokumentation.

Ich wünsche einen schönen Abend.

Christoph.

_ips_2007_09_05.ZIP (240 KB)

hallo christop,

vielen vielen dank für deine super lösung…echt toll!!..ich hab auch schon was gemacht, nicht das du denkst ich sitz blos rum und dreh daumen…hab mal zwie pdf dateien angehängt…ja ich weiß das mit der zeit ist ein problem (FHT80b)…ein paar stunden vergehen da wie im flug…nächste woche muß ich wieder arbeiten dann wird’s wieder ruhiger mit ips…aber eine frage hab ich natürlich wieder und zwar: wie kann ich einen wert von einer htm seite an ips übergeben,nein ich weiß wie mann den wert übergibt aber wie schreibe ich das z.b. mit dem namo webeditor, da gibt es ein formular und da kann man eine schaltfläche machen mit dieser dann den wert an ips übergeben oder mit einem icon…aber wie…worauf ich raus möchte ist: einen dimmer zu steuern entweder den wert in ein feld eingebn und dann einen button der den wert an ips übergibt oder wenn man den button drückt immer um eins erhöht und der andere um eins herunter…danke für deine zeit !!! schöne grüße
geri

IPS Test1.pdf (16 KB)

IPS Test.pdf (57.3 KB)

Hallo Geri,

sorry, ich war ein paar Tage weg.

Zu Deiner Frage, wie Du einen Wert übergibst. Wenn Du das per Formular lösen möchtest, dann musst Du dem Form-Tag als Target den Frame angeben, in dem geschaltet wird. In meinem Beispiel wäre das


<form name="isteigentlichegal" action="schalte.php" target="schalte" method="get">
<input name="dimmwert" type="text" id="dimmwert" value="0" size="3" maxlength="2">
<input type="submit" name="Submit" value="set">
</form>

In dem Feld dimmwert würdest Du den Wert einsetzen und dann den Button Set anklicken.

Daraufhin wird schalte.php aufgerufen und der Wert für „dimmwert“ übergeben.
So kannst Du ihn abfragen:

if(!empty($_REQUEST['dimmwert'])) $dw=$_REQUEST['dimmwert']; else $dw="Na";

Du hast dann den Wert für den Dimmer in $dw stehen, oder „NA“, wenn der Dimmer nicht gemeint ist. Natürlich könntest Du auch gleich den FS20-Befehl für das Dimmen aufrufen.

Mit einem Button für hoch- und runterdimmen geht es ähnlich, nur musst Du dann erst die IPS fragen, an welcher Position der Dimmer steht und dann entsprechend erhöhen und runterzählen.

Ich wünsche einen schönen Abend.

Christoph.