ist normal und kein Grund zur Sorge..
der ESP32 ist für -40 bis +125 Grad Celsius ausgelegt. Shellies haben aber auch eine eigene Temperatur-Überwachung und schalten bei 95 Grad sicherheitshalber ab.
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.
ist normal und kein Grund zur Sorge..
der ESP32 ist für -40 bis +125 Grad Celsius ausgelegt. Shellies haben aber auch eine eigene Temperatur-Überwachung und schalten bei 95 Grad sicherheitshalber ab.
nope, sorry. As already mentioned. I'm not a python coder ..
Nicht alle Geräte-Infos werden über MQTT Events gemeldet. der Ursprung des Events (MQTT, Cloud, Schalter..) z.B. lässt sich (bei Bedarf) nur über die REST-API abfragen. http://<ip>/status, da dann unter relays im jeweiligen Relay die source:
Ist es etwas so das der I4 eigentlich nicht als reiner Eingangsblock gebaut wurde sondern als Controller?
grundästzlich hat der I4 insgesamt 4 Eingänge (inputs) und diese lassen sich problemlos per MQTT auswerten.
Alternativ kann man auch die Eingangssignale per Script abfangen und dann z.B. abhängig vom Event ein MQTT.publish oder ein HTTP.GET bzw. HTTP.POST request an ein anderes Endgerät schicken.
MQTT (getestet mit dem Mosquitto unter Linux) grundlegend funktioniert auf jeden Fall mit dem I4 und aktueller Firmware, gerade getestet. da siehst du im Log die jeweiligen Taster-Events btn_down, btn_up und das daraus abgeleitete Single_push.
shellyplusi4-30839809e704/events/rpc {"src":"shellyplusi4-30839809e704","dst":"shellyplusi4-30839809e704/events","method":"NotifyEvent","params":{"ts":1643643183.49,"events":[{"component":"input:3", "id":3, "event":"btn_down", "ts":1643643183.49}]}}
shellyplusi4-30839809e704/events/rpc {"src":"shellyplusi4-30839809e704","dst":"shellyplusi4-30839809e704/events","method":"NotifyEvent","params":{"ts":1643643185.45,"events":[{"component":"input:3", "id":3, "event":"btn_up", "ts":1643643185.45}]}}
shellyplusi4-30839809e704/events/rpc {"src":"shellyplusi4-30839809e704","dst":"shellyplusi4-30839809e704/events","method":"NotifyEvent","params":{"ts":1643643185.45,"events":[{"component":"input:3", "id":3, "event":"single_push", "ts":1643643185.45}]}}
kingof7eleven hat dazu ein sehr informatives Video gemacht, hoffe das beantwortet deine Fragen.
Was ich auch noch nicht wusste, wenn man einen Shelly 1PM Plus rebootet und danach innerhalb 1 min 5x schaltet (script ist ja auf dobblepush also schnell erreicht) ist er auch im Werkszustand
das lässt sich über einen zur Zeit noch versteckten API-Befehl abschalten:
curl -X POST -d '{"id": 1, "method": "Input.SetConfig", "params": {"id": 0, "config": {"factory_reset": false}}}' http://192.168.178.145/rpc
Wird demnächst bestimmt auch über die grafische Oberfläche machbar sein.
hier mache ich das mit mehreren Rollladen-Shellies..
https://github.com/shelly-tools/s…utter_switch.js
Da gibt es ein Array mit mehreren IP-Adressen.
let shutters = [
'192.168.178.204', // Shutter Living room back door
'192.168.178.206', // Shutter Living room back window
];
weiter unten gehe ich die einfach mit einer for-Schleife nacheinander durch:
die 3 Teile der for-Schleife (je durch Semikolon getrennt) kurz erklärt:
- Die Schleife startet mit dem neu definierten Wert let i=0 (erster Wert im Array, der Buchstabe i wird häufig als Variablen-Name für "inkrement", also hochzählend benutzt.)
- Sie durchläuft das Array solange Wert für Wert, bis dessen Länge erreicht ist. Die Länge im Beispiel ist 2 (für die beiden IP), das Array startet aber von 0. Also muss der Wert von i um 1 kleiner sein. deshalb i kleiner Länge.
- i++ erhöht den internen Zähler jeweils um 1. Startet bei 0,1,2 usw. hier im Beispiel aber nur 0 und 1, denn es hat ja nur zwei Werte. Man könte auch das auch mit einer anderen Syntsx i = i +1 schreiben.
im Aufruf innerhalb der Schleife dann shutters[0] im ersten lauf (also die erste IP), shutters[1] im zweiten Durchlauf usw.
Guck mal, ob du selbst damit klar kommst .. wenn nicht einfach fragen
Günstig ist anders, aber der Platzbedarf ist sehr gering:
https://www.amazon.de/Unterputz-Netz…n/dp/B07V6G1VKP
kurze Rückmeldung..
ich hab da gestern schon eine Weile mit rumgespielt.. aktuell ist es ziemlich umständlich, da die Sunset-Zeit nicht über die API vom Shelly direkt abrufbar ist. Es würde zwar trotzdem klappen (über externen Anbieter wie openweathermap.org hab ich experimentiert), allerdings ist dann zwingend eine Internet-Verbindung erforderlich und das finde ich etwas unglücklich.
Hab deshalb einen Feature-Request gestellt (interne sunset/sunrise -Daten über Shelly.GetStatus API Aufruf) und will mal zunächst 2-3 Tage abwarten, ob sich die Entwickler dazu äußern.
Hey Dennis,
das ist eine super Sache und bestimmt für den ein oder anderen sehr hilfreich
Es wäre toll, wenn du zusätzlich ein eigenes Thema im Bereich "User-Scripte" dafür erstellen könntest.
Hier im Thema geht es vermutlich etwas unter..
Ich kenne den Adapter nicht, bin aber vergleichsweise sicher, dass man die Notifications im Shelly Plus I4 aktivieren muss.. ob RPC status oder Generic Status müsstest du ggf. testen.
Wichtig: bei Änderungen bezüglich MQTT muss der Shelly generell neu gestartet werden, daher auch das "restart_required": true in deiner JSON-Ausgabe.
Moin Thomas,
ich werde in den nächsten 2-3 Wochen mein Bad renovieren, da ist noch einer von den alten Shelly 2 verbaut. Den werde ich mit dem Umbau gegen andere Shellies tauschen.
Falls du bis dahin keinen gefunden haben solltest kannst du den gerne haben, denn deine extrem detaillierten Beschreibungen zum Innenleben der Shellies sind eine absolute Bereicherung für die Community. Daher würde ich den gerne "spenden"
extern 5683 muss in den container auf 5683 geleitet werden.
Wofür hast du die user_data mit rein genommen ?
weil ich es kann ..
Spaß beiseite, du hast natürlich Recht, das ist eigentlich nicht notwendig. Ich kopiere mir die Scripts meist aus eigenen Code-Schnipseln zusammen und bin dann zu "faul" das zu bereinigen
Ziel: Carport-Beleuchtung schalten mit BWM und zusätzlich zeigesteuertes Dauerlicht, wo dann der BWM natürlich nicht reinpfuscht. Es gibt keinen Schalter/Taster.
mit den einfachen Shelly 1 geht das nicht, möglicherweise mit einem 2.5er (siehe Beitrag von @Muetze ).
Definitv gehen müsste es mit dem Shelly Plus 1 und einem Script, sofern der BWM mit dem Shelly Plus 1 kompatibel ist.
was das Script dafür tun muss:
Sunset Daten holen, wenn aktuelle Zeit (Stunde + Minute) erreicht ist, den Eingang vom BWM auf Detached stellen und das Relay anschalten. Zu definierter Zeit (Bsp. 23 Uhr) den Eingang wieder auf "Switch" setzen und das Relay vorsorglich abschalten, damit der BWM wieder das Kommando hat.
Kann das Script dazu gerne schreiben, ich bin immer froh wenn ich Praxis-Beispiele finde, die auch für andere von Nutzen sind
probier's mal hiermit:
Voraussetzungen:
- Taster angeschlossen (kein Schalter!)
- Taster auf Detached konfiguriert.
Shelly.addEventHandler(
function (event, user_data) {
if (typeof event.info.event !== 'undefined') {
if (event.info.id === 0 && event.info.event === 'single_push') {
Shelly.call("switch.set",{ id: 0, on: true, toggle_after: 900},function (result, code, msg, ud) {},null);
} else if (event.info.id === 0 && event.info.event === 'long_push') {
Shelly.call("switch.set",{ id: 0, on: true, toggle_after: 10800},function (result, code, msg, ud) {},null);
}else {
return true;
}
} else {
return true;
}
},
);
Alles anzeigen
Was würdet ihr dagegen tun?
ich würde das per Debug überwachen.. hab mal eben einen Debugger (für Windows) gebaut , die im ZIP enthaltene UDPDebugger.exe unter angabe eines Ports starten (Windows Kommandozeile). Beispiel (mit Port 3000)
Anschließend im Shelly das Debugging aktivieren, IP-Adresse des Windows-PC + Port dort angeben
Danach schreibt der Shelly seine Debug-Informationen in die Konsole vom UDPDebugger. Sieht dann etwa so aus..
Eventuell lässt sich darüber die Ursache rauskriegen.
Falls du den für Darwin (MacOS) oder Linux brauchst bitte Bescheid geben, dann kompiliere ich den für das passende System.
-> shellyplusi4-30839809e704 62 4934.951 2 2|mg_rpc.c:310 sys.setconfig via WS_in 192.168.178.86:59480data: 385
-> shellyplusi4-30839809e704 63 4934.961 2 2|esp32_debug.c:109 UDP log set up to 192.168.178.86:3000data: 992
-> shellyplusi4-30839809e704 64 4934.988 2 2|mgos_sys_config.c:232 Loading conf3.jsondata: 276
-> shellyplusi4-30839809e704 65 4935.035 2 2|mgos_sys_config.c:232 Loading conf9.jsondata: 985
-> shellyplusi4-30839809e704 66 5022.138 2 2|mg_rpc.c:310 script.getcode via WS_in 192.168.178.86:59480data: 812
-> shellyplusi4-30839809e704 67 5022.150 2 2|shelly_scripts_rpc.:332 Sending "script_1.js"data: 347
-> shellyplusi4-30839809e704 68 5022.195 2 2|mgos_http_server.c:180 0x3ffd5290 HTTP connection from 192.168.178.86:60414data: 291
-> shellyplusi4-30839809e704 69 5023.364 2 2|mg_rpc.c:310 script.stop via WS_in 192.168.178.86:59480data: 867
-> shellyplusi4-30839809e704 70 5023.380 2 2|shelly_notification:120 Status change of script:1: {"id":1,"running":false}data: 953
-> shellyplusi4-30839809e704 71 5023.596 2 2|mg_rpc.c:310 script.list via WS_in 192.168.178.86:59480data: 870
-> shellyplusi4-30839809e704 72 5024.933 2 2|mg_rpc.c:310 script.setconfig via WS_in 192.168.178.86:59480data: 846
-> shellyplusi4-30839809e704 73 5025.179 2 2|mg_rpc.c:310 script.putcode via WS_in 192.168.178.86:59480data: 105
-> shellyplusi4-30839809e704 74 5025.483 2 2|mg_rpc.c:310 script.start via WS_in 192.168.178.86:59480data: 720
-> shellyplusi4-30839809e704 75 5025.503 2 2|shelly_user_script.:402 Running 'api_math.js'...data: 197
-> shellyplusi4-30839809e704 76 5025.538 2 2|shelly_user_script.:402 Running 'api_rpc.js'...data: 460
-> shellyplusi4-30839809e704 77 5025.584 2 2|shelly_user_script.:402 Running 'init.js'...data: 770
-> shellyplusi4-30839809e704 78 5025.599 2 2|shelly_user_script.:366 mJS RAM stat: initial: 173920 after: 170088, used: 3832data: 928
-> shellyplusi4-30839809e704 79 5025.611 2 2|shelly_user_script.:402 Running 'script_1.js'...data: 345
-> shellyplusi4-30839809e704 80 5025.622 1 0|tik tak..... data: 551
-> shellyplusi4-30839809e704 81 5025.631 2 2|shelly_user_script.:431 JS_Timer 0x3ffcd134 now runsdata: 525
-> shellyplusi4-30839809e704 82 5025.641 2 2|shelly_user_script.:376 mJS RAM stat: after user code: 173920 after: 169092, used: 4828data: 290
-> shellyplusi4-30839809e704 83 5025.654 2 2|shelly_notification:120 Status change of script:1: {"id":1,"running":true}data: 153
-> shellyplusi4-30839809e704 84 5025.905 2 2|mg_rpc.c:310 script.list via WS_in 192.168.178.86:59480data: 60
-> shellyplusi4-30839809e704 85 5030.630 1 0|Boom Booom! data: 809
-> shellyplusi4-30839809e704 86 5030.638 2 2|shelly_user_script.:441 JS_Timer 0x3ffcd134 is gonedata: 381
Alles anzeigen
Guck mal hier, da ist das beschrieben:
https://forum.proxmox.com/threads/how-to…xmox-4-2.28732/
neben den reinen Firewall-iptables Regeln brauchst du noch ein Port-Forwarding in den Container, damit der Traffic auch an der richtigen Stelle ankommt.