Blog https://blog.christianabele.de Christian Abele Thu, 17 Oct 2019 18:00:15 +0000 de-DE hourly 1 https://wordpress.org/?v=5.0.3 https://blog.christianabele.de/wp-content/uploads/2017/06/cropped-Unbenannt-1-32x32.jpg Blog https://blog.christianabele.de 32 32 SharePoint Workflow – DateTime und abweichende Stunden https://blog.christianabele.de/2019/07/24/sharepoint-workflow-datetime-und-abweichende-stunden/ https://blog.christianabele.de/2019/07/24/sharepoint-workflow-datetime-und-abweichende-stunden/#comments Wed, 24 Jul 2019 05:04:56 +0000 https://blog.christianabele.de/?p=534 „SharePoint Workflow – DateTime und abweichende Stunden“ weiterlesen]]> In einem SharePoint Workflow habe ich verschiedenste Berechnung mit Daten (Datum). Sei es, dass ich zwei Daten voneinander subtrahiere um eine Zeitspanne zu erhalten oder eine definierte Zeit zu einem Datum dazu rechne um das Fälligkeitsdatum einer Aufgabe zu bestimmen.

Dabei bin ich immer wieder auf das Selbe Problem gestoßen. Der Workflow reagierte auf meine gesetzte Daten manchmal 2h später als angegeben.

Nach langer Suche stellt sich heraus, dass das Problem darin besteht wie SharePoint Daten speichert. Tatsächlich konvertiert SharePoint Daten nach UTC….! Ich habe also Berechnungen mit Daten zweier verschiedenen Zeitzonen durchgeführt, da z.B. Benutzereingaben in meiner Umgebung in der aktuellen MEZ angegeben werden. Das Ergebnis lag somit manchmal 2h in der Vergangenheit, ein anderes mal 2h in der Zukunft.

Ich habe im SharePoint-Designer in einem 2010er Workflow noch keine möglichkeit gefunden ein Datum automatisiert in die richtige Zeitzone zu konvertieren. Lediglich ein paar Drittanbieter-Actions habe ich gesehen die das scheinbar können.

Wenn du also im Code/Workflow mit Datum arbeitest, vergesse nicht, in UTC zu konvertieren bzw. sicherzustellen, dass alle Eingaben und Vergleichsdaten in UTC vorliegen.!

]]>
https://blog.christianabele.de/2019/07/24/sharepoint-workflow-datetime-und-abweichende-stunden/feed/ 1
[c#] Objekte ohne Namensraum und Deklaration in XML serialisieren. https://blog.christianabele.de/2019/07/18/c-objekte-ohne-namensraum-und-deklaration-in-xml-serialisieren/ https://blog.christianabele.de/2019/07/18/c-objekte-ohne-namensraum-und-deklaration-in-xml-serialisieren/#comments Thu, 18 Jul 2019 11:04:33 +0000 https://blog.christianabele.de/?p=531 Heute wollte ich ein Objekt nach Plain XML ohne Namespaces und ohne XML-Deklaration serialisieren. Der XmlSerializer fügt jedoch einen Standard Namespace und die XML-Deklaration automatisch ein. Um das zu vermeiden gibt es die folgende Möglichkeit:

public string ToXml()
{
   //Ohne XML-Doc-Deklaration
   var settings = new XmlWriterSettings() {
                   Indent = false, OmitXmlDeclaration = true };
 
   var stream = new MemoryStream();
   using (XmlWriter xw = XmlWriter.Create(stream, settings))
   {
      //Leere Namespace-Deklaration
      var ns = new XmlSerializerNamespaces(
                         new[] { XmlQualifiedName.Empty });
      var x = new XmlSerializer(GetType(), "");
      x.Serialize(xw, this, ns);
   }
 
   return Encoding.UTF8.GetString(stream.ToArray()); 
}
]]>
https://blog.christianabele.de/2019/07/18/c-objekte-ohne-namensraum-und-deklaration-in-xml-serialisieren/feed/ 1
[Info] BMW Software Unterschiede und Anforderungen https://blog.christianabele.de/2019/02/18/info-bmw-software-unterschiede-und-anforderungen/ https://blog.christianabele.de/2019/02/18/info-bmw-software-unterschiede-und-anforderungen/#respond Mon, 18 Feb 2019 06:34:09 +0000 https://blog.christianabele.de/?p=477 „[Info] BMW Software Unterschiede und Anforderungen“ weiterlesen]]> E-Series & R05x Mini:
  • Interface = K+DCAN Cable (OBDII to USB) oder ICOM
  • ECU Data Files = SP-Daten
  • NCS Expert = Coding-Software
  • WinKFP = Programming (Flashing) Software
  • EDIABAS = Low Level ECU Communication Software. Wird von NCS Expert & WinKFP genutzt.

