FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: joginet am 04 Januar 2020, 09:30:45

Titel: [gelöst] FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 09:30:45
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
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 09:59:26
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
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 11:17:24
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...
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 12:04:10
Kein Problem  :)

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

/set <Device> <Befehl>


richtig ?

Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: MadMax-FHEM am 04 Januar 2020, 12:07:13
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
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 12:09:40
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.  ;)
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: MadMax-FHEM am 04 Januar 2020, 12:36:13
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
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 14:47:59
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  :)
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 14:53:06
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
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 14:56:48
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)
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 15:05:20
Ok, dann komme ich wieder ins Spiel falls du mit Synology Chat etwas weitermachen willst.  :)

LG,
Heiko
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: MadMax-FHEM am 04 Januar 2020, 15:08:26
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
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag 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

@ 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
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: MadMax-FHEM am 04 Januar 2020, 15:26:23
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
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 15:31:29
@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.
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 15:38:55
ZitatHmm, aber wie "machst" du das aktuell!?
Also wo wie gibst du den "Link" ein?

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

Ein "Modul" beim joomla kann auch "custom html" sein, also ein Abschnitt mit eigenem html auf einer (joomla)-webseite.
Da ist bei mir ein Bild/icon drinne mit dem link drauf. Der schaltet so wie er soll, aber macht halt ein Fenster auf (das soll er nicht).
Das Problem am Joomla Modul ist, dass da (zumindest per default) nur html läuft - kein css, kein js, usw.
Dafür gibt es Plugins, die das ermöglichen (siehe Problematik oben).
Im "gesamt-html" der Seite bringt es nichts, da es 1) die Struktur zeschiesst und 2) ich den link ja genau an der Stelle meines Moduls haben möchte.

ZitatIch 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!?
genau.




Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: MadMax-FHEM am 04 Januar 2020, 15:46:17
Ich verstehe das immer noch nicht...

Aber wie geschrieben ich kenne mich bzgl. joomla nicht (wirklich) aus...

Aber was macht denn das java-Script da für Probleme?
Es ist doch eingebettet in html, sollte also doch eine "ganz normale html-Seite" sein!?

Das java-Script wird ja doch im Browser der die Seite lädt abgearbeitet...

Aber egal, ich denke der andere Weg ist besser!? ;)

Gruß, Joachim
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 15:48:43
ZitatWenn 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.

So sieht es im Log aus:

2020.01.04 15:42:21 4: Connection accepted from WEBSSChatBot_192.xx.x.xxx_xxxx
2020.01.04 15:42:21 4: WEBSSChatBot_192.xxx.x.xxx_xxxx POST /sschat/outchat?botname=SynChatBot&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&user_id=4&username=xxx&post_id=17179869213&thread_id=0×tamp=1578148941912&text=%2Fset%20Audio1%20on; BUFLEN:0
2020.01.04 15:42:21 4: WEBSSChatBot: /sschat/outchat?botname=SynChatBot&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&user_id=4&username=xxx&post_id=17179869213&thread_id=0×tamp=1578148941912&text=%2Fset%20Audio1%20on / RL:49 / text/plain; charset=utf-8 /  / Cache-Control: no-cache, no-store, must-revalidate
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 15:52:44
@Joachim
ZitatAber was macht denn das java-Script da für Probleme?
Es ist doch eingebettet in html, sollte also doch eine "ganz normale html-Seite" sein!?

Naja, Joomla ist halt leider keine ganz normale Seite - da liegt ja noch ein Template drüber, was seinerseits Scripte benutzt. Plugins, Module, usw.
Kurz: ich denke, mit einem aktuellen Joomla, php und "Script-anywhere"-Plugin würde das problemlos gehen. Aber bis ich mich da duch die Synology-Foren gelesen habe...  ::)


Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 15:56:51
Also das sieht für den Bot doch schon gut aus. Aber da sollte noch mehr kommen:


2020.01.04 15:52:43.120 4: Connection accepted from WEBSSChatBot_192.168.2.10_57573
2020.01.04 15:52:43.121 4: WEBSSChatBot_192.168.2.10_57573 POST /sschat/outchat?botname=SynChatBot&fwcsrf=xxxxxxx&token=xxxxxxxxxxxxxxxxxxxxxxxx&user_id=4&username=Heiko&post_id=68719477648&thread_id=0×tamp=1578149563078&text=%2Fset%20eg.wz.schrankwand%20on; BUFLEN:0
2020.01.04 15:52:43.123 4: SynChatBot - ####################################################
2020.01.04 15:52:43.123 4: SynChatBot - ###          start Chat operation Receive           
2020.01.04 15:52:43.123 4: SynChatBot - ####################################################
2020.01.04 15:52:43.124 5: SynChatBot - data received:
{
  'post_id' => '68719477648',
  'text' => '%2Fset%20eg.wz.schrankwand%20on',
  'botname' => 'SynChatBot',
  'timestamp' => '1578149563078',
  'fwcsrf' => 'xxxxxxxx',
  'user_id' => '4',
  'thread_id' => '0',
  'token' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'username' => 'Heiko'
}

