[gelöst] FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?

Begonnen von joginet, 04 Januar 2020, 09:30:45

Vorheriges Thema - Nächstes Thema

joginet

Hallo Forum (und ein "Frohes Neues Jahr"!),

da die allermeisten "wie steuere ich FHEM per html"-Beiträge im Bereich Anfängerfragen stehen, stelle ich meine Frage mal dazu.

Ich habe mir ein NAS angeschafft und dort einen webserver für ein Intranet (also nur lokales LAN) installiert. 
Von einer der Intranetseiten (Joomla) möchte ich (unabhängig vom FHEM floorplan) einen dummy schalten (als "Schnellverknüpfung" quasi).

Ich habe eine FHEM WEBapi mit eingeschr. Zugriff definiert und kann meinen Befehl problemlos per

http://meineIP:Port/fhem?cmd.dummy=set%20MeinDummy%20on

ausführen.
Leider wird dann immer die komplette FHEM Seite der Webinstanz oder (mit "&XHR=1") eine weisse Seite geöffnet.

Ich möchte aber auf der Intranet-Seite bleiben und möchte auch keine neuen Tabs öffnen.

Eventuell ist das auch eine html-Frage, habe auch schon einige Vorschläge dazu gelesen (transparenter Ziel-frame, usw.), aber nichts davon hat funktioniert.

Im Forum habe ich nichts zielführendes gefunden oder es nicht verstanden. Weiss jemand weiter? Javascript? CSS? FHEM-notify auf Abfrage?

Gruß, Jochen
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

DS_Starter

Hallo Jochen,

es gibt sicherlich verschiedene Wege.
Aber sofern du ein Synolog NAS hast, könnte dir dieses Verfahren https://wiki.fhem.de/wiki/SSChatBot_-_Integration_des_Synology_Chat_Servers#Ausl.C3.B6sen_eines_Set-Befehls_in_FHEM_durch_eine_Synology_Surveillance_Station_Aktionsregel

helfen.
Das Beispiel ist zwar für die Surveillance Station, aber das Prinzip könntest du adaptieren.

Grüße,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

joginet

Mmm... tut mir leid, ich verstehe nur Bahnhof.  :)

Ja, ich habe eine Synology DS218play. Ich habe jetzt den SSChatBot in FHEM installiert und auch die Chat-Application auf der Synology.

Zitataber das Prinzip könntest du adaptieren.

Mir fehlt es an der "Adaption". Was sende ich jetzt per html wohin und was ändert das an der Tatsache, dass das klicken eines HTML-links eine URL in einem Fenster oder Tab öffnet?

Fragen über Fragen...
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

DS_Starter

#3
Kein Problem  :)

Du bist jetzt also in der Lage einen Set-Befehl über die Chat-Applikation (Chat) auszulösen:

/set <Device> <Befehl>


richtig ?

Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

MadMax-FHEM

Ich grätsch mal ganz kurz mit javascript dazwischen (weil irgendwie dachte ich ging es [auch] um das Absetzen eines Befehls aus einer Webseite!?)...
...und dann bin ich wieder ruhig ;)


<html>
<head>
<script type='text/javascript'>
const Http = new XMLHttpRequest();

  function KlickMich()
  {
    Http.open("GET","http://meineIP:Port/fhem?cmd.dummy=set%20MeinDummy%20on&XHR=1");
    Http.send();
  }
</script>
</head>
<body>
<button onclick="KlickMich()">Setze Dummy</button>
</body>
</html>


Hat bei mir zumindest funktioniert (also nat. mit "meinem" fhem und "meinem" Dummy ;) )...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

DS_Starter

ZitatIch grätsch mal ganz kurz mit javascript dazwischen

Mach ruhig, Joachim. Ich weiß ja momentan auch noch nicht ob mein Vorschlag letztendlich zum Erfolg führt.  ;)
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

MadMax-FHEM

Zitat von: DS_Starter am 04 Januar 2020, 12:09:40
Mach ruhig, Joachim. Ich weiß ja momentan auch noch nicht ob mein Vorschlag letztendlich zum Erfolg führt.  ;)

Hi Heiko, ok, wir werden sehen "wo wir rauskommen" ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

joginet

#7
Vielen Dank für Eure Antworten. Leider habe ich noch keinen Erfolg.

1)
ZitatDu bist jetzt also in der Lage einen Set-Befehl über die Chat-Applikation (Chat) auszulösen:

Code: [Auswählen]

/set <Device> <Befehl>

richtig ?

Leider nein:
Senden der Anfrage an den Bot-Server fehlgeschlagen. Bitte kontaktieren Sie den Bot-Besitzer.

allerdings habe ich die ganze Zeit mit etwas anderem experimentiert (siehe unten) - vermutlich bin ich nicht genug in die Tiefe gegegangen - ich gucke nochmal genauer...

Zitat
Ich grätsch mal ganz kurz mit javascript dazwischen (weil irgendwie dachte ich ging es [auch] um das Absetzen eines Befehls aus einer Webseite!?)...

Genau. Mein Problem ist: mein Inhalt ist in einem "Custom-HTML-Modul" von Joomla. Mit abgeschalteten Editor (also per Quelltext) bekomme ich den Code da rein - der Button wird angezeigt aber nichts passiert.

Vermutlich braucht es ein Plugin, um JS in einem Modul auszuführen. Alle "Code anywhere"-Plugins, die ich gefunden habe, sind für Joomla 3.9.0 "or higher", ich habe 3.8.8 auf der Synology. Ich kann noch nichtmal upgraden, weil ich meine Erstinstallation versehentlich php5.6 installiert habe. Ein Upgrade auf 7.x (plus Änderung der .htaccess) zerschiesst mir die Verbindung zur MariaDB. Baustelle über Baustelle...

