Beiträge von eiche

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    Nach anfänglicher Zufriedenheit mit den TRV ist diese, meine Zufriedenheit, inzwischen etwas eingeschränkt.

    Vorteile:

    1. Die Montage ist einfach.
    2. Die Geräte arbeiten autark.
    3. Sie sind unabhängig von sonstiger Umgebung ad hoc einstellbar (ohne Wochenpläne).

    Nachteile:

    1. Sie müssen in gewissen Abständen, die sehr unterschiedlich sein können, geladen werden - naheliegenderweise.
    2. Ihre Netzwerkeinbindung fällt mitunter aus, was nach meiner Erfahrung nicht immer schnell mal per Reset behoben werden kann - Grund unbekannt.

    Die Nachteile nahm ich als Grund zur Entwicklung eines Thermostats auf der Grundlage eines Shelly Plus 1, AddOn, Sensor(en), einem einfachen Stellantrieb für das Ventil, zweier Mikrotaster zwecks einfacher Zieltemperatureinstellung und einem Skript.

    Das Skript implementiert die Temperaturregelung ohne Erfordernis einer Umgebung.

    Die Taster stehen für eine simple Änderung der Zieltemperatur zur Verfügung - bspw. in 0.5°C Schritten.

    Das Skript regelt die Temperatur per Ein- und Ausschalten des Stellantriebs.

    Zusätzlich kommuniziert (optional) das Skript per MQTT und es liefert insbesondere eine informative und interaktive Webseite mit aktuellen Daten und teilweise einstellbaren Wochenplänen.

    Zwei Nachteile will ich nicht verschweigen.

    1. Man muss die Stromversorgung irgendwie in Richtung Stellventil kriegen - ich habe an einer Stelle noch die improvisierende Zuleitung mit Schuko-Stecker in Betrieb.
    2. Es gibt keine optische Anzeige am Gerät. Das Drücken eines Mikrotasters wird akustisch per einschalten des Relais für 1s leise rückgemeldet. Ansonsten ist ein Smartphone bestens geeignet, die vom Skript gelieferte Webseite zu nutzen und dort die aktuelle Zieltemperatur abzulesen.

    Solange die IT-Infrastruktur arbeitet, kann das Gerät selbstverständlich dort eingebunden sein und vieles mit den Daten, einem Dashboard ... angefangen werden. Die Autarkie und deren Nutzbarkeit ist eines meiner wesentlichen Ziele, was erreicht wurde. Viele Tests haben bisher eine hohe Stabilität meiner Anordnung gezeigt. Dieses so zusammengestellte Gerät ist dazu geeignet, einen TRV komplett zu ersetzen. Es arbeitet zugleich autark und ist bei Ausfall der IT-Infrastruktur über seinen AP erreichbar und somit nutzbar.

    Wem dies alles evtl. zusagt, dem kann ich meine Dokumentation + herunterladbarem Skript empfehlen, was hier zu finden ist:

    https://iotig.eichelsdoerfer.net/index.php/loes…r-shelly-script

    request.query kann man auch direkt parsen, wenn der Parameter/Query im JSON Format vorliegt.

    Gegenwärtig versuche ich das fetch API zu verstehen.

    Damit soll man das gleiche erreichen können, mit sehr viel kürzerem Code, was hier optimal wäre.

    Aber ich habe es noch nicht so recht verstanden.

    Hm, damit werde ich mich bei Muße und genügend Zeitreserve mal beschäftigen.

    Danke für die Hinweise.

    Zu deinem Beispielcode auf meine Frage hin - also AJAX.

    Gibt es einen besonderen Grund, warum du die Methode POST gewählt hast?

    Ich habe selbstverständlich den body Inhalt im Skript verwendet, aber ein JSON Parameter ginge ja auch per GET.

    Mein Projekt Shelly Plus 1 mit AddOn und Webseite per Skript hat Fortschritte gemacht.

    Nun werden alle vorgesehenen Schedule Jobs angezeigt und der Anwender kann die Daten jedes Jobs ändern.

    Nur die automatische Aktualisierung eine Sekunde nach einer Job Änderung tut es noch nicht, was beim ad hoc verändern der Zieltemperatur bereits geht.

    Vielen Dank an @De kat, der mich teilweise dabei unterstützt hat.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Der Screenshot zeigt oben die Auswahl der regelmäßigen Aktualisierungen nach Bedarf.

    Die obere Tabelle enthält die aktuellen Daten, worin man die Zieltemperatur ad hoc ändern kann - per Pfeil/Dreieck Symbole.

    In die dort noch leeren Tabellenfelder will ich noch zusätzliche Informationen einbauen.

    Die untere Tabelle zeigt die eingerichteten Wochenpläne als Schedule Jobs.

    Unten kann man Werte eines Wochenplans ändern. Dazu ist mindestens die Nummer (Id) des Schedule Jobs einzutragen bzw. auszuwählen.

    Optional können dazu der Zustand der Aktivität (enable) die Uhrzeit und die Zieltemperatur festgelegt werden.

    Bleiben Uhrzeit- oder Zieltemperatur-Felder unbearbeitet, so bleiben die bisher eingestellten Werte erhalten.

    Es wird also nur das geändert, was der Anwender entsprechend wählt bzw. einträgt.

    Diese Webseite wird komplett vom Shelly per Skript geliefert, ohne irgendein zusätzliches System.

    Ob ich ein Ausklappen der Wochenpläne implementiere(n kann), weiß ich noch nicht.

    Jedenfalls ist auf diese Weise der Shelly zur Temperaturregelung an Heizkörpern bestens geeignet und insbesondere autark.

    Für die Nutzung der Wochenpläne braucht der Shelly allerdings nach jedem Reboot eine Synchronisierung per NTP Server.

    Andernfalls können die Wochenpläne nicht funktionieren.

    Die ad hoc Einstellung der Zieltemperatur gelingt auch ohne Zeitsynchronisation und dies auch per zwei am AddOn angeschlossenen Mikrotastern.

    Für Letzteres habe ich ursprünglich mit dieser Website per Skript begonnen.

    Mal sehen, was mir dazu noch gelingen wird.

    Wenn ich das Projekt abgeschlossen habe, will ich es an anderer Stelle ausführlicher dokumentieren.

    Soeben fiel mir auf, dass ich die Wochentage zu einem Wochenplan noch nicht editierbar gemacht habe. Das werde ich in Kürze noch einbauen.

    Edit:

    Ich habe zuvor noch nie etwas mit AJAX codiert. Es ist spannend. Mal sehen, wie damit die Aktualität der Shelly-Anwendungsdaten zu realisieren ist. Ich bin zuversichtlich. @De kat hat mir Code mit AJAX bereitgestellt, den ich nach Recherche allmählich so durchdringe, dass ich eigenkreativ werden kann. Die zeitlichen Verzahnungen sind hier wesentliche Aspekte. Sowohl auf dem Shelly als auch im Browser. Damit sollte die Usability gesteigert werden können - alles, solange der Shelly Speicher ausreicht, was er bisher tat.

    Edit 2: Stand 2023-12-20

    Das Skript, welches die interaktive Webseite nach obiger Abbildung liefert, läuft vermutlich sehr stabil.

    Leider gibt es Probleme mit dem RAM, wenn ich im Editierbereich - in der Abbildung ganz unten - noch die Wochentage zum anklicken hinzufüge.

    Wir, @De kat und ich, arbeiten daran.

    Notfalls muss hierbei die Editierbarkeit der Wochentage entfallen.

    Auch so arbeitet das Skript bereits recht anwendungskomfortabel und bietet mehr als ich mir anfangs vorzustellen vermochte.

    Immerhin kann es auch dann genutzt werden, wenn das WLAN komplett ausfällt und der Access Point des Shelly genutzt wird.

    Genau das war und ist mein Ziel. Nur so kann mein Projekt komplett einen TRV ersetzen und mehr als letzterer Stabilität bieten.

    Edit 3:

    Ein Behelf kann darin bestehen, dass man mit einem anderen Mittel, bspw. auf tools.eichelsdoerfer.net zu finden, bestimmten Schedule Jobs bestimmte Wochentage zuordnet und dann mit meiner bisherigen Implementation in solchen Jobs die Zeiten und Zieltemperaturen einstellen kann. Das dürfte für die allermeisten Fälle vollkommen genügen.

    Das ist interessant und neu für mich. Ich habe lange nicht mehr meinen Tasmota32-Geräten gearbeitet.

    Wenn ich meine Zisternenmesslösung neu zusammenstellen werde, schau ich da mal genauer hin.

    Ein wenig geben die Rules ja auch her, was Timer und die Tagesminuten betrifft.

    Ich habe mir eine Kommunikation zwischen den Rules und Berry-Funktionen teilweise ausgeklügelt.

    Das geht auch sehr gut. Dann ist anscheinend Berry noch gewachsen.

    Ich finde, dass das Shelly Scripting sehr viele und gute Möglichkeiten mitbringt, welche allerdings erst zu ergründen sind.

    Anfangs störte mich bspw., dass man keine Includes zur Verfügung hat, um ein Projekt auf mehrere Skripts verteilen zu können - der besseren Übersicht wegen.

    Man kann aber per auslösen von Ereignissen durchaus Skript übergreifend kommunizieren lassen, was ich anfangs nicht wusste.

    Entscheidend ist, dass man sich auf das Eventhandling einlässt.

    Die Nutzung des KVS ist bestens für anwendungsbezogene Konfiguration geeignet.

    Dass ich ein Fan der Schedule Jobs bin, ist vermutlich hinlänglich bekannt.

    Die Firmware internen Methodenstandards und API sind sehr überzeugend. Man kann sie per HTTP, per MQTT und eben auch in einem Skript nutzen. Aus allen Perspektiven lauten die Methoden gleich und sie besitzen afaik überall die gleichen formalen Parameter, nur die Notationen letzterer sind bei HTTP anders.

    Schließlich bieten so Skripte hervorragende Möglichkeiten, eigene Anwendungen für die Shellies zu implementieren - solange es die erforderlichen Hardware-Schnittstellen gibt.

    Der Mangel besteht hier imho eher in den eingeschränkten AddOn. Hier wünschte ich mir mal ein AddOn, welches die GPIO des ESP32 ausgiebiger zur Verfügung stellt.

    Und entsprechend General Purpose Methoden für die Nutzung der GPIO. Damit ginge noch erheblich mehr.

    Jedenfalls kommt mir das relativ offene System sehr entgegen. Die Standards nutze ich auch - Licht, Pumpen, Magnetventile schalten. Aber bspw. mein Projekt zur Temperaturregelung an Heizkörpern schlägt den TRV und ist eben kein Standard. Wer so etwas per Cloud macht, weiß nicht , was er tut. Da ist ein Skript die eindeutig bessere Wahl, und es funktioniert verlässlich.

    Ja, anfangs gab es merkwürdige Fehler bei der Skriptabarbeitung, die ich auch anmerkte, wurde aber leider nicht ernst genug genommen. Diese sind aber inzwischen beseitigt.

    Fazit: Mit Skripten geht sehr, sehr viel - wenn man will. :)

    Meine Vermutung: [auch OT]

    Die Sprache Pascal wurde relativ gut verstanden und sie ist konsequent strukturiert. Dass sie mal mit einigen Erweiterungen und Portierungen daher käme, hat vermutlich ihr Schöpfer, Herr Wirth, weder geahnt noch beabsichtigt. Jedenfalls wird ihr partieller Erfolg seine verständlichen Gründe haben.

    Brücke zur Shelly Firmware und deren Online Dokumentation: [weniger OT]

    Die Doku ist wenig zum lernen geeignet, aber als Nachschlagewerk sehr gut und ziemlich vollständig. Insofern überzeugen mich die Shelly Produkte incl. der Firmware und deren API Offenlegung.

    Ich halte Pascal für eine sehr gute Lern-Programmiersprache, wozu sie auch afaik von Niklas Wirth gedacht war. Immerhin lernte ich an Hand von Borland Pascal die ersten Dinge der OOP und verstand sie auf Grund der sehr guten Borland Bücher sogar. Das bot mir dann die Grundlage zum verstehen der OOP in C++ - meiner Ansicht nach noch immer die herausstechendste Sprache, wenn man sorgfältig damit codet. DAC sicher ist sie allerdings nicht.

    DAC ist meine ad hoc Schöpfung für Dümmster anzunehmender Coder. ;)

    Ich hätte mir früher aber auch nicht gedacht, dass ich mich mal mit JavaScript anfreunden täte. Aber die Aspekte der Programmiererei haben sich stark ausdehnend weiterentwickelt. Ich denke bspw. an das JSON Format.

    Und ja, Blockly fand ich zunächst interessant (für Anfänger). Als ich dann damit experimentierte, fand ich es für mich ... hm, wenig zielführend.

    Als Lernhilfsmittel ist Blockly vermutlich nicht schlecht, aus meiner Sicht als ausgedienter Lehrer. Ich habe aber bereits Erfahrung mit bspw. "Robot Karol" zwecks motivierendem Einstieg in's Programmieren/Coden gesammelt - und musste registrieren, dass die wenigsten meines Clientels die dort erworbenen Fähigkeiten auf eine ernsthafte Programmiersprache (hier; C unter C++) mitnahmen.

    Somit stimme ich dir, @De kat, zu, was Blockly betrifft.

    Interessant sind auch Vergleiche zwischen Tasmota32 mit Berry und der Shelly Firmware mit JavaScript Möglichkeiten. Beide sind Ereignis gesteuert zu verwenden, hier mit Events, dort mit Rules. Tasmota ist halt auf vielen ESP32 Schaltungen einsetzbar und in vielen Anwendungen nutzbar. Leider gibt es dort die von mir gerne genutzten Schedule Jobs nicht. Ich täte es begrüßen, wenn die Shelly Firmware auch auf sonstigen ESP32 Boards nutzbar wäre.

    Zu diesem, hier eingesetzten Shelly habe ich einen Abschnitt auf meinem Node-RED Dashboard.

    Hier sind die von mir fest vorgesehenen 8 Wochenpläne einseh- und editierbar.

    Diese Wochenpläne sind selbstverständlich auf dem Shelly implementiert - als Schedule Jobs.

    Das Dashboard stellt nur das Frontend für den Anwender bereit.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Das liefert ein Raspberry Pi 4.

    Ich bin skeptisch, ob ich dieses auch in einem Shelly Skript zur Verfügung stellen könnte. Vielleicht werde ich es gelegentlich versuchen. Das dürfte, wenn es gelingen sollte, aber hart an die Grenze des Machbaren gehen.

    @De kat

    Ich habe den Härtetest wie folgt durchgeführt und will es noch einmal tun.

    Über ca. 1 Stunde habe ich drei Endgeräte, 2 PC Web Browser und ein Smartphone, im 1s Refreshing laufen lassen. Es ergaben sich in dieser Zeit keine Probleme.

    Ja, ich bin davon weitgehend überzeugt, dass das Skript stabil läuft.

    Edit:

    Das Skript tut ja mehr als nur die Webseite liefern und die Interaktion mit dem Browser betreiben.

    Es regelt die Temperatur per Ventil-Stellantrieb, es kommuniziert per MQTT und es reagiert in Abständen von einer Minute auf Schedule Jobs oder solchen, die per Wochenpläne die Zieltemperatur ändern - letztere allerdings selten.

    Edit 2:

    Auszug aus Shelly.GetStatus:

    "ram_size": 245760,

    "ram_free": 130972,

    "fs_size": 458752,

    "fs_free": 122880,

    Da sollte noch etwas gehen. ;)

    Hier noch die erheblich bessere Variante zu obigem Skript.

    Sie ist besser, weil per Werte am Skriptanfang die gewünschten Dinge festgelegt und so leicht änderbar sind und weil man für eine Änderung jeweils nur an einer einzigen Stelle die Änderung vorzunehmen braucht.

    Außerdem ist das die Vorstufe zu einer Konfiguration außerhalb des Skripts im KVS.

    Man kann selbstverständlich die MQTT Payload komplexer gestalten, bspw. um die Ausgangs-Id erweitern.

    {"out":1, "schalte":"ein", "dauer":300} täte den Ausgang 1 für 5 Minuten einschalten.

    Hierfür müsste aber action() noch angepasst werden.

    Ich empfehle hierfür ein kurzes Skript, weil du damit das Topic selbst frei festlegen kannst. Das ergibt sich aus der Dokumentation.

    1. https://shelly-api-docs.shelly.cloud/gen2/General/RPCProtocol - zu RPC (Remote Procedure Call)
    2. https://shelly-api-docs.shelly.cloud/gen2/Scripts/S…es#mqtt-support - zu MQTT im Skript
    3. https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Switch - zum schalten des Ausgangs
    4. https://shelly-api-docs.shelly.cloud/gen2/Scripts/S…ures#shellycall - zur RPC Nutzung im Skript
    5. https://shelly-api-docs.shelly.cloud/gen2/Scripts/S…strings-in-json - zur Nutzung des JSON Formats

    Die Links sollen dir nur den Fokus geben. Die Doku ist sehr gut, aber auch umfangreich und nicht immer leicht verständlich. ;)

    Wenn du dir diese Doku nicht antun willst, nimm einfach das folgende Skript, baue es ein und stelle es auf automatischen Start (enable).

    Das kleine passende Skript hierzu - getestet mit Firmware 1.1.0-beta2. Firmware 1.0.8 machte bei MQTT.subscribe() merkwürdige Probleme.

    Man kann mehr Parameter nutzen, die aber hier nicht notwendig sind.

    Der Code geht besser, aber dann wird er für Anfänger schwerer verständlich.

    Code
    function action(topic, payload) {
      print(payload);
      let p = JSON.parse(payload); // liefert die payload Struktur als Objekt
      if(p.schalte!=="ein" && p.schalte!=="aus") return; // ein oder aus sind die akzeptierten Schaltwörter
      if(p.dauer===undefined) Shelly.call("Switch.Set", {id:1, on:p.schalte==="ein"});
      else Shelly.call("Switch.Set", {id:1, on:p.schalte==="ein", toggle_after:p.dauer});
    }
    
    MQTT.subscribe("dein/eigenes/topic", action);

    Die Funktion action führt das aus, was du willst.

    MQTT: Topic = "dein/eigenes/topic", Payload = {"schalte":"ein" bzw. "aus", optional "dauer":Sekundenwert}

    Hiermit kannst du dein gewünschtes Topic im Aufruf von MQTT.subscribe() einsetzen.

    Wenn du statt "schalte" mit "ein" bzw. "aus" lieber "on" mit true bzw. false nutzen willst, ist das Skript darauf leicht anpassbar.

    Ich möchte dir bei dieser Gelegenheit auch die Flexibilität per Skript aufzeigen.

    Es geht erheblich besser, wozu aber mehr Aufwand gehört.

    Die ohne Skript verfügbare MQTT-Kommunikation läuft über RPC erheblich anders und gewöhnungsbedürftig ab.

    Deshalb habe ich dir das kleine Skript empfohlen.

    Hinweis: Kopiere nicht per Markierung, Copy & Paste sondern über das Kopiersymbol am Codefenster! Andernfalls erhältst du nicht sichtbare Zeichen, welche die Shelly Firmware nicht verdaut.

    Edit:

    Ich korrigiere. In Firmware 1.0.8 lag mein Problem womöglich darin, dass ich beim aktivieren von MQTT auch ein Pre-Topic festlegen muss - teilweise verständlich.

    Überarbeitung

    Damit nicht unnötige Posts hier erscheinen, habe ich dieses überarbeitet.

    Der Shelly stellt per Skript eine Webseite bereit, die in verschiedenen Modi zyklisch refresht werden kann - oder auch ohne Refresh.

    Zusätzlich ist sie interaktiv. Der Anwender kann die Zieltemperatur um jeweils 0.5°C erhöhen oder absenken.

    Vorteile

    1. Man kann mit dem Shelly auch über dessen Access Point Adresse 192.168.33.1 kommunizieren, wenn man bspw. das Smartphone mit dem Shelly AP gekoppelt hat.
    2. Es sind keine zusätzlichen Kommunikationspartner wie ein übergeordnetes System oder ein MQTT Broker erforderlich.

    Screenshots der Webseite

    Die folgenden Screenshots zeigen die Darstellungen in einem HTML 5 fähigen Web Browser. Sie erscheinen sowohl auf einem PC als auch auf einem Smartphone. Sogar ein relativ einfaches Smartphone aus dem Jahr 2013 kann mit installierten Firefox diese Seite darstellen und automatisch refreshen. Einzig die kleinen Links links und rechts der Zieltemperatur sind mit dem alten Smartphone nicht so leicht zu aktivieren. Mit meinem aktuellen Smartphone geht das leicht.

    Jede Abbildung zeigt einen von vier konfigurierten Refresh Modi. Die aktivierbaren Links sind in gelb dargestellt.

    Es sind vier Zeitangaben (Datum und Uhrzeit) enthalten, die alle lokal auf dem Shelly vorliegen sollten. Daran kann der Anwender erkennen, wie aktuell verschiedene Dinge sind. Derzeit habe ich den Fall "Shelly ist nach reboot offline" noch nicht getestet. Hierfür sind sicher Codeänderungen erforderlich - ein Punkt auf der todo Liste.

    Die Zeitangabe oben, unterhalb des Gerätenamens gibt an, wann die Webseite vom Shelly geliefert wurde.

    Unter "Zieltemperatur" liegt der Zeitpunkt der letzten Änderung.

    Unter "Temperatur" und "Luftfeuchtigkeit" stehen die Zeitpunkte der letzten Wertregistrierung, also wann die Firmware des Shelly diese Werte per Event zur Verfügung stellte.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Code und HTTP Requests

    Statt dieser Refresh-Zyklus-Werte können selbstverständlich auch andere genutzt werden. Sowohl die Namen als auch die Werte liegen in folgendem Datenfeld.

    Code
    Mode = [ // e.g. four refresh modes, you may try one mode ;-P
      {name:"ohne Ladezyklen", value:0}, // without refreshing
      {name:"alle 60s", value:60}, // regular mode
      {name:"per Taster einstellen", value:1}, // adjust mode
      {name:"alle 10s", value:10} // one of possible multiple alternatives
    ]

    Der Modus "per Taster einstellen" bezieht sich auf zwei Taster zum schrittweisen erhöhen bzw. absenken der Zieltemperatur. Diese Taster sind am AddOn angeschlossen, Tastendrücke werden per Skript verarbeitet. Da hierbei kein Display vorliegt, kann bspw. ein Smartphone mit der Shelly Skript-Website genutzt werden. Damit die Anzeige zügig reagiert, wird hier in 1s Abständen refresht.

    Diese Struktur kann selbstverständlich editierbar im KVS abgelegt sein und von dort bei Skriptstart eingelesen werden.

    Der URL hat die folgende Struktur.

    Code
    http://<IP-Adresse des Shelly>/script/<Skript-Id>/data?m=<Modus Index>
    bzw. ohne Wahl des Modus und Verwendung des default Index 0
    http://<IP-Adresse des Shelly>/script/<Skript-Id>/data
    Zum verändern der Zieltemperatur gibt es zwei Alternativen.
    1. http://<IP-Adresse des Shelly>/script/<Skript-Id>/data?s=<neuer Wert>
    2. http://<IP-Adresse des Shelly>/script/<Skript-Id>/data?d=<Schrittwert>

    Der Request-Wert hinter data? kann alternativ drei verschiedene Parameter enthalten.

    1. m=<Refresh Modus als Index zum Datenfeld Mode (s.o.)>
      m=1 lässt die Webseite alle 60s refreshen
    2. s=<neuer Wert für die Zieltemperatur>
      s=12 setzt die Zieltemperatur auf 12°C
    3. d=<Änderung relativ zur vorliegenden Zieltemperatur, auch Vorzeichen behaftet>
      d=-0.5 senkt die Zieltemperatur um 0.5°C

    Der Codeabschnitt zu diesen Webseiten.

    Nochmals vielen Dank für die gute Grundlage, die @De kat zur Verfügung stellte.

    Die Variable Status mit deren Komponenten tT, tC und rh liegen im gesamten Skript an anderer Stelle, dort, wo nicht ganz regelmäßig die gemessenen Werte abgelegt und in regelmäßigen Abständen (Schedule Job) von dort nehmend geliefert werden. Diese werden zusammen mit einem Zeitstempel übertragen und landen in einer Zeitreihendatenbank - aber das ist ein anderes Thema.

    Die CSS-Angaben sind mir nicht sehr vertraut. Ich weiß halt, dass es so etwas gibt und die Struktur kenne ich auch, aber die genauen Bezeichnungen muss ich oft recherchieren und testen.

    So, nun sollte das Projekt vorläufig komplett sein.

    In meinem Projekt "Autarke Heizkreisregelung" per Shelly Plus 1 mit AddOn funktioniert der kleine Webserver im Skript nach Vorlage von @De kat inzwischen bestens.

    Hier mal die vorläufige Darstellung:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Es wird sogar ein 1s Reload Zyklus bewerkstelligt. Dieser sehr kurze Zyklus dient ausschließlich der Rückmeldung einer Zieltemperaturänderung per zwei Mikrotastern am Addon.

    Somit gelingt quasi eine Nachbildung des TRV mit anderen Mitteln und geringerer Ausfallwahrscheinlichkeit.

    Der TRV hat trotzdem noch partiell kleine Vorteile, die ich aber nicht brauche. Zudem werde ich irgendwann einmal den schlichten Regelalgorithmus (Zweipunktregelung) per Puls/Pausenverhältnis etwas verbessern.

    Btw, ein paar wenige CSS Parameter ließen sich auch vom Anwender per KVS konfigurieren. Nur das Design, hier in Tabellenform, bliebe gleich.

    Ich werde gelegentlich versuchen, auf der Webseite per Button die Umschaltung zwischen zwei Modi zu unterstützen. Damit kann der Anwender zwischen "Einstellmodus" mit zügigen Rückmeldungen (1s) und "Regelmodus" (60s) umschalten.

    Wesentlich hierbei ist, dass dazu neben dem Shelly + Zubehör ausschließlich ein Smartphone oder so gebraucht wird. Dabei ist selbstverständlich ungenommen, dass auch ein übergeordnetes System verwendet werden kann, aber eben nicht muss.

    Edit:

    angular.min.js kann wegen zu großen Umfangs nicht auf dem Shelly zur Verfügung gestellt werden. Somit müsste die Einbindung dieser Bibliothek per Verweis auf eine externe Quelle erfolgen, was klar möglich ist, dafür aber das Computernetzwerk nicht ausfallen dürfte.

    Nun ja, zaubern geht halt mit so einem kleinen Shelly nicht. ;)