Ist auch gut so, sonst wäre ich bald arbeitslos
Beiträge von ostfriese
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.
-
-
ChatGpt produziert nur Müll. Selbst wenn ich den Mit Code Beispielen vom mir füttere kommt allenfalls ein Ansatz dabei 'raus:
Python kann der ganz gut, aber da gibt es ja tonnenweise Code im Netz.
Hier mal das, was der ausspuckt, nachdem ich ihn mit Beispielen von mir gefüttert habe: (wird nicht funktionieren)
JavaScript
Alles anzeigen// Funktion zum Einschalten des Pools function turnOnPool() { return new Promise((resolve, reject) => { Shelly.call("relay/0/on", "", "PUT", function(result, error_code, error_message) { if (result !== null) { console.log('Pool eingeschaltet'); resolve(); } else { console.error('Fehler beim Einschalten des Pools', error_message); reject(error_message); } }); }); } // Funktion zum Ausschalten des Pools function turnOffPool() { return new Promise((resolve, reject) => { Shelly.call("relay/0/off", "", "PUT", function(result, error_code, error_message) { if (result !== null) { console.log('Pool ausgeschaltet'); resolve(); } else { console.error('Fehler beim Ausschalten des Pools', error_message); reject(error_message); } }); }); } // Funktion zum Überprüfen und Steuern des Pool-Relais basierend auf der Uhrzeit function checkPoolSchedule() { const now = new Date(); const hours = now.getHours(); if (hours >= 9 && hours < 12) { Shelly.call("relay/0", "", "GET", function(result, error_code, error_message) { if (result !== null) { if (!result.ison) { Shelly.call("relay/0/on", "", "PUT", function(result, error_code, error_message) { if (result !== null) { console.log('Pool eingeschaltet von 9:00 bis 12:00 Uhr'); } else { console.error('Fehler beim Einschalten des Pools', error_message); } }); } } else { console.error('Fehler beim Abrufen des Pool-Status', error_message); } }); } else if ((hours >= 13 && hours < 15) || (hours >= 1 && hours < 2)) { Shelly.call("relay/0", "", "GET", function(result, error_code, error_message) { if (result !== null) { if (!result.ison) { Shelly.call("relay/0/on", "", "PUT", function(result, error_code, error_message) { if (result !== null) { console.log('Pool eingeschaltet von 13:00 bis 15:00 Uhr und am nächsten Tag von 1:00 bis 2:00 Uhr'); } else { console.error('Fehler beim Einschalten des Pools', error_message); } }); } } else { console.error('Fehler beim Abrufen des Pool-Status', error_message); } }); } } // Hauptfunktion zum Überprüfen und Steuern des Pool-Relais basierend auf den Bedingungen function main() { turnOnPool() .then(() => { return turnOffPool(); }) .then(() => { checkPoolSchedule(); }) .catch(error => { console.error('Fehler beim Ausführen des Hauptprogramms', error); }); } console.log("Start..."); main();
-
Warte mal kurz. Das Skript ist nur ein Beispiel. Das läuft so nicht auf einem Shelly. Ich schaue noch...
-
Der kann sogar Deutsch:
Entschuldigung für das Missverständnis in meiner vorherigen Antwort. Gemäß meinem Kenntnisstand bis September 2021 gibt es keine offizielle "shelly-library" von Shelly. Es scheint, dass ich einen Fehler gemacht habe, indem ich von der Existenz einer solchen Bibliothek ausgegangen bin.
Um mit Shelly-Geräten in JavaScript oder TypeScript zu interagieren, können Sie Standard-HTTP-Client-Bibliotheken wie Axios oder die integrierte fetch-Funktion verwenden. Sie müssen manuell HTTP-Anfragen an die Shelly-API-Endpunkte senden, die in der von Ihnen bereitgestellten Shelly-API-Dokumentation beschrieben sind.
Hier ist ein Beispiel für die Verwendung von Axios, um mit der Shelly-API zu interagieren:
-
Klar geht das:
I apologize for the confusion in my previous response. As of my knowledge cutoff in September 2021, there is no official "shelly-library" provided by Shelly. It seems that I made an error in assuming the existence of such a library.
To interact with Shelly devices in JavaScript or TypeScript, you can use standard HTTP client libraries like Axios or the built-in fetch function. You would need to manually send HTTP requests to the Shelly API endpoints described in the Shelly API documentation you provided earlier.
Here's an example of using Axios to interact with the Shelly API:
Code
Alles anzeigenconst axios = require('axios'); // Function to turn on the pool async function turnOnPool() { try { await axios.put('http://192.168.1.89/relay/0/on'); console.log('Pool turned on'); } catch (error) { console.error('Failed to turn on the pool', error); } } // Function to turn off the pool async function turnOffPool() { try { await axios.put('http://192.168.1.89/relay/0/off'); console.log('Pool turned off'); } catch (error) { console.error('Failed to turn off the pool', error); } } // Function to check and control the pool relay based on the time function checkPoolSchedule() { const now = new Date(); const hours = now.getHours(); if (hours >= 9 && hours < 12) { axios.get('http://192.168.1.89/relay/0') .then(response => { if (!response.data.ison) { axios.put('http://192.168.1.89/relay/0/on') .then(() => { console.log('Pool turned on from 9:00 to 12:00'); }) .catch(error => { console.error('Failed to turn on the pool', error); }); } }) .catch(error => { console.error('Failed to retrieve pool status', error); }); } else if ((hours >= 13 && hours < 15) || (hours >= 1 && hours < 2)) { axios.get('http://192.168.1.89/relay/0') .then(response => { if (!response.data.ison) { axios.put('http://192.168.1.89/relay/0/on') .then(() => { console.log('Pool turned on from 13:00 to 15:00 and next day from 1:00 to 2:00'); }) .catch(error => { console.error('Failed to turn on the pool', error); }); } }) .catch(error => { console.error('Failed to retrieve pool status', error); }); } } // Main function to check and control the pool relay based on conditions async function main() { await turnOnPool(); await turnOffPool(); checkPoolSchedule(); } // Run the main function main();
Könnte sogar funktioniere auf eine Rechner mi Nodejs und axios
-
Sieht schlau aus, ist aber Blödsinn. Sag dem Schlaumeier doch mal, er soll das Programm noch einmal neu schreiben unter Berücksichtigung von
https://shelly-api-docs.shelly.cloud/gen2/
Mal sehen, ob da ansatzweise etwas Brauchbares heraus kommt.
-
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. -
Thema
Einsteiger-Tipps rund um die Shelly-Familie und das Forum
Einsteiger-Tipps
Im Folgenden findet Ihr Tipps zu den Shelly.Geräten und zum Forum.
(Diese können/sollen Euch den Einstieg in das Forum und die Shelly-Welt erleichtern.)
Mit Sicherheit kann die Liste nicht Alles erschlagen. Sie wird von mir/uns weiter gepflegt werden und auch Tipps und Hinweise von Euch in anderen Threads werden gerne aufgenommen.
Inhalt:
#1 A. Forum
#2 B. Shelly
#3 C. nützliche und hilfreiche Links
#4 D. Shelly-App
A. Forum
1.
Bitte stellt Fragen immer im Bereich Forum! Es kommt…Gast1011. August 2019 um 09:06 Ich meinte Punkt A 7
-
karlwiesinger Poste das ChatGPT Skript mal als Code:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Dann schaue ich mir das mal an.
-
Schade denn es würde für mich zu lange dauern bis ich mir das beigebracht hätte.
Das ist falsch gedacht!
Lernen und daraus resultierende Erkenntnis ist ein hohes Gut und lohnt den Einsatz von Zeit immer!
-
Richtig AlexAn !!!
Das Problem liegt am Skript selbst. Es wird versucht, etwas auszuführen, was direkt nach dem Start noch nicht geht,. z.B. irgend etwas mit Zeit, (NTP) noch nicht abgefragt, oder http-calls, (Netzwerk noch nicht bereit), oder Skript sehr lang.... Folge -> Skript stürzt ab.
Ostfriesische Lösung:
Bei allen Skripts, die ihr starten wollt, den Schiebeschalter auf AUS.
Nur bei meinem autostart Skript auf AN.
In der Config Sektion die Namen der zu startenden Skriptes eintragen, wait_seconds bei Bedarf anpassen (passt aber meistens mit 10). Fertig.
autostart (überarbeitet, alle u.g. Fehler korrigiert)
Code
Alles anzeigenlet Config = { //############# comfig ########################################################## scripts : ["skript1","skript2","skript2"], wait_seconds : 10 //############################################################################### }; function get_script_id(){ Shelly.call("Script.List","", function(result, error_code, error_message){ let a = result["scripts"]; for (let i=0; i<a.length; i++) { for (let j=0; j<Config.scripts.length; j++) { name = Config.scripts[j]; if (a[i]["name"] === name) { let script_id = a[i]["id"]; console.log("Script " + name + " start..."); Shelly.call("script.start", {"id":script_id}); Shelly.call("script.stop", {"id":Shelly.getCurrentScriptId()}); } } } } ); }; let name = '' let t = Timer.set(Config.wait_seconds * 1000,false,get_script_id);
Bitteschön
-
Teste mal:
Codecurl -X POST -d '{"id":0,"method":"HTTP.GET","params":{"url":"http://admin:passwort@192.168.8.31/rpc/Switch.GetStatus"}}' http://192.168.8.31/rpc/Switch.GetStatus
oder:
Codecurl -X POST -d '{"id":0,"method":"HTTP.GET","params":{"url":"http://admin:test@172.16.0.100"}}' http://172.16.0.100/rpc/Switch.GetStatus
Python:
-
Schließe mich an
-
Falls es euch darum geht, einen gut funktionierenden Beacon zu haben:
Der sendet bei mir (einstellbar) im 0,5 Sekunden Intervall und die Batterie hält dabei 6 Monate+. Bei 1 Sekunden Takt viel länger.
Das tolle ist, man kann alle Parameter selbst konfigurieren:
UUID, RSSI @ 1m, Advertise Interval, Passwort,, Frame Type: UID, URL, TLM, iBeacon, Deviceinfo, Firware Update OTA via App
Ich benutze die Dinger seit 2 Jahren. Habe damals viel recherchiert und auch Schrott gekauft. Diese Beacons sind das Beste und Ausgereifteste, was ich je gesehen habe.
Kosten unter 20€.
Natürlich ist das ein reiner Beacon, der gut gegen Fehlbedienung gesicherte Knopf dient dazu, den Beacon selbst ein/auszuschalten.
Zum ausprobieren ohne Kauf, gibt es eine kostenlose App, die so einen Minew (zumindest als iBeacon, so verwende ich die auch) simulieren kann.
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. -
Zitat: "
Zum einen wird darin bezüglich der Netzrückwirkungen gefordert, dass die Geräte die Normenreihe DIN EN 61000-3-x einhalten müssen.
"
EN 61000-3-2 : 2015-03 Netzoberschwingungen
EN 61000-3-3 : 2014-03 Netzschwankungen / Flicker
werden ja erfüllt.
Zitat: "
Wir haben dazu die Antwort von einem großen Netzbetreiber bekommen, allerdings nur inoffiziell.
Die dortigen Experten sind der Meinung, dass Phasenanschnittsteuerungen auch dann nicht angeschlossen werden dürfen, wenn sie der Norm entsprechen, sobald sie mehr als 200 Watt Leistung haben
"
Bis die "Experten" das offiziell geklärt haben, freue ich mich über meine 180 Liter 85.8°C heißes Wasser an einem bedecktem Tag. An einem sonnigen Tag habe ich ~70 kWh, wo soll ich damit hin?.
Und selbst wenn... so what! Wer kann da was messen und macht das auch???
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. -
Verstehe nicht, was gegen den Kemo M028N in Verbindung mit dem M150 - DC + Puls Converter spricht? Wenn ich das so mache, wie der Hersteller das vorschreibt, gilt doch dessen Konformitätserklärung.
Worüber muss ich mir dann Gedanken machen?
Leistungsregler 100-240 V/AC, 4000 VA, M028N
wird hiermit bestätigt, dass es den wesentlichen Schutzanforderun-
gen entspricht, die in den Richtlinien des Rates zur Angleichung der
Rechtsvorschriften der Mitgliedsstaaten über die elektromagneti-
sche Verträglichkeit (EMV-Richtlinie 2014/30/EU vom 19.09.2016)
und in der Niederspannungsrichtlinie 2014/35/EU festgelegt sind.
EN 55014-1 : 2012-05 Emission
EN 55014-2 : 2016-02 Störfestigkeit
EN 61000-3-2 : 2015-03 Netzoberschwingungen
EN 61000-3-3 : 2014-03 Netzschwankungen / Flicker
EN 60335-1 : 2012-10 Sicherheit elektrischer Geräte für
den Hausgebrauch und ähnliche Zwecke.Der M150 - DC + Puls Converter:
Schaltungsbeschreibung:
Über die verschiedenen Steuerspannungen wird im
Inneren des Moduls ein Optokoppler angesteuert. Am
Ausgang des Kopplers ist eine Elektronik, die die Regelung
des Potentiometereingangs des nachgeschalteten
Leistungsreglermoduls (M012, M028 oder M028N)
übernimmt. Die Regelung des Potentiometerausgangs
geschieht linear (nicht digital)Statt mit einer veränderlichen Steuerspannung kann das
Modul auch mit einer Impulsbreiten-Steuerung angesteuert
werden. Das digitale Signal sollen Rechtecksignale mit
einer Spannung von ca. 5 V sein (Standard-TTL-Signale). Die
Frequenz soll auf einem Wert zwischen 1 - 10 kHz sein. Die
Regelung erfolgt durch Veränderung der Impulsbreite (siehe
Tabelle).Ausgangsleistung des Leistungsreglermoduls
bei Ansteuerung mit:
10% TTL PWM 50% TTL PWM 90% TTL PWM
1 V/DC | 3 V/DC | 6 V/DC 3 V/DC | 8 V/DC | 16 V/DC 5 V/DC | 12 V/DC | 24 V/DC
Leistung: Min. Leistung: ca. 50% Leistung: Max -
Das kann nicht funktionieren. Mit dem Raspberry Zero mache ich die PWM mit 10000Hz.
Das geht wunderbar.
-
Ich schaue mir deine "Leichenfledderei" und deine Kommentare dazu immer gerne an. Daumen hoch
-
-
"calibrated":false
Das ist nicht ok.