Beiträge von eiche

    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.

    Wer viel misst, misst viel Mist.

    Das ist in diesem Zusammenhang schlicht eine Ausrede.

    Ich kenne einen solchen Spruch (ohne das Wort "viel") auch. Dieser ist aber ausschließlich in dem Sinne zu verstehen, dass man sich auch über das zu messende Signal und das Messgerät Gedanken machen sollte.

    Zwischen zwei Außenleitern kann ich leicht die Spannung messen und hatte damit bisher keinerlei Probleme - noch nicht einmal beim ergründen einer bestehenden Installation.

    Michi008:

    Nun ja, dann könntest du gelegentlich darüber nachdenken, warum viele elektronische Bauteile eine gewisse Spannungsfestigkeit haben.

    Und warum Leiterbahnen spannungsabhängig Abstände voneinander brauchen.

    Vom ohmschen Gesetz mag ich fast nichts erwähnen. ;)

    Ok, es gibt mitunter weniger konstruktive Beiträge. Hoffentlich fällt meiner nicht darunter. :D

    Zumindest wirst du inzwischen dazugelernt haben ...

    Bei der Software implementierten Schwingungspaketsteuerung handelt es sich ja um eine PWM (pulsweitenmodulierte) Steuerung, da die Nulldurchgänge von einem Shelly nicht erfasst und eine Netzspannungsschwingung schon gar nicht synchron geschaltet werden kann. Das Synchronisieren, soll heißen schalten im Nulldurchgang, muss selbstverständlich das SSR übernehmen.

    Eine PID-Regelung braucht es hier imho nicht.

    Ich täte mit der Anstiegsgeschwindigkeit der gemessenen Temperatur experimentieren. Auf Grund derer wäre die Reduktion der vom Shelly ausgegeben Pulsdauer je Schaltperiode (bspw. 60s) zu wählen.

    Nach ersten Überlegungen sehe ich hierfür vier konfigurierbare Parameter.

    1. das max. Puls/Pausenverhältnis, auch um die Zuleitung nicht zu stark zu erwärmen
    2. die minimale Anstiegsgeschwindigkeit der gem. Temp. -> unter diesem Wert auf max. Puls/Pausenverhältnis stellen
    3. die maximale Anstiegsgeschwindigkeit der gemessenen Temperatur -> komplett abschalten, also Puls/Pausenverhältnis = 0
    4. ein Faktor, der die Erhöhung/Absenkung des Puls/Pausenverhältnisses auf Grund der Differenz Zieltemp. - Messtemp. beeinflusst

    Parameter 1 ergibt sich aus der installierten Elektrik.

    Die anderen Parameter lassen sich durch Versuche vor Ort ermitteln.

    Ich denke, das sollte gelingen.

    Unter Umständen ließe sich auch eine Lookup Tabelle erstellen, welche an Hand der Temperaturdiff. das Puls/Pausenverhältnis liefert.

    Edit:

    Ich besitze keine solche Folie. Ansonsten könnte ich an Hand einer Heizfolie eine solche Temperaturregelung entwickeln - mit genügend Zeitreserve und Muße. ;)

    Ein Shelly Plus 1 PM kann bei 12V Versorgung keine Leistungsmessung (Stromstärkemessung) vornehmen. Dies gelingt ausschließlich mit den üblichen 230V.

    Zur Ansteuerung der Heizelemente kann ich auf die Schnelle nichts sagen, da ich keine Einzelheiten kenne.

    Ich werde mal deinem Link folgen ...

    Eine Schwingungspaketsteuerung für träge Systeme wie Heizungen ist jedenfalls technisch zweckmäßig.

    Edit:

    Es bleibt die Frage, was ein hierfür qualifizierter Elektriker dazu sagen kann.

    Zur Programmierung sollte ich etwas beitragen können, bspw. dies:

    Ein Schedule Job ruft alle 60s (o.ä.) eine Skriptfunktion "doctrl()" auf.

    "doctrl()" prüft, ob überhaupt geheizt werden soll. Wenn ja wird irgendwie auf der Grundlage der gemessenen Temperatur und der Solltemperatur berechnet, wie lange innerhalb der 60s Periode die Heizfolien eingeschaltet werden sollen. Danach wird eingeschaltet und ein Timer mit der passenden Einschaltdauer gestartet, an deren Ende ausgeschaltet wird.

    Zur Sicherheit noch ein zweiter Schedule Job, der in jeder 59. Sekunde einer Minute ausschaltet.

    Für Feinheiten wäre die vorhandene bzw. vom Elektriker empfohlene Ansteuerelekronik wissenswert.

    Oliver BigO

    Wie ein Shelly der zweiten Generation, bspw. ein Shelly Plus 1 mit 12V betrieben wird, ist nach meiner bisherigen Erfahrung auf dem Shelly-Gehäuse dargestellt.

    Dazu braucht man dann jeweils ein 12V Netzteil oder eine (kleine) parallele 12 V Infrastruktur.

    Ja, ein Skript wäre ein Programm, welches auf dem Shelly abgearbeitet wird - hier in einem Subset von JavaScript.

    Ich habe so etwas erstellt zum regeln meiner alten Heizkörper, incl. Zeitplansteuerungen für bis zu 8 Wochenplänen.

    Bzgl. elektrische Kommunikation wird es bedeutungsvoll sein, wo du die Sensoren platzieren kannst/willst.

    1. Sensor an passender Stelle für den Bewohner -> Netzwerkkabel dorthin führen oder WLAN nutzen.
    2. Sensor dort, wo LAN-Kabel liegt -> evtl. ist Sensor ungünstig platziert.

    Btw, meine alten Shelly 1 (1. Gen.) mit AddOn und der Regelung per Node-RED auf einem Raspberry Pi arbeiten zuverlässiger als die ebenfalls eingesetzten TRV.

    Ich täte somit zwar eine direkt am Ort laufende Regelung bevorzugen (s.o. mit Shelly Plus 1), WLAN aber nicht ausschließen.

    Die von dir erwähnte Steuerung der Heizungsfolien arbeiten offenbar per Schwingungspaketen (eine Schwingungspaketsteuerung). Möglicherweise beinhalten diese bereits Schaltelemente, die bei Nulldurchgang des Wechselstroms schalten. Das wäre ebenso zu prüfen wie die vorgesehene Ansteuerung der Folien (+ interner Elektronik).

    Edit:

    Zu den Halbleiter-Relais, auch als Solid State Relais (SSR) bekannt.

    Es gibt solche SSR, die im Nulldurchgang schalten, auch mit davorliegenden Optokopplern zur galvanischen Trennung. Was solche SSR an Stromstärken dauerhaft schalten können, weiß ich derzeit nicht. Eine solche Frage können sicher DIYROLLY und thgoebel beantworten.

    Zur Temperaturregelung:

    Keinesfalls Shelly Plus H&T einsetzen - allenfalls mit dauerhafter USB-Versorgung, trotzdem suboptimal.

    Besser sind die AddOns an Shelly (Plus) 1.

    Schließlich ist noch unklar, wo die Temperaturregelung implementiert werden soll.

    Am besten wären Shelly Plus 1 mit AddOn und 12V Stromversorgung.

    Darin könnten auch die Temperaturregelungen per Skripte untergebracht werden.

    Vermutlich ist dein Gewünschtes per MQTT möglich.

    Ich nutze diesen Kanal in Node-RED, aber nicht zur Konfiguration eines Shelly.

    Meine Empfehlung:

    Experimentiere mit sys.getconfig! Vielleicht ergeben sich so Erkenntnisse für sys.setconfig.

    Edit:

    Tun es die beiden von dir aufgeführten MQTT messages/payloads nicht?

    Btw., der src-Wert dient afaik ausschließlich für eine Antwort des Shelly und wird im Antwort-Topic verwendet.

    Es erscheint somit zweckmäßig, eine Nachricht zu diesem Antwort-Topic zu abonnieren, um die Reaktion des Shelly auswerten zu können.

    In deinen messages/payloads wäre das Antwort-Topic "user_1/rpc".

    Edit 2:

    Notfalls könntest du die gewünschte Funktionalität per Skript implementieren.

    Ein MQTT Subscriber (callback Funktion) nimmt eine simple Payload entgegen (bspw. 1 oder 2 als Modus-Identifier) und ruft die RPC per Shelly.call() auf.

    Dies täte die MQTT-Kommunikation verschlanken und so einfacher gestalten.