Danke für die Info.
Wenn das Zeug da ist, werde ich testen.
Das dauert aber noch mindestens 20 Tage
Gesendet von meinem SM-N915FY mit Tapatalk
Danke für die Info.
Wenn das Zeug da ist, werde ich testen.
Das dauert aber noch mindestens 20 Tage
Gesendet von meinem SM-N915FY mit Tapatalk
Hallo,
erstmal danke für das coole Video.
Nur habe ich bei mir das Problem, das das Wochen, Monats und Jahres Skript nicht geht ->
Hat einer eine Idee warum das so ist?
Gruß Niklas
Javascript (statt Blocky) zur Auswertung des Stromzählers.
Unterschiede zu den bisher hier geposteten Skripten
1.) Geflasht mit ESP-Easy mega (aktuelle Version Stand 25.06.2018)
2.) Es wird nicht Count benutzt, sondern Total. Dafür gibt es 2 Gründe. Ersterer ist, daß count bei 2 Senderintervallen gleich sein kann; dann würde der Trigger auf Änderung nicht greifen. Zweitens kann es Aussetze bei MQTT geben, oder Neustart des ESP, oder oder. Also findet die DIfferenzberechnung aufgrund des TotalCOunter statt.
So sieht dann die Config aus:
schimmer-media.de/index.php?attachment/3204/
Da ich zumeist mit virtuellen Geräten arbeite hier erstmal das Skript um so ein Gerät anzulegen.
Das müßte ggfs. auf die eigenen Bedürfnisse angepaßt werden.
// virtuelles Gerät erzeugen
const device = 'HWR_Stromzähler';
const namespace = 'virtualDevice.Sonstiges.'+device;
extendObject('javascript.'+instance+'.'+namespace, {type: 'device', common: {'name': device, 'role': 'energy.monitor'}});
// Zustände erzeugen
createState(namespace+'.total', 0, {name: device+'.total', type: 'number', unit: 'kWh', def: 0, read: true, write: true, role: 'energy'});
createState(namespace+'.usage_today', 0, {name: device+'.usage_today', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power'});
createState(namespace+'.usage_yesterdeay', 0, {name: device+'.usage_yesterdeay', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power.consumption'});
createState(namespace+'.usage_week', 0, {name: device+'.usage_week', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power'});
createState(namespace+'.usage_last_week', 0, {name: device+'.usage_last_week', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power.consumption'});
createState(namespace+'.usage_month', 0, {name: device+'.usage_month', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power'});
createState(namespace+'.usage_last_month', 0, {name: device+'.usage_last_month', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power.consumption'});
createState(namespace+'.usage_year', 0, {name: device+'.usage_year', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power'});
createState(namespace+'.usage_last_year', 0, {name: device+'.usage_last_year', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power.consumption'});
createState(namespace+'.start_today', 0, {name: device+'.start_today', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'variable'});
createState(namespace+'.start_week', 0, {name: device+'.start_week', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'variable'});
createState(namespace+'.start_month', 0, {name: device+'.start_month', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'variable'});
createState(namespace+'.start_year', 0, {name: device+'.start_year', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'variable'});
createState(namespace+'.unreachable', false, {name: device+'.unreachable', type: 'boolean', def: false, read: true, write: false, role: 'indicator.unreach'});
createState(namespace+'.working_cycles', 0, {name: device+'.working_cycles', type: 'number', def: 0, read: true, write: false, role: 'variable'});
createState(namespace+'.working_last_total', 0, {name: device+'.working_last_total', type: 'number', def: 0, read: true, write: false, role: 'variable'});
Alles anzeigen
Der Wert "total" kann dabei angepaßt werden und sollte auf den aktuellen Zählerstand gesetzt werden.
Nun das Skript zum Auswerten der Counter des Wemos am Stromzähler:
// MQTT-Gerät
const mqttDevice = 'mqtt.0.wemos-stromzaehler';
// Virtuelles Gerät
const virtualDevice = 'virtualDevice.Sonstiges.HWR_Stromzähler';
// Strompreis pro kWh in EUR
const price = 0.23924;
// Trigger für Differenzberechnung anhand des Total-Counter,
// da Count-Flag in 2 Sendeintervallen nacheinander den gleichen Wert haben kann
on(mqttDevice+'.strom.total', function (obj) {
var deviceTotal = obj.state.val;
var lastTotal = getState(virtualDevice+'.working_last_total').val;
// Differenz berechnen
var difference;
if (deviceTotal < lastTotal) {
// Total wurde zurückgesetzt (z.B. Neustart Wemos); somit ist deviceTotal die Differenz
difference = deviceTotal;
} else {
// Differenz zwischen aktuellem und letztem Total-Counter
difference = deviceTotal - lastTotal;
}
// Berechnung der working cycles
// 1 kWh = 75 cycles * 2 (wegen on/off Wechsel)
var workingCycles = getState(virtualDevice+'.working_cycles').val + difference;
// letzten Wert von Total-Counter des Geräts speichern
setState(virtualDevice+'.working_last_total', deviceTotal, true);
if (workingCycles < 150) {
// nur Speichern der aktuellen working cycles
setState(virtualDevice+'.working_cycles', workingCycles, true);
} else {
// eine kWh verbraucht; somit 150 working cycles abziehen
setState(virtualDevice+'.working_cycles', workingCycles - 150, true);
// Counter erhöhen
var total = getState(virtualDevice+'.total').val + 1;
setState(virtualDevice+'.total', total, true);
var startToday = getState(virtualDevice+'.start_today').val;
setState(virtualDevice+'.usage_today', total - startToday, true);
var startWeek = getState(virtualDevice+'.start_week').val;
setState(virtualDevice+'.usage_week', total - startWeek, true);
var startMonth = getState(virtualDevice+'.start_month').val;
setState(virtualDevice+'.usage_month', total - startMonth, true);
var startYear = getState(virtualDevice+'.start_year').val;
setState(virtualDevice+'.usage_year', total - startYear, true);
}
});
// jede Nacht um 00:00:20 Uhr ausführen
schedule({hour: 0, minute: 0, second: 20}, function () {
var today = new Date();
// Total-Counter holen
var total = getState(virtualDevice+'.total').val;
// Counter für gestern setzen
var usageYesterday = (total - getState(virtualDevice+'.start_today').val);
setState(virtualDevice+'.usage_yesterdeay', usageYesterday, true);
setState(virtualDevice+'.start_today', total, true);
// Wochenbeginn (1 = Montag)
if (today.getDay() === 1) {
var usageLastWeek = (total - getState(virtualDevice+'.start_week').val);
setState(virtualDevice+'.usage_last_week', usageLastWeek, true);
setState(virtualDevice+'.start_week', total, true);
var costsWeek = price * usageLastWeek;
var msgWeek = 'Der Stromverbrauch in der letzten Woche betrug ' + (total-startWeek) + ' kWh. ';
msgWeek = msgWeek + 'Die Kosten dafür betragen ' + costsWeek + ' EUR.';
// Pushover-Nachricht
sendTo('pushover', {
title : 'ioBroker: Stromverbrauch Woche',
message: msgWeek
});
}
// Monatsbeginn
if (today.getDate() === 1) {
var usageLastMonth = (total - getState(virtualDevice+'.start_month').val);
setState(virtualDevice+'.usage_last_month', usageLastMonth, true);
setState(virtualDevice+'.start_month', total, true);
var costsMonth = price * usageLastMonth;
var msgMonth = 'Der Stromverbrauch im letzten Monat betrug ' + (total-startWeek) + ' kWh. ';
msgMonth = msgMonth + 'Die Kosten dafür betragen ' + costsMonth + ' EUR.';
// Pushover-Nachricht
sendTo('pushover', {
title : 'ioBroker: Stromverbrauch Monat',
message: msgMonth
});
}
// Jahresbeginn (0 = Januar)
if (today.getMonth() === 0) {
var usageLastYear = (total - getState(virtualDevice+'.start_year').val);
setState(virtualDevice+'.usage_last_year', usageLastYear, true);
setState(virtualDevice+'.start_year', total, true);
}
});
// Unerreichbarkeit prüfen
on(mqttDevice+'.status.LWT', function (obj) {
var val = obj.state.val;
var unreachable = !((typeof val === 'string' || val instanceof String) && val === 'Connected');
setState(virtualDevice+'.unreachable', unreachable, true);
});
Alles anzeigen
Zu guter letzt sollte man noch die StartVariablen für total und den Start von Jahr/Monat/Woche/Tag setzen.
"total "ist dabei der aktueller Zählerstand.
"start_year" der Start des Jahres (sollte in letzter Rechnung stehen).
"start_month", "start_week" und "start_today" muß man in etwa schätzen.
Das Skript dazu kann nach Ausführung deaktiviert oder gelöscht werden; die Werte sind Beispielhaft.
const device = 'HWR_Stromzähler';
const namespace = 'virtualDevice.Sonstiges.'+device;
setState(namespace+'.total', 10000, true);
setState(namespace+'.start_today', 99992, true);
setState(namespace+'.start_week', 99977, true);
setState(namespace+'.start_month', 99701, true);
setState(namespace+'.start_year', 98200, true);
MfG Markus
Sehr schön
Einen Tipp hätte ich aber noch: ich würde den Strompreis noch zentral in einen Datenpunkt packen. Somit hast du nur eine Stelle die du ändern musst, sämtliche Skripte haben sofort den aktuellen Preis, nebst VIS usw.
Solange dies dein einziges Skript mit dem Strompreis bleibt ist die Änderung noch überschaubar.
Wenn du dann aber x Stellen z.B in der VIS hast, y Skripte und z Pows usw. wirst du wahnsinnig jeden Quelltext zu durchsuchen und zu ändern (wenn du dann überhaupt an alle denkst ).
Alles anzeigenJavascript (statt Blocky) zur Auswertung des Stromzählers.
Unterschiede zu den bisher hier geposteten Skripten
1.) Geflasht mit ESP-Easy mega (aktuelle Version Stand 25.06.2018)
2.) Es wird nicht Count benutzt, sondern Total. Dafür gibt es 2 Gründe. Ersterer ist, daß count bei 2 Senderintervallen gleich sein kann; dann würde der Trigger auf Änderung nicht greifen. Zweitens kann es Aussetze bei MQTT geben, oder Neustart des ESP, oder oder. Also findet die DIfferenzberechnung aufgrund des TotalCOunter statt.
So sieht dann die Config aus:
schimmer-media.de/index.php?attachment/3204/
Da ich zumeist mit virtuellen Geräten arbeite hier erstmal das Skript um so ein Gerät anzulegen.
Das müßte ggfs. auf die eigenen Bedürfnisse angepaßt werden.
Code Alles anzeigen// virtuelles Gerät erzeugen const device = 'HWR_Stromzähler'; const namespace = 'virtualDevice.Sonstiges.'+device; extendObject('javascript.'+instance+'.'+namespace, {type: 'device', common: {'name': device, 'role': 'energy.monitor'}}); // Zustände erzeugen createState(namespace+'.total', 0, {name: device+'.total', type: 'number', unit: 'kWh', def: 0, read: true, write: true, role: 'energy'}); createState(namespace+'.usage_today', 0, {name: device+'.usage_today', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power'}); createState(namespace+'.usage_yesterdeay', 0, {name: device+'.usage_yesterdeay', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power.consumption'}); createState(namespace+'.usage_week', 0, {name: device+'.usage_week', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power'}); createState(namespace+'.usage_last_week', 0, {name: device+'.usage_last_week', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power.consumption'}); createState(namespace+'.usage_month', 0, {name: device+'.usage_month', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power'}); createState(namespace+'.usage_last_month', 0, {name: device+'.usage_last_month', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power.consumption'}); createState(namespace+'.usage_year', 0, {name: device+'.usage_year', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power'}); createState(namespace+'.usage_last_year', 0, {name: device+'.usage_last_year', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'value.power.consumption'}); createState(namespace+'.start_today', 0, {name: device+'.start_today', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'variable'}); createState(namespace+'.start_week', 0, {name: device+'.start_week', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'variable'}); createState(namespace+'.start_month', 0, {name: device+'.start_month', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'variable'}); createState(namespace+'.start_year', 0, {name: device+'.start_year', type: 'number', unit: 'kWh', def: 0, read: true, write: false, role: 'variable'}); createState(namespace+'.unreachable', false, {name: device+'.unreachable', type: 'boolean', def: false, read: true, write: false, role: 'indicator.unreach'}); createState(namespace+'.working_cycles', 0, {name: device+'.working_cycles', type: 'number', def: 0, read: true, write: false, role: 'variable'}); createState(namespace+'.working_last_total', 0, {name: device+'.working_last_total', type: 'number', def: 0, read: true, write: false, role: 'variable'});
Der Wert "total" kann dabei angepaßt werden und sollte auf den aktuellen Zählerstand gesetzt werden.
Nun das Skript zum Auswerten der Counter des Wemos am Stromzähler:Code Alles anzeigen// MQTT-Gerät const mqttDevice = 'mqtt.0.wemos-stromzaehler'; // Virtuelles Gerät const virtualDevice = 'virtualDevice.Sonstiges.HWR_Stromzähler'; // Strompreis pro kWh in EUR const price = 0.23924; // Trigger für Differenzberechnung anhand des Total-Counter, // da Count-Flag in 2 Sendeintervallen nacheinander den gleichen Wert haben kann on(mqttDevice+'.strom.total', function (obj) { var deviceTotal = obj.state.val; var lastTotal = getState(virtualDevice+'.working_last_total').val; // Differenz berechnen var difference; if (deviceTotal < lastTotal) { // Total wurde zurückgesetzt (z.B. Neustart Wemos); somit ist deviceTotal die Differenz difference = deviceTotal; } else { // Differenz zwischen aktuellem und letztem Total-Counter difference = deviceTotal - lastTotal; } // Berechnung der working cycles // 1 kWh = 75 cycles * 2 (wegen on/off Wechsel) var workingCycles = getState(virtualDevice+'.working_cycles').val + difference; // letzten Wert von Total-Counter des Geräts speichern setState(virtualDevice+'.working_last_total', deviceTotal, true); if (workingCycles < 150) { // nur Speichern der aktuellen working cycles setState(virtualDevice+'.working_cycles', workingCycles, true); } else { // eine kWh verbraucht; somit 150 working cycles abziehen setState(virtualDevice+'.working_cycles', workingCycles - 150, true); // Counter erhöhen var total = getState(virtualDevice+'.total').val + 1; setState(virtualDevice+'.total', total, true); var startToday = getState(virtualDevice+'.start_today').val; setState(virtualDevice+'.usage_today', total - startToday, true); var startWeek = getState(virtualDevice+'.start_week').val; setState(virtualDevice+'.usage_week', total - startWeek, true); var startMonth = getState(virtualDevice+'.start_month').val; setState(virtualDevice+'.usage_month', total - startMonth, true); var startYear = getState(virtualDevice+'.start_year').val; setState(virtualDevice+'.usage_year', total - startYear, true); } }); // jede Nacht um 00:00:20 Uhr ausführen schedule({hour: 0, minute: 0, second: 20}, function () { var today = new Date(); // Total-Counter holen var total = getState(virtualDevice+'.total').val; // Counter für gestern setzen var usageYesterday = (total - getState(virtualDevice+'.start_today').val); setState(virtualDevice+'.usage_yesterdeay', usageYesterday, true); setState(virtualDevice+'.start_today', total, true); // Wochenbeginn (1 = Montag) if (today.getDay() === 1) { var usageLastWeek = (total - getState(virtualDevice+'.start_week').val); setState(virtualDevice+'.usage_last_week', usageLastWeek, true); setState(virtualDevice+'.start_week', total, true); var costsWeek = price * usageLastWeek; var msgWeek = 'Der Stromverbrauch in der letzten Woche betrug ' + (total-startWeek) + ' kWh. '; msgWeek = msgWeek + 'Die Kosten dafür betragen ' + costsWeek + ' EUR.'; // Pushover-Nachricht sendTo('pushover', { title : 'ioBroker: Stromverbrauch Woche', message: msgWeek }); } // Monatsbeginn if (today.getDate() === 1) { var usageLastMonth = (total - getState(virtualDevice+'.start_month').val); setState(virtualDevice+'.usage_last_month', usageLastMonth, true); setState(virtualDevice+'.start_month', total, true); var costsMonth = price * usageLastMonth; var msgMonth = 'Der Stromverbrauch im letzten Monat betrug ' + (total-startWeek) + ' kWh. '; msgMonth = msgMonth + 'Die Kosten dafür betragen ' + costsMonth + ' EUR.'; // Pushover-Nachricht sendTo('pushover', { title : 'ioBroker: Stromverbrauch Monat', message: msgMonth }); } // Jahresbeginn (0 = Januar) if (today.getMonth() === 0) { var usageLastYear = (total - getState(virtualDevice+'.start_year').val); setState(virtualDevice+'.usage_last_year', usageLastYear, true); setState(virtualDevice+'.start_year', total, true); } }); // Unerreichbarkeit prüfen on(mqttDevice+'.status.LWT', function (obj) { var val = obj.state.val; var unreachable = !((typeof val === 'string' || val instanceof String) && val === 'Connected'); setState(virtualDevice+'.unreachable', unreachable, true); });
Zu guter letzt sollte man noch die StartVariablen für total und den Start von Jahr/Monat/Woche/Tag setzen.
"total "ist dabei der aktueller Zählerstand.
"start_year" der Start des Jahres (sollte in letzter Rechnung stehen).
"start_month", "start_week" und "start_today" muß man in etwa schätzen.
Das Skript dazu kann nach Ausführung deaktiviert oder gelöscht werden; die Werte sind Beispielhaft.
Codeconst device = 'HWR_Stromzähler'; const namespace = 'virtualDevice.Sonstiges.'+device; setState(namespace+'.total', 10000, true); setState(namespace+'.start_today', 99992, true); setState(namespace+'.start_week', 99977, true); setState(namespace+'.start_month', 99701, true); setState(namespace+'.start_year', 98200, true);
MfG Markus
Viele dank dafür. Habe deine Skripte bei mir eingefügt. Nur irgendwie gehen die kWh nicht hoch, obwohl per MQTT Daten gezählt werden.
Da ich deine Installation nicht kenne und wie deine Datenpunkte Lautern gerade für mqtt .... Kann ich da leider wenig helfen.
Erste Tipp aus der Ferne wäre die genaue Schreibweise der mqtt variablen
Da ich deine Installation nicht kenne und wie deine Datenpunkte Lautern gerade für mqtt .... Kann ich da leider wenig helfen.
Erste Tipp aus der Ferne wäre die genaue Schreibweise der mqtt variablen
War mein Tipp richtig ... Es liegt an der Gross- und Kleinschreibung .. das ist wichtig bei den Skripten....
In der ESP config fangen die Werte mit Großbuchstaben an ... In meinem Skripten mit Kleinbuchstaben .... Also im Skript die mqtt Werte entsprechend anpassen ... oder auf dem ESP selber, dann also "Count" durch "count" ersetzen, und "Total" durch total ....
Auf jeden Fall müssen die Werte im mqtt-Adapter auf jeden Fall den MQTT-Werten aus dem Skript entsprechen; mit der ganzen Groß- und Kleinschreibung.
War mein Tipp richtig ... Es liegt an der Gross- und Kleinschreibung .. das ist wichtig bei den Skripten....
In der ESP config fangen die Werte mit Großbuchstaben an ... In meinem Skripten mit Kleinbuchstaben .... Also im Skript die mqtt Werte entsprechend anpassen ... oder auf dem ESP selber, dann also "Count" durch "count" ersetzen, und "Total" durch total ....
Auf jeden Fall müssen die Werte im mqtt-Adapter auf jeden Fall den MQTT-Werten aus dem Skript entsprechen; mit der ganzen Groß- und Kleinschreibung.
Ah, ok. Super danke, jetzt geht es
War mein Tipp richtig ... Es liegt an der Gross- und Kleinschreibung .. das ist wichtig bei den Skripten....
In der ESP config fangen die Werte mit Großbuchstaben an ... In meinem Skripten mit Kleinbuchstaben .... Also im Skript die mqtt Werte entsprechend anpassen ... oder auf dem ESP selber, dann also "Count" durch "count" ersetzen, und "Total" durch total ....
Auf jeden Fall müssen die Werte im mqtt-Adapter auf jeden Fall den MQTT-Werten aus dem Skript entsprechen; mit der ganzen Groß- und Kleinschreibung.
Also bei Total wird jetzt gezählt, aber beim Today Zähler und bei den anderen wird nichts gezählt, muss noch irgendwas angepasst werden?
Neben den Schreibfehler bei "usage_yesterdeay" hatte ich noch 2 Fehler beim Pushover-Senden; falls Du das überhaupt nutzt.
Das wären dann folgende Änderungen:
var costsWeek = price * usageLastWeek;
var msgWeek = 'Der Stromverbrauch in der letzten Woche betrug ' + usageLastWeek + ' kWh. ';
msgWeek = msgWeek + 'Die Kosten dafür betragen ' + costsWeek + ' EUR.';
var costsMonth = price * usageLastMonth;
var msgMonth = 'Der Stromverbrauch im letzten Monat betrug ' + usageLastMonth + ' kWh. ';
msgMonth = msgMonth + 'Die Kosten dafür betragen ' + costsMonth + ' EUR.';
Wenn Total richtig gezählt wird, dann sollten auch die anderen Werte für "usage*" richtig gerechnet werden.
Vorausgesetzt immer, Du hast die Zählerstände "start_*" auch richtig eingegeben, auch wenn nur geschätzt.
Alle Berechnung für "usage*" finden nämlich auf Grundlage vom total-Wert ab, wovon der jeweilige Start-Wert abgezogen wird.
MfG Markus
Alles anzeigenNeben den Schreibfehler bei "usage_yesterdeay" hatte ich noch 2 Fehler beim Pushover-Senden; falls Du das überhaupt nutzt.
Das wären dann folgende Änderungen:
Codevar costsWeek = price * usageLastWeek; var msgWeek = 'Der Stromverbrauch in der letzten Woche betrug ' + usageLastWeek + ' kWh. '; msgWeek = msgWeek + 'Die Kosten dafür betragen ' + costsWeek + ' EUR.';
Codevar costsMonth = price * usageLastMonth; var msgMonth = 'Der Stromverbrauch im letzten Monat betrug ' + usageLastMonth + ' kWh. '; msgMonth = msgMonth + 'Die Kosten dafür betragen ' + costsMonth + ' EUR.';
Wenn Total richtig gezählt wird, dann sollten auch die anderen Werte für "usage*" richtig gerechnet werden.
Vorausgesetzt immer, Du hast die Zählerstände "start_*" auch richtig eingegeben, auch wenn nur geschätzt.
Alle Berechnung für "usage*" finden nämlich auf Grundlage vom total-Wert ab, wovon der jeweilige Start-Wert abgezogen wird.
MfG Markus
Ah, jetzt gehts. Nochmal danke
Danke für die Info.
Wenn das Zeug da ist, werde ich testen.
Das dauert aber noch mindestens 20 TageGesendet von meinem SM-N915FY mit Tapatalk
WO hast du bestellt ?
Gearbest liefert viele Dinge (die man hier benötigt) ja leider nicht nach Deutschland.
Gearbest liefert eigentlich fast alles nach Deutschland.
Hab aber die Erfahrung gemacht, daß manchmal ein Vergleich zwischen Banggood, GearBest und ebay gut tut. Gerade bei ebay sind viele China-Verkäufer unterwegs, die auch nach Deutschland verschicken. Und das teilweise günstiger als Banggood oder Gearbest.
Noch günstiger wird es, wenn man einen VK nimmt, der keinen kostenlosen Versand anbietet, dafür aber nur einmal Versandkosten berechnet. Bei kostenlosem Versand, sind die Versandkosten nämlich immer schon im Preis drin. Bestellt man dan bei einem VK z.B. 10 Artikel, hat man dadrin schon 10 mal Versandkosten drin. Daher entweder bei einem VK kaufen, der extra Versand ausweist, oder nachfragen, ob der bei kumulierter Bestellung Versandrabatt gewährt.
MfG Markus
Einfach Frage: Kann ich mit dieser Methode auch die aktuelle Leistung messen? Ich meine, wie viel im Moment verbraucht wird? Wenn ja, wie sieht die Formel aus?
Nicht wirklich. Dafür brauchst du den aktuellen Stromfluss, den gibt der Zähler aber so nicht her.
Du kannst ihn nur ungefähr berechnen anhand der Dauer für eine Umdrehung der Scheibe. Das spiegelt aber nie den aktuellen Wert wieder.
Wenn du den Verbrauchszähler, statt mit einem Sonoff basic mit z.B. einem M3, WMEMO o.ä. aufbaust,
könntest du mit einem, induktiven Stromwandler über den Analog Eingang den aktuellen Stromverbrauch
bzw. auch die Leistung anzeigen lassen
Das dürfte aber nicht ganz billig und einfach werden:
3x Sensor (selbst mit 30A noch ~8,-€)
Dann braucht es aber auch drei Analogeingänge (+ keine Ahnung ob mit einem Port-Expander Tasmota/ESPEasy zurecht kommt? ).
Ich überlege schon die ganze Zeit, wie genau die Berechnung eigentlich ist?
Wenn der Zähler 75 Umdrehungen pro kWh braucht, wäre das eine Auflösung von ~13,3 Wh pro Umdrehung. Über die Zeit die er nun für die Umdrehung braucht kann ich die aktuelle Leistung berechnen.
Wenn er jetzt bspw. 60 Sekunden für eine Runde braucht, würden das 798 Watt entsprechen.
Damit zeigt sich aber auch der Nachteil: je weniger Strom verbraucht wird >>> desto länger braucht es für eine Runde >>> desto "ungenauer" ist die Anzeige
Sie ist natürlich schon genau, nur eben nicht so ganz aktuell...
Also Gerät einschalten ("elektrische Zahnbürste") und sofort sehen was es verbraucht ist nicht. Man muss immer einen Augenblick warten, oder das Teil zieht so viel, dass der Zähler "rast"
An und für sich sollte ein Wandler, für einen normalen Haushalt reichen, wenn man den Wandler in den N hängt
Stimmt auch wieder
Bin ja kein Elektriker und weiß nicht was Standard ist, habe aber auch nur 63 Ampere, da würde der 100er dicke genügen
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!