Beiträge von ThreeGGG

    Bin mit dem i4 heute erst angefangen. Daher gibt es bisher nur den Teil vom Script, den ich oben angegeben hab. Also nur den eventHandler mit Print-Befehl.

    Ich möchte pro Event einen Counter zählen, daher ist es unglücklich, wenn alles zwei mal kommt. Weiß dann ja auch nicht, ob das immer reproduzierbar ist, oder ob mal auch nur eine Antwort kommt…

    Ich habe einen Shelly i4 DC mt einem 5V-Netzteil versorgt. Diese 5 Volt sind über 1k auf den ersten Eingang gelegt. Von eben diesem Eingang gehe dann auf die S0 Schnittstelle meines Stromzählers (Open Collector), der mir mit jedem Puls den Eingang auf 0V zieht. Der Eingang ist invertiert in der App.

    Jetzt funktioniert das ganz gut. Mit jedem Puls (200ms Länge) bekomme ich in der App eine Anzeige.

    Problem ist, dass folgendes Script:

    Shelly.addEventHandler(function (event) {

    print(JSON.stringify(event))});

    alle Ausgaben doppelt darstellt.

    {"info":{"ts":1683483850.570000,"state":true,"event":"toggle","id":0,"component":"input:0"},"now":1683483850.573536,"id":0,"name":"input","component":"input:0"} 20:24:10.597

    {"info":{"ts":1683483850.570000,"state":true,"event":"toggle","id":0,"component":"input:0"},"now":1683483850.573536,"id":0,"name":"input","component":"input:0"} 20:24:10.597

    {"info":{"ts":1683483850.790000,"state":false,"event":"toggle","id":0,"component":"input:0"},"now":1683483850.787120,"id":0,"name":"input","component":"input:0"} 20:24:10.811

    {"info":{"ts":1683483850.790000,"state":false,"event":"toggle","id":0,"component":"input:0"},"now":1683483850.787120,"id":0,"name":"input","component":"input:0"} 20:24:10.811

    Warum wird denn mit exakt der selben Uhrzeit die Info 2x zur erfügung gestellt?


    Moin. Es gibt ja die Möglichkeit über die Konsole mit print Werte von Variablen auszugeben. Dafür muss ich aber immer in die Konsole wechseln.

    Besteht auch die Möglichkeit diese Werte in der App oder dem Webinterface anzuzeigen? Die Krönung wäre natürlich noch, wenn diese Werte gespeichert würden und in einem Diagramm dargestellt werden, wie etwa die Leistungsmessung im PM.

    Oder brauche ich dafür eine Server-Lösung mit Raspberry o.ä.?

    Ich habe mir einen Timer geschrieben, der alle 6 Sekunden mein Programm aufruft.

    [script]function startTimer() { Timer.set(6*1000,true,Regelung,null);
    }
    [/script]

    Durch den Eventhandler lese ich den digitialen Eingang ein. Erfolgt dort ein "true", rufe ich eine andere Funktion auf.

    [script]if(event.info.state===true){

    offen();

    }

    Allerdings möchte ich während der Zeit die Funktion "Regelung" nicht ausführen, weil beide Funktionen widersprüchliche Anweisungen geben. Wie bekomme ich das denn wohl hin den Timer zu stoppen?

    Ich habe mal versucht mich in das Thema scripting einzuarbeiten. Die Ansteuerung des Rolladenausgangs ist ja recht einfach. Ich hab aber leider überhaupt keine Ahnung, wie ich einen Wert vom analogen Eingang lesen kann. Auch die links haben mich nicht wesentlich weiter gebracht.

    Hat jemand ein paar scriptzeilen zur Hand, wie ich einen Wert vom Addon einlese?

    Die 24V habe ich übrigens mit einem SBWR-2260 und vorbeschaltung getestet, nicht dass hier falsche Ideen aufkommen. Funktioniert auch, erfordert allerdings etwas mehr als Plug&Play. Dafür ist es aber genauer. Zudem kann ich meinen Messbereich einstellen. So könnte ich es beispielsweise beschalten, dass 400 grad = 10v sind. Die Auflösung würde dadurch deutlich besser.

    Die Variante mit dem Adafruit ist halt sehr grob, funktioniert aber am Add On ohne weitere Peripherie bis 450 grad sehr gut.

    Heute ist mein AD8495 angekommen.

    Angeschlossen am Vref+R bricht die Spannung auf 1,9V zusammen.

    Am Vref angeschlossen bricht die Spannung auf 7V zusammen.

    Neben der Überlastung der Versorgung ist ein großes Problem, dass die Spannung am Analogeingang nicht richtig gemessen wird. Bei anliegenden 2,2V zeigt der Eingang 3V an. Also absolut unbrauchbar.

    Versorgt über VCC funktioniert das schon besser. Hier passt die Spannung. VCC hat bei mir übrigens 3,49V. Somit ist ein Temperaturbereich bis 460 Grad möglich, was für mich reicht. Messen kann der Eingang nur auf 0,1V Schritten. Bedeutet, dass erst 20 Grad Temperaturanstieg eine Änderung der Spannung hervorruft. Messungenauigkeit nicht eingerechnet.

    Prinzipiell funktioniert das also schon. Für mich reicht die Genauigkeit.

    Alternativ habe ich auch einen mit 24V extern versorgten Messumformer betrieben. Hier ist eine kleine Beschaltung mit 2x 1k Widerstand nötig, die Genauigkeit ist natürlich deutlich besser. Der Aufwand ist halt entsprechend höher…

    Ich hab’s bei mir ausprobiert, so lange eine Bedingung erfüllt ist, ist alles gut. Sobald zwei Bedingungen erfüllt sind, weiß das Shelly nicht mehr wo hin.

    Bei mir gehts auch noch weiter, dass ein Reed Kontakt später ausgewertet werden soll und für eine gewisse Zeit die temperaturabhängige Steuerung überschreiben soll. Spätestens dann bin ich wohl beim Script…

    Hab das mit Action versucht. Erste Action unter 25 grad alles gut. Zweite Action über 25 funktioniert das auch. Bei der dritten Action über 30 grad springt er dann immer hin und her, weil beide Bedingungen erfüllt sind.

    Man kann leider nicht angeben „wert über 25“ UND „Wert kleiner 30“…

    Shelly wird versorgt mit 230V. Ob die Sensorauswerting mit der Spannung des Addon reicht ist unklar. Notfalls spendiere ich noch ein USB Netzteil oder Ähnliches.

    Diese Variante habe ich auch schon probiert. Das Problem ist, dass ich dort ja nur eine Bedingung angeben kann.

    Wenn ich Z.B. sage größer 2V = 20 Prozent und eine neue Bedingung größer 3V = 30 Prozent, sind ja beide ggf erfüllt.

    So wie ich es sehe kann ich keine Bedienung angeben >2V und <3V…

    Ich möchte einen Typ K Temperaturfühler auswerten. An der Umwandlung von Typ K auf analog arbeite ich grade noch, bzw warte auf Teile.

    Ich nutze ein Shelly Plus 2PM mit Addon und möchte gerne eine Rolladensteuerung (wert in Prozent) abhängig des analogen Eingangs Steuern.

    Wenn z.B. am Addon 5v Anliegen = 50 Prozent Rolladenstellung. Bei 60 Prozent = 60 Prozent Rolladenstellung usw.

    Ich kenne mich grundsätzlich etwas im programmieren aus, hatte aber zu den Shellys in Java noch nie Kontakt. Werde mich wohl einige Zeit damit beschäftigen müssen.

    Kann mir vielleicht jemand ein Grundgerüst zeigen, wie es prinzipiell gehen könnte?

    Im Leerlauf sollten die 10V passen.

    Wenn der Adafruit8495 wirklich 0,25mA nimmt sollten bei 10k Vorwiderstand dann 7,5V anliegen. Die Spannung im Betrieb gemessen würde mich auch interessieren. Könnte man auf die reale Stromaufnahme des Adafruit schließen…

    Später wäre es dann jedoch sinnvoll den Vref (ohne R1) zu verwenden um den Messbereich nicht einzuschränken.

    Hintergrund ist, dass ich einen Klappenstellantrieb mit 0,5W Leistungsaufnahme betreibe und diesen als „Rolladen“ Steuern möchte. Für die Kalibrierung sind jedoch mindestens 4W nötig.

    Die Shunts in 2512 passen übrigens nicht ansatzweise. 😅

    Habe jetzt 1206 bestellt, passt perfekt. Heute eingelötet und anschließend kalibriert. Funktioniert einwandfrei, Leistung wird mit 5W angezeigt.

    Rechnerisch fallen am Shunt bei 2300W in Originalbestückung 0,4W ab. Bei Änderung auf den 10-fachen Widerstandswert wäre bei 725W die gleiche Leistung am Shunt erreicht. Da die Widerstände aber generell sehr klein dimensioniert sind, würde ich von beiden Werten deutlich Abstand halten.

    Wenn in der Serie bei 2300 Watt an der Stelle 0,4W Verlustleistung entstehen, muss dort ein Bauteil sitzen, was dauerhaft die Leistung kann. Das wäre demnach ein 2512 mit 1W.

    Diese Baugröße scheint auch gängig zu sein für solche SMD Shunts.

    Bei der Erhöhung auf 40mOhm wäre das eine Erhöhung auf 4W, daher sollte die Max Leistung reduziert werden. Tut mir aber nicht weh, da eh nur 1W drüber geht…

    Habe noch einmal exakt nachgemessen, 0,55 Watt hat der Motor im Betrieb. Wenn ich jetzt den Shunt von 4 mOhm auf 40 mOhm ändere, sollten 5,5W gemessen werden? Die Belastungsgrenze sinkt dadurch natürlich von 2300W auf Max 230W, besser weniger, richtig?

    Was ist das denn wohl für eine Bauform der Widerstände?

    Ich habe aktuell das Problem, dass ich eine Last mit etwa 1W am Shelly betreibe. Das ist leider zu wenig, als dass das Shelly diesen Weet anzeigen könnte. Ich nehme an die Messung erfolgt über einen Shunt? Kann ich den Modifizieren? Mir wäre egal, ob da nachher 10 oder 50 Watt stehen, es geht nicht um einen genauen Messwert. Es muss nur irgendwas angezeigt werden größer 5W im Betrieb.