Ich hatte allerdings einen ganz anderen Ansatz verfolgt: ich hatte mich an den "Pageswap Dummy" erinnert und mich am Nachfolger "trigger WEB" versucht. Also: dummy per html schalten --> FHEM Seite wird aufgerufen -->  Seite soll zurück auf meine "Intranet"-Seite.
Damit wäre ich schon glücklich. Folgendes habe ich versucht:

define webswitch dummy
attrib webswitch setList on off
define webswitch_notify notify webswitch:.* trigger WEBapi JS:location="http://meineSeite"


Aus dem FHEM WEB geht das auch, per HTML bleibt das leider auf der FHEM-Seite stehen

Wenn ich sowas mache:
define webswitch_notify webswitch:.* set Lampe1 on
dann funktioniert das via html.

Warum wird die Seite bei html-Fernsteuerung nicht neu geladen?

Über Hinweise in alle diskutierten Richtungen bin ich dankbar  :)
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

DS_Starter

Damit es nicht zu sehr durcheinander geht, solltest du dich erstmal entscheiden eine Variante auszuprobieren und wenn diese nicht zum Erfolg führt die nächste anzugehen. Sonst überfordert (mich) das.  :D
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

joginet

Ja, ich weiss - Sorry. Ich hatte mir das irgendwie alles einfacher vorgestellt.
Mir gefällt momentan der letzte Ansatz am besten - weil: NAS-unabhängig und FHEM-eigen...

Alleine beim Joomla-Krams auf der Synology bekomme ich (noch mehr) graue Haare  8)
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

DS_Starter

Ok, dann komme ich wieder ins Spiel falls du mit Synology Chat etwas weitermachen willst.  :)

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

MadMax-FHEM

Hmm, allerdings bin ich bei joomla auch keine Hilfe.
Ich dachte du könntest/wolltest eine "einfache" HTML-Seite haben mit Knöpfen etc. ;)

Habe leider keine Umgebung wo ich da mal testen könnte...

Aber wie bekommst du denn den Aufruf jetzt "rein"?
Weil irgendwie dachte ich es geht ja (prinzipiell nur nicht wie du willst ;)  )...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

joginet

#12
@Joachim: der Aufruf mit dem Script kommt gar nicht rein (in das FHEM), ich vermute, weil das Script im Modul nicht läuft
EDIT: Falls Du damit meinst, wie die aktuelle Situation ist: über den direkten link geht es, es öffnet halt nur eine ungewollte FHEM-Seite und ich bin von meiner Intranet-Seite weg

@ Heiko:
Ich habe den Port der ausgehenden URL im Chat/Einbindungseinstellungen korrigiert. Jetzt ist die Fehlermeldung weg.
Im FHEM kann ich den ChatUser der NAs jetzt mit "get chatbot chatuserlist" sehen.
Ein device kann ich über eine chat mit dem Bot aber nicht schalten.
EDIT: allowedUserforSet usw. ist gesetzt
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

MadMax-FHEM

Zitat von: joginet am 04 Januar 2020, 15:13:29
@Joachim: der Aufruf mit dem Script kommt gar nicht rein (in das FHEM), ich vermute, weil das Script im Modul nicht läuft
EDIT: Falls Du damit meinst, wie die aktuelle Situation ist: über den direkten link geht es, es öffnet halt nur eine ungewollte FHEM-Seite und ich bin von meiner Intranet-Seite weg

Hmm, aber wie "machst" du das aktuell!?
Also wo wie gibst du den "Link" ein?

Einfach "irgendwo" in einem Browser oder schon "irgendwie so wie das später mal soll"?!

Ich weiß grad nicht wie es denn gedacht ist!?
Also wenn ich einen "Intranet-Server" hätte, dann würde ich wollen, dass ich dort Webseiten ablegen kann...

Und das java-Script läuft ja im Browser...

Ich dachte du willst eben auf deinem Intranetserver eine Seite mit einem Knopf und wenn du da drauf drückst soll in fhem was passieren aber die Seite soll bleiben!?

also irgendwie habe ich da noch einen "Wurm im Kopf"... ;)


Zitat von: joginet am 04 Januar 2020, 15:13:29
@ Heiko:
Ich habe den Port der ausgehenden URL im Chat/Einbindungseinstellungen korrigiert. Jetzt ist die Fehlermeldung weg.
Im FHEM kann ich den ChatUser der NAs jetzt mit "get chatbot chatuserlist" sehen.
Ein device kann ich über eine chat mit dem Bot aber nicht schalten.

Daher würde ich sagen: Heiko du bist wieder im Rennen bzw. sogar "Pole Position" ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

DS_Starter

@Joachim ... ich wollte gerade Kaffee trinken  ;D *grins*

ZitatEin device kann ich über eine chat mit dem Bot aber nicht schalten.
Also du gehst z.B. in der mobilen App auf dem Tablet/Telefon in den Kanal des Bots, bei mir heißt der FHEM_Prod und sendest dort als Beispiel:

/set eg.wz.schrankwand on

Damit schaltet bei mir eine Lampe an.

Wenn das nicht funktioniert, dann bitte im SSChatBot-Device und dem mit angelegte WEB-Device (    
WEBSSChatBot) verbose 5 setzen und die Logausgabe posten. Dann sieht man was nicht geht.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter