joBr99 / nspanel-lovelace-ui

Custom Firmware for NsPanel with the design of HomeAssistant's lovelace UI in mind, works with Tasmota.
GNU General Public License v3.0
872 stars 189 forks source link

[Feature Request] Erweiterung um einen Heizungsthermostaten #518

Closed Strommix closed 1 year ago

Strommix commented 1 year ago

FEATURE DESCRIPTION

A clear and concise description of what the feature should do.

ADDITIONAL CONTEXT

Add any other context about the problem here.

PANEL / FIRMWARE VERION

Please add the Panel/Firmware Version you are using (EU, US-L or US-P)

Strommix commented 1 year ago

Vielen Dank für die ausführliche Version. Ich versuch es mal direkt im Text zu formulieren.

Ich, möglicherweise aber auch Andere könnten eine Abwandlung der ThermostatSeite gebrauchen. Einsatzzweck, eine Gasetagentherme und deren Ansteuerung.

Taste : Handbetrieb -->Also ein Button im Display - eigentlich über Mode schon vorhanden

Hell = angewählt oder von Blockly vorgewählt --> softwareseitig mit dem nachfolgenden Automatikbutton verriegelt Dunkel = inaktiv Icon "Manuell", dunklere Farbe Taste : Automatikbetrieb -->Also ein zweiter Button im Display - eigentlich über Mode schon vorhanden

Hell = angewählt oder von Blockly vorgewählt --> softwareseitig mit dem oberen Handbetriebbutton verriegelt Dunkel = inaktiv Icon "Automatic", dunklere Farbe Temperaturanzeige °C :

Handbetrieb -- Sollwert mit rauf und runter Pfeilen im Handbetrieb vorhanden -- Pfeil rauf für das erhöhen der Temperatur vorhanden -- Pfeil runter für das erniedrigen der Temperatur vorhanden

Automatikbetrieb -- keine Pfeile nur die Anzeige der Automatik Temperatur nicht vorhanden --> neue Anforderung an @joBr99 Diese wird per Blockly vorgegeben vorhanden, da Blockly nur den Setpoint im Adapter XYZ überschreibt und der Wert aktualisiert wird

Anzeige : °C vorhanden

Istwert

Vorgabe von einem Externen Geber oder NTC eingebaut für extern vorhanden, für internen NTC müssen die Werte per MQTT in einen Datenpunkt mit Alias --> vorhanden Anzeige : Störung Als Icon vorhanden Wenn Platz ist mit Text oder nur

Hell = Störung von Blockly vorgewählt Es könnte der Text "Zustand" als "Störung" mit ein paar Änderungen genutzt werden Dunkel = inaktiv von Blockly vorgewählt Keine Störung --> Kein Text oder "OK" Denkbar wäre hier auch eine Numerische Störungsanzeige und die Tastenfunktion, Störung löschen durch drücken auf das Symbol und setzen des Numerischen Wertes auf 0. Anzeige Uhrzeit : 24:00 Störung neue Anforderung --> @joBr99

Anzeige Automatik : Icon im unteren Bereich Normalberieb = Gelb realisierbar Nachtabsenkung = Grün realisierbar Als Grundgerüst könnte man die Thermostat-/Kimaanlagen- Seite benutzen die sieht doch schon fast so aus. von der cardThermo gehe ich auch aus

Ob die Seite nun als Daueranzeige oder als Seite angezeigt wird ? Einige möchten das sicher so die Anderen so. geht nicht als Dauerseite, da ein Screensaver vorhanden sein muss. Ein Screensaver kann aber keine Aktionen durchführen

Die Ansteuerung der Gastherme kann dann per ioBroker usw. vorgenommen werden. Einige Gastermen benötigen nur einen Potentialfreien Kontakt und andere ein Spannungs oder Stromsignal Analog oder Digital. Da einige Thermostate sehr Teuer sind, könnte ein NSPanel hier sicherlich Preiswerter sein. Auch ist ein solches Panel sicherlich Informativer als eines mit festen Funktionen.

