slacc

  • Home
  • Lockpicking
  • rad1o badge
  • Kontakt

Category Archives: Allgemein

SAP Business One Elster / Datev Update durchführen

Geschrieben am 28. Februar 2023 Von slacc

Wenn ihr die Elster bzw Datev Update Datei von eurem SAP Consultant vorliegen habt, könnt ihr das Update wie folgt vornehmen:

https://IP-des-HANA-Servers:40000/ExtensionManager/ aufrufen

mit dem B1SiteUser einloggen und dann wie folgt Importieren:

Bei Durchsuchen entsprechend die Datev2LW.zip bzw ELSTERLW.zip auswählen (ggf. erst die erhaltene ZIP-Datei entpacken), dann Hochladen und den Upgrade-Hinweis bestätigen.

Anschließend muss der SAP Business One Client einmal als Administrator gestartet werden, damit das Update installiert wird.

Veröffentlicht unter Allgemein, SAP Business One | Hinterlassen Sie einen Kommentar |

SAP Business One Apple iOS App / Integration Framework mit selbstsigniertem Zertifikat

Geschrieben am 20. April 2022 Von slacc

Auch nach Update auf SAP Business One 10 und Installation des aktuellen Integration Frameworks, generiert dieser wieder Zertifikate die von Apple iOS Geräten (iPhone/iPad) nicht akzeptiert werden. Sie lassen sich zwar installieren, aber weder Safari noch die SAP Business One App, stufen diese Verbindung als sicher ein.

Seit iOS 13 werden nur noch Zertifikate akzeptiert die als alternative Namen (alternate_names) den Servernamen/IP beinhalten.

Dies lässt sich in der openssl.cfg des Integration Frameworks konfigurieren, die openssl.cfg befindet sich unter (als Admin mit Editor/Notepad öffnen):

C:\Program Files\sap\SAP Business One Integration\IntegrationServer\Tomcat\webapps\B1iXcellerator\openssl\bin\

Unter [ v3_ca ] fügt man folgende neue Zeile hinzu:

subjectAltName      = @alternate_names

unten am Ende der openssl.cfg fügt man folgende Definition hinzu (entsprechend euren Servernamen/IP eintragen):

[ alternate_names ]

DNS.1        = servername
IP.1        = 192.168.1.23

Speichern und dann kann im Integration Framework das neue Zertifikat generiert werden.

Dazu https://servername:8443/ im Browser aufrufen, einloggen und dann unter Tools -> Certificate Tool bei Domain Name nochmal den Servernamen eintragen und auf Create Certificate klicken.

Solltet ihr bereits versucht haben ein Zertifikat zu generieren, muss vorher einmal Reset Certificate angeklickt werden, um das bereits vorhandene Zertifikat zu löschen.

Anschließend auf dem Server den Dienst SAP Business One Integration Service neu starten.

Das neu generierte Zertifikat myCA.cer befindet sich im Ordner:

C:\Program Files\sap\SAP Business One Integration\IntegrationServer\Tomcat\webapps\B1iXcellerator\B1iCert\

Diese myCA.cer muss entweder per E-Mail an das iPhone/iPad gesendet werden oder über Safari herunter geladen werden. Ich habe die Datei per FTP auf meinen Webspace geladen und per Safari die URL zum Zertifikat aufgerufen (Firefox funktioniert nicht).

Anschließend muss das Zertifikat bzw Konfigurationsprofil unter Einstellungen -> Allgemein -> VPN & Geräteverwaltung installiert und unter Einstellungen -> Allgemein -> Info -> Zertifikatvertrauenseinstellungen zusätzlich aktiviert werden.

Jetzt sollte der Aufruf von https://servername:8443/ im Safari und somit auch die Verbindung der App ohne Zertifikat-Fehlermeldung funktionieren.

Ggf. noch in der xcellerator.cfg die Optionen xcl.safemode und xcl.http.localOnly von true auf false ändern.

Veröffentlicht unter Allgemein, SAP Business One, Windows | Hinterlassen Sie einen Kommentar |

SAP Business One Jahreswechsel vorbereiten: Belegnummerierung anlegen

Geschrieben am 31. Dezember 2021 Von slacc

Wenn man für jedes Jahr eigene Belegnummernkreise einsetzt (z.B. wenn die Jahreszahl darin enthalten ist), sollte man nach dem Buchungsperioden anlegen auch entsprechend die Belegnummerierung für das nächste Jahr anlegen, sonst können die Kollegen keine Belege erstellen :)

In Belegnummerierung – Definition eine Belegart mit Doppelklick öffnen (z.B. Ausgangsrechnungen), dann Rechtsklick in die Tabelle und Zeile hinzufügen anklicken

