[BETA] [MODUL] Raumdisplay (RoomDisplay)

Dann könntest du auch eine String Variable nehmen und die in die pages.jsonl schreiben, dann würden wir die MQTT Längenbegrenzung vom Display umgehen.

Genau das war die Idee - schau gerade wie man sowas macht. Wahrscheinlich wieder etwas tricky :frowning:

Der vermutlich einfachste Weg wäre FTP aktivieren und hochladen.

Mache ich auf eine Internetseite zur Wetter Lagedarstellung

	$connection = ftp_ssl_connect($ftpserver, 21, 15);
	$login_result = ftp_login($connection, $user, $password);
	// 1=Login OK
	if (!$connection || !$login_result)
	{
	 //Wenn Fehler
	 echo "\nError: creating FTP connection failed";
	}
	else{
		ftp_pasv($connection, true);
		$upload = ftp_put($connection, $remotefile, $filepath, FTP_ASCII);
		if (!$upload)
		{
		 	 //Wenn Fehler
			 echo "\nError: FTP upload failed";
		}
		else
		{
      if (($_IPS['SENDER'] == "Execute") AND $debug)
        echo "Upload succesful!";
		}
	}
	ftp_quit($connection);
  

Dann könnten auch notwendige Bilder aus dem Modul hochgeladen werden :innocent: .

Ahh, daran habe ich gar nicht gedacht :thinking: Das Teil unterstützt ja FTP :slight_smile:

Schau ich mir an!

Hahaha, das upload hat gleich beim ersten mal funktioniert und habe gleich mal meine pages.jsonl mit einem einzelnen Kommentar überschrieben - super!!!

FTP - da muss man ein usernamen und passwort konfigurieren, sonst läuft der ftp-server nicht. Das müsste dann auch jeder auf jedem Gerät machen - noch mehr Erklärarbeit :slight_smile:

Aber wie gesagt, per multipart form upload geht es out-of-the-box!

Jetzt die Frage -einfach per Fileauswahl (lokales Dateisystem) oder per String-Variable???

Gruß HEiko

1 „Gefällt mir“

Im Symcon wäre es für mich konsistenter, aber aus dem Dateisystem vermutlich einfacher umzusetzen.

Erster Versuch ein Objekt über das Modul zu schalten, klappt noch nicht :open_mouth: .

Ist eine Bool, ~Switch mit Standardaktion, schaltet aber nicht.

grafik

Das Problem ist glaube ich das „-1“, aber wie das zustande kommt kann ich mir gerade nicht erklären!

Ich geh mal auf die Suche.

Gruß HEiko

Kannst Du mir mal das JSONL von Objekt Page 1 und ID 41 zeigen!

Bei mir sieht ein Togel Button so aus …

ReceiveData | Received Topic: hasp/arbeit/state/p4b61 Payload: {"event":"down","val":0}

Also EVENT plus VAL ???

PS: Kann es sein das Du einen reinen Button ohne toggle: true definiert hast???

Ok, da hast du natürlich das Problem entdeckt, meinem Script war das egal, da ich nur auf ein Ereignis des btn reagiere.

Das ist die Zeile

{"page":1,"id":41,"obj":"btn","x":1,"y":'.FuenfteReihe.',"w":78,"h":78,"toggle":true,"bg_color":"#666666","text":"\uE335","text_color":"#FFFFFF","radius":0,"border_side":0,"text_font":48}

ist da irgendetwas zu viel in der Definition, weil die Auswertung nicht funktioniert, schalten schon

({{val}}==0) ? '#D3D3D3 \uE335' : '#FFF200 \uE6E8'

Update:
grafik

Debug

Update:
Download link scheint auch nicht zu passen, bei mir ohne „.bmp“.

Okay, Du hast auf Toggle umgestellt und jetzt geht auch das Schalten - CHECK!

Auswertung geht nicht - denke Du meinst die Beschriftung - nicht gut :frowning:
Das ist etwas Tricky, aber muss ich mir genauer anschauen - melde mich!

Das habe ich noch nicht ganz verstanden. Du willst ein Screenshot vom Display runterladen? Hast Du vorher die Aktion ausführen … Bildschirmfoto geklickt? Und dann „Abfragen von …“ Bildschirmfoto!?
Gib ihm paar Sekunden - da ist er nicht so schnell!

Gruß Heiko

und dann

Über die Weboberfläche ist der Link ohne das „.bmp?..“.

Update:
Hurxxxx …

Zwei Step Approach :smiley:

grafik

Das funktioniert dann auch. In der Weboberfläche gibt es nur einen Button.

Das stimmt, aber dann hätte man die Modul-Logik umbauen müssen :frowning: Und für dieses Gimmick wollte ich das dann doch nicht. Man braucht halt 2 Kommandos, d.h. das erste initiert das Erstellen und dann bekommt man na Antwort das es fertig ist und dann kann man es runterladen :frowning:

1 „Gefällt mir“

Wenn man es so nennen kann … „Fehler“ gefunden - Update kommt etwas später!

Aber ich habe wieder etwas gelernt. Die farbige Textformatierung funktioniert nur bei Objekten die das „text“ Attribut unterstützen. Das Attribut „val_str“ unterstützen das nicht!

Gruß Heiko

PS: Danke für’s Testen - bei meiner Konfig hat alles gepasst - kann man mal sehen was noch so alles versteckt ist :loveips:

PSS: Falsches JSONL und falscher Code ergibt richtiges Verhalten :slight_smile: :slight_smile: :slight_smile:

Neue Beta ist online!

v1.4.20240905

  • NEU: UI-Objekt Checkbox wird jetzt unterstützt
  • FIX: Textausgabe für Toogle Button korrigiert
  • FIX: Konfiguration für Musik Play/Stop Button gefixt

DANKE

grafik

jetzt muss ich nur noch rausfinden, wie ich das blau los werde, das kommt aus der „Primary color“ :frowning: .

bg_color??? und wenn gewollt „bg_opa“ :smiley:

Gruß HEiko

z.B. "bg_opa":70,"bg_color":"#FFFFFF",

ok, probiere ich, beide Default Farben auf die Hintergrundfarbe der Buttons setzen hilf auch :smiley:

grafik

Dann muss ich mal alle Objekte pflegen und mein Script umbauen.

1 „Gefällt mir“

Einiges ist zugeordnet und funktioniert auf Anhieb.

Aber mit dem {{val}} bzw. eval() habe ich noch Probleme. Ich habe als Rückgabewert der Variablen eine Integer mit 3 Werten.

Das funktioniert nicht

({{val}}==0) ? '#ff0000 \uE81C' : '#ff8000 \uE81B' : '#00b050 \uF0AF'

und das auch nicht

if ({{val}} == 0) {{txt}} = '#ff0000 \uE81C' elseif ({{val}} == 1) {{txt}} = '#ff8000 \uE81B' elseif ({{val}} == 2) {{txt}} = '#00b050 \uF0AF'

Die PHP Doku macht mich auch noch nicht wirklich schlauer :open_mouth: . Angeblich soll mit eval() doch beliebiger PHP Code ausgeführt werden.

Noch ein paar Kleinigkeiten vom rumspielen :slight_smile: .

Könntest du die beiden Parameter für backlight short und long bitte im Modul konfigurierbar machen?
Du hast sie hardcoded im Modul.

$this->SendCommand('backlight=50');

Und beim AutoShutdownBacklight direkt antiburn mit ein- bzw ausschalten

antiburn=off

Das soll besser sein für die Display Haltbarkeit.

Und noch ein letzter Punkt für heute
grafik

was wird wie ans Script übergeben?

Die üblichen Verdächtigen wie $_IPS['VALUE'] oder ähnliches sind unbekannt.