Flash und IPS

Hallo Gemeinde,

spiele mit dem Gedanken mal wieder was mit Flash zu realisieren.

Hat jemand schon mal über Flash auf IPS zugegriffen?

Wie bekomme ich die Variablen-Zustände in Flash und wie kann ich Skripte aus Flash ausführen?

Das Ausführen, könnte ich ja über PHP-Dateien realisieren, welche aus Flash ausgeführt werden, aber wie die Zustände abfragen?

Ich vermute über Soap aber so richtig kenne ich mich da nicht aus, habe es nur irgendwie in PHP mal hinbekommen halt copy&past… :smiley:

Jemand für Flash eine Idee?

Viele Grüße an alle Fleißigen IPSler!

ASICS

die selbe idee hatte ich gestern abend im bett auch. :smiley:
flash und ips geht wenn dann nur über soap.
hab ne weile bei google gesucht und festgestellt das dass nichts für mich ist.

kannst ja selber mal suchen unter „soap, flash“.
das ist mir viel zu hoch, zumal es dann ja auch visuell werden sollte.

cu.
uriel2006

Schade, das gleiche Problem habe ich auch.

Hat das vielleicht schon mal realisiert?
Vielleicht kann jemand etwas Hilfestellung geben?

Viele Grüße!

ASICS

Hallo zusammen,

man bekommt die grundsätzliche Kommunikation zu IPS relativ einfach, da SOAP-Verbindungen von Flash nativ unterstützt werden.
Hatte dazu auch schon mal einen Test-Button programmiert, der eine boolsche IPS-Variable ausliest und entsprechend toggeln kann.

Nachfolgend ein paar Flash AS2 Codeschnipsel:


//Webservice zum IPS-Variablenmanager erstellen
import mx.services.WebService;	
var IPSVar = new WebService("http://IPS-SERVER:3773/wsdl/IIPSVariableManager");
	
//IPS-ID 12345 lesen
VarStatus = IPSVar.ReadVariableBoolean(12345);
VarStatus.onResult = function(result) {mcMTec.VarDesc = result;}
	
//IPS-ID 12345 auf true setzen
IPSVar.WriteVariableBoolean(12345,1)
	
//IPS-Kernelversion auslesen
import mx.services.WebService;	
var IPSKernel = new WebService("http://IPS-SERVER/wsdl/IIPSSimpleKernel");
KernelVersion= IPSKernel.GetKernelVersion();
KernelVersion.onResult = function(result) {mcMTec.VarDesc = result;}	

Viele Grüße
Roland

Danke!!! Damit kann ich was anfangen!

Ich nutze noch Flash MX, dort nimmt er aber das „import“ schon nicht.

Hat Flash MX schon AS2 oder muss ich noch Dateien einbinden?

Viele Grüße

Geschaft! Für alle zur Info:

AS (ActionScript, ist die Programiersprache in Flash) in der Version 2.0 ist er ab der Version „Flash MX 2004“ im Einsatz.

Die Flashdatei muss so angelegt sein, das auch AS2 aktiviert ist, dieses findet man unter „Datei“ - „Einstellungen für Veröffentlichung“.

Dann muss noch die Klasse „WebService“ regestriert werden:
„Fenster“ - „Andere Bedienfelder“ - „Allgemeine Bibliotheken“ - „Klassen“.
Dann einfach „WebServicesClasses“ in das Projekt ziehen.

Dann geht folgender Code zum auslesen einer Variablen:

Anpassen: IPS-Server = IP oder Adresses des Servers
IPS-ID: Die ID der Variable
Je nach Variable noch „String, Interger etc.“ anpassen, bei ReadVariableString.