Als Name das Jahr sowie die Erste Nummer eintragen, dann das entsprechende Periodenkennzeichen auswählen und zum Speichern auf Aktualisieren klicken. Ist das gewünschte Jahr nicht im Dropdown-Menü aufgeführt, muss die Buchungsperiode angelegt werden.

Nach dem Speichern die neue Zeile markieren und als Standard setzen.

Den neuen Belegnummernkreis dann Als Standard für alle Benutzer festlegen.

Dann sieht man entsprechend in der Belegnummerierung – Definition Übersicht in der Spalte Standardserie ob allen Belegarten eine neue Nummernserie zugeordnet wurde.

Bei Belegnummern die fortlaufend sind (ohne Jahreszahl), sollte entsprechend ein ausreichend großer Puffer bedacht werden, falls noch Belege im alten Jahr nachgebucht werden müssen.

Veröffentlicht unter Allgemein, SAP Business One | Tags: B1, Belegnummerierung, Belegnummern, Belegnummernkreis, business one, Jahreswechsel, SAP | Hinterlassen Sie einen Kommentar |

SAP Business One Jahreswechsel vorbereiten: Buchungsperioden anlegen

Geschrieben am 1. Dezember 2021 Von slacc

Alle Jahre wieder die gleiche Frage: wie ging das noch mit den Buchungsperioden anlegen? Werden die Monate automatisch angelegt?

Spätestens wenn der erste Kollege meckert, dass er eine Rechnung nicht buchen kann, weil das Zahlungsziel im nächsten Jahr liegt, muss man dann doch mal die Buchungsperioden anlegen ;-)

Update: Das mit dem Zahlungsziel/Fälligkeitsdatum liegt an der aktuellen Buchungsperiode (Dezember). SAP trägt dort standardmäßig bei Fälligkeitsdatum bis das Ende des aktuellen Geschäftsjahres ein (31.12.) – dies muss entsprechend auf Ende Januar oder Februar des Folgejahres angepasst werden – je nach dem wie lange die möglichen Zahlungsziele in das Folgejahr hinein reichen.

Periodenkennzeichen Definition

Zuerst muss ein neues Periodenkennzeichen angelegt werden: Jahreszahl in die freie Zeile unter Standard eintragen und auf OK klicken.

Buchungsperiode hinzufügen

Bei den Buchungsperioden prüfen, ob es vielleicht doch schon welche für das nächste Jahr gibt, die man nur entsperren müsste.

Um neue Buchungsperioden anzulegen klickt man auf Neue Periode, trägt bei Periodencode und Periodenname die Jahreszahl ein, setzt Teilperioden auf Monate und Anzahl der Perioden auf 12 und das Periodenkennzeichen auf das eben angelegte Jahr.

Anschließend die Datumsangaben, Geschäftsjahr etc kontrollieren und nach Klick auf Hinzufügen werden die 12 Buchungsperioden automatisch angelegt:

Buchungsperioden hinzugefügt

Damit man im Dezember (und ggf. im November) Belege buchen kann, deren Zahlungsziel bis in das Folgejahr reicht, muss man dies in den entsprechenden Buchungsperioden anpassen.

Mit Klick auf den orangenen Pfeil die entsprechende Buchungsperiode öffnen und dort das Fälligskeitsdatum bis anpassen.

Anschließend sollte man die Belegnummernkreise für das nächste Jahr anlegen.

Veröffentlicht unter Allgemein, SAP Business One | Tags: B1, Buchungsperiode, business one, Jahreswechsel, Periodenkennzeichen, SAP | 1 Kommentar |

EAN13 Prüfziffer mit Excel berechnen

Geschrieben am 17. November 2021 Von slacc

Für eine Liste von 150 selbst vergegebenen EAN-Nummern (12 Ziffern) sollte die Prüfziffer (13. Ziffer) berechnet werden. Um nicht jeden Barcode einzeln bei GS1 zu copy & pasten, habe ich nach einer Excel Formel gesucht und bin hier (letzter Beitrag ganz unten) fündig geworden.

In meinem Beispiel steht die 12-stellige EAN-Nummer in A2 (entsprechend in der Formel auf eure Zelle anpassen) und den folgenden Code füge ich in B2 ein:

=REST(MMULT(-TEIL(A2;SPALTE(A:L);1);3^REST(ZEILE($2:$13);2));10)

Um die 12-stellige EAN-Nummer und die soeben errechnete Prüfziffer zusammen zu setzen, benutze ich VERKETTEN in Zelle C2:

=VERKETTEN(B2;C2)

Für weitere EAN-Nummern die Formeln einfach nach unten ziehen.

Tipp: Wenn Excel die EAN-Codes nicht richtig anzeigt: Spalte als Zahl mit 0 Dezimalstellen formatieren.

