TasmoAdmin

  • Hallooo,

    ich habe mir eine kleine Webseite gebaut die ich gerne teilen würde.

    Sie ist ganz einfach gebaut ohne weitere Frameworks dahinter.

    Bitte bedenkt das dieses Project noch in der Testphase ist!

    Vorraussetzung ist das die Sonoffs mit Tasmota geflasht sind.

    Es sollte mindestens Tasmota 5.9.0j benutzt werden.

    Am ca. 08.01.2018 gab es ein Update in einer Library. Darauf musste die Tasmota FW angepasst werden und diese Anpassung ist erst ab 5.11.1b integriert.

    Sollte Ihr eure Firmware VOR dem gennanten Datum erstellt oder hochgeladen haben, müsste es noch funktionieren.

    Funktionen:

    - Login

    - Zugriff und Steuerung von außen möglich (wenn VPN oder Portfreigabe gegeben)

    - Updateprozess (Gleichzeitig mehrere Geräte Updaten, erst MINIMAL dann FULL Firmware)

    --- Automatik Modus (lädt neuestes Release aus dem Tasmota GitHUB)

    - Übersichtliche Startseite

    - Geräte Liste mit Informationen

    - Auto Status Refresh

    - Mobile Responsive

    - Konfiguration

    - SelfUpdate von TasmoAdmin

    - AutoScan nach Tasmota Modulen

    Ich baue sie noch immer weiter aus, also lasst euch weiter überraschen :)

    Die Webseite ist Public, also jeder kann sie sich runterladen und z.b. auf einen Raspberry oder auch auf dem Heim PC mit XAMP einbinden.

    Mittlerweile gibt es auch ein Docker Image zur einfachen Installation.

    Hier findet Ihr auch noch weitere Anleitungen: GitHub Wiki



    Download

    Über GitHUB: https://github.com/reloxx13/TasmoAdmin

    (oben rechts als ZIP Downloaden oder Clonen)

    TasmoAdmin mit XAMP hier runterladen: TasmoAdmin-XAMP-Portable-2018-02-16.zip


    Man kann sich XAMPP auch als Dienst konfigurieren, somit startet der Apache automatisch mit Windows.

    Dafür muss aber XAMPP richtig installiert werden ( Download XAMPP Installer ).

    Es sollte die PHP 7 Version benutzt werden.

    Da es aktuell oft Änderrungen gibt, wäre es gut GIT zu benutzen und dadrüber die Updates zu ziehen.

    Dafür könnt Ihr z.b. GitHUB Desktop benutzen und damit TasmoAdmin Clonen.

    Anschließend braucht Ihr Änderungen nur noch zu Pullen.


    Guide: TasmoAdmin mit XAMPP

    TasmoAdmin Source Dateien liegen in \xampp\htdocs\TasmoAdmin

    Im Ordner \xampp\htdocs\TasmoAdmin\data liegt die devices.csv und MyConfig.php

    Diese müssen bei einem Update vorher gesichert werden.

    Zum Updaten den TasmoAdmin Ordner frisch aus dem GIT als ZIP herunter laden und alles in den Ordner \xampp\htdocs\TasmoAdmin entpacken.

    ---

    Vor dem ersten Start die setup_xampp.bat ausführen und Refresh auswählen (1 tippen und enter).

    Zum starten im Ordner \xampp die Datei xampp-control.exe starten und anschließen bei Apache auf starten klicken (sollte automatisch starten).

    Sollte es zu einer Fehermeldung kommen, das XAMPP Control Panel wieder schließen (BEENDEN BUTTON BENUTZEN!) und die Datei setup_xampp.bat ausführen und einen Refresh machen (1 tippen und Enter).

    Anschließend nochmal starten versuchen.

    Zum beenden den Apache zuerst Stoppen und dann den Beenden Button drücken.

    ---

    Wenn Apache nun gestartet ist, kann TasmoAdmin im Browser mit der URL http://localhost aufgerufen werden.

    Bitte auch prüfen, ob TasmoAdmin mit der vom Router zugewiesenen IP aufrufbar ist.

    http://192.168.178.xx

    Wenn man TasmoAdmin auch per http://TasmoAdmin aufrufen möchte,

    so muss man in die C:\Windows\System32\drivers\etc\hosts Datei den fogenden Eintrag in einer neuen Zeile einfügen:

    127.0.0.1 TasmoAdmin

    Oftmals ist die hosts Datei schreibgeschützt. Am besten Notepadd++ benutzen und/oder die hosts Datei auf den Desktop ziehen,

    bearbeiten und dann wieder zurück in den Ordner C:\Windows\System32\drivers\etc\ ziehen.


    Guide: TasmoAdmin RASPBIAN STRETCH LITE von Oggy1
    Guide: TasmoAdmin Unix Server (Ubuntu)

    download ubuntu-16.04.3-server-amd64.iso

    Code
    sudo apt-get install apache2 php libapache2-mod-php php7.0-curl php7.0-zip git vim
    cd /var/www
    sudo mkdir TasmoAdmin
    sudo cd TasmoAdmin
    sudo git clone https://github.com/reloxx13/TasmoAdmin.git .
    cd /etc/apache2/sites-available
    sudo vim TasmoAdmin.conf

    press i (insert Mode)

    Enter:

    Hit ESC (quit insert mode)

    tip

    :wq (write&quit vim)

    cd ../

    sudo vim ports.conf

    press insert

    enter after Listen 80

    Listen 9999

    Hit ESC

    tip

    :wq

    enter


    Code
    sudo a2ensite TasmoAdmin
    sudo a2enmod rewrite
    sudo service apache2 reload


    #disable cache for php files

    sudo rm /etc/php/7.0/apache2/conf.d/10-opcache.ini

    sudo service apache2 restart

    cd /var/www/TasmoAdmin/

    sudo chown www-data:www-data * -R

    sudo chmod 777 tmp

    sudo chmod 777 data


    Dafür müssen folgende 2 Sachen beim Apache gemacht werden:

    Im Beispiel gehe ich davon aus, das TasmoAdmin in einem Ordner in html liegt, also /var/www/html/TasmoAdmin


    Zunächst muss das Rewrite Modul aktiviert werden, das geht mit

    Code
    sudo a2enmod rewrite

    Nun muss noch etwas an der vhost geändert werden:

    Code
    sudo nano /etc/apache2/sites-enabled/000-default.conf

    Dort innerhalb des Bocks

    Code
    <VirtualHost *:80>
    ...
    </VirtualHost>

    Folgendes eintragen, sodass es etwa so aussieht (ohne die 4 Punkte):

    Code
    <VirtualHost *:80>    <Directory /var/www/html/TasmoAdmin>        AllowOverride All    </Directory>    . . . .
    </VirtualHost>

    Sollte eurer TasmoAdmin Ordner anders heißen, müsste Ihr den Pfad in <Directory ... > anpassen.

    Danach den Texteditor schließen mit Strg+x y enter

    Anschließend Apache neustarten

    Code
    sudo systemctl restart apache2



    Screenshots

  • Über so etwas ähnliches hatte ich auch schon mal nach gedacht.

    Tolles Projekt! Weiter so! Bin gespannt was noch so alles kommt, spezielles das firmware update feature finde ich sehr sinnvoll!

  • Das wird wohl die größe Hürde für viele User sein, aber auch da bin ich noch auf der Suche nach einem kleinen Mini Server den ich vorkonfigurieren kann um es den Usern Möglichst einfach zu halten.

    Hatte da auch schon einen getestet aber dieser sendet die Firmware beim Update nicht an die Sonoffs :X

    Ich werd nachher mal nen Portablen XAMP aufsetzen der vorkonfiguriert ist. Wird dann aber ca 150mb groß sein geschätzt.

    XAMP ist eine Anwednung die einen Apache, MySQL und weiteres zur Verfügung stellt.

    Also ein mobiler Webserver.

    Bei der Webseite habe ich mit dem Ziel einen kleinen Server zu benutzen auch kein MySQL benutzt sonder momentan nur eine CSV File.

    Vielleicht werde ich da auch noch auf SQLite umbauen.

  • Huhu frankyboy73 ,

    ich habe oben den Beitrag aktualisiert und eine ZIP angehangen mit Vorkonfiguriertem XAMP.

    Eine kleine Instalationsanleitung hab ich auch geschrieben :)

    Bitte erst mit Test Geräten, an die Ihr Notfalls ran kommt zum neuflashen benutzen, bei mir läuft es aber das muss nicht heißen das es überal klappt.

    Man kann XAMPP auch richtig installieren und dann auch als Dienst laufen lassen, somit startet er dann immer mit Windows und man bekommt nichts mit davon, kein Control Center mehr. So hab ich es bei mir am laufen.

    In der Geräte Liste kann man die Geräte auf ON/OFF schalten.

    Die Tage gehts auch weiter damit, heute kamen meine Flasher da hab ich mit rumgespielt und Kabel beschriftet :D [Blockierte Grafik: https://i.imgur.com/9rGeNOe.jpg]


    Viele Grüße

    Nils

  • Also erstmal danke für die prima Idee und den Ansatz.

    Allerdings bekomme ich nur Fehler im Status angezeigt ...

    Allerdings schaltet das Gerät bei einem klick auf den Fehler

  • Reagieren diene Geräte etwas langsam (weil Sensoren und MQTT aktiviert) ?

    Ich hab nur einen Timeout von 3 Sekunden gesetzt, wahrscheinich ist das zu gering.

    ich werde es mal auf 5 Sekunden erhöhen.

  • Hallo Nils, danke für die Konfiguration und deine tolle Anleitung. Es funktioniert, habe bei allen Geräten den Loglevel auf 2 gesetzt, damit der Status auch angezeigt wird.

    Mit einem Gerät habe ich das Update getestet, beim ersten mal kam ne Fehlermeldung, aber die Minimal war doch drauf. Dann gleich noch mal gestartet und es lief durch.

    Zu Bild 1: Das Gerät Party ist ein 4Ch, deshalb wohl kein Status. Das Gerät Steckodose A war gerade Offline, deshlab die Fehler Meldung.

  • Hallo Nils, ich habe es jetzt mit 5 Geräten gleichzeitig getestet, einmal von 5.10.0h auf 5.11.0 und dann wieder zurück von 5.11.0 auf 5.10.0h.

    Hat ohne Probleme geklappt.

    192.168.1.110][STEP-2][UPDATE] Update fertig![10-01-2018 21:59:17][192.168.1.101][STEP-2][UPDATE] Update fertig![10-01-2018 21:59:18][192.168.1.102][STEP-2][UPDATE] Update fertig![10-01-2018 21:59:18][192.168.1.111][STEP-2][UPDATE] Update fertig![10-01-2018 21:59:18][192.168.1.103][STEP-2][UPDATE] Update fertig!

  • Reagieren diene Geräte etwas langsam (weil Sensoren und MQTT aktiviert) ?

    Ich hab nur einen Timeout von 3 Sekunden gesetzt, wahrscheinich ist das zu gering.

    ich werde es mal auf 5 Sekunden erhöhen.

    Nur MQTT und ein ioBroker ist am Start - reagieren sowohl auf Alexa als auch auf Aktionen aus ioBroker fast ohne jede Verzögerung

    Habe selbst mal auf 5 und auch auf 10 sek ind deinem js geändert -> bringt nichts

    Einmal editiert, zuletzt von JF62 (10. Januar 2018 um 23:12)

  • Herzlichen Dank für die Seite.

    Das macht das flashen doch deutlich komfortabler.

    Allerdings habe ich ein Problem das ich mir nicht genau erklären kann.

    Ich habe zwei Stecker (PS16) mit Tasmota geflasht. Die Weboberfläche ist einwandfrei zu erreichen und wenn ich die auf deiner Webseite anklicke werden die auch geschaltet. Allerdings werden beide Stecker mit dem Status FEHLER aufgeführt.

    Beim Versuch die Firmware aufzuspielen erscheint die Meldung:

    [11-01-2018 00:04:31][GLOBAL] Update Start

    [11-01-2018 00:04:31][192.168.8.171][STEP-1][Starte Step 1] info

    [11-01-2018 00:04:31][192.168.8.171][STEP-1][Erreichbarkeit] Prüfe Erreichbarkeit

    [11-01-2018 00:04:31][192.168.8.171][STEP-1][Erreichbarkeit] Fehler! - Antwortet nicht!

    Kannst du damit was anfangen?

  • frankyboy73 Das hört sich doch gut an wenn es auch mit mehreren läuft.

    Ich baue momentan das javascript um auf eine klasse die sich dann um das handling mit den sonoffs kümmert, das spart ne menge doppelten code. und hält die comandos sauber für die konfigurationsseite später.

    ich denke das is ne gute lösung wenn man viele geräte geichzeitig updaten will. ist ja sonst doch nen aufwand alle 2x zu flashen.


    Chaot und JF62 welche firmware habt ihr auf eurem sonoff drauf?

  • Eine wichtige Idee mal wieder schnell und userfrindly umgesetzt wenn ihr so weiter macht will demnächst meine Frau die Sonoffs flashen ;) Danke dafür (y)
    Folgende Ideen hätte ich noch

    1. in der Übersicht folgende Parameter bei den Geräten einblenden.

    1.1. Firmwareversion

    (Grund: welche müssen noch geflashed werden bzw. warum verhalten sich einzelne unterschiedlich)

    1.2. Laufzeit

    (Grund: gibt es Probleme mit einem Gerät)

    1.3. MQTT Status (aktiviert/deaktiviert)

    1.4. WLAN Qualitä

    (Grund: gibt es Probleme mit einem Gerät könnte das darin begründet sein)
    1.5. Modultyp (Sonoff Touch, etc.)

    (Grund übersichtlichkeit)

    1.6 Chip Version

    (Grund Fehleranalyse)

    1.7. Speicherdaten (Realer Flash Speicher/Ben. Flash Speicher/Freier Arbeitsspeicher)
    (Grund: Das wäre vor allem interessant für eine Abfrage beim Flashen sprich automatische Prüfung wie viel Platz ist vorhanden lässt sich das Update direkt vornehmen oder benötigt man die Minimalversion.)

    Eine weitere Idee wäre Daten abzufragen und diese in die MySQL Datenbank zu schreiben um historisch Auswertungen fahren zu können

    Was richtig cool wäre wäre wenn man Settings kopieren könnte (Sprich Master Gerät x auswählen Konfiguration auslesen und an auswählbare Geräte a-z senden)

    Auch die Settings auszulesen und in die MySQL Datenbank (oder XML Datei) zu überführen könnte interessant sein um Settings und daraus resultierendes unterschiedliches Verhalten schneller auf den Grund gehen zu können.

    Auf jeden Fall schon jetzt ein extrem gutes Tool um die Administration der ganzen IoT Infrastruktur im Griff zu behalten.

  • Danke für das Feedback! :)

    Ich bevorzuge auch eine MySQL Datenbank, aber da ich es userfriendly halten wollte, wollte ich einen kleinen WebServer zum starten mitpacken. Die kleinne Webserver haben meist kein MySQL an Board.

    XAMP schlägt entpackt mit 500mb zugut, für so eine kleine Seite etwas Overhead :S

    Habe deswegen auch kein Framework benutzt.

    Vielleicht werde ich eine LITE und eine PRO Version machen, die Pro Version soll dann auf CakePHP aufbauen.

    -

    Zum Feedback:

    Die Infos alle in die Geräte Liste? Oder besser in eine Info page auslagern. Verison,Empfang in die Geräte Liste.

    Ich könnte auch die Tasmota Info Seite als Iframe einbinden.

    Ggf. in der Update Geräte Liste mehr Infos anzeigen als in der normalen Geräte Liste.

    In der Geräte Liste sollen noch nen Info Icon und nen Konfig Icon hin.

    Zur Laufzeit sei gesgat, es werden nur Stunden gezählt (immer XX:02Uhr).

    Konfiguration sichern und wiederherstellen ist auch so eine Sache, Tasmota muss das ja unterstützen.

    Ansonsten müsste die Config einzeln ausgelesen werden und dementsprechend wieder eingespielt werden.

    Tasmota bietet ja eine Config sichern und wiederherstellen funktion, die sichenr funktion könnte ich noch ansprechen. Beim Wiederherstellen wirds dann komplizierter. Ggf. kann aren dann noch was anpassen an Tasmota damit das klappt.

    -

    Im GIT sind jetzt meine Änderungen von heute.

    Ich aktualisiere auch nochmal das Paket mit XAMP.

    Zum Update einfach den Inhalt der ZIP von Git in xampp\htdocs\SonWEB kopieren.

    Denkt dran sichert euch die MyConfig.php und devices.csv vorsichtshalber,

    die liegen in xampp\htdocs\SonWEB\data\


    Es ist auch schon vorbereitet das man später andere Icons auswählen kann oder selbst eins hochladen ;p

    Kommt aber noch :D

  • Ich habe auf den Steckern zwei unterschiedliche Firmwarestände.

    5.10.0 und 5.11.0

    Ebenfalls habe ich versucht die Stecker als Standrdmodul zu konfigurieren. Das hat allerdings keine Änderung gebracht.

    WLan sollte auch problemlos sein (2m und 3m ohne Wände).

    • Offizieller Beitrag

    Hi Nils,

    ja das ist ja mal Nice. Ich habe diesesThema mal angeheftet. Ich selber hatte leider noch keine Zeit es zu testen, aber ich weis wie es funktioniert ... Es muss natürlich schon vorher Tasmota drauf sein auf den Sonoff. Das sollte nicht unerwähnt bleiben. Auf einen echten Webserver im Netz wäre zu riskannt denk ich mal da ja die Daten in Klartext übertragen werden oder?

    Das wäre doch auch mal eine Idee für mein Video :) Und wenn du einverstanden bisst würde ich es gerne mit rein nehmen .. :P:P:):):)

    Gruß

    Norbert

  • Also auch mit der neuen Version und auch mit verscheidensten Tasmota Versionen (runter bis 10.a getestet) klappt das bei mir nicht.

    Wie kann ich dich bei der Fehlersuche unterstützen?

    Einmal editiert, zuletzt von JF62 (11. Januar 2018 um 13:53)

  • Also auch mit der neuen Versin und auch mit verscheidensten Tasmota Versionen (runter bis 10.a getestet) klappt das bei mir nicht.

    Wie kann ich dich bei der Fehlersuche unterstützen?

    Im Browser die Developer/Webkonsole öffnen und schauen was da zurückkommt im JSON.
    Ggf. kann ich mir das auch kurz per TeamViewer heute Abend anschauen wenn du einverstanden bist.

    Ich werde dir heute Abend so ab 18:30 eine PN schicken.


    Nobbi klar kannst du das, aber es ist vielleicht noch etwas früh dafür. Erstmal gucken warum JF da Probleme hat und vielleicht noch die Info und Konfigurationsseite bauen. Sonst ist das Video schnell nicht mehr aktuell.

    Ich werde die Vorraussetzung oben ergänzen :thumbup:

    Der Code ist auch ziemlich einfach gehalten, wenn jemand Lust hat und sich ein wenig mit PHP, JS und HTML auskennt kann er da gerne über GitHub Sachen beisteuern. :)