Beiträge von eiche

    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.

    Ich habe für meinen neuen Schuppen folgende Lichtschaltsteuerung implementiert.

    Danke für die Hinweise von ostfriese. Auf Grund seiner Hinweise liegt das Skript nun komplett vor.

    Anforderungen

    Eine Lampe soll per Bewegungsmelder eingeschaltet werden, wenn die Lampe aus ist.

    Der Bewegungsmelder soll per HTTP mit einem Shelly Plus 1 kommunizieren und dabei die Einschaltdauer per GET liefern.

    Sobald per Schalter/Taster am Plus 1 Eingang die Lampe eingeschaltet wird, soll die Einschaltdauer deaktiviert werden, damit die Lampe eingeschaltet bleibt.

    Dies löste ich mit Hilfe eines Shelly Motion (Gen. 1), einem Shelly Plus 1 und einem kleinen Skript auf dem Plus 1.

    Das Skript:

    Auf dem Bewegungsmelder wird folgende Action konfiguriert:

    Code
    http://<IP-Adresse des Plus 1>/script/<Skript Id>/on?<Dauer in s>

    Als Skript Id kommt typischerweise die 1 zum Zuge, falls auf dem Shelly kein anderes Skript abgelegt wurde.

    Dies ist im Zweifelsfalle zu prüfen.

    Es sind als Einschaltdauer auch Werte mit Nachkommastellen möglich.

    Wenn in der Action des Motion die Einschaltdauer fehlt, bleibt die Lampe eingeschaltet.

    Anwendungsfälle

    1. Jemand geht in den Schuppen, bspw. um ein Fahrrad zu holen.
      Die Lampe wird per Bewegungsmelder eingeschaltet und nach einer festgelegten Dauer automatisch ausgeschaltet.
    2. Jemand geht in den Schuppen, um sich dort länger aufzuhalten.
      Er schaltet die Lampe per Schalter ein (auch falls sie vom Bewegungsmelder eingeschaltet wurde).
      Die Lampe bleibt eingeschaltet, bis sie per Schalter ausgeschaltet wird.

    Vielleicht kann dies für andere nützlich sein.

    Die Heizungsregelung lässt sich leicht per Skript implementieren, aber ...

    Der Bewegungsmelder dürfte kein dauerhaftes Aktivsignal liefern, solange er eine Bewegung erkennt.

    Außerdem müsste sich dann jemand wiederholt bewegen, wenn geheizt werden soll.

    Etwa zielführend wäre folgende Lösung:

    Eingesetzt wird ein Skript, darin die Heizungsregelung, ein Eventhandler und ein Timer.

    Sobald eine Bewegung erkannt wird - Eingang ist aktiv - wird dies im Skript wie folgt verarbeitet.

    1. Die Heizungsregelung wird aktiviert - globale Zustandsvariable Ctrl = true.
    2. Der evtl. laufender Timer wird gelöscht (Handle erforderlich).
    3. Der Timer wird gestartet (repeat = false).

    2. und 3. bewirkt eine Retriggerung des Timers mit jeder Bewegungserkennung.

    Wenn der Timer abgelaufen ist, wird die Heizung ausgeschaltet und die Regelung deaktiviert.

    Ein Eventhandler zur Regelung prüft die globale Variable Ctrl. Nur wenn diese true beinhaltet, wird der vom Sensor gelieferte Temperaturwert zur Regelung verarbeitet.

    Ctrl muss demzufolge mit false initialisiert werden.

    Falls du selbst mit dem scripting nicht zurechtkommen solltest, wirst du dafür geeigneten Code brauchen.

    Die obige Idee sollte aber nutzbar sein.

    Die Dauer des Timers ist nach deinen Bedürfnissen zu wählen.

    Sowohl Temperaturschwellen (Hysterese) als auch Timerdauer könnten auch konfigurierbar gestaltet werden.