Veröffentlicht unter Allgemein, Excel, Office, Windows | Hinterlassen Sie einen Kommentar |

Linux Mint 20.2 in Virtual Box: „check your video drivers“ und Auflösung speichert nicht

Geschrieben am 17. November 2021 Von slacc

Seit Linux Mint 19 nervt mich die Meldung „check your video drivers“ bei jedem Boot in VirtualBox und heute habe ich eine neue Test-VM mit Linux Mint 20.2 erstellt: es erscheint die gleiche Fehlermeldung und zusätzlich setzt sich die Auflösung bei jedem Start auf 800×600 zurück.

Um die Fehlermeldung „check your video drivers“ zu beheben, schlägt jemand vor, man soll man statt Cinnamon die alternativen Linux Mint Desktops (Mate, XFCE) nutzen, die wohl nur 2D sein sollen – ich wollte allerdings weiterhin den Cinnamon Desktop einsetzen.

Weitere Lösungsansätze sehen das aktivieren der 3D Beschleunigung in VirtualBox (Einstellungen der VM -> Anzeige) und installieren der VirtualBox Guest Additions vor (bei laufender VM: Geräte -> Gasterweiterungen einlegen) – nach Abschluss der Installation soll man einen Neustart durchführen, der bei mir für einen VirtualBox Crash sorgt. Auch weitere Reboots bringen VirtualBox zum Absturz – nach deaktivieren der 3D Beschleunigung stürzt die VM nicht mehr ab.

Für meine Zwecke war die Performance auch ohne 3D Beschleunigung bisher immer ausreichend, also habe ich nach einem Weg gesucht, einfach nur die „check your video drivers“ Fehlermeldung zu unterdrücken:

Linux Mint Terminal öffnen und folgenden Befehl eingeben (setzt die 2D option im User Profil):

echo "export CINNAMON_2D=true" >> ~/.profile

Bleibt noch das Problem mit der Auflösung: dies soll man in VirtualBox beheben in dem man folgenden Befehl eingibt (Name der VM und Auflösung anpassen):

VBoxManage setextradata "VM-Name" "GUI/LastGuestSizeHint" "1280,800"

Bei meinem Windows 10 Host lautet der vollständige Befehl für meine VM wie folgt (in CMD/Eingabeaufforderung eingeben):

C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "Linux Mint 20" "GUI/LastGuestSizeHint" "1440,900"
Veröffentlicht unter Allgemein, Linux, Windows | Tags: Linux Mint, VirtualBox | Hinterlassen Sie einen Kommentar |

Philips Hue Dimmschalter blinkt nur rot

Geschrieben am 2. Februar 2021 Von JDT

Ich habe eine neue Hue Lampe mit gekoppeltem Dimmschalter gekauft. Dieser lies sich nicht resetten, weder mit Soft-Reset (Alle 4 Buttons drücken), noch mit 10 Sekunden Reset Button drücken. Es half nur der Hard-Reset.

Soft-Reset (Einstellungen werden behalten)
Alle 4 Buttons auf einmal drücken und ca. 10 Sekunden halten, dann blinkt er rot/orange. Möglicherweise funktionier er dann wieder.

Meine Lösung war:
Hard-Reset (Alle Einstellungen gehen verloren)
1) Batterie rausnehmen
2) 10 Sekunden warten
3) Batterie einsetzen

Zusätzlich musste ich:
4) 1 Sekunde Reset Schalter drücken
Dann hat sie endlich wieder orange geblinkt und ich konnte sie mit meiner Bridge koppeln.

Veröffentlicht unter Allgemein | 2 Kommentare |

UPS Worldship Updates ohne Admin Passwort

Geschrieben am 3. November 2020 Von slacc

Fast jede Woche gibt es UPS Worldship Patches, die eine Eingabe vom Administrator Kennwort im Windows UAC Dialog erfordern. Das ist bei einem PC schon nervig, jede Woche ins Lager zu rennen oder per Fernwartung den Admin Login einzugeben – richtig anstengend wird es bei mehreren Logistik Computern, die dann zu unterschiedlichen Zeitpunkten bzw. Tage später dann Worldship starten.

Die Logistik-User zu lokalen Admins machen ist definitiv keine vernünftige Lösung, dass räumt den Benutzern viel zu viele Rechte ein.

Eine vernünftige Lösung habe ich heute gefunden: man kann eine UAC Whitelist für die runpatch.exe unter Windows 10 anlegen.

Dazu braucht man das Application Compatibility Toolkit, welches Teil vom 1 Gigabyte großen Windows Assessment and Deployment Kit (ADK) ist.

 

  1. Windows ADK herunterladen und ausführen:
    https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install

 

2. Für die Installation auf einem separaten Computer herunterladen auswählen.

 

