Gerät über Internet schalten

Begonnen von hugo, 27 Oktober 2024, 08:26:12

Vorheriges Thema - Nächstes Thema

Bartimaus

Moin,

ich habe genau so einen Knopf im FHEMWidget hinterlegt. Wenn man dem Entwickler nen Kaffee spendiert, bekommst Du einen verschlüsselten AWS-Zugang (ohne VPN etc) eingerichtet.
Funktioniert seit Jahren und möchten wir nicht mehr missen.

LG
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

andies

Zitat von: Arminus am 20 November 2024, 16:13:03ich habe eine ähnliche Aufgabenstellung, kannst Du bitte Deine Lösung vorstellen?
Es sind mehrere Schritte, die nicht alle direkt mit FHEM zu tun haben:
  • Man muss einen VPN-Zugang in der Fritzbox einrichten, ich habe Wireguard und "OnDemand" installiert: Link
  • Dann habe ich FTUI (Version 3, nicht Version 2!) installiert: Link zur Doku
  • zuletzt erstellt man eine Webseite index.html in FTUI (bzw da gibt es schon eine und die verändert man; ich habe für die Kinder eine eigene index_kids.html). Einen Link auf diese Seite legt man dann auf dem Handy als Icon ab (das geht bei mir unter "Webseite in Safari aufrufen"->"Icon (?) speichern unter"->und dann liegt das Icon auf der Home Seite)
Ein Klicken auf diese Seite schaltet im Hintergrund VPN ein, verbindet sich mit dem Heimnetz, zeigt die Webseite index.html an und anklicken dort auf der Seite löst die in der Seite hinterlegten FHEM-Befehle aus.

Ich kann mal meine FTUI-Seite index.html unten auflisten, damit Du einen Anfangspunkt hast. Die anderen Sachen sind halt so, dass Du Dich einlesen und das händisch installieren musst.

<!DOCTYPE html>
<html>

<head>
    <!--
     /* FHEM tablet ui */
     /*
     * UI builder framework for FHEM
     *
     * Version: 2.5.*
     * URL: https://github.com/knowthelist/fhem-tablet-ui
     *
     * Copyright (c) 2015-2017 Mario Stephan <mstephan@shared-files.de>
     * Under MIT License (http://www.opensource.org/licenses/mit-license.php)
     *
     * - create a new folder named 'tablet' in /<fhem-path>/www
     * - copy all files incl. sub folders into /<fhem-path>/www/tablet
     * - add 'define TABLETUI HTTPSRV ftui ./www/tablet Tablet' in fhem.cfg
     * - Tadaaa! A new fhem ui in http://<fhem-url>:8083/fhem/tablet/
     */
    -->
    <link rel="apple-touch-icon" href="https://andreasloeffler.selfhost.bz:8084/fhem/ftui/apple-touch-icon.png"/>
   
    <meta name="apple-mobile-web-app-title" content="FHEM iOS">
    <meta name="gridster_disable" content="1">

    <!-- define your personal style here, it wont be overwritten  -->
    <!-- link rel="stylesheet" href="css/fhem-green-ui.css" / -->
    <!-- link rel="stylesheet" href="css/fhem-tablet-ui-user.css" / -->

    <script src="js/fhem-tablet-ui.js" defer></script>

    <title>FHEM iOS</title>
</head>

<body>
    <div class="gridster">
        <ul>
            <li data-row="1" data-col="1" data-sizey="1" data-sizex="1">
                <!-- place your widget here -->
                <header>Gartentor
                <div data-type="label" data-device="Gartentor" data-get="zustand"            
                data-substitution='["1","zu","0","OFFEN"]'></div>