Fxx- / Ixx- / Gxx-Series, Mini (F05x/F06x), & Rolls-Royce:

  • Interface = ENET Cable (OBDII to RJ45 Ethernet) or ICOM
  • ECU Data Files = PSdZData
  • E-Sys = Coding-Software
  • E-Sys = Programming (Flashing) Software

ICOM

  • ICOM A: Hauptinterface
  • ICOM B: Adapter für Multimedia-Programmierung in E-Modellen
  • ICOM C: Adapter für ältere BMW-Modelle mit rundem 20-Pin Diagnosestecker
  • ICOM D: Adapter für Motorräder

Additional Dealership Level Software

ISTA+ (AKA Rheingold or ISTA-D)

  • DIAGNOSTICS für alle Fahrzeuge
  • PROGRAMMING für F/I/G/RR & MINI, aber benötigt einen ICOM

ISTA-P

  • PROGRAMMING traditionäle Programmierung für alle Modelle, aber Unterstützung für F-, I- und G-Modelle ist ausgelaufen seit release 3.63.5 (March 2018)
  • ICOM empfohlen. Ein ICOM-Emulator mit K+DCAN oder ENET kann verwendet werden, kommuniziert aber NICHT über alle Protokolle, um jede ECU zu programmieren
  • Austausch ECU’s sollten neu sein

MINIMUM REQUIREMENTS:

  • Windows 7-10 Computer
  • ISTA+: 22 GB Installation + > 2 GB freier Speicher (Diagnostics Only).
  • Weitere 70 GB SDP & ICOM für Programmierung (außer E-Modelle)
  • ISTA-P: 112 GB Installation
  • Mindestens Prozessor mit 2 Cores und 2.2 GHz
  • Mindestens 4 GB RAM

 

]]>
https://blog.christianabele.de/2019/02/18/info-bmw-software-unterschiede-und-anforderungen/feed/ 0
BMW ISTA-D ISTA+ Rheingold 4.17.31 https://blog.christianabele.de/2019/01/30/bmw-ista-d-ista-rheingold-4-17-31/ https://blog.christianabele.de/2019/01/30/bmw-ista-d-ista-rheingold-4-17-31/#comments Wed, 30 Jan 2019 11:14:40 +0000 https://blog.christianabele.de/?p=526 ISTA+ 4.18.14 a.k.a Rheingold a.k.a ISTA-D Standalone 07/2019 mit Auto-Installer. BMW ISTA+ neues System zur Diagnose und Programmierung aller BMW Baureihen 1995-2019

http://uploaded.net/f/jkj99c

SP-Daten v66 2019

http://ul.to/f/uwiltn

OTHER_DB

Runterladen und in den Ordner SQLiteDBs kopieren.