2020.01.04 15:52:43.124 4: SynChatBot - user_id received: 4
2020.01.04 15:52:43.125 4: SynChatBot - username received: Heiko
2020.01.04 15:52:43.125 4: SynChatBot - postid received: 68719477648
2020.01.04 15:52:43.125 4: SynChatBot - timestamp received: 2020-01-04 15:52:43
2020.01.04 15:52:43.126 4: SynChatBot - text received: /set eg.wz.schrankwand on
2020.01.04 15:52:43.126 4: SynChatBot - Synology Chat user "Heiko" execute FHEM command: set eg.wz.schrankwand on
2020.01.04 15:52:43.911 4: SynChatBot - FHEM command return: command 'set eg.wz.schrankwand on' executed


Ist der Chat-Bot auch auf verbose 5 ?
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 15:58:07
Zitat
Ist der Chat-Bot auch auf verbose 5 ?

Jip.
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 16:03:25
Hmm, komisch. Mach mal bitte ein list vom Bot-Device.
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 16:18:52
Internals:
   DEF        192.xxx.x.xxx xxxx http
   FUUID      5e105c05-f33f-70e9-8f0e-b0bc0118bbb7b9b7
   FVERSION   50_SSChatBot.pm:v1.1.0-s20534/2019-11-18
   FW         WEBSSChatBot
   INADDR     192.xxx.x.xx
   INPORT     xxxx
   INPROT     http
   MODEL      ChatBot
   NAME       chatbot
   NR         1562
   OPMODE     chatUserlist
   OUTDEF     http://pc4-NUC7i5BNH:xxxx/sschat/outchat?botname=chatbot&fwcsrf=5e105c05
   RESEND     next planned SendQueue start: immediately by next entry
   STATE      active
   TOKEN      Set
   TYPE       SSChatBot
   HELPER:
     APIINFO    SYNO.API.Info
     APIPARSET  1
     CHATEXTERNAL SYNO.Chat.External
     CHATEXTERNALMAXVER 2
     CHATEXTERNALPATH entry.cgi
     INFIX      outchat
     PACKAGE    main
     TOKEN      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     USERFETCHED 1
     VERSION    1.1.0
     USERS:
       pc4:
         email     
         id         4
         nickname   
         status     online
   READINGS:
     2020-01-04 15:29:27   Error           none
     2020-01-04 15:29:27   Errorcode       none
     2020-01-04 15:29:27   QueueLenth      0
     2020-01-04 15:29:27   state           active
Attributes:
   allowedUserForCode pc4
   allowedUserForGet pc4
   allowedUserForOwn pc4
   allowedUserForSet pc4
   room       Chat
   verbose    5
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 16:23:53
ok, jetzt sieht man es:


OUTDEF     http://pc4-NUC7i5BNH:xxxx/sschat/outchat?botname=chatbot&fwcsrf=5e105c05


Der Name deine Bots ist "chatbot", angegeben hast du aber in der Applikation als Webhook den Namen:

Zitat
WEBSSChatBot_192.xxx.x.xxx_xxxx POST /sschat/outchat?botname=SynChatBot&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&user_id=4&username=xxx&post_id=17179869213&thread_id=0×tamp=1578148941912&text=%2Fset%20Audio1%20on; BUFLEN:0

Must du in der Chat-Appikation auf der Syno korrigieren.

EDIT: Und das &fwcsrf=5e105c05 fehlt auch.
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 16:43:50
Danke erstmal. Leider hab ich jetzt alles verfummelt und muß jetzt erstmal los.  ::)
Ich melde mich in Kürze mit einem Ergebnis !

Gruß, Jochen
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 17:11:24
Das habe ich gleich mal als Anlass genommen um einen entsprechenden Logeintrag zu erzeugen, wenn ein Botname mitgegeben wird der nicht (mit dem richtigen Typ) exitiert.


2020.01.04 17:05:39.127 1: ERROR - No SSChatBot device "SynChatBo" of Type "SSChatBot" exists


Bitte die Version wieder aus meinem contrib ziehen und FHEM restarten.

Grüße,
Heiko
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 19:09:11
Hallo Heiko,

Danke nochmal, jetzt habe ich mal alles, was mit "chatbot" zu tun hat im FHEM neu angelegt und i.d. Synology entsprechend angepasst.
Und ja, jetzt kann ich per
/set Lampe on
ein FHEM device schalten.
Das war also schonmal Schritt eins - was mache ich jetzt mit meinem html?

Gruß, Jochen
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 19:20:47
Prima.
Das war die Vorarbeit. Jetzt müsstest du in deiner Joomla Applikation einen solcher Aufruf einbauen:


http://pc4-NUC7i5BNH:<Port>/sschat/outchat?botname=<Botname>&fwcsrf=<csrf-Code>&user_id=4&username=<Username>&token=<Token>&text=%2Fset%20Lampe%20on


