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.

    Ok, in diesem Fall wäre bei Einsatz eines PT1000 eine elektronische Ergänzung per Messbrücke und Verstärker ziemlich nützlich, da du Wert auf eine noch relativ genaue Messung legst.

    Ich kann bei dem von mir angedeuteten Verfahren nicht hinreichend Erfolg versprechen, insbesondere weil hierfür eine etwas aufwändigere Kalibrierung erforderlich wäre.

    Am interessantesten wäre die Verwendung des vorhandenen Sensors an BT3, falls dieser zu einer Kommunikation bewegt werden könnte.

    Ein PT1000 kam ja nur zur Sprache, weil der Platz für einen digitalen Sensor nicht ausreichte.

    Hier täte ich aus Sicherheitsgründen für den Einbau eines Sensors nicht viel basteln.

    Ich kenne die Oberflächenstruktur an BT3 nicht, vermute aber dass der vorhandene Sensor dort an der Speicherhülle befestigt ist. Wenn dort genügend Platz zum temperaturstabilen Ankleben oder gar Anschrauben eines digitalen Sensors, wie einem 18B20 im Metallröhrchen vorhanden ist, sollte diese Montage bevorzugt werden.

    Ggf. kann eine zusätzliche Wärmeleitung von BT3 zum Sensor hergestellt werden, einen systematischen Messfehler bei höheren Wassertemperaturen in Kauf nehmend. Wenn die Umgebungstemperatur um den Speicher wenig schwanken sollte, was ich mal vermute, dann ließe sich dieser Messfehler per Messwertvergleiche zwischen eingebautem Sensor (Anzeige) und 18B20 entweder per Korrekturfunktion oder Lookup-Tabelle hinreichend verringern.

    Prinzipiell könnte die Messung der Umgebungstemperatur zusätzlich zur Fehlerkorrektur herangezogen werden, was jedoch relativ aufwändig wäre und deshalb vermutlich nicht in Frage käme.

    All dies ist letztlich ein Workaround, wenn der vorhandene Sensor bzw. Mikrocontroller nicht zu einer nutzbaren Kommunikation bewegt werden kann und der Einbau eines 18B20 nur in größerem Abstand von bspw. 2 bis 4 cm (grob geschätzt) zu BT3 gelingt. Eine Wärmeleitung von BT3 zum 18B20 erwähnte ich bereits, kann jedoch nicht einschätzen, wie gut diese gelänge, incl. umgebender Wärmeisolierung dieser Wärmeleitung. Ein Kupferblech mit Wärmeleitpaste könnte die Wärmeleitung realisieren. Schließlich wären in jedem Fall Messwertvergleiche heranzuziehen, um die Nutzbarkeit einer solchen Anordnung zu prüfen - und ggf. zu verwerfen.

    In der Tendenz stimme ich Rolf zu, aber nicht in der Absolutheit.

    Bei kleinem Messbereich und evtl. niedrigem Anspruch an die Genauigkeit, was bspw. für eine Regelung durchaus genügen kann, würde eine schlichte Reihenschaltung aus konstantem Widerstand und PT1000 an der AddOn Referenzspannung genügen.

    Der evtl. zusätzlich erforderliche elektronische Schaltungsaufwand (Messverstärker ...) hängt in erster Linie von der angestrebten Anwendung und deren Messgenauigkeitsanforderungen ab.

    ingmarstein:

    Wenn du uns deine konkrete Anwendung bzw. Einsatzzweck schilderst, könnte vielleicht eine genauere Empfehlung herauskommen.

    Ich sehe nur zwei Möglichkeiten:

    1. Digital, d.h. ein digitaler (intelligenter) Sensor liefert unmittelbar die Messwerte.
    2. Analog, d.h. ein analoger (dummer) Sensor wird in einen Spannungsteiler oder Messbrücke eingebaut, was eine analoge Spannung liefert.

    Schließlich wird der zu verwendende Sensor von dessen Einbaumöglichkeiten abhängen, wobei, wenn möglich, die erste Variante zu empfehlen wäre.

    Das vorliegende Problem ist offensichtlich die Nichteinbaubarkeit eines handelsüblichen digitalen Sensors.

    Zu meinem Posting #18:

    Dies zeigt, dass prinzipiell eine Umrechnung analoge Spannung -> digitaler Wert bspw. per Shelly Skript möglich ist.

    Der Umrechnungsaufwand ist umso geringer, je kleiner der interessierende Messbereich und je geringer die erforderliche Genauigkeit sind.

    Schließlich dürfte an den o.a. prinzipiellen Varianten nichts vorbeigehen.

    Anmerkung: Die Nichtlinearität des ESP32 internen Analog-Digital-Umsetzers dürfte entscheidend für die Nichtlinearität in der Umrechnung sein. Dafür kann imho Allterco nichts.

    sebastian73

    Interessantes Projekt :thumbup:

    Ich kenne den Ventilator nicht, aber meine "interne" Logik sagt mir, dass im Schaltplan von #11 die beiden Kondensatoren C3, C4 auch parallel geschaltet werden könnten, was vermutlich eine etwas höhere Drehfrequenz zur Folge hätte.

    Ich sehe somit nicht, dass dein U2-Shelly notwendigerweise gegenseitig verriegelte Ausgänge braucht.

    herumgemessen, da sind -neben der 220V WechselSpannung - nur 5V Spannungen und 6.3V Gleichstrom zu messen

    Das sind erst einmal unbrauchbare Angaben.

    1. Was ist bitteschön eine 5V Spannung (im Singular oder im Plural? :P )? Wechselspannung vielleicht?
    2. Einen 6.3V "Gleichstrom" gibt es schonmal gar nicht. Das muss eine Spannung sein.

    Das mal unabhängig von den obigen Reaktionen, die selbstredend alle ihre guten Seiten haben.

    Ich gehe ja schon ...

    DIYROLLY

    Schon klar.

    Erst einmal täte ich eine Lookup Tabelle mit linearer Interpolation einsetzen.

    Wenn dies nicht genügend genau sein sollte, wäre eine Brückenschaltung mit Operationsverstärker anzustreben.

    In jedem Fall ist eine Referenzquelle erforderlich, um festzustellen, wie groß die Messabweichungen von dieser Referenz sind.

    Und schließlich ist eine o.a. Lookup-Tabelle per KVS und geeignetem Frontend auch benutzerfreundlich einrichtbar.

    Ich sage nicht, dass ich dies in 3 Tagen realisieren täte, aber all dies ist möglich.

    Und mein Einwand richtete sich gegen eine angedeutete Unmöglichkeit.

    Trotz alledem ist selbstverständlich dein Know How immer willkommen. :)

    MR2021 Vermutlich bist du ein Java- oder C++-Coder. ;)

    Ich schrecke vor der Ausnahmebehandlung, welche du recht umfangreich in deinem Skript einsetzt, auf einem ESP32 zurück, aber evtl. kann dies genutzt werden.

    Ich bevorzuge möglichst robusten Code ohne Exceptionhandling, was auf Grund des Eventhandlings und dem Wissen über die Asynchronität der RPC recht gut gelingt.

    Und ob dieses Exceptionhandling in einem Skript hinreichend robust ist, erscheint mir nicht hinreichend gewährleistet.

    Ansonsten Hut ab vor deinen sehr umsichtig-vorsichtigen Skript-Code.

    Ich empfehle aber eher zielgerichteten Code, der nicht als Wollmilchsau-Schablone geeignet ist, dafür aber relativ schlank mit Reserve für Erweiterungen.

    Nur mal so als Rückmeldung,

    Gelewu17 :

    Selbstverständlich gelingt dein Anliegen - warum auch immer du das tun willst.

    Du schließt deine FritzBox, oder welches Gerät auch immer, an den Ausgang (O) deines Shelly an und trägst auf dem Shelly den passenden Zeitplan ein.

    Selbst wenn sich zeitlich ungünstig ein Stromausfall ereignen sollte, wird danach die FritzBox hochfahren - alles gut.

    Du kannst zum temporären Ausschalten einen Timer verwenden oder schlicht zwei Zeitpläne, die geringfügig versetzt aus- und einschalten.

    Der Rest ist schlicht TESTEN. ;)

    Die pauschale Einstellung zu einem zentralen System ist so nicht geeignet.

    1. Ein zentrales System kann bei Überwachung, Speicherung und auch Dashboard für bspw. Smartphones helfen. Soweit Ok ... aber
    2. Wenn es um spezielle Funktionen zum schalten, steuern, regeln eines an einen Shelly Plus angeschlossenen Gerätes geht, ist ein Skript unschlagbar, weil dies
      1. immer arbeitet, solange Stromversorgung anliegt,
      2. auch dann funktioniert, wenn das übergeordnete System ausfällt oder durch ein anderes ersetzt wird und
      3. am schnellsten reagieren kann, weil keine zusätzliche Kommunikation erforderlich ist.

    Somit sollte die angestrebte Funktionalität, wenn möglich, so nahe wie möglich am Gerät implementiert werden, bspw. per Skript.

    Smartscha:

    Dein Skript ist erst einmal nicht schlecht strukturiert, aber

    es wäre besser, wenn der Eventhandler an die aufgerufene Funktion die bereits vorliegenden und benötigten Daten per Parameter übergibt. Dann braucht nämlich deine Funktion checkPowerAndSwitch() nicht die benötigten Daten per RPC anzufordern, was eh nicht synchron gelingt. Auf die Schnelle etwa so:

    Code
    // Aufruf im Eventhandler:
    checkPowerAndSwitch(event);

    Statt des Aktual-Parameters "event" kann es zweckmäßig sein, eine Unterstrukltur "event.xxx" als Parameter zu verwenden.

    Die Dokumentation auf https://shelly-api-docs.shelly.cloud/gen2/ ist tatsächlich ziemlich gut, wenn die einzelnen Abschnitte im wesentlichen vertraut sind. Dies kostet allerdings einige Mühe und, je nach Vorkenntnissen, viele Experimente. Aber dann ... :)

    @De kat : Sorry, ich habe mir nicht die Zeit genommen, deine ausführlichen Vorschläge zu studieren. Aller Wahrscheinlichkeit und Erfahrung nach sind diese sehr gut. ;)

    Einfach gelänge dies mit temporärem Einschalten statt eine gemessene bzw. erfasste verbrauchte Energie zu verwenden.

    Dafür ist eine schlichte HTTP-Kommunikation geeignet, abhängig davon, ob es sich um einen Plug S (erste Generation) oder einen Plug Plus S (zweite Generation) handelt.

    Dazu gibt es gut dokumentierte Seiten, in denen man aber erst einmal Orientierung finden muss, was zunächst nicht ganz leicht ist.

    Übergreifend: https://shelly-api-docs.shelly.cloud/

    Dann entweder zu "First Generation Shelly" oder zu "Second Generation Shelly" navigieren ...

    Zum Plug S (1. Gen.):

    Code
    http://<IP-Adresse des Plug S>/relay/0?turn=on&timer=<Dauer in s>

    Die Verwendung der verbrauchten Energie ist erheblich aufwendiger und mit einem einzelnen Plug S afaik nicht realisierbar. Dies könnte evtl. mit der Cloud gelingen, was ich nicht empfehlen kann (Kanone auf Spatz und ohne Funktion, wenn keine Cloud-Verbindung).

    MatLeb

    Der bebilderte Schaltplan von SparkyMaster ist eindeutig.

    Wenn du vor Ort die dazu passenden Leitungen nicht finden kannst, kann dir hier dazu niemand wirklich helfen. Dann brauchst du eben vor Ort Hilfe.

    Diese Schaltung ist für deinen Zweck unter Verwendung eines Shelly Plus 1 (mini) bestens geeignet.

    Die Variante "Shelly schaltet Bewegungsmelder ein" ist suboptimal, was ja bereits festgestellt wurde.

    Du selbst hast die andere Variante "Skript auf dem Shelly" auch bereits bevorzugt.

    Was ist nun dafür zielführend zu tun?

    1. Verschalte deine Geräte nach bereits erwähntem Schaltplan - am besten von jemandem realisiert, der sich hinreichend mit Elektrik auskennt!
    2. Erstelle ein Skript auf dem Shelly, welches die gewünschte Funktionalität realisiert!
      Dabei kann dir hier durchaus geholfen werden, u.a. von mir.

    Es ergibt wenig Sinn, den zweiten Schritt vor dem ersten zu tun.

    Wenn 1. funktioniert, kannst du dich hier gerne nach dem 2. erkundigen ... ;)

    Dann ist es nützlich, wenn du auch mitteilst, wie deine Skriptkenntnisse sind - möglicherweise sind keine vorhanden ...

    Ich habe kein solches Gerät, kann meine Vermutung also nicht testen.

    Vermutlich gelingt dies per RPC:

    Code
    http://<IP-Adresse deines Gerätes>/rpc/EMData.DeleteAllData?id=<Kanal-Nr>

    Siehe hierzu auch: https://shelly-api-docs.shelly.cloud/gen2/Component…alldata-example

    Da inzwischen die Web-UI von, zumindest einigen Geräten, der zweiten Generation erheblich weiterentwickelt wurde, täte ich auch dort mal nachsehen.

    In der App, welche ich normalerweise hierfür nicht verwende, unter Create schedule - Aktion auswählen -> hinzufügen

    Dort werden drei mögliche Aktionen angeboten, von welchen eine zu wählen ist.

    Sollte dies nicht gelingen, könnte evtl. in Firmware-Reset helfen mit anschließender Neueinrichtung.

    Wenn du magst, kannst du dir auch (vorher) per Web-Browser alle Schedule Jobs anzeigen lassen, was am übersichtlichsten mit dem Mozilla Firefox gelingt.

    Code
    http://<IP-Adresse deines Shelly>/rpc/schedule.list

    Siehe hierzu auch die Dokumentation: https://shelly-api-docs.shelly.cloud/gen2/Component…rvices/Schedule

    Dies bietet inzwischen auch die Web-UI an, die RPC-Anforderung per HTTP GET ist aber vielseitiger, was bei dir keine Rolle spielen dürfte.

    Und ich sah soeben, dass in der Firmware 1.0.8 alle Zeiteinstellmöglichkeiten der OS-Shedules zur Verfügung stehen - sehr schön.

    Das passt zwar nicht zur Frage des TE, ist aber irgendwo erwähnenswert. :)

    Wow, in der Firmware Version 1.0.8 sind sogar fortgeschrittene Schedule Einträge lesbar. Dann braucht man dafür nicht mehr HTTP GET - wenn dies so bleibt. ;-)

    Ob das Anlegen solcher sehr spezieller Schedule Jobs auch per Web-UI gelingt, muss ich gelegentlich noch testen.

    MatLeb

    Am Plus 1 geht das gewünschte locker unter Verwendung eines Skripts und zweier Schedule Jobs.

    Nach dem, was du bisher schriebst, vermute ich, dass dir dafür die Kenntnisse fehlen, oder?

    Ansonsten könntest du das Gewünschte mit einem Shelly Plus 2 (vermutlich auch Shelly 2.5, erste Generation) oder zwei Shelly (Plus) 1 (mini) umsetzen - nicht getestet.

    Ein Kanal bzw. ein Shelly schaltet den Bewegungsmelder per Wochenpläne ein und aus.

    Der zweite Kanal oder Shelly reagiert auf den Bewegungsmelder.