Skip to content

Commit

Permalink
Merge pull request #1301 from benderl/rename-rfid
Browse files Browse the repository at this point in the history
Rename rfid
  • Loading branch information
benderl authored Dec 11, 2023
2 parents ce5e749 + 0540b2c commit 6c16f95
Show file tree
Hide file tree
Showing 17 changed files with 431 additions and 251 deletions.
5 changes: 3 additions & 2 deletions docs/Ladepunkte.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Die Einstellungen für Ladepunkte unterteilen sich in die spezifischen Einstellu

Beim Hinzufügen eines Ladepunkts muss zunächst dessen Typ ausgewählt werden. Danach wird Ladepunkt-spezifisches, wie z.B. die Anzahl angeschlossener Phasen oder eine verbaute Phasenumschaltung, konfiguriert.

In dem Ladepunkt-Profil sind die Einstellungen zum automatischen Sperren (Autolock) und für RFID von Ladepunkten enthalten. Ein Ladepunkt-Profil kann vom Benutzer mehreren Ladepunkte zugewiesen werden, sodass die Einstellungen für jeden Ladepunkte einzeln oder für eine Gruppe zugewiesen werden können.
In dem Ladepunkt-Profil sind die Einstellungen zum automatischen Sperren (Autolock) und für die Freigabe von Ladepunkten durch ID-Tags enthalten. Ein Ladepunkt-Profil kann vom Benutzer mehreren Ladepunkte zugewiesen werden, sodass die Einstellungen für jeden Ladepunkte einzeln oder für eine Gruppe zugewiesen werden können.

Das Vorhalten eines RFID-Tags (verbauter RFID-Leser erforderlich) oder die Pin-Eingabe (Display erforderlich, Eingabefeld muss im Steuerungsmodus 'secondary' aktiviert werden) werden gleich verarbeitet.
Das Erfassen eines RFID-Tags (verbauter RFID-Leser erforderlich) oder die Pin-Eingabe (Display erforderlich, Eingabefeld muss im Steuerungsmodus 'secondary' aktiviert werden) sowie die automatische
Fahrzeugerkennung der openWB Pro (muss in den Einstellungen aktiviert werden) werden gleich verarbeitet.
6 changes: 3 additions & 3 deletions docs/Ladung nur nach Freischaltung.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ Hierzu ist folgendes zu konfigurieren:

Wenn die Freischaltung mittels PIN, RFID oder MAC-Adresse erfolgen soll:

