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
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 .
Ahh, daran habe ich gar nicht gedacht Das Teil unterstützt ja FTP
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
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
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 .
Ist eine Bool, ~Switch mit Standardaktion, schaltet aber nicht.
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:
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
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
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 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
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
PSS: Falsches JSONL und falscher Code ergibt richtiges Verhalten
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
jetzt muss ich nur noch rausfinden, wie ich das blau los werde, das kommt aus der „Primary color“ .
bg_color??? und wenn gewollt „bg_opa“
Gruß HEiko
z.B. "bg_opa":70,"bg_color":"#FFFFFF",
ok, probiere ich, beide Default Farben auf die Hintergrundfarbe der Buttons setzen hilf auch
Dann muss ich mal alle Objekte pflegen und mein Script umbauen.
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 . Angeblich soll mit eval() doch beliebiger PHP Code ausgeführt werden.
Noch ein paar Kleinigkeiten vom rumspielen .
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
was wird wie ans Script übergeben?
Die üblichen Verdächtigen wie $_IPS['VALUE']
oder ähnliches sind unbekannt.