Armilar commented 1 year ago

Hier ist es schöner formatiert: https://forum.iobroker.net/post/872992

joBr99 commented 1 year ago

Ich hab leider kein Plan was die Anforderung ist.

Automatikbetrieb -- keine Pfeile nur die Anzeige der Automatik >Temperatur nicht vorhanden --> neue Anforderung an

Die Pfeile bekommt man aktuell nicht weg, aber wenn es nen Automatikmode gibt in dem die Temperatur nicht geänder werden kann, kann würde ich erwarten, dass es bei der Benutzung der Pfeile es in manuell wechselt.

Anzeige Uhrzeit : 24:00 Störung neue Anforderung --> @joBr99

Uhrzeit? Was Wo Wie?

Strommix commented 1 year ago

Im Automatikbetrieb wird die Temperatur dem Regler (im ioBroker) durch ein z.B Blockly übergeben. Dann ist das nur eine Anzeige und eine veränderung des Sollwertes sollte durch eine Person nicht möglich sein, seih es nun beabsichtigt oder unbeabsichtigt. Erst nach änderung des Zustandes von Automatik auf Hand wird die Manuelle Sollwertvorgabe wieder aktiv.

Strommix commented 1 year ago

Im weitesten Sinne ist die Seite von NSPanel nur eine Bedienung und Anzeige eines Zweipunkt- oder eines Stetig- Reglers im ioBroker. Damit sollen Sollwertvorgaben, Regelzustände sowie Führungsgrößen angezeigt und bedient werden.

Strommix commented 1 year ago

Da diese Seite nicht die Seite 0 sein kann, könnte die Uhrzeit wegfallen da die schon auf der Seite 0 ist. Das wäre nur Nötig gewesen wenn die Thermostatseite die Seite 0 sein könnte. Die Temperaturvorwahl im Automatikbetrieb kommt von einem Blockly das zwischen der Normaltemperatur und der Nachtabsenkung umschaltet. Im Vormalfall ist das Panel also nur eine Anzeige, wie auch jedes Normale Thermostat im Hause.

Strommix commented 1 year ago

Wenn ich auf der Seite Thermostat bin, so kann ich das per Blockly feststellen in dem ich CustomSend abfrage. entityUpd~Test Heizung~1|0~alias.0.NSPanel_02.Heizung~66°C~220~MANU~170~250~5~~33840~1~PART~~33840~1~BOOT~~33840~1~ERR~~2016~1~HUM~~2016~1~LBAT~~33840~1~MAIN~~33840~1~POW~~2016~1~WLAN~Aktuell~Zustand~~°C~~ Das kommt rüber. Jetzt brauche ich nur abzufragen ob da "Test Heizung" drin endhalten ist (Seitenüberschrift/"heading"). Wenn ich mir jetzt den kompletten String merke und z.B "33840~1~ERR" gegen "63488~1~ERR" austausche und das sende, so kann ich das Symbol Error blinken lassen. Das gleiche funktioniert mit allen Anzeigen auf die gleiche Weise. Somit kann ich schon mal eine Menge von dem erledigen das mir so vorschwebt. Ist ungewöhnlich aber funktioniert wenn auch jedes mal der gesamte Bildschirm neu aufgebaut wird. Damit kann ich zumindest mal eine Störung Signalisieren und verhindern das im Automatik Betrieb der Vorgabewert für den Regler verändert wird. Weiterhin kann ich darüber die Umschaltung Normal Temperatur/Nachtabsenkung vornehmen. So weit so Gut. Ist durch die Brust in´s Auge wie man so schön sagt aber das funktioniert mit Blockly. Jetzt mal eine Frage, kann ich auch damit gezielt einzelne Segmente steuern oder muss ich immer alles senden das dann zum neuen Bildaufbau führt (Sieht nicht so sexi aus aber ginge). Anders habe ich es nicht hinbekommen einen Zustand vom ioBroker auszugeben. Mache ich oder habe ich da noch was FALSCH gemacht. oder denke ich mal wieder falsch ?

joBr99 commented 1 year ago

Nein, immer die komplette Seite, einzelne commands für die ui Elemente wäre viel zu langsam. (Am Anfang gab's einen pro Zeile auf Card entities, war langsam)

Strommix commented 1 year ago

Kannst du die Indikatoren noch erweitern auf Handbetrieb und Automatikbetrieb dann könnte ich Partibetrieb und Boost weglassen also einfach nicht anlegen. Dann baue ich mir den Rest über CustomSend zusammen ist aufwändig aber dann habe ich alles was ich benötige um meinen Wunsch zu erfüllen und Du müßtest nicht viel machen. Ist nicht sexi aber so oft wird die Anzeige auch nicht gewechselt meist geht eh keiner an das Thermostat und der Rest funktioniert über Blockly automatisch. Ich finde das klasse was du da auf die Beine gestellt hast. Darauf muss man erst mal kommen so ein Teil umzubauen und zu "umzukrämpeln". Wenn das der Hersteller geahnt hätte ginge das sicher nicht. Jetzt ist es so das er sicher mehr verkauft weil es geht. Umgekehrte Polnische Notation halt ! :-)

joBr99 commented 1 year ago

Ich denke das ist was für @Armilar, der Firmware ist es vollkommen egal was da angezeigt wird. da kann man jedes Icon, welches in der Firmware ist anzeigen.

Armilar commented 1 year ago

Oh seid ihr soweit ;-)

Auto und Manuell gibt es doch im Thermostaten. Die funktionieren auch.

https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#thermostat---cardthermo---channel-thermostat

Die ersten beiden Mode's

Strommix commented 1 year ago

Bei dem Typ Termostat wird mir das nicht angezeigt ! Auch Atribute erweitern geht auch nicht. image image

Aber wenn ich als Typ Klimaanlage eingebe ! Darauf bin ich jetzt nicht gekommen. Ich bau das mal zusammen und Poste es wenn das funktioniert. Wird was dauern, Rentner haben immer Terminstress ! :-))

Strommix commented 1 year ago

@Armilar So den Thermostaten kann ich so weit gebrauchen. Der hat jetzt folgende Modi : `Mode wird über externe Datenpunkte gesteuert. Hierzu legst du dir unter 0_userdate.0. einen Ordner deiner Wahl an. In diesem Ordner können jetzt bis zu 5 Datenpunkte (Alle vom Typ boolean (true/false)) angelegt werden:

AUTOMATIC MANUAL PARTY VACATION BOOST ` Könntest du da noch einen bei bauen ? ERROR Numerisch Anzeige im Zustand "Fehler : Nr." oder nur"Nr." Anzeige sollte ROT sein Drückt man auf das Symbol so geht eine Meldung raus wie beim Boost z.B

(Versucht habe ich das mal in dem ich den Party-Modus umgebaut habe zum "Fehler" sah Gut aus. Das selbst zu erweitern traue ich mich nicht dran und das ist im Austauschteil also muss das Global kommen und nicht Lokal).

Meine Thermostate die ich hier habe, geben über z-wave auch einen Fehler aus.

Dann fange ich mal mit dem Blockly an das müßte gehen.

Strommix commented 1 year ago

@Armilar

Nun habe ich mit dem Thermostaten schon eine Weile rumgebastelt. Meine Idee den CustomSend zu benutzen um die Funktion anzupassen musste ich verwerfen. Damit kann man zwar die Anzeige verändern und auch die Werte usw. anzeigen aber sobald ein Tastenfeld betätigt wird ist alles zu nichte gemacht. Nun Gut es war ja auch ein Versuch. Die Bedienung ist schon etwas merkwürdig oder meine Denkweise ist es. Wenn ich hand oder Manuel betätige sollte der Mode wechseln oder der Datenpunkt true/false werden. auch die Anzeige und die Taste sollte leuchten (Farbe wechseln). Drücke ich aber nach dem ich Automatik angewählt hatte noch mal die Taste Automatik (A) so wechselt es nach Manuel und die Taste wird Dunkel ? Auch die Manuelle Taste verhält sich komisch. Party Boost und Urlaub scheinen OK zu sein wenn das auch noch mal im zusammenspiel getestet werden müßte. Auch wenn ich vom ioBroker den Zustand der LowBat verändere wird der erst beim erneuten Seitenwechsel angezeigt. Irgendwie scheint es unfertig zu sein oder ich Irre. Würdest du dir das noch mal ansehen ? Auch die Beschreibung des Thermostaten scheint verschwunden zu sein oder der Medienplayer hat Sie überschrieben. Wenn das so OK sein sollte, so kann ich die Leider nicht gebrauchen dann muss ich mal sehen was ich da mache.

Armilar commented 1 year ago

Drücke ich aber nach dem ich Automatik angewählt hatte noch mal die Taste Automatik (A) so wechselt es nach Manuel und die Taste wird Dunkel ?

Auch die Beschreibung des Thermostaten scheint verschwunden zu sein oder der Medienplayer hat Sie überschrieben. Wenn das so OK sein sollte, so kann ich die Leider nicht gebrauchen dann muss ich mal sehen was ich da mache.

Strommix commented 1 year ago

Bei der "Taste" (A) ist es so das beim ersten Drücken die Taste gelb wird und auch die Anzeige auf Automatik geht. Ein erneutes Drücken schaltet wieder auf grau und auf Anzeige Manu. Das sieht schlüssig aus. Wenn denn nur eine Taste da wäre und diese Auto/Manu benannte wäre.

Jetzt zur "Taste" (M) die taste wird gelb und die Anzeige wechelt auf Manu. Ein erneutes drücken erzeugt nur ein Ausgehen dar Taste nach grau.

Besser wäre entweder nur eine Taste oder eine für Auto und eine für Hand die wechselseitig funktionieren und nach dem Tasten auch an bleiben. Erst bei einem Wechsel des Zustandes Auto/Hand leuchtet dann die Gewählte Taste. Das sollte auch per Programm möglich sein um automatisch in den Nachbetrieb umschalten zu können um eine Nachabsenkung zu erreichen. Dann wird vom ioBroker in den Automatik Modus gewechselt z.B um 22:00 Uhr und die Vorwahltemperatur auf 15°C gestellt um Energie zu sparen. Bei Party könnte man vom ioBroker die Tagtemperatur für 24h eingeschaltet lassen und bei Urlaub die Temperatur auf Nachtabsenkung damit keine Schimmelbildung endsteht. Boos könnte heissen 1h auf 40°C und dann zurück in den Automatikmodus (Eigentlich eine Dumme Funktion das macht ein Regler über die PID Anteile und nicht über eine Taste) Aber einige Leute stehen drauf. Ein Aus wofür hat sich mir bei einem Termostaten nicht erschlossen unterhalb einer Temperatur von 15°C droht Simmelbildung also Unsin. (Wissen aber die wenigsten). Batterie als Taste macht keinen Sinn, das muss gesteuert vom ioBroker kommen, der hat die kontrolle. Ach ja bei Automatik sollte die Temperaturvorwahl ausgeschaltet sein Automatik heisst Automatik weil usw. Das würde ich unter einer Thermostatfunktion verstehen und habe das auch so bei mir Realisiert allerdings ohne NSPanel sondern per HabPanel das funktioniert prima und ist auch von der WAF so abgesegnet die schimpft nur über die Bildschirmbedienung na ja wen wunderts.

Sorry bei der Bechreibung meinte ich die Klimaanlage die eventuell auch in Betracht gekommen wäre. image

Ich hoffe ich habe das verständlich beschrieben ist halt ohne Auge in Auge Besprechung mit Bleistift und Papier, etwas schwierig und für ein Flussdiagramm feht mir das Programm und die Zeit.

Armilar commented 1 year ago

Du suchst eine Antwort für exakt dein Problem...

Der Thermostat wurde für einen Thermostaten konzipiert --> Macht das was ein Heizungsthermostat benötigt. Die Klimaanlage wurde für Klimaanlagen konzipiert --> Macht auch das was Klimaanlagen machen sollen.

Du benötigst eine individuelle Steuerung für deine Therme --> Ist das, was die cardThermo aktuell aber nicht hergibt.

Was ich machen könnte, ist die Card so umzugestalten, das jeder Zustand individuell mit On/Off-Color, On/Off-Icon und Zustandstext aus dem PageItem gesteuert wird. Das wird aber etwas dauern. Du kannst aber auch eine individuelle Lösung bauen.

joBr99 commented 1 year ago

lol Flussdiagramme, anyways

Das ist der Ursprung von cardThermo

https://www.home-assistant.io/dashboards/thermostat/

Eine Karte zum Einstellen der Temperatur und des Modi. Iobroker Implementierung mag etwas anders sein, aber bei Homeassistent kann man mit den Buttons unten exakt einen Modi einstellen. Wenn man von schedule auf manuell stellt, wird manuell aktiv.

Die Pfeile könnte man deaktivierbar machen, aber ich seh da noch nicht so ganz den use case, wenn man in schedule/automatic ist und man die Pfeile benutzt sollte automatisch manuell aktiv werden.

Armilar commented 1 year ago

Die Pfeile könnte man deaktivierbar machen, aber ich seh da noch nicht so ganz den use case, wenn man in schedule/automatic ist und man die Pfeile benutzt sollte automatisch manuell aktiv werden.

Sehe ich aber völlig anders. Ich kann im Automatikmodus sein, jedoch dennoch den Setpoint des Thermostaten setzen können. Ebenso für den manuellen Modus. Bei den Thermostaten, die ich bislang hatte HmIP und Max! bedeutet "Auto" Das sich der Thermostat nicht über ioBroker steuern lässt (Die durchlaufen dann ihre eigene Logik aus App und Co.). Erst im "Manual" lassen sich diese Thermostate auch extern steuern. Also wäre es grundsätzlich nicht von Vorteil, wenn die Pfeile im Thermostaten bei AUTO nicht funktionieren oder gar weggeblendet werden...

joBr99 commented 1 year ago

Jo, innerhalb der Firmware würde ich die nicht automatisch deaktivieren, höchstes nen zusätzliches Flag/Parameter womit man das machen kann. Ich wüsste halt nicht wofür ich das Benutzen wollen würde. In jedem Modi kann man irgendwas sinnvolles mit den Pfeilen machen.

Was das Panel am ende macht hängt ja stark am Backend.

Bin mir gerade nicht sicher was Homeassistent macht wenn man die Temperatur im Schedule ändert, ich rufe da nur die HA API auf und er macht das was auch in der Web UI passieren würde. Ich denke er ändert in Schedule/Auto die Temperatur bis der nächste Abschnitt im Zeitplan erreicht ist.

Armilar commented 1 year ago

Ich für meine Verhältnisse benötige das gar nicht. Eigentlich ist da ein permanenter MANU-Betrieb drin. Jegliche Logik ist im ioBroker.

Also:

Das wars dann auch schon...

Die Thermostate waren noch nie in Störung und ich erwarte es auch nicht. Ebenso weiß das Haus wer und wann jemand zuhause ist und steuert somit auch die Zieltemperaturen. Naja und die Nacht ist ja über Standardprofile (je Wochentag) hinterlegt. Wüsste nun nicht, dass ich dem Thermostaten das auch noch mitteilen sollte. Und wenn da unten jemand rumzappelt, dann weiß das Haus ebenfalls, dass der sogenannte Partymodus (sprich herauszögern der Absenktemperatur) aktiv ist.

joBr99 commented 1 year ago

Wenn man ne Störung auf dem Panel mitteilen möchte könnte man auch einfach ne Benachrichtigung anzeigen mit popupNotify, störung sollte ja kein Dauerzustand sein.

Armilar commented 1 year ago