Alles natürlich mit deinen korrekten Daten. Du weißt ja jetzt auch welche das sind, Botname und CSRF siehst du im Internal OUTDEF des Bot-DEvices, den Token z.B. über "get .. storedToken" und einen validen User über "get ...chatUserlist".

Naja .. und dann hoffen wir mal dass es so funktioniert wie du dir das wünscht.

EDIT: HTML Aufruf geändert
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 20:08:31
Hmmm....
Also - der Link schaltet noch nichts, aber das kann auch an meinem Token-Syntax liegen.
Was mir auffällt: in Chat kommt eine Nachricht an, aber unter dem Botnamen, nicht unter dem User-Namen.
Da steht "Please define on first"

Aber: was viel schlimmer ist: nach Ausführen des links im Joomla erscheint eine weisse Seite - auf der steht "success".
Also: gleiches Problem? Etwas an den Bot senden verlinkt genauso wie etwas an FHEM senden?

Gruß, Jochen
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 20:17:14
Ach sorry, da habe ich in dem Beispiel oben etwas zuviel weggelöscht:

&text=%2Fset%20Lampe%20on

Dann wird das schalten.

ZitatAber: was viel schlimmer ist: nach Ausführen des links im Joomla erscheint eine weisse Seite - auf der steht "success".
Nun das ein Wert zurück gegeben wird kann ich zum Beispiel mit einem Attribut abschaltbar gestalten.
Käme auf einen Versuch an.
Wenn du magst, ergänze den Aufruf so dass es mit dem Schalten klappt und dann würde ich dir eine Version bereitstellen ohne die Rückgabe von "success". Viellicht hilft das dann.
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 20:20:52
Ja, das geht ! Da hätte ich auf selber drauf kommen können, dass da das Leerzeichen fehlt.
Wenn die success-Seite weg wäre, wäre das prima  ;D ;D ;D
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 20:39:54
So, probiers mal mit der geänderten Version aus meinem contrib. Restart oder reload nicht vergessen.
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 21:57:55
Ok, hab ich geladen. Muss ich noch ein Attribut setzten?
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 22:03:42
Nein, aber hast du es gerade erst gemacht ? Wenn ja, müssen wir es nochmal tun, weil ich es inzwischen wieder in den Originalzustand versetzt habe.
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 22:06:22
PS: mein eigentliches Problem habe ich mittlerweile "umschifft":
ein "sleep 3" vor dem "trigger WEBapi JS:" hat es gelöst:

define webswitch dummy
attrib webswitch setList on off
define webswitchdoif DOIF ([webswitch:state] eq "on") (sleep 3; trigger WEBapi JS:location="http://meineIntranet-Seiten-URL"; set MeinDevice on; set webswitch off)
attrib webswitchdoif do always


funktioniert.
Ich klicke den html-link
http://Meine_WEBapi_URL:Port/fhem?cmd.dummy=set%20webswitch%20on

Die Seite wird kurz auf die FHEM WEBapi-Seite umgeleitet, schaltet gleich wieder zurück auf meine Intranet-Seiten-URL und führt die Aktion (Deveice schalten) aus.


Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 22:08:58
ZitatNein, aber hast du es gerade erst gemacht ?

Ja, gerade erst. Ist es evt. einfacher für Dich, mir die Datei per email zu schicken? Dann melde ich mich per pm...
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 22:12:29
Jetzt habe ich sie einfach mal hier angehängt.
Wenn du es schon gelöst hast ist das doch prima  :)
Wäre noch interessant ob es mit dm Bot nun auch klappt.

Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 22:13:36
Ahh - anhängen geht ja auch  :)
Ja - ich teste nochmal eben...
Titel: Antw:FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: joginet am 04 Januar 2020, 22:24:37
Sooo... schalten geht, das "success" ist weg, aber der link wird leider geöffnet  (eine weisse Seite).
Wenn man da jetzt noch ein "redirect" bei "success" einbauen würde  ;D

Sorry, Du hast Dir sehr viel Arbeit gemacht.
Aber wer weiss, wozu ich das mal brauchen kann - immerhin spricht die Synology jetzt mit meinem FHEM !

Ich setzte den Beitrag mal auf gelöst, siehe weiter oben:

https://forum.fhem.de/index.php/topic,107003.msg1008861.html#msg1008861 (https://forum.fhem.de/index.php/topic,107003.msg1008861.html#msg1008861)

Vielen, vielen Dank für Deine Mühe !

Gruß, Jochen
Titel: Antw:[gelöst] FHEM über html steuern - wie unterdrücke ich den Seitenaufruf?
Beitrag von: DS_Starter am 04 Januar 2020, 22:28:29
Keine Ursache, macht ja Spass und vielleicht kann ich noch etwas sinnvolles erweitern  ;)
Du kannst diese Möglichkeiten mit dem Bot bestimmt noch irgendwann brauchen und sei es in Verbindung mit Kameras und SSCam.

Grüße,
Heiko