29.7.22

Openhab und Ecoflow Max - API Anbindung

 Ich wollte die neu erworbene Powerstation in Openhab einbinden, um den aktuellen Status (Ladestand etc.) über Openhab auswerten zu können.

Eine Google-Suche ergab, dass man dafür den Support (support@ecoflow.com) anschreiben muss, der neben der Seriennummer der Powerstation auch die Email-Adresse benötigt, mit der man über die App verbunden ist (ohne Registrierung in der App geht es wohl nicht?).


Der 1st level Support antwortet immer ziemlich schnell, gibt die Daten an die Entwickler weiter und nach 2-3 Tagen erhält man den Zugang für die API.

Der Code, um die Ecoflow als thing zu definieren, sieht bei mir wie folgt aus:

UID: http:url:42fde8xxxx
label: Ecoflow
thingTypeUID: http:url
configuration:
  authMode: BASIC
  headers:
    - Content-Type=application/json
    - appKey=[vom Support mitgeteilt]
    - secretKey=[vom Support mitgeteilt]
  ignoreSSLErrors: false
  baseURL: https://api.ecoflow.com/iot-service/open/api/device/queryDeviceQuota?sn=[Seriennummer] 
 delay: 0
  stateMethod: GET
  refresh: 30
  commandMethod: GET
  timeout: 3000
  bufferSize: 2048

Als Channel habe ich testweise erst einmal die verbleibende Zeit definiert:

channels:
- id: ecoremaintime
    channelTypeUID: http:string
    label: Verbliebene Zeit
    description: null
    configuration:
      stateTransformation: JSONPATH:$.data.remainTime


So bekomme ich dort die verbliebenen Minuten, die die Powerstation noch voraussichtlich laufen kann.


29.4.22

Openhab Problem mit Homematic

 Nach vielen Versuchen habe ich des Rätsels Lösung gefunden in den Untiefen des Internets.


Ich hatte der Maschine, auf der OpenHab läuft, eine 2. IP Adresse zugeteilt. Die Folge war allerdings zeitlich versetzt, so dass ich dieses nicht als die Ursache erkannte, dass die Homematic Geräte nicht mehr gesteuert werden konnten.


Nun die Lösung:


Eintragen der Callback IP Adresse in der CCU Bridge!

12.6.20

Tasmota - Wemos D1 nicht mehr erreichbar

Mein Problem:

Ich hatte falsche Zugangsdaten für das WLAN eingetragen.
Doch statt nach x fehlgeschlagenen Versuchen einen AP anzubieten, ist diese Funktion in den neueren Versionen standardmäßig deaktiviert.
Stattdessen versucht das Modul unendliche Male eine Verbindung herzustellen.

Beim Neu-Flashen blieben die Einstellungen auch erhalten.

Was half:

Im Quellcode des Tasmota Repositorys der Datei "my_user_config.h"  ein paar Zeilen verändern und neu flashen.

Ändern des Standards
Alt:
#define CFG_HOLDER             4617              // [Reset 1] Change this value (max 32000) to load SECTION1 configuration parameters to flash

Neu:
#define CFG_HOLDER            5000              // [Reset 1] Change this value (max 32000) to load SECTION1 configuration parameters to flash
auf eine andere Zahl.


Alt:
#define WIFI_CONFIG_TOOL       WIFI_RETRY        // [WifiConfig] Default tool if wifi fails to connect (default option: 4 - WIFI_RETRY)
                                                 // (WIFI_RESTART, WIFI_MANAGER, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL, WIFI_MANAGER_RESET_ONLY)
                                                 // The configuration can be changed after first setup using WifiConfig 0, 2, 4, 5, 6 and 7.

Neu:
#define WIFI_CONFIG_TOOL       WIFI_MANAGER        // [WifiConfig] Default tool if wifi fails to connect (default option: 4 - WIFI_RETRY)
                                                 // (WIFI_RESTART, WIFI_MANAGER, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL, WIFI_MANAGER_RESET_ONLY)
                                                 // The configuration can be changed after first setup using WifiConfig 0, 2, 4, 5, 6 and 7.




