[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

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.




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

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
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

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
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

joginet

@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...  ::)


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

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 ?
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

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

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

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
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, 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.
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

Danke erstmal. Leider hab ich jetzt alles verfummelt und muß jetzt erstmal los.  ::)
Ich melde mich in Kürze mit einem Ergebnis !

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

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
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

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
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

#27
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
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

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
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

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.
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