- Einstellungen -> Optionale Hardware: **RFID aktivieren** + Speichern
- unter Konfiguration -> Fahrzeuge -> gewünschtes Fahrzeug -> Zugeordnete Tags: dem jeweiligen Fahrzeug **den Tag (PIN/RFID-Tag/MAC-Adresse) zuweisen** + Speichern
- unter Konfiguration -> Ladepunkte -> Ladepunkt-Profile -> im gewünschten Ladepunkt-Profil: **Freischaltung mit RFID aktivieren und die gültigen Tags eintragen** + Speichern
- Einstellungen -> Optionale Hardware: **Identifikation aktivieren** + Speichern
- unter Konfiguration -> Fahrzeuge -> gewünschtes Fahrzeug -> Zugeordnete ID-Tags: dem jeweiligen Fahrzeug **den ID-Tag (PIN/RFID-Tag/MAC-Adresse) zuweisen** + Speichern
- unter Konfiguration -> Ladepunkte -> Ladepunkt-Profile -> im gewünschten Ladepunkt-Profil: **Freigabe durch ID-Tags aktivieren und die gültigen ID-Tags zuordnen** + Speichern
2 changes: 1 addition & 1 deletion docs/_Sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* [Fahrzeuge](https://github.com/openWB/core/wiki/Fahrzeuge)
* [Lastmanagement und kaskadierte Zähler](https://github.com/openWB/core/wiki/Lastmanagement-und-kaskadierte-Zähler)
* Szenarien
* [RFID/Ladung nur nach Freischaltung](https://github.com/openWB/core/wiki/Ladung-nur-nach-Freischaltung)
* [ID-Tag/Ladung nur nach Freischaltung](https://github.com/openWB/core/wiki/Ladung-nur-nach-Freischaltung)
* [Hybrid-System aus Wechselrichter und Speicher](https://github.com/openWB/core/wiki/Hybrid-System-aus-Wechselrichter-und-Speicher)
* Mitarbeit am Projekt
* [Wiki-Eintrag erstellen](https://github.com/openWB/core/wiki/Wiki-Eintrag_erstellen)
Expand Down
4 changes: 2 additions & 2 deletions packages/control/chargelog.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from helpermodules import timecheck

# alte Daten: Startzeitpunkt der Ladung, Endzeitpunkt, Geladene Reichweite, Energie, Leistung, Ladedauer, LP-Nummer,
# Lademodus, RFID-Tag
# Lademodus, ID-Tag
# json-Objekt: {"chargepoint": {"id": 1, "name": "Hof", "rfid": 1234},
# "vehicle": { "id": 1, "name":"Model 3", "chargemode": "pv_charging", "prio": True },
# "time": { "begin":"27.05.2021 07:43", "end": "27.05.2021 07:50", "time_charged": "1:34",
Expand Down Expand Up @@ -200,7 +200,7 @@ def get_log_data(request: Dict):
entry["vehicle"]["rfid"] not in request["filter"]["vehicle"]["rfid"]
):
log.debug(
"Verwerfe Eintrag wegen RFID Tag: %s != %s" %
"Verwerfe Eintrag wegen ID Tag: %s != %s" %
(str(entry["vehicle"]["rfid"]), str(request["filter"]["vehicle"]["rfid"]))
)
continue
Expand Down
20 changes: 10 additions & 10 deletions packages/control/chargepoint/chargepoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
charging_ev = -1 zeigt an, dass der LP im Algorithmus nicht berücksichtigt werden soll. Ist das Ev abgesteckt, wird
auch charging_ev_prev -1 und im nächsten Zyklus kann ein neues Profil geladen werden.
RFID-Tags/Code-Eingabe:
Mit einem Tag/Code kann optional der Ladepunkt freigeschaltet werden, es wird gleichzeitig immer ein EV damit
ID-Tag/Code-Eingabe:
Mit einem ID-Tag/Code kann optional der Ladepunkt freigeschaltet werden, es wird gleichzeitig immer ein EV damit
zugeordnet, mit dem nach der Freischaltung geladen werden soll. Wenn max 5 Min nach dem Scannen kein Auto
angesteckt wird, wird der Tag verworfen. Ebenso wenn kein EV gefunden wird.
Tag-Liste: Tags, mit denen der Ladepunkt freigeschaltet werden kann. Ist diese leer, kann mit jedem Tag der Ladepunkt
Expand Down Expand Up @@ -332,7 +332,7 @@ def _is_loadmanagement_available(self) -> Tuple[bool, Optional[str]]:
return state, message

def _is_autolock_inactive(self) -> Tuple[bool, Optional[str]]:
""" prüft, ob Autolock nicht aktiv ist oder ob die Sperrung durch einen dem LP zugeordneten RFID-Tag aufgehoben
""" prüft, ob Autolock nicht aktiv ist oder ob die Sperrung durch einen dem LP zugeordneten ID-Tag aufgehoben
werden kann.
"""
message = None
Expand All @@ -345,7 +345,7 @@ def _is_autolock_inactive(self) -> Tuple[bool, Optional[str]]:
self.template.data.rfid_enabling):
if self.data.get.rfid is None and self.data.set.rfid is None:
state = False
message = ("Keine Ladung, da der Ladepunkt durch Autolock gesperrt ist und erst per RFID "
message = ("Keine Ladung, da der Ladepunkt durch Autolock gesperrt ist und erst per ID-Tag "
"freigeschaltet werden muss.")
else:
state = True
Expand Down Expand Up @@ -394,9 +394,9 @@ def is_charging_possible(self) -> Tuple[bool, Optional[str]]:
log.exception("Fehler in der Ladepunkt-Klasse von "+str(self.num))
return False, "Keine Ladung, da ein interner Fehler aufgetreten ist: "+traceback.format_exc()
if self.data.get.rfid and message is not None:
message += (f"\n RFID-Tag {self.data.get.rfid} kann erst einem EV zugeordnet werden, wenn der Ladepunkt"
message += (f"\n ID-Tag {self.data.get.rfid} kann erst einem EV zugeordnet werden, wenn der Ladepunkt"
" nicht mehr gesperrt ist. Wenn nach dem Scannen nicht innerhalb von 5 Minuten ein Auto"
" angesteckt wird, wird der RFID-Tag verworfen.")
" angesteckt wird, wird der ID-Tag verworfen.")
return charging_possible, message

def _process_charge_stop(self) -> None:
Expand Down Expand Up @@ -809,13 +809,13 @@ def __validate_rfid(self) -> None:
if rfid in self.template.data.valid_tags or len(self.template.data.valid_tags) == 0:
Pub().pub(f"openWB/set/chargepoint/{self.num}/get/rfid_timestamp", None)
msg = "Es ist in den letzten 5 Minuten kein EV angesteckt worden, dem " \
f"der RFID-Tag/Code {rfid} zugeordnet werden kann. Daher wird dieser verworfen."
f"der ID-Tag {rfid} zugeordnet werden kann. Daher wird dieser verworfen."
else:
msg = f"Der Tag {rfid} ist an diesem Ladepunkt nicht gültig."
msg = f"Der ID-Tag {rfid} ist an diesem Ladepunkt nicht gültig."
else:
msg = "Nach Ladestart wird kein anderer RFID-Tag akzeptiert."
msg = "Nach Ladestart wird kein anderer ID-Tag akzeptiert."
else:
msg = "RFID ist nicht aktiviert."
msg = "Identifikation von Fahrzeugen ist nicht aktiviert."
self.data.get.rfid = None
Pub().pub(f"openWB/set/chargepoint/{self.num}/get/rfid", None)
self.chargepoint_module.clear_rfid()
Expand Down
4 changes: 2 additions & 2 deletions packages/control/chargepoint/chargepoint_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ def get_ev(self, rfid, assigned_ev):
if self.data.rfid_enabling:
num = -1
message = (
f"Keine Ladung, da dem RFID-Tag {rfid} kein Fahrzeug-Profil zugeordnet werden kann. Eine "
"Freischaltung ist nur per RFID/Fahrzeugerkennung möglich.")
f"Keine Ladung, da dem ID-Tag {rfid} kein Fahrzeug-Profil zugeordnet werden kann. Eine "
"Freischaltung ist nur mit gültigen ID-Tag möglich.")
else:
num = assigned_ev
else:
Expand Down
8 changes: 4 additions & 4 deletions packages/control/ev.py
Original file line number Diff line number Diff line change
Expand Up @@ -818,13 +818,13 @@ def stop(self) -> Tuple[int, str, str]:
return 0, "stop", "Keine Ladung, da der Lademodus Stop aktiv ist."


def get_ev_to_rfid(rfid):
""" sucht zur übergebenen RFID-ID das EV.
def get_ev_to_rfid(rfid: str):
""" ermittelt zum übergebenen ID-Tag das Fahrzeug
Parameter
---------
rfid: int
Tag-ID
rfid: string
ID-Tag
Return
------
Expand Down
2 changes: 1 addition & 1 deletion packages/helpermodules/data_migration/data_migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ def _charge_log_file_entries(self, file: str):
5: Dauer als Text "xx H yy Min"
6: Ladepunktnummer
7: Lademodus als Zahl
8: RFID Token
8: ID-Tag
9: Kosten
"""
def conv_1_9_datetimes(datetime_str):
Expand Down
4 changes: 2 additions & 2 deletions packages/modbus_control_tester.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class ReadMode(Enum):
Register(10143, Actions.READ_NUMBER, 1, ModbusDataType.INT_16, name="Type of Hardware", expected=(1, 1)),
Register(10150, Actions.READ_STR, 10, ModbusDataType.INT_16,
name="Serial Number of Chargepoint", expected="noSerialNumber"),
Register(10160, Actions.READ_STR, 10, ModbusDataType.INT_16, name="RFID Tag", expected='0004141661'),
Register(10160, Actions.READ_STR, 10, ModbusDataType.INT_16, name="ID-Tag", expected='0004141661'),
)


Expand Down Expand Up @@ -141,7 +141,7 @@ def read_all_registers():
if evaluate_reg(reg):
break
except Exception:
print("Bitte RFID Tag scannen")
print("Bitte ID-Tag erfassen")
time.sleep(1)
else:
evaluate_reg(reg)
Expand Down
3 changes: 3 additions & 0 deletions packages/modules/display_themes/cards/source/src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,19 @@ export default {
"openWB/chargepoint/+/get/phases_in_use",
"openWB/chargepoint/+/get/plug_state",
"openWB/chargepoint/+/get/power",
"openWB/chargepoint/+/get/rfid",
"openWB/chargepoint/+/set/change_ev_permitted",
"openWB/chargepoint/+/set/current",
"openWB/chargepoint/+/set/manual_lock",
"openWB/chargepoint/+/set/log",
"openWB/chargepoint/+/set/rfid",
"openWB/chargepoint/get/power",
"openWB/counter/+/get/power",
"openWB/counter/get/hierarchy",
"openWB/counter/set/home_consumption",
"openWB/optional/int_display/theme",
"openWB/optional/int_display/standby",
"openWB/optional/rfid/active",
"openWB/pv/config/configured",
"openWB/pv/get/power",
"openWB/system/current_branch",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
<script>
/* fontawesome */
import { library } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
import {
faCalculator as fasCalculator,
} from "@fortawesome/free-solid-svg-icons";
/* add icons to the library */
library.add(fasCalculator);
import { useMqttStore } from "@/stores/mqtt.js";
import CodeInputModal from "./CodeInputModal.vue"
export default {
name: "ChargePointCodeButton",
props: {
chargePointId: { type: Number, required: true },
},
data() {
return {
mqttStore: useMqttStore(),
modalIdTagEntryVisible: false,
modalIdTagEntryColor: "warning",
code: "",
};
},
components: {
FontAwesomeIcon,
CodeInputModal,
},
computed: {
tagState() {
return this.mqttStore.getChargepointTagState(this.chargePointId);
},
tagButtonColor() {
switch (this.tagState) {
case 2:
return "success";
case 1:
return "warning";
default:
return "";
}
},
tagClass() {
switch (this.tagState) {
case 2:
return "_color:success-80";
case 1:
return "_color:warning-80";
default:
return "";
}
}
},
methods: {
toggleIdTagModal() {
this.modalIdTagEntryVisible = !this.modalIdTagEntryVisible;
},
sendIdTag(event) {
this.$root.sendTopicToBroker(
`openWB/chargepoint/${this.chargePointId}/get/rfid`,
event
);
this.modalIdTagEntryVisible = false;
},
},
};
</script>

<template>
<i-button
@click="toggleIdTagModal()"
class="_margin-right:1"
size="lg"
:color="tagButtonColor"
:disabled="tagState == 2"
>
<FontAwesomeIcon
fixed-width
:icon="['fas', 'fa-calculator']"
:class="tagClass"
/>
</i-button>
<!-- modals -->
<CodeInputModal
v-model="modalIdTagEntryVisible"
@update:input-value="sendIdTag"
ref="lockInput"
:minLength="4"
:maxLength="20"
>
<template #header>
Bitte einen ID-Tag eingeben.
</template>
</CodeInputModal>
</template>

<style scoped>
</style>
Loading

0 comments on commit 6c16f95

Please sign in to comment.