3. In dem ADK Verzeichnis aus dem Unterordner Installers die Application Compatibility Toolkit-x64_en-us.msi installieren.

 

4. Über Start/Windows Logo -> Windows Kits -> Compatibility Administrator (32-bit) öffnen.

 

5. Rechtsklick auf New Database (1) und Rename zu UPS.

 

6. Rechtsklick auf UPS -> Create New -> Application Fix.

 

7. Programmname runpatch.exe , Hersteller UPS und den Pfad C:\Program Files (x86)\UPS\WSTD\runpatch.exe eintragen.

 

8. Runter scrollen und RunAsInvoker auswählen.

 

9. In diesem Fenster nichts ändern, auf Weiter klicken.

 

10. Damit das ganze auch noch nach dem nächsten Update funktioniert, müssen hier die Häkchen für die Versionsnummern rausgenommen werden.

 

11. Auf Save klicken.

 

12. Als UAC-Whitelist.sdb im UPS Verzeichnis C:\Program Files (x86)\UPS\WSTD\ abspeichern.

13. C:\Program Files (x86)\UPS\WSTD\RegAccess.exe als Administrator ausführen.

 

14. cmd.exe als Administrator ausführen und folgenden Befehl eingeben:
sdbinst.exe „C:\Program Files (x86)\UPS\WSTD\UAC-Whitelist.sdb“

 

Soll das ganze auf weiteren Clients eingerichtet werden, muss man auf jedem weiteren Client folgende Schritte durchführen:

  1. C:\Program Files (x86)\UPS\WSTD\RegAccess.exe als Administrator ausführen

  2. Die bereits erzeugte UAC-Whitelist.sdb jeweils in das Verzeichnis C:\Program Files (x86)\UPS\WSTD\ kopieren

  3. cmd.exe als Administrator öffnen und sdbinst.exe „C:\Program Files (x86)\UPS\WSTD\UAC-Whitelist.sdb“ ausführen
Veröffentlicht unter Allgemein, Windows | 1 Kommentar |

IFTTT: Alexa Einkaufsliste oder To-Do-Liste mit TickTick synchroniseren

Geschrieben am 3. November 2020 Von slacc

Seit dem Ende von Wunderlist benutze ich TickTick, da es geteilte Listen und Erinnerungen bereits in der kostenlosen Version unterstützt.

Jetzt habe ich eine Möglichkeit gesucht, um Alexa mit TickTick zu verbinden, bzw. etwas auf meine (geteilte) TickTick-Einkaufsliste zu setzen – bei IFTTT bin ich fündig geworden.

Dazu klickt man auf der IFTTT.com Home-Seite bei My Applets auf Create.

Klickt auf If This (Add), sucht nach Alexa und wählt dann entweder Item added to your Shopping List für die Alexa-Einkaufsliste oder Item added to your To Do List für die Alexa To-Do-Liste aus. Falls Alexa noch nicht mit IFTTT verbunden ist, werdet ihr erstmal aufgefordert dies zu verbinden.

Als nächstes klickt ihr auf Then That (Add), sucht nach TickTick und wählt Add a task aus. Hier muss ggf. auch erstmal TickTick mit IFTTT verbunden werden.

Bei List wählt ihr die gewünschte TickTick-Liste als Ziel aus, tragt bei Task Name {{AddedItem}} ein und klickt dann auf Create action.

Zum Schluss klickt ihr auf Continue und im nächsten Fenster auf Finish.

Jetzt habt ihr das Applet erfolgreich eingerichtet und könnt es testen – hier kann es zu kurzen Verzögerungen von 1-2 Minuten kommen bevor der neue Eintrag in eurer TickTick-Liste erscheint.

Veröffentlicht unter Alexa, Allgemein, IFTTT | Hinterlassen Sie einen Kommentar |

ESP8266+BME280 influxDB Anbindung

Geschrieben am 25. August 2019 Von JDT

Ich habe lange gesucht ein Code für den ESP8266 mit einem BME280 Sensor zu finden.

Als Library habe ich nach viel testen, diese gefunden:

InfluxDB: https://github.com/tobiasschuerg/ESP8266_Influx_DB/
BME280:https://github.com/adafruit/Adafruit_BME280_Library
Diese lässt sich auch über die Bibliotheksverwaltung herunterladen:

Screenshot InfluxDB Lib in der Bibliotheksverwaltung
Screenshot BME280 Lib in der Bibliotheksverwaltung

Verkabelung ESP8266 und BME280

BME280 – ESP8266
SDA – D2
SCL – D1
GND – GND
VIN – 3V3

Mein Code erzeugt auch noch einen Webserver, auf dem die Daten angezeigt werden:

ESP8266 Webseite mit Messdaten


