[BETA] [MODUL] Raumdisplay (RoomDisplay)

Noch benutze ich deine Vorlage als Basis und probiere rum wie ich meine Wohnmobil Lipo Lade & Entladeinfo visualisiere (Spannung, Strom, SOC….)


… viel ist dabei noch nicht entstanden.
Ich kämpfe z. B. noch mit der Skalierung der Scala… die rechten beiden kann ich noch nicht in der Strichdicke beeinflussen…die Buttons unten sind noch nicht angepasst/funktional
Test Display.txt (3,1 KB)

Die Liniendicke sollte man doch mit "line_width":8,"line_width10":8 anpassen können. Schon mal versucht?

Ja, die ersten vier reagieren auch drauf, die letzen beiden (roten) bleiben standhaft. :woozy_face:

Habe aber inzwischen nach dem Motto „weniger ist mehr“ umgebaut:


Die gefragte Farbumstellung bezieht sich jetzt auf das mittlere Objekt => der Bereich geht von -100 bis +100, Null ist also genau auf 12Uhr … bei positivem Strom (Lipo wird geladen) soll der Bogenabschnitt grün, bei negativem Strom (Verbrauch aus dem Akku) soll er rot eingefärbt werden <= Idee ob/wie das klappt?
Gruß Michael

Erstmal muss ich sagen sieht es sehr gelungen aus :+1: :champagne:

Hast Du mal versucht mit …

