Datenquellen integrieren, Shelly

Die Idee die Messung direkt auf dem Shelly zu betreiben ist sehr gut. Ich habe mal die API dokumentiert und ein JavaScript für den Shelly Pro 3EM erstellt.

github > thomaslehmann1234/shelly-ortsnetz-auslastung

Könnt ja mal testen und Feedback geben. CC:@Freigeist

404 page not found

Du muss github davor schreiben und .com nicht vergessen. Ich kann leider noch keine Links posten, mein Account ist zu neu.

ist deine seite auf github öffentlich oder kannst nur du die lesen?

Das Repo ist öffentlich. https:// github . com /thomaslehmann1234/shelly-ortsnetz-auslastung

hier der passende Link

@thomaslehmann1234

Script funktioniert mit Shelly Pro 3EM einwandfrei.:+1:

1 „Gefällt mir“

@thomaslehmann1234
super Sache !

Script läuft auch bei mir einwandfrei.

@Akkudoktor das wär doch was für Deinen Youtube-Kanal ? :slight_smile:

2 „Gefällt mir“

Die Datenerfassung soll breit aufgestellt sein und einfach zu benutzen. Die Shelly Erfassung ist sehr schlank und braucht wirklich nur den Shelly am Netzanschluss.
Ich habe für iobroker auch ein JavaScript erstellt, damit kann man einfach die Daten senden. Hier im Repo ist alles zusammengefasst:

Kannst ja mal testen und Feedback geben.

1 „Gefällt mir“

Danke dir, das Iobroker Skript läuft, der Punkt ist in der Karte. Allerdings liegt er genau auf dem Nachbarhaus - möglicherweise ist er darüebr nicht so glücklich :sweat_smile:

Hab versucht den code zu verstehen und aufn EM50 umzuschreiben. Das muss sich später nen slot und Daten mim vorhandenen script teilen, es laufen ja immer höchstens 3 aufm shelly.

Da ich -1 für L2 und L3 schicke, krieg ich 422 zurück. oder hab ich was andres verbockt ... ?

// Shelly Pro EM50 script for ``www.ortsnetz-auslastung.de/v1
// before enabling the script:
const lat=0; // insert your latitude here
const lon=0; // insert your longitude here
const cap=0.5; // insert your plant capacity in kWp here
const vdef=230.0; // insert your default line voltage here
const fdef=50.0; // insert your default line frequency here
const url="``https://www.ortsnetz-auslastung.de/v1/measurements``"; // push url
const src="Shelly Pro EM50"; // data source
const iv="EM50-0.1.0"; // integraton version
const tsMs=300000; // timeslice in ms
var pp=1.0; // planned productin in kWh
var ev=Shelly.getComponentStatus("EM1",0); // array for response
var ts=Date().toISOString(); // timestamp
var send={observed_at:ts,latitude:lat,longitude:lon, // send data structure
l1_v:vdef,l2_v:-1,l3_v:-1,grid_frequency_hz:fdef,
plant_capacity_kwp:cap,pv_forecast_kwh:pp,
smartmeter_model:src,integration_version:iv};
function conlog(res,err,errMsg){ // console log
if (err!==0){console.log("Ortsnetz fail:"+errMsg);return} // fail
console.log("Ortsnetz HTTP"+res.code)} // OK
function vc(v){return typeof v==="number"&&v>=70&&v<=300} // voltage check
function fc(v){return typeof v==="number"&&v>=45&&v<=65} // frequency check
function push(){
ev=Shelly.getComponentStatus("EM1",0); // get shelly data ch 0
ts=Date().toISOString(); // timestamp
if(ev===null||!vc(ev.voltage)||!fc(ev.freq)){ // invalid values
console.log("Ortsnetz: EM data invalid");return}
send = {observed_at:ts,latitude:lat,longitude:lon,// assemble send structure
l1_v: ev.voltage,l2_v:-1,l3_v:-1,grid_frequency_hz:ev.freq,
smartmeter_model:src,integration_version:iv};
Shelly.call("HTTP.Request", {method: "POST",url:url, // push message
body:JSON.stringify(send),headers:{"Content-Type":"application/json"},
timeout: 10},conlog)}
push();
Timer.set(tsMs,true,push);

Die API Änderung ist noch nicht umgesetzt, ich bitte um Geduld.

Thomas,

ich habe zwei Anlagen, per Shelly Pro 3EM gemessen, integriert.

Das Shelly mJS habe ich ein wenig verbessert, im Bereich des Shelly.Call. Dass sollte besser per Try/Catch realisiert werden. Dann auch noch ne Kleinigkeit bzgl. der Debuggfähigkeit.

Version ist jetzt bei mir V 0.1.1

PostData_ShellyPro3EM_ortsnetz-auslastung_V011_200926.zip (1,3 KB)

Vielen lieben Dank für die Unterstützung. Wenn die programmatischen Unterstützer vielleicht Pull Requests bei GitHub öffnen können? Macht alles sehr einfach und keine Änderung geht unter. Danke

Macht Sinn, sonst gehen Änderungen unter

Aber sollten das Thema pushen, momentan machen nicht wirklich Viele mit

Hi Thomas,

würde ich ja gerne, aber für mich ist Github ein Hexenwerk.
Ich weiss nicht was Pull Requests sind.

Sorry.

Da hadere ich auch noch mit. Bislang habe ich mich mit Guthub nicht beschäftigt

script für shelly pro EM50 spielt und wird angezeigt auf der Karte.

Bitteschön:

EM50-stromnetz-011-fnal.zip (1,1 KB)

2 „Gefällt mir“

Die Freude war leider nur von kurzer Dauer. Der Messpunkt liefert aktuell leider keine Daten. Hast Du eine Idee warum?

shelly Betriebssystem crasht manchmal. Hab dafür 1 Meldung offen bei shelly. Ausserdem hatte ich irgendwie longitude und latitude vertauscht ...

1 „Gefällt mir“