Der Code ist ein erster Draft und läuft jetzt erst knappe 10 Stunden. Ich optimiere zur Zeit noch. Tipps zur Verbesserung nehme ich gerne entgegen!

#include <ESP8266WebServer.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <WiFiUdp.h>
#include <InfluxDb.h>

#define SEALEVELPRESSURE_HPA (1013.25)

#define INFLUXDB_HOST "INFLUXURL"
#define INFLUXDB_USER "INFLUXUSER"
#define INFLUXDB_PASS "INFLUXPASS"
#define INFLUXDB_DB "INFLUXDB"
unsigned int INFLUXDB_PORT = 8086; // INFLUXPort

Adafruit_BME280 bme;
Influxdb influx(INFLUXDB_HOST,INFLUXDB_PORT);


float temperature, humidity, pressure, altitude;

/*Put your SSID & Password*/
const char* ssid = "SSID";  // Enter SSID here
const char* password = "Passwort";  //Enter Password here



ESP8266WebServer server(80);              
 
void setup() {
  Serial.begin(115200);
  delay(100);
  
  bme.begin(0x76);   

  Serial.println("Connecting to ");
  Serial.println(ssid);
  //connect to your local wi-fi network
  WiFi.begin(ssid, password);

  //check wi-fi is connected to wi-fi network
  while (WiFi.status() != WL_CONNECTED) {
  delay(1000);
  Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected..!");
  Serial.print("Got IP: ");  Serial.println(WiFi.localIP());



  server.on("/", handle_OnConnect);
  server.onNotFound(handle_NotFound);

  server.begin();
  Serial.println("HTTP server started");
  
  influx.setDbAuth(INFLUXDB_DB, INFLUXDB_USER, INFLUXDB_PASS);

}

int loopCount = 0;

void loop() {
  server.handleClient();
  loopCount++;
  temperature = bme.readTemperature();
  humidity = bme.readHumidity();
  pressure = bme.readPressure() / 100.0F;
  altitude = bme.readAltitude(SEALEVELPRESSURE_HPA);
  
  if (temperature != 0.00){
    // Einzelabfrage: 
    //  InfluxData row("thermometer");
    //  row.addTag("node", "esp1");
    //  row.addTag("sensor", "temperature");
    //  row.addTag("mode", "pwm");
    //  row.addValue("loopCount", loopCount);
    //  row.addValue("temperature", temperature);
    //  influx.write(row);
    
     Serial.println("Sammel Thermometer Messungen"); 
     InfluxData measurement1 = measurementtemp();
     influx.prepare(measurement1);
    
    InfluxData measurement2 = measurementhum();
    influx.prepare(measurement2);
    
    InfluxData measurement3 = measurementhpa();
    influx.prepare(measurement3);
    boolean success = influx.write();
  
  }
     Serial.println("Warte 30 Sekunden"); 
    delay(30000);

}

void handle_OnConnect() {
  temperature = bme.readTemperature();
  humidity = bme.readHumidity();
  pressure = bme.readPressure() / 100.0F;
  altitude = bme.readAltitude(SEALEVELPRESSURE_HPA);
  server.send(200, "text/html", SendHTML(temperature,humidity,pressure,altitude)); 
  
}

InfluxData measurementtemp() {
  InfluxData row("thermometer");
  row.addTag("node", "esp1");
  row.addTag("sensor", "temperature");
  row.addTag("mode", "pwm");
  row.addValue("loopCount", loopCount);
  row.addValue("temperature", temperature);
  return row;
}


InfluxData measurementhum() {
  InfluxData row("thermometer");
  row.addTag("node", "esp1");
  row.addTag("sensor", "humidity");
  row.addTag("mode", "pwm");
  row.addValue("loopCount", loopCount);
  row.addValue("humidity", humidity);
  return row;
}


InfluxData measurementhpa() {
  InfluxData row("thermometer");
  row.addTag("node", "esp1");
  row.addTag("sensor", "pressure");
  row.addTag("mode", "pwm");
  row.addValue("loopCount", loopCount);
  row.addValue("pressure", pressure);
//  row.addValue("value", pressure);
  return row;
}



void handle_NotFound(){
  server.send(404, "text/plain", "Not found");
}


String SendHTML(float temperature,float humidity,float pressure,float altitude){
  String ptr = "<!DOCTYPE html>";
  ptr +="<html>";
  ptr +="<head>";
  ptr +="<title>ESP8266 Thermometer mit influxDB</title>";
  ptr +="<meta name='viewport' content='width=device-width, initial-scale=1.0'>";
  ptr +="<link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,600' rel='stylesheet'>";
  ptr +="<style>";
  ptr +="html { font-family: 'Open Sans', sans-serif; display: block; margin: 0px auto; text-align: center;color: #444444;}";
  ptr +="body{margin: 0px;} ";
  ptr +="h1 {margin: 50px auto 30px;} ";
  ptr +=".side-by-side{display: table-cell;vertical-align: middle;position: relative;}";
  ptr +=".text{font-weight: 600;font-size: 19px;width: 200px;}";
  ptr +=".reading{font-weight: 300;font-size: 50px;padding-right: 25px;}";
  ptr +=".temperature .reading{color: #F29C1F;}";
  ptr +=".humidity .reading{color: #3B97D3;}";
  ptr +=".pressure .reading{color: #26B99A;}";
  ptr +=".altitude .reading{color: #955BA5;}";
  ptr +=".superscript{font-size: 17px;font-weight: 600;position: absolute;top: 10px;}";
  ptr +=".data{padding: 10px;}";
  ptr +=".container{display: table;margin: 0 auto;}";
  ptr +=".icon{width:65px}";
  ptr +="</style>";
  ptr +="<script>\n";
  ptr +="setInterval(loadDoc,1000);\n";
  ptr +="function loadDoc() {\n";
  ptr +="var xhttp = new XMLHttpRequest();\n";
  ptr +="xhttp.onreadystatechange = function() {\n";
  ptr +="if (this.readyState == 4 && this.status == 200) {\n";
  ptr +="document.body.innerHTML =this.responseText}\n";
  ptr +="};\n";
  ptr +="xhttp.open(\"GET\", \"/\", true);\n";
  ptr +="xhttp.send();\n";
  ptr +="}\n";
  ptr +="</script>\n";
  ptr +="</head>";
  ptr +="<body>";
  ptr +="<h1>ESP8266 Weather Station</h1>";
  ptr +="<div class='container'>";
  ptr +="<div class='data temperature'>";
  ptr +="<div class='side-by-side icon'>";
  ptr +="<svg enable-background='new 0 0 19.438 54.003'height=54.003px id=Layer_1 version=1.1 viewBox='0 0 19.438 54.003'width=19.438px x=0px xml:space=preserve xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink y=0px><g><path d='M11.976,8.82v-2h4.084V6.063C16.06,2.715,13.345,0,9.996,0H9.313C5.965,0,3.252,2.715,3.252,6.063v30.982";
  ptr +="C1.261,38.825,0,41.403,0,44.286c0,5.367,4.351,9.718,9.719,9.718c5.368,0,9.719-4.351,9.719-9.718";
  ptr +="c0-2.943-1.312-5.574-3.378-7.355V18.436h-3.914v-2h3.914v-2.808h-4.084v-2h4.084V8.82H11.976z M15.302,44.833";
  ptr +="c0,3.083-2.5,5.583-5.583,5.583s-5.583-2.5-5.583-5.583c0-2.279,1.368-4.236,3.326-5.104V24.257C7.462,23.01,8.472,22,9.719,22";
  ptr +="s2.257,1.01,2.257,2.257V39.73C13.934,40.597,15.302,42.554,15.302,44.833z'fill=#F29C21 /></g></svg>";
  ptr +="</div>";
  ptr +="<div class='side-by-side text'>Temperature</div>";
  ptr +="<div class='side-by-side reading'>";
  //ptr +=(float)temperature; 
  ptr +=(float)temperature; 
  ptr +="<span class='superscript'>°C</span></div>";
  ptr +="</div>";
  ptr +="<div class='data humidity'>";
  ptr +="<div class='side-by-side icon'>";
  ptr +="<svg enable-background='new 0 0 29.235 40.64'height=40.64px id=Layer_1 version=1.1 viewBox='0 0 29.235 40.64'width=29.235px x=0px xml:space=preserve xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink y=0px><path d='M14.618,0C14.618,0,0,17.95,0,26.022C0,34.096,6.544,40.64,14.618,40.64s14.617-6.544,14.617-14.617";
  ptr +="C29.235,17.95,14.618,0,14.618,0z M13.667,37.135c-5.604,0-10.162-4.56-10.162-10.162c0-0.787,0.638-1.426,1.426-1.426";
  ptr +="c0.787,0,1.425,0.639,1.425,1.426c0,4.031,3.28,7.312,7.311,7.312c0.787,0,1.425,0.638,1.425,1.425";
  ptr +="C15.093,36.497,14.455,37.135,13.667,37.135z'fill=#3C97D3 /></svg>";
  ptr +="</div>";
  ptr +="<div class='side-by-side text'>Humidity</div>";
  ptr +="<div class='side-by-side reading'>";
  ptr +=(float)humidity; 
  ptr +="<span class='superscript'>%</span></div>";
  ptr +="</div>";
  ptr +="<div class='data pressure'>";
  ptr +="<div class='side-by-side icon'>";
  ptr +="<svg enable-background='new 0 0 40.542 40.541'height=40.541px id=Layer_1 version=1.1 viewBox='0 0 40.542 40.541'width=40.542px x=0px xml:space=preserve xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink y=0px><g><path d='M34.313,20.271c0-0.552,0.447-1,1-1h5.178c-0.236-4.841-2.163-9.228-5.214-12.593l-3.425,3.424";
  ptr +="c-0.195,0.195-0.451,0.293-0.707,0.293s-0.512-0.098-0.707-0.293c-0.391-0.391-0.391-1.023,0-1.414l3.425-3.424";
  ptr +="c-3.375-3.059-7.776-4.987-12.634-5.215c0.015,0.067,0.041,0.13,0.041,0.202v4.687c0,0.552-0.447,1-1,1s-1-0.448-1-1V0.25";
  ptr +="c0-0.071,0.026-0.134,0.041-0.202C14.39,0.279,9.936,2.256,6.544,5.385l3.576,3.577c0.391,0.391,0.391,1.024,0,1.414";
  ptr +="c-0.195,0.195-0.451,0.293-0.707,0.293s-0.512-0.098-0.707-0.293L5.142,6.812c-2.98,3.348-4.858,7.682-5.092,12.459h4.804";
  ptr +="c0.552,0,1,0.448,1,1s-0.448,1-1,1H0.05c0.525,10.728,9.362,19.271,20.22,19.271c10.857,0,19.696-8.543,20.22-19.271h-5.178";
  ptr +="C34.76,21.271,34.313,20.823,34.313,20.271z M23.084,22.037c-0.559,1.561-2.274,2.372-3.833,1.814";
  ptr +="c-1.561-0.557-2.373-2.272-1.815-3.833c0.372-1.041,1.263-1.737,2.277-1.928L25.2,7.202L22.497,19.05";
  ptr +="C23.196,19.843,23.464,20.973,23.084,22.037z'fill=#26B999 /></g></svg>";
  ptr +="</div>";
  ptr +="<div class='side-by-side text'>Pressure</div>";
  ptr +="<div class='side-by-side reading'>";
  ptr +=(float)pressure;
  ptr +="<span class='superscript'>hPa</span></div>";
  ptr +="</div>";
  ptr +="<div class='data altitude'>";
  ptr +="<div class='side-by-side icon'>";
  ptr +="<svg enable-background='new 0 0 58.422 40.639'height=40.639px id=Layer_1 version=1.1 viewBox='0 0 58.422 40.639'width=58.422px x=0px xml:space=preserve xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink y=0px><g><path d='M58.203,37.754l0.007-0.004L42.09,9.935l-0.001,0.001c-0.356-0.543-0.969-0.902-1.667-0.902";
  ptr +="c-0.655,0-1.231,0.32-1.595,0.808l-0.011-0.007l-0.039,0.067c-0.021,0.03-0.035,0.063-0.054,0.094L22.78,37.692l0.008,0.004";
  ptr +="c-0.149,0.28-0.242,0.594-0.242,0.934c0,1.102,0.894,1.995,1.994,1.995v0.015h31.888c1.101,0,1.994-0.893,1.994-1.994";
  ptr +="C58.422,38.323,58.339,38.024,58.203,37.754z'fill=#955BA5 /><path d='M19.704,38.674l-0.013-0.004l13.544-23.522L25.13,1.156l-0.002,0.001C24.671,0.459,23.885,0,22.985,0";
  ptr +="c-0.84,0-1.582,0.41-2.051,1.038l-0.016-0.01L20.87,1.114c-0.025,0.039-0.046,0.082-0.068,0.124L0.299,36.851l0.013,0.004";
  ptr +="C0.117,37.215,0,37.62,0,38.059c0,1.412,1.147,2.565,2.565,2.565v0.015h16.989c-0.091-0.256-0.149-0.526-0.149-0.813";
  ptr +="C19.405,39.407,19.518,39.019,19.704,38.674z'fill=#955BA5 /></g></svg>";
  ptr +="</div>";
  ptr +="<div class='side-by-side text'>Altitude</div>";
  ptr +="<div class='side-by-side reading'>";
  ptr +=(int)altitude;
  ptr +="<span class='superscript'>m</span></div>";
  ptr +="</div>";
  ptr +="</div>";
  ptr +="</body>";
  ptr +="</html>";
  return ptr;
}

Grafana Query:

SELECT mean("temperature") FROM "DATABSE" WHERE ("node" = 'esp1') AND $timeFilter GROUP BY time($__interval) fill(null)

Weitere Pläne:
* Code Optimierung
** Entschlackung
** Webserver entfernen
** Influx Übergabeparameter überarbeiten
* Debug Mode (Serielle Ausgabe)
* Sleep Mode
* …

Veröffentlicht unter Allgemein | 6 Kommentare |
Nächste Seite »

Neueste Beiträge

  • SAP Business One Elster / Datev Update durchführen
  • checkmk Monitoring: Windows Server Dienste überwachen
  • checkmk Monitoring: Windows Server Log Handling und Einträge ignorieren
  • SAP Business One Apple iOS App / Integration Framework mit selbstsigniertem Zertifikat
  • SAP Business One Jahreswechsel vorbereiten: Belegnummerierung anlegen

Neueste Kommentare

  • IT'ler bei UPS Worldship Updates ohne Admin Passwort
  • Rikereal bei Virtualbox: Windows 11 kann auf diesem PC nicht ausgeführt werden
  • Rolf bei Virtualbox: Windows 11 kann auf diesem PC nicht ausgeführt werden
  • HPZ bei Philips Hue Dimmschalter blinkt nur rot
  • Afghan bei Virtualbox: Windows 11 kann auf diesem PC nicht ausgeführt werden

Archive

  • Februar 2023
  • Juni 2022
  • April 2022
  • Dezember 2021
  • November 2021
  • September 2021
  • Februar 2021
  • November 2020
  • August 2020
  • Mai 2020
  • August 2019
  • März 2018
  • Februar 2018
  • Januar 2018
  • Mai 2017
  • April 2017
  • April 2016
  • August 2015
  • November 2014
  • Oktober 2014
  • August 2014
  • Juni 2014
  • April 2014
  • März 2014
  • Februar 2014
  • Januar 2014
  • Dezember 2013
  • November 2013
  • Oktober 2013

Kategorien

  • Alexa
  • Allgemein
  • Android
  • Catcontent
  • checkmk
  • Excel
  • Exchange
  • Galaxy S5
  • Hyper-V
  • IFTTT
  • Impressionstechnik
  • Kali Linux 2.0
  • Linux
  • Lockpicking
  • Mac
  • Monitoring
  • OFFEN!
  • Office
  • Office365
  • Outlook
  • rad1o badge
  • Raspberry Pi
  • Remotedesktop
  • root
  • Samsung
  • SAP Business One
  • SEO
  • Server
  • Server 2008 R2
  • Server 2012r2
  • Terminalserver
  • VirtualBox
  • VoIP
  • Windows
  • Wordpress

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentare-Feed
  • WordPress.org

Neueste Beiträge

  • SAP Business One Elster / Datev Update durchführen
  • checkmk Monitoring: Windows Server Dienste überwachen
  • checkmk Monitoring: Windows Server Log Handling und Einträge ignorieren
  • SAP Business One Apple iOS App / Integration Framework mit selbstsigniertem Zertifikat
  • SAP Business One Jahreswechsel vorbereiten: Belegnummerierung anlegen

Neueste Kommentare

  • IT'ler bei UPS Worldship Updates ohne Admin Passwort
  • Rikereal bei Virtualbox: Windows 11 kann auf diesem PC nicht ausgeführt werden
  • Rolf bei Virtualbox: Windows 11 kann auf diesem PC nicht ausgeführt werden
  • HPZ bei Philips Hue Dimmschalter blinkt nur rot
  • Afghan bei Virtualbox: Windows 11 kann auf diesem PC nicht ausgeführt werden

Archive

  • Februar 2023
  • Juni 2022
  • April 2022
  • Dezember 2021
  • November 2021
  • September 2021
  • Februar 2021
  • November 2020
  • August 2020
  • Mai 2020
  • August 2019
  • März 2018
  • Februar 2018
  • Januar 2018
  • Mai 2017
  • April 2017
  • April 2016
  • August 2015
  • November 2014
  • Oktober 2014
  • August 2014
  • Juni 2014
  • April 2014
  • März 2014
  • Februar 2014
  • Januar 2014
  • Dezember 2013
  • November 2013
  • Oktober 2013

Kategorien

  • Alexa
  • Allgemein
  • Android
  • Catcontent
  • checkmk
  • Excel
  • Exchange
  • Galaxy S5
  • Hyper-V
  • IFTTT
  • Impressionstechnik
  • Kali Linux 2.0
  • Linux
  • Lockpicking
  • Mac
  • Monitoring
  • OFFEN!
  • Office
  • Office365
  • Outlook
  • rad1o badge
  • Raspberry Pi
  • Remotedesktop
  • root
  • Samsung
  • SAP Business One
  • SEO
  • Server
  • Server 2008 R2
  • Server 2012r2
  • Terminalserver
  • VirtualBox
  • VoIP
  • Windows
  • Wordpress

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentare-Feed
  • WordPress.org

CyberChimps WordPress Themes

© slacc