Ja ich könnte für die Störung (den Datenpunkt gibt es ja) auch einen Indikator setzen. Eintragen im Alias und dann ist er auch schon da (Störung signalisiert durch Icon in rot). Aber stimmt schon - Optionale Nachricht direkt auf den Screensaver und dann sehe ich Störungen auch viel schneller. Wenn Störungen ein Dauerzustand sind, würde ich mich nach anderer Technik umsehen ;-)

Strommix commented 1 year ago

Es ist schwierig ein Bedienkonzept so über Text rüber zu bringen. Ich möchte damit eine Gastherme Steuern die im Normal fall über eine Tabelle auf unterschiedliche Temperaturen gestellt wird. Die eingestellte Temperatur die aus der Tabelle möchte ich anzeigen und die soll nicht verändert werden können. Das mache ich über ioBroker. Das ist Automatik. Beim Handbetrieb ist es so, das die Tabelle ausgeblendet wird und eine Verstellung mittels Taster ermöglicht wird (min/Max ist ja schon Prima vorhanden und lässt sich Parametrieren. Den Handbetrieb lasse ich für max. 5h aktiv dann geht es wieder mit der Tabelle los. Boost werde ich nicht aktivieren (Ist ja auch kein Problem Parametrierbar. Urlaub ist genau so, das mache ich von der Zentralen Stelle aus. Anzeigen ne nicht nötig dafür gibt es ein Tablett. Party wie Urlaub. Feuchte keine Ahnung wofür. Batterie für eine Therme macht das keinen Sinn. Ein/Aus (Power) damit könnte ich die Therme ein/Aus schalten (Ist möglicherweise Unsinn). Dann baue ich einen 2 Punkt Regler oder einen Stetigen Regler in Blockly der versorgt dann die Therme mit dem Sollwert. Ich gebe noch nicht auf ! Wenn nicht mit Standard dann bastel ich noch rum und baue das mit ESP32 und einen 3,5" TFT selber über MQTT habe ich da schon so einiges am laufen. Das NSPanel sieht nur so Toll aus und hat mit dem was Ihr gebaut habt Potential für mehr.

Ich war schon selber dran mit einem ESP32 und einem 3,5" TFT einen Heizungsregler zu bauen der dann die Raumtemperatur misst und über einen PID Stetigregler den Setpoint für die Thermostate dem ioBroker mitteilt und der verteilt es an die beteiligten Thermostate. Mir fehlt die Zeit und ESPHome oder Tasmota kenne ich nicht. der ESP32 ist so leistungsfähig das der einen PID locker hinbekommt. nur die Software ist etwas tricki wenn man die Einstellung des PID automatisieren möchte. Das wäre etwas davon habe ich schon so oft gelesen, kein Regler den ich kenne (Aus dem SmartHome Breich kann das. Viele hätten das gerne da Heizkörper sch.. eingebaut sind oder die Räumlichen Gegebenheiten das versaubeuteln. Regler mit den Funktionen in das NSPanel und das wird ein Hit. Jeder Raum hätte dann ein Thermostat (Wenn man möchte) und dann könnte man das optimal einstellen. Könnte ein Verkaufsschlager sein, Den kombiniert mit Licht, Alarm, Farbe, Klima usw. der Knaller! Sorry mit Mir gehen mal wieder die Pferde durch.

Strommix commented 1 year ago

Hallo @Armilar

Jetzt habe ich mal wieder Zeit mich drum zu kümmern. So wie das ist kann ich es nicht gebrauchen. Ich habe hier etwas gefunden das ist aber etwas Anders als du es beschrieben hast.

https://docs.nspanel.pky.eu/card-climate/

Da sehen die Bilder etwas Anders aus als bei Deiner Doku. Auch gibt es da eine Heizungspumpe?! Das könnte das sein was ich suche. cards:

Momentan habe ich das über HabPanel so am laufen : image

Das funktioniert und ist ausreichend aber nicht sexi ! NSPanel ist sexi :-)

joBr99 commented 1 year ago

I don't see a ToDo here, the card has anything that is in that picture.

image

Armilar commented 1 year ago

And below is a Blockly script to control a relay with the thermostat page.

image

https://forum.iobroker.net/post/892389