Mit der Funktion "Sensoren importieren" können Sensoren mittels CSV-Datei erstellt und/oder geändert werden.
(Manuelle Sensoren / Manuelle Zähler können über diese Funktion nicht erstellt werden).
Zum Import muss eine Regel erstellt werden, in dieser werden die Zuordnungen der CSV-Spaltentitel zu den internen Feldbezeichnungen definiert.
Die CSV-Datei muss immer alle Pflichtfelder der Sensoren enthalten, alle weiteren Spalten sind optional. (Bei der Komponente und Objekt kann jeweils component oder component_id bzw. object oder object_id als Pflichtfeld genutzt werden).
Beispiel:
Mit dem Knopf "Regel erzeugen" wird eine Vorgabe erzeugt, welche mit dem Sensor-Export (alle Spalten) kompatibel ist, dabei werden auch Portal-spezifische Felder (EAV-Felder) berücksichtigt (ausgenommen der zeitbasierenden EAV-Felder siehe Zeitbasierende Felder importieren).
Alle in den Regeln angegebenen Zuordnungen resp. deren Spaltentitel müssen in der CSV Datei auch vorhanden sein.
Die Regeln können nun je nach Bedarf angepasst werden. Nach einem erfolgten Import bleibt die Regel (pro Firma) gespeichert und ist somit auch für andere Benutzer der gleichen Firma gültig.
Pflichtfelder
Für einene Import von Sensoren braucht es mindestens folgende Felder:
machine_identifier = Maschinen-Id
rds = AKS
name = Name
class = Klasse
type = Art
unit = Einheit
component = Komponente
Wenn man den AKS nicht mitgibt, nimmt es die Maschinen-Id als AKS.
ACHTUNG: Importe sind NUR im UTF8-Zeichensatz möglich. Die maximale Zeilenlänge der hochzuladenden CSV-Datei ist auf 10'000 Zeichen begrenzt.
•Einzelne Regeln stehen auf einer Zeile und bedeuten "{interne Bezeichnung} = {CSV Spaltentitel}".
•Eine Regel kann mit dem Zeichen "#" an der ersten Position deaktiviert werden.
Allgemeine Angaben:
Der Wert der Regel (rechter Teil) kann wie folgt aufgebaut sein:
•Spaltentext : Entspricht dem Spaltentext in der CSV-Datei
•"Text in Anführungszeichen" : entspricht einem Fixwert (statisch)
•Spaltentext("CSV-Wert" = {ImportWert}, _DEFAULT_ = 0)
Beispiel:
eav54d0a1626f2a1 = MeinCSVFeld
eav54d0a1626f2a1 = MEINCSVFELD("In Betrieb" = 1, _DEFAULT_ = 0)
-> falls MEINCSVFELD = "In Betrieb" ist so ist eav54d0a1626f2a1 = 1 ansonsten 0
•Mehrere Werte pro Feld:
Falls man ein Wert aus mehreren Werten zusammen bauen möchte, geht das mit ";"
Beispiel CSV Feld Art hat den Wert "Fühler" und man möchte aber alle importieren Sensoren besonders markieren. dann schreibt man
name = "IMPORTIERT: "; Art
Ergebnis: Der Sensor heisst dann z.B. "IMPORTIERT: Fühler"
Die einzelnen Regeln im Detail:
Internes Feld |
Default |
Bemerkung |
---|---|---|
header_rows |
1 |
Gibt an, wie viele Zeilen als Titel in der CSV Datei vorhanden sind. Die effektiven Spaltentitel werden dann aus der letzten Titelzeile gelesen. |
machine_identifier |
Maschinen-ID |
Schlüssel/Datenpunkt auf dem System, unter welchem die Daten geholt werden sollen. Muss pro Komponente eindeutig sein. |
rds |
AKS |
Eindeutiger Wert zur Identifikation des Sensors. (muss portalweit eindeutig sein) |
name |
Name |
Name des Sensors. |
class |
Klasse |
Klasse des Sensors, dies kann sein "'Sensor", "CounterUp", "ManualSensor", "ManualCounterUp", "Binary", "IntervalSensor" |
type |
Art |
Die Art des Sensors, mögliche Werte: "temperature", "pressure", "flow-rate", "humidity", "concentration", "level", "desired-value", "area", "water", "oil", "gas", "electricity", "heat", "cold", "money", "count", "illuminance", "radiation", "volume", "speed", "direction", "weight", "distance", "audio" |
unit |
Einheit |
Die Einheit des Sensors, Liste der Einheiten |
component |
Komponente |
Es kann der Name der Komponente oder der AKS (Format:"[{AKS}]" oder die Kombination daraus (analog Objekt-Export im Format "{Name} [{AKS}]") angegeben werden. |
#component_id |
component_id |
Die Portal interne id der Komponente |
#component_ip |
component_ip |
Die IP-Adresse der Komponente |
#component_instance_uuid |
component_instance_uuid |
Eigenschaft von ProMoS NG Komponenten |
object |
Objekt |
Das Kurzzeichen des Objektes, falls die Kurzzeichen im Portal eindeutig sind. |
#object_id |
object_id |
Muss aktiviert werden, falls die Kurzbezeichnungen zu den Objekten im Portal nicht eindeutig sind. Es darf nur entweder "object" oder "object_id" verwendet werden. |
#deleted |
"0" |
Mit dem Setzen des Wertes auf "1" können mehrere Sensoren über den Sensor-Import gelöscht werden. |
#decimals |
decimals |
Dezimalstellen zum Sensor (nummerischer Wert) Liste der Standard-Nachkommastellen pro Einheit |
#startup_date |
startup_date |
Sensor Inbetriebnahme im Format "DD.MM.YYYY" |
#cfg.correction_factor |
cfg.correction_factor |
Korrekturfaktor (nummerischer Wert) |
#cfg.death_sensor_activate |
cfg.death_sensor_activate |
Aktivierung der Sensorausfall-Erkennung (in der Konfiguration der Schalter) |
#cfg.death_sensor_detection |
cfg.death_sensor_detection |
Sensorausfall-Erkennung, relative Zeitangabe, z.B. "+ 2 days" |
#cfg.death_sensor_check_end |
cfg.death_sensor_check_end |
Ende Sensorausfall-Erkennung, mit welchem definiert wird, bis wann Sensor-Daten vorhanden sein müssen, für die Überwachung |
cfg.death_sensor_formula |
cfg.death_sensor_formula |
Importmöglichkeit für bestehende Codes von Sensorausfall-Erkennungsformel, welche über die CSV-Exportfunktion exportiert worden sind. |
#cfg.sensor_logs_only_changes |
cfg.sensor_logs_only_changes |
Datenpunkte protokollieren nur Änderungen, 0 oder 1 |
#cfg.shrink_method |
cfg.shrink_method |
Kumulativ Typ - Definiert wie z.B. Stundenwerte in Tageswerte umgerechnet werden. Mögliche Werte sind: "avg" für Durchschnitt und "sum" für Summe und "last" für "Letzter Wert". |
#cfg.values_are_consumption |
cfg.values_are_consumption |
Werte werden als Verbrauch versendet, 0 oder 1 |
#cfg.counter_overflow |
cfg.counter_overflow |
Zählerüberlauf (nummerischer Wert z.B. 100000 ) |
#cfg.target_data_sensor_id |
cfg.target_data_sensor_id |
Sensor-Id für die Ersatzwertbildung (nummerischer Wert) |
#cfg.target_data_sensor_type |
cfg.target_data_sensor_type |
Sensor-Typ für die Ersatzwertbildung |
#cfg.reading_interval |
cfg.reading_interval |
Zeitangabe (man. Sensor) - Eingabe-Intervall (mögliche Werte sind: "15m", "hour", "day", "week", "month", "year") |
#cfg.detect_lost_connections_min_val |
cfg.detect_lost_connections_min_val |
Maximalverbrauch innerhalb 15 Min (nummerischer Wert) |
#cfg.summer_up_downs |
cfg.summer_up_downs |
Max Rückwärtszählung (nummerischer Wert) |
#cfg.max_change |
cfg.max_change |
Maximale Änderung (nummerischer Wert); 0= deaktiviert |
#cfg.heating_value |
cfg.heating_value |
Heizwert (nummerischer Wert) |
eavXXXXX |
wie Export |
EAV-Id's von Objektspezifischen EAV-Feldern. |
Bemerkung zu den EAV-Feldern:
•Falls ein EAV-Feld vom Typ "Auswahl" ist, können als Werte die effektiven Auswahl-Texte oder die EAV-Auswahl-Id angegeben werden.
•Werden z.B. bei einem EAV mehrere Werte übergeben/gesetzt, müssen diese mit ", " (Komma gefolgt von einem Leerzeichen) getrennt werden. (Dies ist z.B. bei einem EAV-Feld mit mehreren Kontrollkästchen der Fall)
•Die Werte werden auf ihr Vorhandensein in der Auswahlliste geprüft.
•EAV-Felder vom Typ "Bild" werden beim Import ignoriert.
•Zeitbasierende EAV-Felder werden ignoriert (Importfunktion siehe Zeitbasierende Felder importieren).
Bemerkung zu den Konfigurationen (cfg.XXX):
Bitte beachten sie, dass nicht alle Optionen für einzelne Sensorklassen Auswirkungen haben.
So ist z.B. "cfg.heating_value" nur für Sensoren vom Typ "CounterUp" mit der Art "oil" oder "gas" zu konfigurieren.
Nach dem betätigen des "Importieren" Knopfes wird die angegebene CSV-Datei analysiert und es werden neu zu erstellende und Änderungen zur Auswahl angezeigt.
Die gewünschten Vorgänge müssen nun angewählt werden:
Jeder neue Sensor und jede Änderung wird in der Maske dargestellt und muss einzeln bestätigt werden. Mittels "Alle auswählen"-Knopf können auch alle auf einmal markiert werden (gilt separat für neue Sensoren und Änderungen der Sensordaten.
ACHTUNG: EAV-Felder werden beim "Regel erzeugen" nur eingefügt, wenn diese vorher auch in der Liste dargestellt werden!