NEWS
Aktuellen Wert zyklisch in ein Verzeichnis schreiben
-
Die Dateirechte stehen dann der openWB zu wenn ich das richtig verstehe. Bezüglich des Formates bin gerade überfragt. Diese Info habe ich bekommen:
In OpenWB nutzt du dann das http modul das abfragt:
http://lokaleip/openWB/ramdisk/xxxbezugIch werde mal nachfragen in welchem Format es vorliegen muss. Eventuell hilft das:
weiter.
-
in einer sequentiellen Datei : keine
in Datenbank : schon kommt auf die Feldeklaration an -
@arteck sagte in Aktuellen Wert zyklisch in ein Verzeichnis schreiben:
in Datenbank : schon kommt auf die Feldeklaration an
und in ioBroker ist das so.
In Excel auch 1234 vs. '1234 -
@Homoran Ah okay, dachte iobroker macht da keine Unterschiede, aber da bin ich wohl zu sehr Windows gewöhnt, was das alles immer bisschen lockerer sieht^^ (auch zwecks Groß- kleinschreibung)
@Lemmi Dann kannst du doch dort direkt die URL vom Simple APi Adapter eingeben oder nicht?
Müsste dann so aussehen:
"http://ipaddress:8087/getPlainValue/energymanager.0.Standort_(Hause).PowerConsumedFromGrid"So wie @arteck es schonmal beschrieben hat.
-
@Lemmi Dann kannst du doch dort direkt die URL vom Simple APi Adapter eingeben oder nicht?
Müsste dann so aussehen:
"http://ipaddress:8087/getPlainValue/energymanager.0.Standort_(Hause).PowerConsumedFromGrid"
So wie @arteck es schonmal beschrieben hat.Das habe ich ja auch gedacht. Wenn ich im HTTP Modul genau das ( 192.168.XXX.XX:8087/getPlainValue/energymanager.0.Standort_(Wohnhaus_Lemke).PowerConsumedFromGrid) eingebe passiert aber nichts. Genau das ist es ja was mich zur Verzweifelung bringt und ich versuche die Wallbox doch noch irgendwie ans laufen zu bringen.
Danke auf jedenfall schon mal an alle die mir hier helfen wollen. Weiss es echt zu schätzen!!
-
@Lemmi Wen du die URL im Browser eingibst erhälst du aber den korrekten Wert oder?
-
ja, wenn ich die URL eingebe wird mir auch genau der Wert angezeigt.
-
@Lemmi Ist die Response auch wirklich nur die Zahl?
Mal mit den Entwicklertools im Browser unter Netzwerk die Abfrage überprüfen. Da darf dann (so wie ich das verstanden habe) wrklich nur die Zahl sein.
Wenn auch das passt wäre wahrscheinlich das Forum von OpenWB besser.
Vll hat das auch iwo ein Log wo dann was drin steht, aber damit kennt sich hier denke ich mal kaum einer aus. -
Im Browser erscheint wirklich nur die reine Zahl. Allerdings mit mit punkt. es wird nicht gerundet. Vielleicht stört das ja auch. Habe den Entwickler per Mail gefragt ob ich überprüfen kann ob die Abfrage überhaupt gestartet wird und ob es eine Fehlermeldung gibt. Mal sehen was er Antwortet.
-
@Lemmi sagte in Aktuellen Wert zyklisch in ein Verzeichnis schreiben:
Eventuell hilft das:
enthält der Wert etwas anderes als 0-9 oder - wird der Wert auf NULL gesetzt.
@Lemmi sagte in Aktuellen Wert zyklisch in ein Verzeichnis schreiben:
Allerdings mit mit punkt.
Ein Punkt darf nicht drin sein
-
@Lemmi Du könntest zum Testen einen Datenpunkt unter javascript.0.openwb.netzbezug anlegen und dort eine ganze Zahl (ohne Komma) eintragen.
Und dann diesen Wert abfragen lassen. Funktioniert es dann?Falls ja, musst du nur per Skript auf den alten DP triggern, aufrunden auf ne ganze Zahl und dann in den neuen DP schreiben.
-
muss jetzt zur Arbeit und werde mich heute Abend weiter damit beschäftigen.
-
@Lemmi
Hallo Sven,
da du, wie bereits erwähnt, mittlerweile vier Threads zum Thema offen hast, antworte ich mal hier, da die Lösung schon von @thewhobox aufgezeigt wurde. Die wenigst praktikable Lösung wäre also den Adapter anzupassen.Nochmal in Kurzform:
- Erstelle dir für alle drei gewünschten Werte einen neuen Datenpunkt unter den Javascript-Objekten.
- Baue dir ein Blockly mit folgenden Aufgaben:
-
- Trigger (Auslösung des Scriptblocks) entweder als Cron, also zeitgesteuert alle 15 Sekunden (energymanager Adapter natürlich auf diesen Wert setzen) oder bei Änderung des Wertes im Quelladapter
-
- Runden des Ursprungswertes
-
- Schreiben in den oben neu erzeugten Wert
- Greife aus der Weboberfläche auf die NEUEN gerundeten angepassten Werte zu
Das ist jetzt mal ein Versuch zu erklären, was mein Vorredner gemeint hat. Geht natürlich professioneller, aber zum ersten Testen reichts.
Bin gerade unterwegs. Bei Interesse später ausführlicher.
-
Hallo Michael,
hört sich gut an. Wenn es dir nichts ausmacht, wäre es super, wenn du es etwas ausführlicher beschreiben könntest. Stosse hier nämlich ständig an meine Grenzen. mit dem Runden könnte das doch so funktionieren oder?
function precisionRound(number, precision) {
var factor = Math.pow(10, precision);
return Math.round(number * factor) / factor;
}
on({id: 'javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_input', change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
setState("javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_kWh"/Zaehlerstand_kWh/, (precisionRound((getState("javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_input").val / 75)), 3), true);
});
Die Datenpunkte in einem neuen Ordner oder direkt im Energymanager?
-
@Lemmi
Setze den Code bitte mal in Code-Tags.
Die Datenpunkte kannst du anlegen wo du willst. Hat keinen Einfluss auf die Funktionalität.Nur kurz vom Überfliegen, der Wert wird bei dir nie angepasst werden. Du prüfst auf Änderungen des Zielwertes und willst den dann anpassen. Du musst auf Änderungen des Energymanager Wertes prüfen.
Bau dir das dich erst mal mit Blockly zusammen und schau dir den entstandenen Code mal an. Damit du den Aufbau verstehst.
-
Das war auch nur ein Beispiel aus dem Forum was ich gefunden habe welches sich mit runden von Zahlen beschäftigt. https://forum.iobroker.net/topic/11986/gelöst-js-skript-runden-auf-3-stellen-nach-dem-komma
Datenpunkte anlegen bekomme ich noch hin. Blockly über Spipte öffnen auch noch. Root Verzeichnis, Common oder Global ? Aber dann geht es los!! Wo/Wie muss ich anfangen und wo hört es auf!! Werde heute Abend mal damit herumexperimentieren. Wie gesagt bin ich hier absoluter Anfänger.
-
Hallo Michael,
habe mal ein bisschen mit Blockly gespielt und folgendes entworfen:Funktioniert wie zu erwarten natürlich nicht!!
Entspricht das ungefähr dem was du mir vorgeschlagen hast?
-
@Lemmi
Du mischt jetzt verschiedene Lösungsversuche durcheinander. Den Exec-Block brauchst du nicht. Und im blauen Block setzt du den Wert auf "true" also wahr. Lies einfach was da steht von oben nach unten.So sollte es z.B. gehen:
Dein "Schreibe"-Block ist sogar besser. In den Wert dann eben nicht "wahr" sondern "runde ..." einsetzen.
Damit wird überprüft, ob sich das Objekt Einspeisung geändert hat und schreibt dann einen Wert in den neuen Datenpunkt. Der Wert wird berechnet, indem der Wert der Einspeisung mal 1000 gerechnet wird (kW in Watt) und das ganze dann gerundet wird.Das machst du dreimal, einfach den Falls-Block komplett kopieren, darunter einhacken und die Datenpunkte anpassen.
Im Anschluss in OpenWB den Link anpassen und fertig.
-
@Lemmi
Hattest du schon Erfolg? -
Hallo Michael,
sorry das ich mich jetzt erst melde!!! Hatten am WE Kommunion unserer Tochter und Fussballturnier unseres Sohnes. Bin heute erst dazu gekommen meine Versuche zu perfektionieren. Da die OpenWB für Einspeisung und Speicherentladung auch noch ein Minus davor haben wollte musste ich die Datenpunkte dahingehend verändern. Habe es aber geschafft und es scheint nun auch so zu sein wie es muss.
Beispielskript:
Werde nun beobachten, ob sich alles so verhält wie ich es mir wünsche und ggf. ein paar Kleinigkeiten ändern.
Vielen, Vielen Dank nochmal an dich für deine Hilfe!!!!! Ohne die hätte ich es ganz sicher nicht geschafft.
Gruß Sven