</header>
                <div data-type="push"
                data-icon="fa-car"
                data-cmd="set"
                data-device="Came"
                data-set-on="right_button"
                class="grande">
                </div>
             <div data-type="push"
                data-cmd="set"
                 data-device="Came"
                 data-set-on="left_button"
                 data-icon="mi-directions_walk"
                 class="grande">
             </div>
            </li>
            <li data-row="1" data-col="2" data-sizey="1" data-sizex="1">
                <header>Kaffeemaschine</header>
                <!-- place your widget here -->
                        <div data-type="switch"
                        class="grande"
                        data-cmd="set"
                        data-device="HM_76A0B1_Sw"
                        data-icon="mi-local_cafe"
                        data-set-on="on"
                        data-set-off="off" >
                        </div>
                           <header>Garage</header>
                           <div data-type="switch"
                           class="grande"
                           data-icon="fa-align-justify"
                           data-cmd="set"
                        data-device="Garage"               
                           data-get="Tor"
                    data-get-off="OFF"
                    data-get-on="ON"
                    data-set-off="OFF" 
                           data-set-on="ON" >
                           </div>
                       
            </li>
            <li data-row="2" data-col="1" data-sizey="1" data-sizex="1">
                <header>Rolladen</header>
                <!-- place your widget here -->
                        <div data-type="push" data-device="Rolladen"
                            class="grande"
                            data-set-on="off"
                             data-icon="fa-chevron-up"
                             data-background-icon="fa-square-o">
                        </div>
                        <div data-type="push" data-device="Rolladen"
                            class="grande"
                            data-set-on="on"
                            data-icon="fa-chevron-down"
                            data-background-icon="fa-square-o">
                </div>
            </li>
            <li data-row="2" data-col="2" data-sizey="1" data-sizex="1">
                <!-- place your widget here -->
                <header>Esstisch </header>

                <div data-type="push"
                data-device="Dimmer"
                data-background-icon="fa-square-o"
                data-icon=""
                data-set-on="0"
                class="inline tall">
                <span class="small gray top">0</span></div>
               
                <div data-type="push"
                data-device="Dimmer"
                data-background-icon="fa-square-o"
                data-icon=""
                data-set-on="40"
                class="inline tall left-narrow-10">
                <span class="small gray top">40</span></div>
               
                <div data-type="push"
                data-device="Dimmer"
                data-background-icon="fa-square-o"
                data-icon=""
                data-set-on="70"
                class="inline tall left-narrow-10">
                <span class="small gray top">70</span></div>

    <div data-type="push"
                data-device="Dimmer"
                data-background-icon="fa-square-o"
                data-icon=""
                data-set-on="100"
                class="inline tall left-narrow-10">
                <span class="small gray top">100</span></div>

            </li>
        </ul>
    </div>
</body>

</html>
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

hugo

Hallo andies, ähnliches habe ich auch getestet. VPN on demand eingerichtet und ein Lesezeichen auf den Home-Bildschirm gelegt. Funktioniert soweit.
Jetzt wollte ich einen Kurzbefehl erstellen und diesen Ausführen. Der Befehl ist der gleiche wie in dem Lesezeichen. Bei der Ausführung mit dem Kurzbefehl erhalte ich die Meldung, dass ich nicht mit dem Internet verbunden bin. VPN on demand wurde aktiviert, aber dann ist Schluss.
Wenn ich im WLAN bin funktioniert der Kurzbefehl.

Funktioniert der Kurzbefehl nur im WLAN?
http://fhemflur.fritz.box:8083/fhem?cmd=set%20myshelly7_0%20toggle

Gruss Josef
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

Jamo

Vielleicht klappt die Namensauflösung nicht. Mal "fhemflur.fritz.box" durch die IP Adresse ersetzen.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

andies

Genau, am WLAN liegt es definitiv nicht.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

hugo

Zitat von: Jamo am 26 November 2024, 12:33:26Vielleicht klappt die Namensauflösung nicht. Mal "fhemflur.fritz.box" durch die IP Adresse ersetzen.

Durch die Angabe mit *.Fritz.box wird automatisch VPN on demand aktiviert.

Wie geschrieben im WLAN funktioniert es.
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

Jamo

#21
Hast Du evtl. in deiner FHEMWEB Instanz das attr 'allowfrom' gesetzt, und ueber VPN bekommt dein Phone eine andere als die allowed allowfrom IP Adressen?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

andies

Und kannst du nach Verbindung mit VPN dein FHEM aufrufen? Außerhalb des WLAN?
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

hugo

Ja, der Aufruf funktioniert auch ohne WLAN. Nur wenn ich das ganze in einen Kurzbefehle packe funktioniert es nicht.
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

andies

Du musst mal genauer beschreiben, was da passiert. Sonst kapieren wir das nicht:
  • Im Heimnetz (WLAN oder/und LAN) kannst du die Webseite von FHEM aufrufen?
  • Kannst du im Heimnetz Befehle über die Webseite schalten? Also durch klicken?
  • Wird der Befehl ausgelöst, wenn du statt klicken auf die URL http://fhemflur.fritz.box:8083/fhem?cmd=set%20myshelly7_0%20toggle klickst?
  • Jetzt dasselbe nochmal nicht im heimischen Netz, über VPN. Alle Fragen noch einmal.
  • Was liest du in den Logs? Was liest du bei verbose 5 für das Gerät myshelly7_0?
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

hugo

Hallo andies, ich versuche es nochmal genau zu schreiben.

VPN on deman ist eingerichtet und funktioniert.


Also alles funktioniert bisher wie vorgestellt.

