Nein! Ein Shelly verarbeitet per Skript die Werte. Skripte auf reinen BLE gibt es nicht.
Beiträge von ostfriese
-
-
-
-
das Fritz! - Gastnetz unterbindet die Kommunikation der Geräte untereinander.
#2 gelesen?
-
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Setze die Option WLAN-Geräte dürfen untereinander kommunizieren.
-
Wenn man den Status statt der Konfiguration abfragt, geht das auch mit DHCP.
Alt:
getComponentConfig
Codeprint('Your url is:'); uri = 'http://' + Shelly.getComponentConfig("wifi").sta.ip + '/script/' + Shelly.getCurrentScriptId() + '/test?switch_on'; print(uri);
bringt nichts, da ich ja nach der konfigurierten IP frage. Ist bei DHCP nicht vorhanden.
Neu:
getComponentStatus
Codeprint('Your url is:'); uri = 'http://' + Shelly.getComponentStatus("wifi").sta_ip + '/script/' + Shelly.getCurrentScriptId() + '/test?switch_on'; print(uri);
klappt immer. Hier frage ich nach dem Status. Da ist die IP enthalten.
Fazit: Immer die neue Methode benutzen, da beim Status immer eine IP zu finden ist, egal ob fix oder DHCP.
-
Willkommen im Forum.
Give it a try; KLICK
-
-
-
Ja, das geht mit einem Skript auf dem 1PM Mini.
Wenn keine anderen Vorschläge kommen...
-
Du kannst dann allerdings die Daten nicht per Script abfragen und verarbeiten.
Falsch, kann man prima machen. Sowohl für alle Shelly BLE, als auch für Ruuvi.
Ruuvi bietet dabei mehr Messwerte.
Und Teilweise hast du Recht, was das Abfragen anbelangt. Abfragen muss man die nicht, die senden ihre Daten autonom über BT.
Verarbeiten per Skript geht aber wunderbar.
-
JavaScript) auf dem Frontend-Gerät (Web Browser)
Wenn man den Browser die Arbeit machen lässt, muss man halt eine Sprache verwenden, die der auch versteht.
-
Den Part habe ich aus meiner Sammlung. Ist ja nicht kriegsentscheidend. Wenn du die Sekunde mit drin hast, werde ich deinen eleganten Part in meine Sammlung aufnehmen.
Ohne entsprechende und relativ aktuelle JavaScript Kenntnisse geht das ja nicht.
Ja, ist halt für Nerds gedacht, also auch für dich
-
Es ist ja schon bekannt, dass man auf einem Gen2/3 Shelly kleinere HTML/Javascript/CSS Seiten zur Verfügung stellen kann.
Das ist bisher nur statisch umgesetzt worden, das heißt, eine Website stellt eine Ansicht zur Verfügung, muss aber durch einen Reload der Seite aktualisiert werden.
Ich habe jetzt mal beispielhaft an einer Uhr dargestellt, wie man das so gestalten kann, dass Werte ohne Reload (dynamisch) aktualisiert werden.
Das Skript selbst hat jetzt keinen großen Nutzen, zeigt aber, wie man so etwas für eigene Skript-Projekte nutzen kann.
Das Prinzip ist einfach. Der Shelly stellt erst einmal eine Website zur Verfügung. Das ist das statische Grundgerüst.
In diesem Grundgerüst ist Javascript Code hinterlegt, der den Browser veranlasst, den dynamischen Teil sekündlich neu zu laden.
Im Hintergrund, also durch das Shelly-Skript, wird dieser dynamische Inhalt manipuliert.
Eine Uhr ist ja per se dynamisch.
Hier im Beispiel halt eine Uhr. Es können aber natürlich auch Messwerte, Zustände o.Ä. sein.
Dieses Beispiel verdeutlicht nur das Prinzip. Wie ihr das nutzt, bleibt eurer Fantasie überlassen.
HTML
Alles anzeigen//Get time in hh:mm:ss function full_time() { date_now = new Date(Shelly.getComponentStatus('sys').unixtime * 1000); hour = '0' + date_now.getHours(); min = '0' + date_now.getMinutes(); sec = '0' + date_now.getSeconds(); return time = hour.substr(-2) + ':' + min.substr(-2) + ':' + sec.substr(-2); } //Manipulate dynamic data function set_time() { html_data = html_data_raw.replace('--:--:--',full_time()); } //Responde to http_requets function send_response(response, body) { response.code = 200; response.body = body; response.send(); } //React on http function main_http(request,response) { query = String(request.query); if(request.query === '') { send_response(response, html_main); } if(request.query === 'data') { send_response(response, html_data); } } //Do some user friendly printout script_id = Shelly.getCurrentScriptId(); print('Your possible urls are:'); let uri = 'http://' + Shelly.getComponentConfig("wifi").sta.ip + '/script/' + script_id + '/womo'; print(uri); //The main html page let html_main = '<html><head><title>Test</title>' + '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" content="dark" /></head>' + '<body>' + '<style>body{background-color:#000000;color:#999999;width:100%;hight:100%}</style>' + '<div id="dataDiv">waiting for data...</div>' + '<script>' + 'function updateDiv() {' + 'fetch("' + uri + '?data")' + '.then(function(response) {return response.text();})' + '.then(function(data) {document.getElementById("dataDiv").innerHTML = data;});' + '}' + 'setInterval(updateDiv, 1000);' + '</script></body></html>'; //The dynamic html part let html_data_raw = '<style>div1{color:#999999;font-size:69px;}'; html_data_raw += 'div2{color:#000099;font-size:69px;}'; html_data_raw += '</style>'; html_data_raw += '<div2>Uhrzeit: --:--:--</div2>'; //Some pre config let html_data = html_data_raw; let t1 = Timer.set(1000,true,set_time); HTTPServer.registerEndpoint('womo',main_http);
-
Da meine Augen zu schlecht zum Suchen und meine Hände zu zittrig zum Löten sind, frage ich lieber euch
-
Danke, jetzt ist es klar
-
Super, danke, das ist nicht so kompliziert.
Und sehe ich das richtig, dass dann Minus an N und Plus an L (Klemmleiste) angeschlossen wird?
-
Danke Thomas
Was genau würdest du vorschlagen?
-
Mal eine Frage zur Spannungsversorgung der Mini.
Ich meine schon gelesen zu haben, dass einige defekte Shelly anderer Bauart nach ihrem Tod noch an 12V betreibbar waren.
Meine Frage deshalb, ist es möglich, durch einen Umbau einen Mini1(G3) auf Versorgung durch 12V Gleichspannung umzubauen?
-
Meistens ist das ein Set aus Leuchtmittel und Starter-Dummy. Die Lampe ("Fassung") kann bleiben.