Hallo openWB Team und Foren-Kollegen,
Nachdem ich länger versucht habe selbst ein Modul für eine Integration für openWB 2.0 zu schreiben und es mir mangels Dokumentation und Beispielen nicht möglich ist, möchte ich folgende Erweiterung des JSON Moduls erbitten:
1. Die Möglichkeit HTTP POST und nicht nur HTTP GET requests durchzuführen
2. Die Möglichkeit eigene Header für den HTTP Request hinzuzufügen
Generell denke ich, dass ein umfangreicheres JSON Modul die Intergration mit sehr vielen Komponenten erlaubt. Dies wäre also sicher auch anderen Nutzern hilfreich.
Ich habe dies bereits auf meiner openWB 2.0 Entwicklungsumgebung hart in den Code geschrieben und dies hat funktioniert. Um allerdings die Parameter per UI als Eingabe zuzulassen muss ich tief im Javascript kryptische Dateien anpassen und die Felder mit Namen und Beschreibung zu versehen und dazu sehe ich mich ohne entsprechende Anleitungen nicht in der Lage.
Noch eine Anmerkung zu dem "open" Gedanke welcher hinter openWB steckt. Ich persönlich finde die Idee prima, die breite Community zur Entwicklung einzubinden um ein umfangreiches Erlebnis herstellen zu können. Dies bedingt aus meiner Sicht aber, dass der Code und die Kommentare auf Englisch sind (ich habe mir aus meiner Firma Entwickler hinzugezogen um den Code Reverse-zu-Engineeren, die aber alle nicht aus deutschland kommen) und eben auch eine entsprechende Dokumentation vorhanden ist. Ich wäre damit in der Lage entsprechende Integrationen/Module selbst zu schreiben oder schreiben zu lassen und diese der Allgemeinheit zur Verfügung zu stellen, was ich auch gerne machen würde.
Danke und liebe Grüße
Erweiterung JSON Modul
-
- Beiträge: 956
- Registriert: Mo Nov 02, 2020 9:50 am
- Has thanked: 5 times
- Been thanked: 6 times
Re: Erweiterung JSON Modul
Da ist nichts wirklich "kryptisch"; Das Konfigurations-UI wird hier gepflegt: https://github.com/openWB/openwb-ui-settings
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Kia EV6, Smart EQ forfour
- mrinas
- Beiträge: 2143
- Registriert: Mi Jan 29, 2020 10:12 pm
- Has thanked: 8 times
- Been thanked: 5 times
Re: Erweiterung JSON Modul
Gibt auch einen Einstieg im Wiki
https://github.com/openWB/core/wiki/Ent ... gsumgebung
https://github.com/openWB/core/wiki/Neu ... grammieren
https://github.com/openWB/core/wiki/Ein ... -erstellen
https://github.com/openWB/core/wiki/Ent ... gsumgebung
https://github.com/openWB/core/wiki/Neu ... grammieren
https://github.com/openWB/core/wiki/Ein ... -erstellen
15,2kWp SMA (SB4000TL-21, SB3.0, STP6.0-SE + BYD HVS, EnergyMeter), openWB Standard+, openWB Pro, Smart #1 (ersetzt den e2008), Tesla Model Y LR.
Re: Erweiterung JSON Modul
Vielen Dank für die Guides. So etwas habe ich gesucht aber nicht gefunden.
Dann mache ich mich wieder einmal an die Entwicklung.
Eine Anmerkung zum Installationsskript https://raw.githubusercontent.com/openW ... install.sh:
Ich bin bereits bei mehreren Installationen in einen Fehler "error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function." gelaufen. Dieser lässt sich einfach beheben indem der Parameter --depth=1 zum git clone hinzugefügt wird:
Liebe Grüße
Dann mache ich mich wieder einmal an die Entwicklung.
Eine Anmerkung zum Installationsskript https://raw.githubusercontent.com/openW ... install.sh:
Ich bin bereits bei mehreren Installationen in einen Fehler "error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function." gelaufen. Dieser lässt sich einfach beheben indem der Parameter --depth=1 zum git clone hinzugefügt wird:
Code: Alles auswählen
sudo -u "$OPENWB_USER" git clone --depth=1 https://github.com/openWB/core.git --branch master "$OPENWBBASEDIR"
Re: Erweiterung JSON Modul
Wenn ich nach einem Beispieltext auf der UI suche, komme ich leider nicht auf die Konfigurations-UI sondern nur in kryptische JavaScript Dateien. Daher meine Aussage vom initialen Post.rleidner hat geschrieben: ↑Mi Nov 13, 2024 2:48 pmDa ist nichts wirklich "kryptisch"; Das Konfigurations-UI wird hier gepflegt: https://github.com/openWB/openwb-ui-settings
Code: Alles auswählen
root@openwb:/home/pi# grep -rnw /var/www/html/openWB/ -e 'Es wird eine komplette URL erwartet mit Angaben zum Protokoll'
/var/www/html/openWB/web/settings/assets/device-335438c4.js:1:import{D as l}from"./HardwareInstallation-2c646227.js";import{_ as d,u as t,k as m,l as u,G as i,E as s,y as o,x as c}from"./vendor-f90150d8.js";import"./vendor-fortawesome-8488187c.js";import"./index-0eaa3ed7.js";import"./vendor-bootstrap-99f0c261.js";import"./vendor-jquery-99ccf6d7.js";import"./vendor-axios-871a0510.js";import"./vendor-sortablejs-cfc19546.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return m(),u("div",f,[i(r,null,{default:s(()=>e[1]||(e[1]=[o(" Einstellungen für JSON ")])),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein."),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ")])),_:1},8,["model-value"])])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default};
- mrinas
- Beiträge: 2143
- Registriert: Mi Jan 29, 2020 10:12 pm
- Has thanked: 8 times
- Been thanked: 5 times
Re: Erweiterung JSON Modul
erstell' einen PR mit der Anpassung, das ist vermutlich der direkteste Weg das zu korrigieren.ChrisWe hat geschrieben: ↑Fr Nov 15, 2024 10:02 am Vielen Dank für die Guides. So etwas habe ich gesucht aber nicht gefunden.
Dann mache ich mich wieder einmal an die Entwicklung.
Eine Anmerkung zum Installationsskript https://raw.githubusercontent.com/openW ... install.sh:
Ich bin bereits bei mehreren Installationen in einen Fehler "error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function." gelaufen. Dieser lässt sich einfach beheben indem der Parameter --depth=1 zum git clone hinzugefügt wird:Liebe GrüßeCode: Alles auswählen
sudo -u "$OPENWB_USER" git clone --depth=1 https://github.com/openWB/core.git --branch master "$OPENWBBASEDIR"
15,2kWp SMA (SB4000TL-21, SB3.0, STP6.0-SE + BYD HVS, EnergyMeter), openWB Standard+, openWB Pro, Smart #1 (ersetzt den e2008), Tesla Model Y LR.
- mrinas
- Beiträge: 2143
- Registriert: Mi Jan 29, 2020 10:12 pm
- Has thanked: 8 times
- Been thanked: 5 times
Re: Erweiterung JSON Modul
Ja das ist grundsätzlich richtig.ChrisWe hat geschrieben: ↑Fr Nov 15, 2024 10:09 amWenn ich nach einem Beispieltext auf der UI suche, komme ich leider nicht auf die Konfigurations-UI sondern nur in kryptische JavaScript Dateien. Daher meine Aussage vom initialen Post.rleidner hat geschrieben: ↑Mi Nov 13, 2024 2:48 pmDa ist nichts wirklich "kryptisch"; Das Konfigurations-UI wird hier gepflegt: https://github.com/openWB/openwb-ui-settingsCode: Alles auswählen
root@openwb:/home/pi# grep -rnw /var/www/html/openWB/ -e 'Es wird eine komplette URL erwartet mit Angaben zum Protokoll' /var/www/html/openWB/web/settings/assets/device-335438c4.js:1:import{D as l}from"./HardwareInstallation-2c646227.js";import{_ as d,u as t,k as m,l as u,G as i,E as s,y as o,x as c}from"./vendor-f90150d8.js";import"./vendor-fortawesome-8488187c.js";import"./index-0eaa3ed7.js";import"./vendor-bootstrap-99f0c261.js";import"./vendor-jquery-99ccf6d7.js";import"./vendor-axios-871a0510.js";import"./vendor-sortablejs-cfc19546.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return m(),u("div",f,[i(r,null,{default:s(()=>e[1]||(e[1]=[o(" Einstellungen für JSON ")])),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein."),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ")])),_:1},8,["model-value"])])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default};
Die UI der Einstellungen wird in einem separaten repo gepflegt. Dort ist auch beschrieben wie man das live testen kann (npm run dev). Sobald das alles fertig ist, PR erstellen wie gehabt.
Aus diesem Repo werden dann die .js dateien kompiliert und ins main Repo übernommen und so ausgeliefert.
15,2kWp SMA (SB4000TL-21, SB3.0, STP6.0-SE + BYD HVS, EnergyMeter), openWB Standard+, openWB Pro, Smart #1 (ersetzt den e2008), Tesla Model Y LR.