25.5.20

Virtualbox -> VMWare Hypervisor Guest Additions deinstallieren

Der Plan war, ein Linux Image, welches unter Virtualbox erstellt wurde, im Hypervisor weiterzuverwenden.
Doch scheinbar wollte der Hypervisor nicht so richtig mit den zuvor installierten GuestAdditions arbeiten.
Diese Erweiterungen waren im Kernel verwurstet.

Lösung:
Im Linux-Image liegt das Verzeichnis /opt/{VBoxGuestAdditionsxxx}

Einfach die uninstall.sh ausführen.

Evtl. noch /etc/X11/xorg.conf löschen.

12.2.20

Server mit ISCPConfig - PHP bearbeiten mit Netbeans

PHP7 als FPM Modul -> Rechte  pro Webseite verschieden

Pfad:
/var/www/clients/client0/webxx//


Neuer Nutzer für netbeans
adduser netbeansuser
Gruppe hinzufügen
usermod -aG client0 netbeansuser
html Verzeichnis schreibbar machen für Gruppe client0
chmod -R 774 /var/www/clients/client0/webxx/web/


31.12.19

Fail2ban für Postfix

# Fail2Ban filter for postfix authentication failures
#

[INCLUDES]

before = common.conf

/etc/fail2ban/filter.d/postfix-sasl.conf

[Definition]

_daemon = (?:postfix/smtpd|postfix/submission/smtpd)

failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$
             ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:Login|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$
             ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed:
             ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:Login|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed:
             ^%(__prefix_line)swarning: (.*?)does not resolve to address <HOST>: Name or service not known$
             ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:login|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$
             ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:login|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed:

# Author: Yaroslav Halchenko
Testen mit
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix-sasl.conf

/etc/fail2ban/jail.local:
[postfix-sasl]
enabled  = true
port     = smtp,ssmtp
filter   = postfix-sasl
logpath  = /var/log/mail.log
maxretry = 3

Jails anzeigen:
fail2ban-client status

IP wieder freigeben:
fail2ban-client set sshd unbanip [IP]

Mail anpassen:
mwl -> /sendmail-common.conf
in action.d/iptables-multiport.conf:
actionban = <iptables> -I f2b-<name> 1 -s <ip> -j <blocktype>
<------>    /usr/local/bin/fail2ban-push.php <name> <protocol> <port> <ip>


Tabelle:
CREATE TABLE `sync_fail2ban` (
 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
 `hostname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `created` datetime NOT NULL,
 `name` text COLLATE utf8_unicode_ci NOT NULL,
 `protocol` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
 `port` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
 `ip` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`reversedns` text COLLATE utf8_unicode_ci NOT NULL,
 PRIMARY KEY (`id`),
 KEY `hostname` (`hostname`,`ip`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

PHP-Script:

#!/usr/bin/php
<?php
$name = $_SERVER["argv"][1];
$protocol = $_SERVER["argv"][2];
$port = $_SERVER["argv"][3];
if (!preg_match('/^\d{1,5}$/', $port))
$port = getservbyname($_SERVER["argv"][3], $protocol);
$ip = $_SERVER["argv"][4];
$date = date("Y-m-d H:i:s");
$hostname = gethostname();

// Verbindungsdaten einfügen | insert your database settings
$link = new mysqli("localhost", "fail2ban", "password", "fail2ban");
// Ab hier nix verändern | don’t change anything below
if ($link->connect_error) {
die("Verbindung fehlgeschlagen: " . $link->connect_error());
}
$query = "INSERT INTO sync_fail2ban (name, protocol, port, ip, created, hostname)
VALUES ('$name', '$protocol', '$port', '$ip', '$date','$hostname')";
if ($link->query($query) === TRUE ){
echo "Eintrag erfolgreich geschrieben";
} else {
echo "ERROR: " .$query . "<br>" . $link->error;
}
$link->close ();
?>


Openhab und Ecoflow Max - API Anbindung

 Ich wollte die neu erworbene Powerstation in Openhab einbinden, um den aktuellen Status (Ladestand etc.) über Openhab auswerten zu können. ...