Hauptmenü

Shelly Button1 mit Fhem

Begonnen von Kurt77, 28 Juli 2020, 16:46:42

Vorheriges Thema - Nächstes Thema

Kurt77

Hallo,
ich führe mit diesem neuen Schalter den Befehl
#
http://192.168.178.33:8083/fhem?XHR=1&cmd=set%20Sonos_Esszimmer%20Pause

aus. Das funktioniert auch, allerdings nur ca. 20 Stunden.
Eine erneute Ausführung des Befehls kann ich nur dadurch erreichen, dass ich einen "shutdown Restart" durchführe. Danach habe ich wieder für 20 Stunden Ruhe.

Hat da jemand eine Erklärung für mich?

Danke und Gruß,
Kurt

MadMax-FHEM

Nicht, wenn das Kommando tatsächlich GENAUSO aussieht...

UND: ich würde Abstand nehmen csrfToken auf "none" zu setzen!!!
(wenn jetzt kommt: aber ich doch nur lokal etc. -> NICHT verstanden was das tut!!)

EDIT: weil wenn der Aufruf genauso aussieht und funktioniert, dann musst du csrfToken auf "none" haben... Sonst dürfte es nicht 1x klappen...

Ansonsten: was steht denn im fhem Log, wenn es nicht mehr geht!?

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)

Kurt77

Ich habe einen festen token gesetzt, den ich abgeschnitten habe. Im log steht leider nix.
Danke und Gruß,
Kurt

MadMax-FHEM

#3
Auch nicht, wenn du die FHEMWEB-Instanz auf verbose 5 stellst?

Was passiert, wenn du (wenn es mit dem Shelly nicht mehr geht) den Aufruf in einen Browser "wirfst"!?

EDIT: fixer Token ok. Aber ich würde für "solche Dinge" eine 2te FHEMWEB-Instanz anlegen und diese dann noch mittels allowed "verriegeln", sodass nur bestimmte Dinge erlaubt sind (z.B. nur Zugriff auf bestimmte Objekte) und evtl. auch den Zugriff auf den Shelly (IP-Adresse) einschränken...

EDIT: aber erst, wenn es geht... Bzw. evtl. zu Testzwecken mal eine 2te FHEMWEB-Instanz ohne alles, also auch ohne csrfToken (also auf "none")... Wenn das dann geht -> dann ist irgendwas mit dem Token / wenn es dann auch Probleme gibt -> weiter suchen...

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)

Kurt77

Hallo Joachim,
warum bin ich nicht selbst darauf gekommen, bei Misserfolg einen Browser zu probieren? Melde mich wieder.

Danke und Gruß,
Kurt

Otto123

#5
Hallo Kurt,

ich habe es ev. nicht ganz verstanden: Du hinterlegst im Taster einen HTTP Link um FHEM zu steuern?  :-[

Warum bindest Du den Shelly nicht per MQTT2 ein und machst den Rest "ordentlich" direkt in FHEM? Geht das nicht?
Sieht doch eigentlich so aus? https://shelly-api-docs.shelly.cloud/#shelly-button1-mqtt

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Kurt77

Hallo Otto,
danke für Deine Antwort.
Ich habe "befürchtet", dass jemand das Thema mqtt bringt 👏. Ich bin Anfänger,
kenne mich mit mqtt nicht aus und habe wenig Zeit.

Gruß Kurt


Otto123

Ich behaupte mal: das ist vielleicht einfacher als das was Du da gerade machst ;)
Also wenn Dein FHEM halbwegs aktuell ist ...
und Du willst ...
Machst Du:
define mqtt2s MQTT2_SERVER 1883 global
attr mqtt2s room MQTT_IO

Trägst in Deiner Shelly Oberfläche unter Internet/Security - Developer Settings
den Haken enable und
Den Server in der Art IPDeinesFHEM:1883 ein
Und drückst unten auf save ;)

Dann sollte beim nächsten Button drücken ein MQTT2_Device entstehen. Dann meldest Du Dich mit einem list zurück ;)

Keine Bange, das lässt sich zur Not alles Rückstandslos entfernen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Kurt77

Hallo Otto,
alles genau so durchgeführt wie von Dir oben beschrieben.
Hier das List:

Internals:
   CFGFN     
   DEF        1883 global
   FD         34
   FUUID      5f23e05f-f33f-7695-a43d-02ade74e9ba9d6ad
   NAME       mqtt2s
   NR         917
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2020-07-31 11:11:59   nrclients       0
     2020-07-31 11:11:59   state           Initialized
   clients:
   retain:
Attributes:
   room       MQTT_IO

Wie geht's jetzt bitte weiter?

Danke und Gruß,
Kurt

Otto123

Zitat von: Otto123 am 28 Juli 2020, 20:28:48
Trägst in Deiner Shelly Oberfläche unter Internet/Security - Developer Settings
den Haken enable und
Den Server in der Art IPDeinesFHEM:1883 ein
Und drückst unten auf save ;)

