-
-
Notifications
You must be signed in to change notification settings - Fork 722
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
getmode
removed
#18246
base: master
Are you sure you want to change the base?
getmode
removed
#18246
Conversation
Oder alle Modi mappen? |
Kann man machen, sind aber 35 Zustände. Sinnvoller wäre es da aber, man nimmt die Register von SG1 und SG2. Aber da bräuchte es eine logische Abfrage im Template... Siehe auch die Diskussion in Slack, da hatte ich das schon erwähnt:
Du meintest daraufhin, man solle |
Also wenn du sg1 und 2 über Modbus abfragen kannst lassen die sich auch z.B. mit dem Go Plugin verknüpfen. |
Hast du da ein Beispiel zur Hand? Hab gerade keine Idee, wie das geht. |
Danke, aber ich hätte das jetzt 3 h lang versucht zu verstehen, komme aber auf keine grünen Zweig. Das einzige von dir verlinkte Template wo go verwendet wird, wäre das vom Sungrow. https://github.com/evcc-io/evcc/blob/6cdd84453b9f72aa5f48004ab121030c14fc7914/templates/definition/meter/sungrow-hybrid.yaml Aber auch da habe ich keine Ahnung was da passiert:
|
Ist doch eigentlich ganz einfach: |
Und wo ist das Script? Ist es das hier? Das oben ist ja nachzuvollziehe, aber wo kann ich nachsehen, was man alles verwenden kann? |
@deadrabbit87 sollen wir dem map Plugin noch einen |
Was soll der dann machen?
Kannst du mir das beantworten? Mir würde die Lösung über SG1 und SG2 schon besser gefallen. Außer ihr seht perspektivisch einen Vorteil darin, mehr Zuständen der WP zu haben. |
Ich hab ncoh ein besseres Beispiel raus gesucht (https://github.com/search?q=repo%3Aevcc-io%2Fevcc+%22source%3A+go%22+language%3AYAML+&type=code): evcc/templates/definition/vehicle/mg2mqtt.yaml Lines 39 to 49 in 81b3d44
|
Danke für deine Mühe, aber das hilft irgendwie auch nichts. Ich glaube bei mir ist da Hopfen und Malz verloren. Was ich irgendwie in wenig nachvollziehen kann, ist wie Bei dem Beispiel mit dem climater kann ich nur vermuten: Es wird via mqtt ein Status ausgelesen, aber wie wird der verarbeitet? Und wozu hier in wenn kein out? Und was macht hier |
Hab jetzt noch ein anderes Beispiel gefunden.
Wäre ich mit dem hier auf dem richtigen Weg? Ich mein klar, funktioniert noch nicht, aber wäre der Ansatz zumindest richtig? getmode:
source: go
script: |
SG1 && SG2
in:
- name: SG1
type: boolean
config:
source: modbus
{{- include "modbus" . | indent 5 }}
register:
address: 35101
type: input
encoding: uint16
- name: SG2
type: boolean
config:
source: modbus
{{- include "modbus" . | indent 5 }}
register:
address: 35102
type: input
encoding: uint16 |
Auf den ersten Blick: genau so 👍🏻 |
Das ist echt zäh, aber jetzt bin ich zumindest schon mal bei go-Fehlermeldungen bzw. so was ähnlichem ;-) @andig Kannst du mir nicht noch einen Tipp geben, wie das script ( getmode:
source: go
script: |
if SG1 == 0 && SG2 == 0 { 1 }
in:
- name: SG1
type: int
config:
source: modbus
{{- include "modbus" . | indent 6 }}
register:
address: 35101
type: input
encoding: uint16
- name: SG2
type: int
config:
source: modbus
{{- include "modbus" . | indent 6 }}
register:
address: 35102
type: input
encoding: uint16 [main ] INFO 2025/01/19 21:07:30 evcc 737f56eb (737f56eb)
[main ] INFO 2025/01/19 21:07:30 using config file: ../../evcc.yaml
[db ] INFO 2025/01/19 21:07:30 using sqlite database: /home/ubuntu/.evcc/evcc.db
Temp: 37°C
Charge status:
Enabled: false
Features: [Heating IntegratedDevice] |
Sowas?
oder was brauchst du? |
Ich möchte nur die ausgelesenen Werte von SG1 und SG2 logisch verknüpfen und dann Normal, Boost oder Stop setzen. |
Ich verstehe die Frage wohl nicht. Sowas? res := 1
switch {
case SG1 == 1 && SG2 == 0: res = 3
case SG1 == 0 && SG2 == 0: res = 2
}
res Evtl. geht es auch ohne die letzte Zeile. |
fix #18245