http://ul.to/f/v49tcm

]]>
https://blog.christianabele.de/2019/01/30/bmw-ista-d-ista-rheingold-4-17-31/feed/ 21
Der richtige Repeater – Teil 2 https://blog.christianabele.de/2019/01/30/der-richtige-repeater-teil-2/ https://blog.christianabele.de/2019/01/30/der-richtige-repeater-teil-2/#comments Wed, 30 Jan 2019 07:50:13 +0000 https://blog.christianabele.de/?p=460 „Der richtige Repeater – Teil 2“ weiterlesen]]> Vor einiger Zeit habe ich über meine Erfahrungen mit dem Fritz!Repeater 1160 berichtet. Leider hat dieser aber keinen Ethernet Anschluss. In meiner neuen Wohnung habe ich nun jedoch den Fall, dass ich im Wohnzimmer an der Multimediawand keine Netzwerksteckdose mehr habe. Seither waren dort über einen Switch alle Geräte wie Fernseher, Receiver, Konsole, ATV, etc. angeschlossen. Nun gäbe es die Möglichkeit dort einen weiteren Router aufzustellen und diesen als Repeater zu registrieren, jedoch finde ich das mit Kanonen auf Spatzen geschossen, da ja auch bereits ein Switch vorhanden ist an dem alle Entertainment-Geräte hängen. 

Hier kommt jetzt der Fritz!Repeater 1750E ins Spiel. Dank seines Ethernet Anschlusses ersetzt dieser mir meine fehlende LAN-Wandsteckdose. Mit theoretischen 1.300 Mbit/s im 5 Ghz Netz und 450 Mbit/s im 2,4 Ghz Netz sollte hier genügend Bandbreite ankommen um auch komplexere Streamingszenarien bedienen zu können.

Und tatsächlich – in ersten Tests im 5 Ghz Netz erreiche ich beim Streaming von 4K Inhalten eine durchschnittliche Bandbreite (während Buffering oder Download) von 850 Mbit/s was sich in einer Downloadrate von ca. 10 MB/s wiederspiegelt. Der Abstand zum Router (Fritz!Box 7490) beträgt ca. 5m und es ist eine Wand zwischen den Geräten.

