[BETA] [MODUL] Raumdisplay (RoomDisplay)

Ich würde vermuten, dass Helmut die Zustände selber in einem Script managen möchte und nur auf der Suche nach dem richtigen MQTT Kommando ist.

1 „Gefällt mir“

Wenn Du per MQTT das selber setzen möchtest, dann …

/hasp/<nodename>/command/p3b8.val=1

oder

/hasp/<nodename>/command/p3b8.val=0

Aber dann ist doch der gesamte Mehrwert des Moduls dahin :disguised_face:

Im Gegenteil, es ist eine andere Handhabung vielleicht …
Dein Modul sollte nur ein Zubringer zu dem OpenHasp Modul sein, ist es, finde ich nicht nur.
Geht auch allein.
Wenn mir noch jemand aufzeigen kann, wie schicke ich den von Dir genannten Wert
/hasp/uhr/command/p3b8.val=1
zum Display,
mit MQTT Client Gerät funktioniert es nicht, teste mir einen Wolf

Ups, probiere mal ohne / vorne!!!

hasp/<nodename>/command/p3b8.val=1

oder

hasp/<nodename>/command/p3b8.val=0

Nochwas: WAS FÜR EIN UI-ELEMENT IST ES? Das ist für den richtigen Befehl SEHR wichtig! Label kann mit obigem nichts anfangen!