Aber jetzt wollte ich es noch einfacher gestalten und diesen Schaltvorgang in einen Apple Kurzbefehl hinter legen.
Kurzbefehl Inhalt vonWEBseite abrufen; "http://fhemflur.fritz.box:8083/fhem?cmd=set%20myshelly7_0%20toggle"

  • WLAN ein; Kurzbefehl aufrufen; funktioniert shelly schaltet.
  • WLAN aus; Kurzbefehl aufrufen; VPN on demand wird aktiviert; Fehlermeldung "Es besteht anscheinend keine Verbindung zum Internet"
  • WLAN aus; VPN on demand von Hand aktiviert; Kurzbefehl aufrufen; gleiche Fehlermeldung "Es besteht anscheinend keine Verbindung zum Internet"

Also es liegt definitiv am Kurzbefehl und VPN, wenn das Iphone nicht mit dem WLAN verbunden ist.

Ich hoffe es dargelegt zu haben wo das Problem liegt.

Werde jetzt den Weg über FTUI (Version 3) gehen. Kurzbefehl wäre schon super gewesen.

Vielen Dank für eure Ideen.

Gruß Josef
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

andies

OK, das scheint ein Apple-Problem zu sein. Kurzbefehle nutze ich nicht, daher kann ich hier leider nicht helfen.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

passibe

Zitat von: hugo am 27 November 2024, 12:36:52Es besteht anscheinend keine Verbindung zum Internet
Hmm. Diese Fehlermeldung ist komisch – eigentlich sollte da erst die DNS-Auflösung scheitern und nicht "schon" die "Verbindung zum Internet" (was auch immer das heißen mag).
Bei mir kommt ohne VPN und mit Kurzbefehl auf einen Hostnamen, der nur intern aufgelöst wird:
ZitatA server with the specified hostname could not be found.
Diese Fehlermeldung hätte ich jetzt auch bei dir erwartet.

Wieso der Kurzbefehl das anders handhabt als Safari erschließt sich mir nicht, eigentlich sollte das nicht der Fall sein (bzw. ist es z.B. bei mir auch nicht).

Ich benutze aber auch nicht "Inhalt der Webseite von URL abrufen" mit dem Safari-Icon, sondern "Inhalte von URL abrufen" mit einem grünen Pfeil-Icon (siehe Screenshot anbei – "Text" ist dabei die interne URL zu FHEM). Vielleicht liegt da das Problem? Was passiert, wenn du das auch benutzt?

Vielleicht noch zum Ausprobieren: Wenn du diese on-demand-Geschichte mal ausschaltest und das VPN manuell aktivierst – funktioniert es dann?

hugo

Definitiv, wenn ich VPN auch mit der Hand aktiviere und das IPHONe zeigt VPN verbunden funktioniert der Kurzbefehl nicht.

ZitatIch benutze aber auch nicht "Inhalt der Webseite von URL abrufen" mit dem Safari-Icon, sondern "Inhalte von URL abrufen" mit einem grünen Pfeil-Icon (siehe Screenshot anbei – "Text" ist dabei die interne URL zu FHEM). Vielleicht liegt da das Problem? Was passiert, wenn du das auch benutzt?
Habe auch das  "Inhalte von URL abrufen" getestet ohne Erfolg.
VPN ohne "on demand" und von Hand aktiviert. Immer die selbe Fehlermeldung.

Habe jetzt FTUI eine Seite hergerichtet und dies funktioniert. Sind halt ein paar Klicks mehr.

Gruß Josef
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

ReneR1986

Zitat von: hugo am 27 Oktober 2024, 08:26:12Hallo zusammen,
jetzt habe ich schon viel gelesen, aber noch keine gute passende Lösung gefunden.
Am liebsten möchte meine Frau einen Knopf :) (App) auf dem Handy (IPhone) haben und dann nur ein Device schalten können z.b. Garagentor.
Der Zugriff sollte sicher sein, keine Portweiterleitung. Könnte mir als Verbindung VPN on demand vorstellen, dass sich aber nach dem senden des Befehls wieder trennt.

Hat jemand eine solche Lösung oder einen Tipp wie ich das lösen könnte.

Viel Dank für eure Ideen.

Gruß Josef

Vielleicht noch ein weiterer Lösungsansatz.
Ich nutze für manche Szenarien einen externen MQTT Broker, wie z.B. von HiveMQ. Hier gibt es auch eine kostenlose Variante (auch verschlüsselt usw.).
Ich habe hierzu in FHEM einen MQTT2_CLIENT definiert der sich mit HiveMQ verbindet. Ein entsprechendes MQTT2_DEVICE subscribed dann das gewünschte MQTT Topic.
Ein DOIF reagiert dann entsprechend.
Für das Smartphone gibt es dann diverse Apps als MQTT Clients, die dann auf das MQTT Topic publishen.
Leider habe ich keine App gefunden, bei der man z.B. ein Widget o.ä. erstellen kann, damit es wirklich nur ein Klick ist.
Als Lösung habe ich mir (leihenhaft) eine mini Android App geschrieben, die sich einfach kurz mit dem MQTT Broker (HiveMQ) verbindet und dann auf das Topic schreibt...