WWXRD_SendCommand(<id>, p1a1.line_color=#ff8000);

oder

WWXRD_SendCommand(<id>, p1a1.line_color10=#ff8000);

…mhh… das ist etwas zuviel für mich:

  • woher kommt das „WWXRD_“ ?
  • id … des Raumdisplay Moduls?
  • p1a1 … ich möchte …{„page“:01,„id“:15,„obj“:„arc“, … beeinflussen => also p1a15 (wieso nicht p1b15 wie bei den MQTT Topics?
  • kann man nicht alternativ mit requestaction auf die ID des MQTT Servers mit der Payload „p1b15.line_color=#00ffa2“ schreiben …
  • und wenn ja, wie würden das genau lauten, so?
    Auf einen MQTT Client mit
    $topic="hasp/kroka_womo/command/Command“
    $payload=„p1b15.line_color=#00ffa2“;
    RequestAction(39065,$payload);
    ???

Gruß Michael

PS: früher konnte ich den Code als Code formatieren, irgendwie klappt das nicht mehr ?

Um öffentliche Funktionen von Modulen nutzen zu können, muss man sie mit Prefix und Instance-ID ansprechen.
Das Raummodul hat den Präfix „WWXRD“!

Richtig, wie oben schon angedeutet.

p1a1 war nur als Beispiel, batürlich musst Du die richtige Seite und Objekt-ID verwenden!

Kann man natürlich auch machen, aber SendCommand übernimmt genau das für Dich und macht intern nichts anderes!

Ja so ungefähr - beim topic ist glaube ich das zweite „Command“ zu viel!

Ich breche mir gerade einen ab, um die Temperatur in einem Label mit Komma darzustellen.

Es wird ja sprintf verwendet, das müsste doch bei
%-3.1f
eigentlich

Der Parameter f wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).

Mein Symcon Server steht auf englisch, somit ist der Punkt also prinzipiell korrekt.

Alle Versuche z.B. mit str_replace oder number_format funktionieren nicht, da Umrechung offensichtlich und natürlich vor der Ausgabe stattfindet

Hast du eine Idee, wie ich trotzdem ein Komma als Dezimaltrenner erreichen kann?

Hast Du schon mal versucht alles in Caption rein zuhauen, weil Du brauchst ja keine Vorbehandlung vom Wert.

Also …

number_format({{val}}, 2, ',', '.').' °C'

so in etwa :slight_smile:

Gruß HEiko

Geht!!!
image

2 „Gefällt mir“

Das funzt, juhu. Da nutzt du auch eval bei der Ausgabe, dann kann man dort ja noch mehr rumtricksen.

Gibt es eigentlich einen Grund, warum manche Buttons in der Instanz nicht direkt auswählbar sind?

Leider wird beim Reload der Instanz immer der Bereich wieder zugeklappt, also z.B. „Aktion ausführen …“.

Ich hätte gern zumindest „Synchronisieren“ auch direkt klickbar oder du baust das bei „Seiten neu laden“ direkt mit ein. Ich bastele gerade mal wieder und das Neuladen führt dann immer zu einem asynchronen Anzeigezustand.

Untersteh Dich :rofl: :rofl: :rofl:

Welche meinst Du? Oder meinst Du das die in einem Expand sind? Nein, nur damit es aufgräumt ausseiht. Ich bin doch sein stark strukturierter Typ :smiley:

Gibt es dafür eine einfache Lösung? Also das der Zustand nach dem Reload wieder der ist der er vorher war?

Könnte ich mich überreden lassen :smiley:

1 „Gefällt mir“

Ich habe noch eine Idee zur deutlichen Minimierung des Traffics bzw. Belastung von Symcon und dem MQTT Server.

Auch wenn das Display ausgeschaltet ist werden alle Werte aktualisiert.

Das ist eigentlich nicht nötig, wenn beim Einschalten der Status aller Elemente synchronisiert würde.

Das wird vermutlich ein größerer Umbau, falls du das anfassen würdest.

Fiel mir gerade im Debug auf, da ich einen Zählerwert anzeige, der alle paar Sekunden aktualisiert wird.

Glaub ich gar nicht, würde unter Umständen nur ein kurzes „flackern“ am Display bewirken weil auf einmal viel passiert!

Gute Idee - hatte das auch schon mal kurz überlegt und dann aus den Augen verloren - kann man ja per Schalter in den erweiterten Einstellungen aktivieren :smiley:

Gruß Heiko

1 „Gefällt mir“

Wenn wir beim wünschen sind :wink:
Wäre es möglich, alle Einstellungen auf ein 2. oder 3. Display zu kopieren?
Oder geht sowas schon und ich habe es nicht geschnallt?

Instanz kopieren und den MQTT Topic ändern wäre jetzt meine Wahl :wink: .

1 „Gefällt mir“

So habe ich das auch immer gemacht! :ok_hand:

Sofern der Inhalt gleich ist laufen die sogar auf den selben Topic.
Nur wenn man auf das Idle triggert kann mal passieren, dass das Display aus geht oder so :grimacing:

2 „Gefällt mir“

Ich habe heute mal mit FTP rumgespielt, das ist keine Lösung, alle Versuche scheitern mehr oder weniger an Timeouts.
Trotzdem ist mir unwohl, wenn die komplette Konfiguration nur auf dem Gerät ist, nicht in Symcon oder ich sichere sie zusätzlich lokal :see_no_evil: .

Ich würde es besser finden, wenn der Seitenaufbau auch im Modul als Text hinterlegt ist und beim Neustart auf das Display geschoben wird.

@pitti Dabei ist mir noch eine Kleinigkeit aufgefallen, du schaltest schon bei „Leerlauf=kurz“ auf Seite 1, das Abdunkeln nehme ich eigentlich als Warnung, um dann wieder anzutippen und weiter zu schauen. Schöner wäre das Zurückschalten erst bei Lang.

Hintergrund der Spielerei ist eine Statusseite, die ich nur beim Neustart angezeigt bekommen wollte.
Das Ersetzen von %ip% lässt ja leider keinen weiteren Text im Element zu, zumindest nicht in der MsgBox, dort ist nur ein „text“-Element zulässig.

grafik

Das Blättern auf die Seite unterbinde ich mit

{"page":1,"id":0,"prev":3}
{"page":3,"id":0,"next":1}
{"page":12,"id":0,"next":1}
{"page":12,"id":0,"prev":1}

Und geladen wird standardmäßig Seite 12.

Grüß dich, tolles Modul, danke dir aber scheinbar stell ich mich zu glatt an. Was muss ich denn in der Objektzuordnung eintragen, so dass eine Symcon Boolean-Variable zwischen zwei Symbolen wechselt?
0 = E727 und 1 = E238?

Danke dir.

Hast du die Symbole in der pages.jsonl angelegt?

Das komplette Design erfolgt unbhängig von diesem Modul direkt im Display.

Z.B. für einen Toggle Button mit einer „Birne“

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

Oder einfach nur ein Symbol, das etwas anzeigt, definiert mit

{"page":1,"id":11,"obj":"label","x":1,"y":76,"w":78,"h":78,"text":"\uE335","text_font":78,"click":0}

Wie das aussieht findest du in einem Beitrag weiter oben.

Warning: Variable #23404 existiert nicht in /var/lib/symcon/modules/.store/de.wilkware.ips.modul.roomdisplay/RoomDisplay/module.php on line 898
in /- on line 3

kommt bei Aktion ausführen/Synchronisieren.
Wo kann ich da ansetzen?