{„page“:3,„id“:8,„obj“:„checkbox“,„x“:260,„y“:265,„w“:90,„text“:" Flur-Lampe",„text_font“:16,„text_color“:„#FF0000“}
steht im Display, als Objekt in Deinem Modul habe ich label genommen.
Ich nutze für mein OpenDTUonBatterie eine MQTT Client Geräte Instanz, die ich mit Requestaktion dann füttere, das funktioniert.
Mit dem Muster bekomme ich Variable existiert nicht.
Ist die Frage ob man Checkboxen überhaupt beschreiben kann…
MQTT_Gerät

Ahh, langsam kommen wir dem Problem näher :slight_smile:

Checkbox habe ich noch nicht freigeschalten - mach ich nachher gleich noch!

Das „.val“ fehlt aber!!! Ich hab das jetzt noch nicht ausprobiert, aber ich hätte bei Thema folgendes reingeschrieben …

hasp/uhr/command/p3b8.val

Gruß Heiko

Neu BETA ist online!

v1.4.20240903###

  • NEU: UI-Objekt Checkbox wird jetzt unterstützt

Ich gebe auf, mit der MQTT auf Checkbox, ich färbe den Text daneben grün und rot oder so.

Dabei ist mir aufgefallen, dass die Checkbox eine Leuchte schalten sollte, hat sie auch gemacht.
Dann habe ich die Checkbox aus der Objekt Zuordnung gelöscht.
Schaltet immer noch Command ist im Debug zusehen.

Du meinst den Befehl direkt per MQTT Befehl? Warum nutzt Du nicht die Möglichkeit des Moduls für sowas?

Beispiel für Beschriftung:

({{val}}==0) ? '#11A0F3 AN#' : '#1245FA AUS#'

Zeig mal Tabelle und Debug?!

Warum bin kein Informatiker geworden, hätte ich doch nur in Schule aufgepasst. Wann geschweifte Klammern wo hin und was muß da rein…
Mach bitte ein Beispiel, denn Copy und Paste und ein wenig probieren, das kann ich.
Beispiele sind immer gut um was zu erklären.
Hier das Debug von p3b8 und die Liste.
debug_2_9_24.txt (35,9 KB)

Okay verstehe, aber ob MQTT Befehle senden und scripten einfacher ist :loveips:

Im Debug Log sehe ich aber nix von p3b8.val, auch der Type 4 (Checkbox) kommt nicht vor. Ist ja auch eigentlich nix in der Tabelle verknüpft :slight_smile:

Ein Beispiel hatte ich ja oben gemacht. Ich versuche mich mal als Erklärbär :slight_smile:

({{val}}==0) ? '#FF0000 AN#' : '#00FF00 AUS#'

Was besagt das Beispiel?

Es ist ein Ternärer Operator - oder ein kompakte Form von if-then-else.
Es wird der Wert (hier: {{val}}) mit 0 verglichen. Die Klammer herum ist nur zur besseren Abtrennung des Statements. Wenn das Ergebnis TRUE ist, dann wird der ROTE(#FF00000) String AN genommen. Wenn das Ergebnis FALSE ist, dann der GRÜNE(#00FF00) String AUS.

Die spezielle Schreibweise mit dem abschließenden # nach dem Text - ist von openHASP vorgegeben - und besagt das die farbliche markierung des Testes abgeschlossen ist.

Also #FF000 Roter Text# und jetzt mit normaler Schriftfarbe! gibt nur den Text => ‚Roter Text‘ rot aus und den Rest in nomal definierter Standardtextfarbe!

Wenn Du was spezielles brauchst, schreib es hier einfach rein dann kodiere ich Dir die Bedingung und alle lernen an den Beispielen dazu :slight_smile:

Gruß Heiko

1 „Gefällt mir“

Im Debug zu sehen:

TXT: 02.09.2024, 16:57:13 |          ReceiveData | Received Topic: hasp/uhr/state/p3b8 Payload: {"event":"down","val":1}
HEX: 02.09.2024, 16:57:13 |          ReceiveData | 52 65 63 65 69 76 65 64 20 54 6F 70 69 63 3A 20 68 61 73 70 2F 75 68 72 2F 73 74 61 74 65 2F 70 33 62 38 20 50 61 79 6C 6F 61 64 3A 20 7B 22 65 76 65 6E 74 22 3A 22 64 6F 77 6E 22 2C 22 76 61 6C 22 3A 31 7D 

TXT: 02.09.2024, 16:57:13 |          ReceiveData | Topic: p3b8 Payload: {"event":"down","val":1}
HEX: 02.09.2024, 16:57:13 |          ReceiveData | 54 6F 70 69 63 3A 20 70 33 62 38 20 50 61 79 6C 6F 61 64 3A 20 7B 22 65 76 65 6E 74 22 3A 22 64 6F 77 6E 22 2C 22 76 61 6C 22 3A 31 7D 
TXT: 02.09.2024, 16:57:13 |           HandleData | Topic: p3b8 ,Payload: {"event":"down","val":1}
HEX: 02.09.2024, 16:57:13 |           HandleData | 54 6F 70 69 63 3A 20 70 33 62 38 20 2C 50 61 79 6C 6F 61 64 3A 20 7B 22 65 76 65 6E 74 22 3A 22 64 6F 77 6E 22 2C 22 76 61 6C 22 3A 31 7D 
TXT: 02.09.2024, 16:57:13 |           HandleData | No registered object! 

Ist im Debug obwohl nicht mehr in der Liste. Schaltet ja tatsächlich :wink:
Deine Zeile hast Du erklärt, ist zum einfärben des Textes und muß wo hin, damit es funktioniert?

Ist das entscheidende - das Modul bekommt immer mit wenn irgendwas am Display passiert, weil es ja die Meldungen via MQTT abonniert hat :slight_smile: Dann schaut es in seine Liste und erkennt das es für die Meldung kein registriertes Ojekt gibt und verwirft intern die Meldung. Also es wird von meinem Modul kein Schaltbefehl (RequestAction) gesendet.

Die muss bei Beschriftung rein - soll ja den Text der Checkbox ändern!

ACHTUNG: Sowohl mein Modul hat noch einen Bug für Checkboxes, ABER wie es aussieht kann der Typ Checkbox das mit der farblichen Markierung nicht :frowning:

Ich werde mal auf Github ein Issue auf machen!

Modulupdate kommt dann, wenn Klarheit herscht :expressionless:

Ich habe ein Lösung für mein synchron Problem, Haken in Checkbox kommt jetzt immer, egal wovon ich schalte.
Modbus ADR kann ich schalten und bei meinem Eltakodimmer habe ich eine Variable mit einer Aktion gebaut, die ist angewählt und damit bekomme ich einen Haken vom Dimmer.
Jetzt brauche ich kein Text o.ä. ändern.
Die Erkenntnis kam nach dem Du Checkbox drin hattest und ich es bei einer Modbusschaltadr probierte. Und da auf den Wert.
Mit Label geht es nicht.
Recht vielen Dank, womit mir wieder bewiesen ist, Dein Modul und das Online Openhasp Editor Tool reicht.

Wie findet ihr die analog Uhr, ich habe sie auf Seite 1 und sie sieht einfach gut aus.

1 „Gefällt mir“

Sieht gut aus, solltest Du mal im anderen Thread mit Config vorstellen!

Update der BETA ist online!

Kleine Fix für Checkboxen.

Ich habe noch keine Rückmeldung, aber ich glaube das farbige Formatieren von Textteilen geht nur bei (TOGGLE)-BUTTON und LABEL. Jedenfalls steht es da explizit in der Doku.

Gruß Heiko

Was noch cool wäre, wenn man den jsonl Code im Modul übergeben könnte und du den String auf kurze Blöcke aufteilst (das Display kann nicht so lange Strings über MQTT) und an das Display sendest.

Dann könnte man alles im Modul pflegen und müsste nur Bilder noch explizit hochladen, die sich aber üblicherweise nicht so oft ändern, die Seiten schon :innocent: .

In meinem Management Script generiere ich beim Einschalten die Seiten und alle Zustände neu.
Für den Seitenaufbau nutze ich Strings und eine Schleife zum Senden.

    $content01 = 'jsonl 
    {"page":0,"id":8,"obj":"btn","x":0,"y":0,"w":480,"h":48,"bg_color":"#666666","radius":0, "enabled":0}
    {"page":0,"id":1,"obj":"label","text_color":"#FFFFFF","x":2,"y":1,"h":38,"w":224,"text":"HomeControl","align":"left", "enabled":0, "text_font":32}
    {"page":0,"id":2,"obj":"label","text_color":"#FFFFFF","x":241,"y":1,"h":38,"w":100,"text":"'.$temp .' \u00B0C","align":"left", "enabled":0, "text_font":32}
    {"page":0,"id":9,"obj":"label","text_color":"#FFFFFF","x":400,"y":1,"h":38,"w":78,"text":"00:00","template":"%H:%M","align":"right","bg_grad_dir":0,"bg_opa":0,"text_font":32, "action":{"hold": "restart"}}
    // Fußzeile/Buttons
    {"page":0,"id":51,"obj":"btn","action":{"down": "page prev"},"x":1,"y":401,"w":158,"h":78,"bg_color":"#666666","text":"\uE141","text_color":"#d3d3d3","radius":0,"border_side":0,"text_font":48}
    {"page":0,"id":52,"obj":"btn","action":{"down": "page back"},"x":161,"y":401,"w":158,"h":78,"bg_color":"#666666","text":"\uE2DC","text_color":"#d3d3d3","radius":0,"border_side":0,"text_font":48}
    {"page":0,"id":53,"obj":"btn","action":{"down": "page next"},"x":321,"y":401,"w":158,"h":78,"bg_color":"#666666","text":"\uE142","text_color":"#d3d3d3","radius":0,"border_side":0,"text_font":48}
    ';

An was ich schon gedacht habe ist, nicht nur die pages.jsonl down-zu-loaden (backup) zu können, sondern auch ein File Upload.

Aber warum machst Du das? Ein einfacher SYNC Aufruf macht das doch alles für Dich!?

Gruß Heiko

1 „Gefällt mir“

Mein Script war zuerst da :rofl: .

1 „Gefällt mir“