import mx.services.WebService;
var IPSVar = new WebService(„http://IPS-Server:3773/wsdl/IIPSVariableManager“);

//IPS-ID 32758 lesen
VarStatus = IPSVar.ReadVariableString(32758);
VarStatus.onResult = function(result) {Var1 = result;}

Nun ist in der Variable „Var1“ das Ergebniss abgelegt.

Viel Spaß!

Hab gestern angefangen mit Flash.
Hab versucht dein Beispiel zum Laufen zu bringen.
Hier meine Version

	import mx.services.WebService; 

	Var1 = "empty";

	var IPSVar = new WebService("http://192.168.10.8:3773/wsdl/IIPSVariableManager");
	VarStatus = IPSVar.ReadVariableString(27957);
	VarStatus.onResult = function(result) {Var1 = result;  }

	textItem.text = Var1;

Es kommt keine Fehlermeldung und auf dem Chumby erscheint nur
„empty“. Wo koennte der Fehler liegen.

Hallo 1007,

klappt es nur über den Browseraufruf nicht?
Was passiert denn wenn Du über die Flash-IDE mit „STRG+ENTER“ den „Film testest“?

Ohne weitere Infos zum Flash-Film ist es schwierig zu helfen, aber Du kannst auch mal folgendes versuchen und während der Laufzeit das Ausgabefenster beobachten:

    Var1 = "empty"; 

    var IPSVar = new WebService("http://192.168.10.8:3773/wsdl/IIPSVariableManager"); 
    VarStatus = IPSVar.ReadVariableString(27957); 
    VarStatus.onResult = function(result) {
        textItem.text = result;  
        trace(result);
        trace("ReadVariable erfolgreich abgeschlossen");
    } 

Viele Grüße
Roland

Dein Beispiel funktioniert.

Hab noch was ausprobiert

Dies geht :

	VarStatus.onResult = function(result) 
			{ 
			Var1 = result;  
            textItem.text = Var1;
			}

und dies geht nicht :

	VarStatus.onResult = function(result) 
			{ 
			Var1 = result;  
			}

	textItem.text = Var1;

So wie es aussieht, hat das etwas mit der zeitlichen Abarbeitung der Ereignisse zu tun.
Wenn das onResult-Ereignis etwas später eintritt, dann ist Deine Variable „Var1“ beim Zuweisen auf „textItem.text“ noch nicht definiert.

Am Besten legst Du alle von „onResult“-abhängigen Funktionen innerhalb der Funktion ab oder speicherst das Ergebnis in einem temporären dynamischen Text (textItem.text)

Viele Grüße
Roland

So
Jetzt hab ich das erste Flash fertig um IP-Symcon Werte anzuzeigen.
Problem ist nur es laeuft auf dem PC ohne Probleme.
Auf dem Chumby bleiben die Felder leer und es gibt auch keine
Netzaktivitaeten. :frowning:

Wo ist denn das Flash-File gespeichert und wie rufst Du auf dem Chumby den Film auf?

Hab das Flash-File auf die Chumby Seite in meinen privaten Bereich
hochgeladen. Beim Starten laedt der Chumby alle ausgewaehlten
„Widgets“ aus dem Internet. Alle Programme auf dem Chumby sind Flash-Files.
Alle Flash-Files werden nacheinander ca alle 30 s gestartet oder man waehlt eins
aus was staendig angezeigt wird.

Ich denke es ist ein Problem mit der Flash Security Policy.
Der Zugriff auf andere Domains ist normalerweise gesperrt. Bei solchen Cross-Domain Zugriffen regelt dann eine cross-domain.xml auf dem Remote-Server die Rechte. Unter IPS mit dem SOAP-Port 3773 kenne ich keine Möglichkeit dies zu realisieren.

Du kannst die Cross-Domain umgehen, indem Du die Flash-Datei im Webfront unter beispielsweise http://server:82/flash/movie.swf ablegst und auch so aufruft.
Wichtig ist nur, dass die Browseradresse mit der SOAP-Adresse im Actionscript identisch ist.
Wenn Du also einen SOAP-Webservice auf die Adresse 192.168.10.8 mit

var IPSVar = new WebService("http://192.168.10.8:3773/wsdl/IIPSVariableManager"); 

anlegst, dann muss die Browseradresse auch „http://192.168.10.8:82/flashmovie.swf“ lauten.

Viele Grüße
Roland

Ich glaub du hast was missverstanden.
Die Flash sind auf einem kleinen Geraet genannt Chumby
chumby internet radio player, digital picture frame, alarm clock - more!

Sind nicht auf dem IPS-Server.
Wenn es ein Domaenproblem ist muesste ich doch nur den
Chumby in meine Domaen kriegen ?
Da laeuft Linux drauf und man root Zugriff

Hab Dich schon richtig verstanden und hier im Forum auch schon etwas über das Gerät gelesen, aber die Sicherheits-Richtlinien von Flash-Dateien sperren den Netzwerkzugriff zu Remote-Verbindungen.

Nach meiner Kenntnis, bekommst Du mit dem Flash-Film auf dem Chumby keinen Zugriff auf den IPS-Server.
Einzige Möglichkeit ist, wenn das Flash-File auf dem IPS-Server aufgerufen wird und somit lokal über den Webserver eine SOAP-Verbindung zu IPS aufbaut.

Kannst Du im Chumby keine herkömmliche Internetseite anzeigen?

Viele Grüße
Roland

Leider nicht bzw. hab noch kein Widget dafuer gefunden

Da mich das Teilchen auch interessiert mal eine Frage zu den Widgets.

Werden diese lokal im Chumby geladen oder über den Webservice von myChumby?

Bzgl. des Cross-Domain-Zugriffes dürften ja auch keine Wetterseiten oder andere Dinge gehen die auf externe Daten zugreifen, oder habe ich da etwas falsches Verstanden.

Dann hätte ich noch eine Frage bzgl. der Helligkeit des Chumby. Da er hauptsächlich als Wecker neben meinem Bett dienen soll, wie hell ist das Display wenn nur eine Uhr mit schwarzen Hintergrund und weißer oder grauer Schrift zu sehen ist.

Hallo Werner,

ich habe den Chumby jetzt seit einer Woche. Ich bin total begeistert von den „kleinen“.

Ich habe bis jetzt alle Widgets über myChumby geladen. Des weitere habe ich zu Testzwecken das typische „Hello World“ Script/Widget über einen USB-Stick gestartet. Dazu musste ich aber das normale Programm/Movie stoppen. Ich bin da noch nicht wesentlich weite da ich dieses Wochenende mein HTC bekommen habe. Wenn ich 1007 aber richtig verstanden habe werden selbst „geklöppelte“ Widgets über den Umweg des Internets in den Chumby geladen. Ich habe mir das Flash MX 2004 Pro besorgt und wollte nun wieder einsteigen.

Du kannst den Chumby stufenlos dimmen. Wenn dir das dann immer noch zu Hell ist, kannst Du im „Night-Mode“ den Bildschirm komplett ausschalten.
Anders herum:
Wenn der Bildschirm aus ist und Du berührst den Bildschirm geht der Chumby wieder in den „Night-Mode“. Wenn der Chumby im „Night-Mode“ ist und Du berührst den Bildschirm ist der „Night-Mode“ aus

Bis dann

Martin