Dann sollte beim nächsten Button drücken ein MQTT2_Device entstehen.
Der Server sieht gut aus.
Ein MQTT2_DEVICE ist nicht entstanden? Die weiteren Schritte (Zitat) hast Du gemacht?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Kurt77

Sorry Otto,
Du wolltest natürlich ein List vom neuen Device haben:

Internals:
   CFGFN     
   CID        shellybutton1_A4CF12F44F70
   DEF        shellybutton1_A4CF12F44F70
   DEVICETOPIC MQTT2_shellybutton1_A4CF12F44F70
   FUUID      5f23f183-f33f-7695-72f7-f697ee862ebf5109
   IODev      mqtt2s
   LASTInputDev mqtt2s
   MSGCNT     4
   NAME       MQTT2_shellybutton1_A4CF12F44F70
   NR         1091
   STATE      ???
   TYPE       MQTT2_DEVICE
   mqtt2s_MSGCNT 4
   mqtt2s_TIME 2020-07-31 12:27:18
   READINGS:
     2020-07-31 12:27:18   battery         78
     2020-07-31 12:27:18   event           S
     2020-07-31 12:27:18   event_cnt       4
     2020-07-31 12:25:07   fw_ver          20200625-102446/v1.7.3@2aa0993a
     2020-07-31 12:25:07   id              shellybutton1-A4CF12F44F70
     2020-07-31 12:25:07   ip              192.168.178.64
     2020-07-31 12:25:07   mac             A4CF12F44F70
     2020-07-31 12:25:07   new_fw          false
     2020-07-31 12:25:07   online          true
Attributes:
   IODev      mqtt2s
   readingList shellybutton1_A4CF12F44F70:shellies/shellybutton1-A4CF12F44F70/online:.* online
shellybutton1_A4CF12F44F70:shellies/announce:.* { json2nameValue($EVENT) }
shellybutton1_A4CF12F44F70:shellies/shellybutton1-A4CF12F44F70/announce:.* { json2nameValue($EVENT) }
shellybutton1_A4CF12F44F70:shellies/shellybutton1-A4CF12F44F70/sensor/battery:.* battery
shellybutton1_A4CF12F44F70:shellies/shellybutton1-A4CF12F44F70/input_event/0:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE

Danke und Gruß,
Kurt

Otto123

#11
Hallo Kurt,

das sieht doch gut aus. Kann man sicher erstmal so verwenden und später noch schön machen.
Du siehst den Batteriestatus - 78% ?
Du siehst event S - sicher kommt also S für short?

Dann kannst Du entweder den Eventmonitor aufmachen MQTT2_shellybutton1_A4CF12F44F70.* als Filter eingeben und Dir ein notify erzeugen lassen. Das müsste  dann in etwa so aussehen:
define n_MQTT2_shellybutton1_A4CF12F44F70 notify MQTT2_shellybutton1_A4CF12F44F70:event:.S {}
bzw: was Du eigentlich wolltest:
define n_MQTT2_shellybutton1_A4CF12F44F70 notify MQTT2_shellybutton1_A4CF12F44F70:event:.S set Sonos_Esszimmer Pause

Wenn mein Code nicht funktioniert, musst Du im Eventmonitor schauen und eventuell mal die Events posten :)
Bitte nimm dazu die Codetags (hier beschrieben)

gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

@Otto123:

"Vorsicht", dieser "gesprächige" Shelly-Vertreter war/ist Anlass zu der Diskussion ab hier.
(diese Geschwätzigkeit ist ein echter Dauerbrenner, grummel...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

#13
Ok wenn er also ständig die 3 Nachrichten battery event und event_cnt bringt müsste man vielleicht so vorgehen:
attr MQTT2_shellybutton1_A4CF12F44F70 event-on-change-reading .*
modify n_MQTT2_shellybutton1_A4CF12F44F70 MQTT2_shellybutton1_A4CF12F44F70:event_cnt:.*

Im notify anstatt mit MQTT2_shellybutton1_A4CF12F44F70:event:.S zu triggern mit MQTT2_shellybutton1_A4CF12F44F70:event_cnt:.* triggern.

Und wenn man L und S unterscheiden will entweder im Code event abfragen oder ein userReadings bauen und dann damit das notify triggern?
So als Idee (ungetestet)
attr MQTT2_shellybutton1_A4CF12F44F70 userReadings press:event_cnt.* {ReadingsVal($name,'event','')}
attr MQTT2_shellybutton1_A4CF12F44F70 event-on-update-reading press
modify n_MQTT2_shellybutton1_A4CF12F44F70 MQTT2_shellybutton1_A4CF12F44F70:press:.S


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Kurt77

Zitat von: Beta-User am 31 Juli 2020, 13:02:43
@Otto123:

"Vorsicht", dieser "gesprächige" Shelly-Vertreter war/ist Anlass zu der Diskussion ab hier.
(diese Geschwätzigkeit ist ein echter Dauerbrenner, grummel...)
Ich weiß nich Recht, was mir dieser Text sagen soll, aber ich bin Kurt77 und nicht KurtK!

Gruß
Kurt77