Der unterschied zur verkabelten Variante mit einem 1.000 Mbit Netzwerk ist also nur marginal. Kurzum ist auch der Repeater 1750E von Fritz nur zu empfehlen.

]]>
https://blog.christianabele.de/2019/01/30/der-richtige-repeater-teil-2/feed/ 3
[ESXi] VMFS5/6 Datenspeicher auf USB-Laufwerken erstellen https://blog.christianabele.de/2019/01/13/vmfs56-datenspeicher-auf-usb-laufwerken-erstellen/ https://blog.christianabele.de/2019/01/13/vmfs56-datenspeicher-auf-usb-laufwerken-erstellen/#respond Sun, 13 Jan 2019 19:24:27 +0000 https://blog.christianabele.de/?p=450 „[ESXi] VMFS5/6 Datenspeicher auf USB-Laufwerken erstellen“ weiterlesen]]>
  • Verbindung zum ESXi-Host mit SSH herstellen
  • USB-Arbitratordienst stoppen. Dieser Dienst wird verwendet, um USB-Geräte von einem ESX/ESXi-Host an eine virtuelle Maschine weiterzuleiten. (Wenn deaktiviert, können USB-Geräte nicht mehr an VMs weitergegeben werden.)
    ~ # /etc/init.d/usbarbitrator stop
  • (optional) Verwende diesen Befehl, um den USB-Arbitrator nach einem Neustart dauerhaft zu deaktivieren.
    ~ # chkconfig usbarbitrator off
  • Schließe das USB-Gerät an den ESXi-Host an. Während das USB-Gerät angeschlossen wird, kann entweder /var/log/vmkernel.log beobachten werden, um den Gerätenamen zu identifizieren, oder ihn in /dev/disks identifizieren.
    Geräte heißen entweder mpx.vmhbaXX oder haben eine naa.X-Nummer.
    ~ # ls /dev/disks/
  • Schreibe ein GPT-Label auf das Gerät (unter der Annahme, dass die Geräte-ID naa.50000000000000000000000001 lautet).
    ~ # partedUtil mklabel /dev/disks/naa.5000000000000001 gpt
  • Um eine Partition zu erstellen, muss man den Startsektor und den Endsektor kennen, der von der Gerätegröße und der GUID abhängt.
    Der Startsektor ist immer 2048.
    Die GUID für VMFS ist AA31E02A400F11DB95900000000C2911D1B8.
    Der Endsektor kann mit der folgenden Formel berechnet werden (Verwende die Zahlen aus getptbl):

    15566 * 255 * 63 – 1 = 250067789

    ~ # partedUtil getptbl /dev/disks/naa.5000000000000001
    gpt
    15566 255 63 250069680
  • Erstellen der VMFS-Partition (Eigenen Endsektor ersetzen).
    ~ # partedUtil setptbl /dev/disks/naa.5000000000000001 gpt "1 2048 250067789 AA31E02A400F11DB9590000C2911D1B8 0"
  • Formatieren der Partition mit VMFS5 oder VMFS6
    # VMFS v5
    ~ # vmkfstools -C vmfs5 -S USB-Datastore /dev/disks/naa.5000000000000001:1
    
    # VMFS v6
    ~ # vmkfstools -C vmfs6 -S USB-Datastore /dev/disks/naa.5000000000000001:1
  • Der USB-Datastore sollte nun in der Ansicht der Datastores erscheinen.
  • ]]>
    https://blog.christianabele.de/2019/01/13/vmfs56-datenspeicher-auf-usb-laufwerken-erstellen/feed/ 0
    Jahresrückblick 2018 aus Sicht meines Fahrzeugs https://blog.christianabele.de/2019/01/11/jahresrueckblick-2018-aus-sicht-meines-fahrzeugs/ https://blog.christianabele.de/2019/01/11/jahresrueckblick-2018-aus-sicht-meines-fahrzeugs/#comments Fri, 11 Jan 2019 11:39:39 +0000 https://blog.christianabele.de/?p=438

    ]]>
    https://blog.christianabele.de/2019/01/11/jahresrueckblick-2018-aus-sicht-meines-fahrzeugs/feed/ 3
    ESXi 5.*/6.* Kennwort zurücksetzen https://blog.christianabele.de/2019/01/06/esxi-5-6-kennwort-zuruecksetzen/ https://blog.christianabele.de/2019/01/06/esxi-5-6-kennwort-zuruecksetzen/#respond Sun, 06 Jan 2019 15:07:07 +0000 https://blog.christianabele.de/?p=430 „ESXi 5.*/6.* Kennwort zurücksetzen“ weiterlesen]]> Kürzlich mal schnell das Kennwort meines ESXi Servers geändert und schon konnte ich mich nicht mehr anmelden – vergessen!? Fehler bei der Eingabe!? – Keine Ahnung. Die VMWare-Doku empfiehlt in so einem Fall das neu Aufsetzen des Servers. Doch das geht auch anders:

    1. Booten des ESXi Servers mit einer Linux Live CD auf USB Stick
    2. Überprüfen der vorhandenen Partitionen der Laufwerke mittels „parted -l“
    3. Entsprechende ESXi Partition mounten (mount /etc/sdaX /mnt/)
    4. In gemountetes Verzeichnis wechseln
    5. Entpacken des state.tgz Verzeichnisses im Wurzelverzeichnis (tar -xvf state.tgz)
    6. Im state.tgz Archiv befindet sich ein weiteres Archiv local.tgz. Dieses ebenfalls entpacken (tar -xf local.tgz)
    7. im local.tgz Archiv befindet sich im Ordner /etc die Datei „shadow“. Diese mit einem Texteditor öffnen (nano shadow)
    8. Beim entsprechenden Benutzer befindet sich zwischen den ersten beiden Doppelpunkten das verschlüsselte Kennwort. Alle Zeichen zwischen den Doppelpunkten löschen.
    9. Datei speichern, den Ordner /etc wieder ins Archiv local.tgz packen (tar czf local.tgz etc/)
    10. Das Archiv local.tgz wieder ins Archiv state.tgz packen (tar czf state.tgz local.tgz)
    11. Das Archiv state.tgz wieder ins Wurzelverzeichnis des gemounteten ESXi Volumes kopieren
    12. Beim nächsten Start von ESXi kann man sich nun ohne Kennwort mit dem entsprechenden Benutzer anmelden und ein neues Kennwort vergeben
    ]]>
    https://blog.christianabele.de/2019/01/06/esxi-5-6-kennwort-zuruecksetzen/feed/ 0
    IIS Reverse Proxy (ARR) 502.3 Bad Gateway – Sicherheitsfehler https://blog.christianabele.de/2019/01/04/iis-reverse-proxy-arr-502-3-bad-gateway-sicherheitsfehler/ https://blog.christianabele.de/2019/01/04/iis-reverse-proxy-arr-502-3-bad-gateway-sicherheitsfehler/#respond Fri, 04 Jan 2019 06:55:00 +0000 https://blog.christianabele.de/?p=420 „IIS Reverse Proxy (ARR) 502.3 Bad Gateway – Sicherheitsfehler“ weiterlesen]]> Ich nutze einen ESXI Server hinter einem IIS Reverse Proxy um aus dem Internet auf die Verwaltungsoberfläche zuzugreifen.

    Unglücklicherweise hat der Standard-Web-Client von ESXi 6.5 einen Zertifikatsfehler. Das Zertifikat ist nämlich durch den VMWare Installer selbst ausgestellt und nicht durch eine Zertifizierungsstelle verifiziert.

    So ergibt sich beim Routing über IIS ein Fehler 502.3 Bad Request mit dem Hinweis: Es ist ein Sicherheitsfehler aufgetreten.

    Man könnte nun dem ESXI Server ein gültiges Zertifikat erstellen und dieses Einspielen, da ich ein gültiges Zertifikat innerhalb meines Heimnetzes jedoch nicht benötige, ist mir der Zertifikatsfehler intern egal. Nach außen habe ich ein gültiges Let’s Encrypt Zertifikat das durch den IIS auch richtig geliefert wird.

    Die Lösung für mich war es also, die Zertifikatsprüfung durch IIS beim Request Routing von HTTPS-Seiten zu deaktivieren.

    WINHTTP_OPTION_SECURITY_FLAGS

    Hierzu den folgenden Schlüssel in der Registry des IIS-Servers öffnen bzw. bei Bedarf anlegen:

    HKLM\SOFTWARE\Microsoft\IIS Extensions\Application Request Routing\Parameters

    Hier drin dann einen DWORD (32-bit) Wert mit dem Namen „SecureConnectionIgnoreFlags“ anlegen. Der Default Value 0 ist die Selbe Einstellung wie im Flag SECURITY_FLAG_IGNORE_CERT_CN_INVALID .

    In meinem konkreten Fall habe ich hier alle Flags gesetzt und den Wert 0x00003300 eingetragen.

    Flags

    WertBeschreibung
    0x00001000SECURITY_FLAG_IGNORE_CERT_CN_INVALID
    0x00002000SECURITY_FLAG_IGNORE_CERT_DATE_INVALID
    0x00000100SECURITY_FLAG_IGNORE_UNKNOWN_CA
    0x00000200SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE

    Weitere Infos: https://docs.microsoft.com/en-us/iis/extensions/configuring-application-request-routing-arr/arr-support-added-for-winhttpoptionsecurityflags

    ]]>
    https://blog.christianabele.de/2019/01/04/iis-reverse-proxy-arr-502-3-bad-gateway-sicherheitsfehler/feed/ 0
    Carly Diagnose App für iOS und Android https://blog.christianabele.de/2018/11/27/carly-diagnose-app-fuer-ios-und-android/ https://blog.christianabele.de/2018/11/27/carly-diagnose-app-fuer-ios-und-android/#comments Tue, 27 Nov 2018 13:47:37 +0000 https://blog.christianabele.de/?p=402 „Carly Diagnose App für iOS und Android“ weiterlesen]]> Die Carly-App ist eine der führende Anwendungen zum Thema Fahrzeugdiagnose und Codierung für BMW, Mercedes und VAG. Der Funktionsumfang ist mittlerweile enorm und erfüllt fast alle Diagnoseszenarien. Für die Nutzung ist ein OBD-Adapter mit WLAN (iOS) oder Bluetooth (Android) nötig. Es empfiehlt sich hier den Originalen Adapter von Carly selbst zu nutzen, da manche Funktionalitäten nur mit diesem Original funktionieren. Ein Großteil der Features funktioniert aber auch mit einem Universal Adapter (z.B. ELM327).

    Die wichtigsten Funktionen im Überblick:

    • BMW Fehlerspeicher auslesen und löschen
    • Diagnose-Report per eMail versenden
    • BMW Service zurücksetzen / Serviceintervall zurück setzen
    • Fahrzeug kodieren / Codierungen
    • Gebrauchtwagencheck / Tachomanipulation aufspühren
    • Live-Daten / Parameter des Fahrzeuges anzeigen
    • Batterie Reset / Batterie anlernen
    • DPF Diagnose (Dieselpartikel-Filter) und DPF Regenerierung
    • Getriebe Adaptionsstatus auslesen und zurücksetzen
    • Auspuffklappen ansteuern
    • iDrive konfigurieren

    Neben den genannten Diagnose-Funktionen ist auch die Steuergeräte-Codierung möglich die ansonsten nur über Profi-Software wie NCS Expert oder Rheingold machbar ist. Zum Beispiel:

    • Aktivieren / Deaktivieren der Start-Stop Automatik
    • TV Freischaltung während der Fahrt
    • Verstellung der Helligkeit der Corona-Ringe / Standlichtringe
    • automatischen Stopp der Fensterheber beim Türöffnen deaktivieren
    • Blinkerquittierung beim Zu- / Aufschließen ändern (und Piep- / Hupton aktivieren)

    Mit der Carly App kann die Codierung selbst und risikofrei durchgeführt werden. Die Codierfunktionen sind einfach und deutsch beschrieben und erfolgen auf Knopfdruck. Außerdem können Backups der Steuergeräte erstellt werden und bei Bedarf wieder eingespielt werden. So ist der Rücksprung auf den Originalzustand jederzeit möglich.

    Neben diesen Funktionen ist auch der Gebrauchtwagencheck sehr interessant! Besonders beim Kauf eines gebrauchten BMW. Der Kilometerstand ist im Fahrzeug in vielen verschiedenen Steuergeräten hinterlegt. Die Carly App vergleicht all diese Einträge im Fahrzeug und zeigt Abweichungen an. Manipulierte Fahrzeuge / Tachostände können so aufgedeckt werden.

    Für Dieselfahrer ist die Funktion „DPF Diagnose“ sehr interessant. Hier kann der Zustand des Diesel-Partikelfilters ausgelesen werden und auch die Regenerierung des DPF manuell angestoßen werden. Für Benziner-Fahrer gibt es eine vergleichbare Funktion für den NOX-Katalyssator.

    Im „Parameter“ Bildschirm lassen sich live auch während der Fahrt zahlreiche Fahrzeugdaten in der App anzeigen. Z.B. Temperaturen (Kühlmitteltemperatur, Öltemperatur) aber auch Drücke (Benzindruck, Ladedruck, Raildruck, Kraftstoffdruck,..) und vieles mehr – ideal zur allgemeinen Überwachung oder auch zur Fehleranalyse.

    Alles in allem wurde Carly mittlerweile zu einem Hilfsmittel, dass ich im Fahrzeug nicht mehr missen möchte.

    ]]>
    https://blog.christianabele.de/2018/11/27/carly-diagnose-app-fuer-ios-und-android/feed/ 2