FHEM - Hausautomations-Systeme > Zigbee

Aqara Cube

(1/4) > >>

Neuhier:
So, mal meine Erfahrungen mit dem Würfel.
Er ist hier per zigbee2mqtt über einen CC2351 eingebunden.
Readings:

--- Code: ---action = wakeup, flip90/180, shake, rotate_left/right, tap, slide
angle = Drehung in Grad ( postive Anzeige nach rechts, negative nach links)
from_side = letzte Seite, die nach oben gezeigt hat
side =
to_side = aktuell obenliegende Seite
battery
battery_level
linkquality
transmissionstate
voltage

--- Ende Code ---

Seiten Nummerierung

--- Code: ---Beschriftung = 0
oben = 2
rechts = 1
unten = 5
links = 4
Unterseite = 3
--- Ende Code ---

Änderung der Seiten nur beim Kippen, drehen hat da keinen Einfluß.
Bisher eingerichtet:
linksdrehen = TV leiser, rechtsdrehen = lauter
90° kippen = Sender aufwärts, 180° kippen = Sender abwärts
shake = Mute

In Arbeit:
klopfen: schaltet Steuerung von TV auf Surroundsystem - Lautstärke und Sender

Wenn man nun noch die Auswertung macht, von welcher Seite gekippt wurde und wohin, hat man noch einige "Steuerbefehle" zusätzlich.

Slide ergänzt.

OdfFhem:
Meine Cubes sind ebenfalls per zigbee2mqtt eingebunden.

Es gibt noch eine action namens slide, die beim Schieben des Cube ausgelöst wird.

Die Readings battery_level sowie transmissionstate sind bei mir nicht vorhanden.

Ich steuere - abhängig von side - unterschiedliche Geräte/Gerätegruppen durch tap,rotate_*,shake und slide; für die flip-Events fehlt mir noch eine "plausible/merkbare" Logik ...

rippi46:
Hallo OdfFhem,

ich habe bei mir das Reading to_Side ausgewertet und schalte meinen piCoreplayer im Badezimmer auf einen bestimmten Sender. Mit Rechts- bzw. Linksdrehung mach ich laut und leise. Mit Schütteln schalte ich den Player ein und aus und mit Slide schalte ich den Bewegungsmelder aus. Tap schaltet den Bewegungsmelder wieder ein.


Gruß rippi

TomLee:
Mich interessiert es weniger was ihr damit steuert, eher wie es umesetzt wurde.

Bei mir hab ich das weil es mir am einfachsten vorkam mit einem DOIF gelöst, wie sieht das bei euch aus.
Geht es kürzer/übersichtlicher/einfacher ?



--- Code: ---defmod doif_Cube DOIF ([MQTT2_zigbee_cube:action] eq "rotate_left" and [MQTT2_zigbee_cube:to_side] eq "0")(set TV_Wohnzimmer channelUp) DOELSEIF\
([MQTT2_zigbee_cube:action] eq "rotate_right" and [MQTT2_zigbee_cube:to_side] eq "0")(set TV_Wohnzimmer channelDown) DOELSEIF\
([MQTT2_zigbee_cube:action] eq "rotate_left" and [MQTT2_zigbee_cube:to_side] eq "1")(set TV_Wohnzimmer volumeUp) DOELSEIF\
([MQTT2_zigbee_cube:action] eq "rotate_right" and [MQTT2_zigbee_cube:to_side] eq "1")(set TV_Wohnzimmer volumeDown) DOELSEIF\
([MQTT2_zigbee_cube:action] eq "tap" and [MQTT2_zigbee_cube:to_side] eq "4")(set MQTT2_Milight_Wohnzimmer toggle) DOELSEIF\
([MQTT2_zigbee_cube:action] eq "rotate_left" and [MQTT2_zigbee_cube:to_side] eq "4")(set MQTT2_Milight_Wohnzimmer hue {([MQTT2_Milight_Wohnzimmer:hue]+2)}) DOELSEIF\
([MQTT2_zigbee_cube:action] eq "rotate_right" and [MQTT2_zigbee_cube:to_side] eq "4")(set MQTT2_Milight_Wohnzimmer hue {([MQTT2_Milight_Wohnzimmer:hue]-2)}) DOELSEIF\
([MQTT2_zigbee_cube:action] eq "wakeup" and [?05:30-10:00])(set Sonos_Wohnzimmer_PLAY3 Speak 15 de |Temple| Test. Die Außentemperatur beträgt zur Zeit [HF_Aussensensor_Vorderhaus:temperaturegerundet] °. Die Tageshöchsttemperatur liegt bei [WetterMutterstadt:fc1_high_c] ° )
attr doif_Cube do always
--- Ende Code ---

Grüße

Thomas

rippi46:
Hallo TomLee,

Hier das DOIF von meinem Würfel:

--- Code: ---defmod m_badplayer_sender DOIF ([0x00158d00027cefec:to_side] eq 1)(set SB_PLAYER_b827ebfce926 favorites SWR3_938_Top_40Pop) DOELSEIF ([0x00158d00027cefec:to_side] eq 2)(set SB_PLAYER_b827ebfce926 favorites Radio_Regenbogen_1011_Top_40Pop) DOELSEIF ([0x00158d00027cefec:to_side] eq 3)(set SB_PLAYER_b827ebfce926 favorites Absolut_relax_Easy_Listening) DOELSEIF ([0x00158d00027cefec:to_side] eq 4)(set SB_PLAYER_b827ebfce926 favorites pani_schlager) DOELSEIF ([0x00158d00027cefec:to_side] eq 0)(set SB_PLAYER_b827ebfce926 favorites Hit_Radio_Ohr_1049_Adult_Contemporary) DOELSEIF ([0x00158d00027cefec:to_side] eq 5)(set SB_PLAYER_b827ebfce926 favorites Enya) DOELSEIF ([0x00158d00027cefec:action] eq "shake") (set HM_341730 toggle;; set SB_PLAYER_b827ebfce926 volume 50) DOELSEIF ([0x00158d00027cefec:action] eq "tap") (set m_badplayer2 disable;;set SB_PLAYER_b827ebfce926 stop) DOELSEIF ([0x00158d00027cefec:action] eq "slide") (set m_badplayer2 initialize)
attr m_badplayer_sender do always
attr m_badplayer_sender room Bad
--- Ende Code ---

und laut leise mit:

--- Code: ---defmod BadLautLeise notify 0x00158d00027cefec.* {\
my $radio_volume = ReadingsVal("SB_PLAYER_b827ebfce926","volume","");;\
 if \
 (ReadingsVal("0x00158d00027cefec","action","") eq "rotate_left"){\
    if ($radio_volume <= 5) {\
   $radio_volume = 0;;\
   }\
else {\
$radio_volume = $radio_volume-5;;\
}\
 } \
 elsif \
 (ReadingsVal("0x00158d00027cefec","action","") eq "rotate_right"){\
   if ($radio_volume >= 95) {\
   $radio_volume = 100;;\
   }\
else {\
$radio_volume = $radio_volume+5;;\
} \
 }\
 fhem( "set SB_PLAYER_b827ebfce926 volume $radio_volume" );;\
 return $radio_volume;;\
}
attr BadLautLeise room Bad
--- Ende Code ---

Gruß rippi

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln