Hauptmenü

Mein FHEM

Begonnen von noanda, 20 Februar 2015, 12:07:42

Vorheriges Thema - Nächstes Thema

noanda

ich muss dazu sagen, dass es bereits meine zweite FHEM Installation. Das Bild ist recht einfach, wir sind eine Familie und Bewohnen einen 4 Zimmer Wohnung Küche / Bad.

Aktoren:
6 x Heizung HM 886
20 x IT Steckdosen 433
6 x HM Steckdosen 886
9 x Fenster / Türkontakt 433
1 x Bewegungsmelder HM 886
5 x Rauchmelder Flamingo 433
1 x Außenthermometer 433
1 x NFC – Tag Reader
3 x LED RGB Steuerung 433
1 x RFXTRX Sender
1 x HMLAN
1 x Instar Cam
2 x Fernbedienung IT
1 x Tablett XOR
Das Ganze läuft auf eine RPI B+ (noch die Latenzzeiten sind mir etwas zu hoch)

Aufbau und Grundgedanken:
Ich habe die Wohnung in 2 Große Gruppen geteilt: 1 Gemeinschaftsräume (Küche, Bad, Wohnzimmer) 2 Individuelle Räume 2xKinderzimmer, Schlafzimmer.
Angefangen habe ich das ganze über das PRESENCE Modul für die Handys, diese werden über W-Lan und bluetooth erkannt (watchdog).
Nur Das Apfelphone meiner Frau geht nicht. Deswegen habe ich im Flur unter der Schlüsse einen NFC USB Stick, meine Frau hat einen NFC Tag am Schlüssel hängen, damit wird erkannt ob Sie da ist oder nicht.
Die Anwesenheit Stati werden an einen Dummy weitergegeben. Damit der mit event-on-change-reading ausgelesen werden kann.
diese Werte werden dann weitergegeben an das ROOMMATE Modul, hier sind alle Stati aktiv Also von ,,gone" über ,,awoken" bis ,,asleep".

Weiter geht es mit dem Modul, LightScene  . Jedes Zimmer hat mehrere eigene Scenes. Die im Großen und Ganzen den Stati von ROOMMATE entsprechen und noch ein paar mehr, wie z.B. ,,Kino" im Wohnzimmer.
Weiter werden noch die Herrlichkeit über Twilight abgefragt und die Feiertage über Hollyday.
Nun wird die Sache denkbar einfach. Der gemeinsame Staust aller Bewohner steuert die Gemeinschaftsräume uns setzt die entsprechende Scene, je nach dem wer anwesend ist, werden die individuellen Räume auch auf Die entsprechenden ,,scene" gestellt. Es gibt fast alle ,,scene" doppelt einmal mit und einmal ohne Licht. Je nachdem ob Twilight
sagt mit oder ohne Licht.
Einige ,,scene" werden mittlerweile über den emotionalen zustand gesetzt. Und verändern die Farben der LED.

Kleine Besonderheiten:
- Der ,,awoken" Status wird über einen Google Kalender gesetzt (dann ist die Kaffeemaschine warm und die Heizung an).
- Die Steckdosen am PC werden nicht nur über ,,home" gesteuert, die PC's werden extra gepingt. Dann geht der Saft nicht aus wenn sie noch an sind (Upload usw.) und steuern die Schreibtischbeleuchtung
- Es gibt besondere Scenes ,,Z.B. WarmesBad" wenn der Junior badet, dieser wird aber nach 30 Minuten in den Normalzustand zurück verätzt.
- Es gibt eine Alarmanlage, die über IPCAM ein Bild von der Tür liefert wenn der Alarm ausgelöst wird und per Mail verschickt.
- Bei Rauchalarm wird die Alarmsirene eingeschaltet und Mails verschickt.
- Die Rücksetzung des Alarm geht über NFC-TAG oder Telefon
- Es gibt einen Heizungshauptschalter, damit in der Übergangszeit die Heizungen nicht so ,,hüpfen"
- Die Temperatur der Flüsse werden überwacht (ich bin Kajakfahrer)
- in verschiedenen ,,Scene" wird zwischen Feiertagen und Arbeitstagen unterschieden (IF Modul) und damit Heizung und Licht im ,,Awoken" Zustand unterschieden ohne weitere ,,scene" zu bauen
- Da ich öfters vor dem TV einpennen, kann der ,,asleep" Zustand über eine Counter gesetzt werden
- Die ,,scens" geben die Temperatur an einen Dummy, der Stellt die Heiztemperatur ein. Aber nur wenn die Fenster / Türen geschlossen sind.
- die Ventilatoren sind von Anwesenheit und Außentemperatur abhängig.

Darstellung:
Zur allgemeinen Steuerung, hängt ein Tablett in der Küche im LASCAR Stil. Außerdem können die Floorplans auch über die Handys abgerufen werden. In ein paar Räumen kann man die Stati auch über die IT Fernbedienungen setzen.
Geplant: es ist noch Keymatic, die Aufzeichnung des Stromverbrauchs, das Auslesen von Emotionen über Schlafzustand über ein Sportarmband aber so weit bin ich noch nicht
Für Tipps und Meinungen bin ich offen  ;D
Raspberry Pi - FHEM 5.5
HMLAN, RFXtrx433 , CUL 868
HM-CC-RT-DN, HM-SEC-MDIR , HM-SEC-SC-2
HM-LC-SW2-FM, ROTO_ZEL-STG-RM-FZS
ELRO440AB, Flamingo

noanda

Noch ein paar Bilder dazu
Raspberry Pi - FHEM 5.5
HMLAN, RFXtrx433 , CUL 868
HM-CC-RT-DN, HM-SEC-MDIR , HM-SEC-SC-2
HM-LC-SW2-FM, ROTO_ZEL-STG-RM-FZS
ELRO440AB, Flamingo

FranzB94

Hi noanda!

Tolles Projekt! Man kann schön über die Bilder staunen. Leider kann man als FHEM-Anfänger kaum etwas davon verwenden, weil du nicht beschreibst Wie! du es in FHEM integriert hast. Vielleicht magst du einen WiKi-Beitrag verfassen?

Rätselhaft ist mir ehrlich gesagt, was du mit dem Junior veranstaltest:

Zitat- Es gibt besondere Scenes ,,Z.B. WarmesBad" wenn der Junior badet, dieser wird aber nach 30 Minuten in den Normalzustand zurück verätzt.

noanda

Nun ich will ihn nicht "Verätzen" sondern die Steuerung soll versetzen, Worterkennung ist halt nicht immer gut.

Wenn ich ein wenig Zeit habe, oder besondere Teile der Steuerung interessant sind lasst es mich wissen, werde es mal austüfteln.


Raspberry Pi - FHEM 5.5
HMLAN, RFXtrx433 , CUL 868
HM-CC-RT-DN, HM-SEC-MDIR , HM-SEC-SC-2
HM-LC-SW2-FM, ROTO_ZEL-STG-RM-FZS
ELRO440AB, Flamingo

bjoernbo

wow, das sieht klasse aus'! Das ganze ist umgesetzt mit RSS richtig? Dann muss ich mich mal da reinarbeiten.

Frage zu deiner CAM. Das ist, wenn ich das richtig gelesen habe ein Foto/Bild welches dort angeteigt wird, oder?
Ich habe meine Versuche das Livebild zu integrieren bereits abgebrochen. Im WebViewControll wird mir das nicht angezeigt.
Wäre das mit RSS möglich?
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

MartinMuc

Zitat- Da ich öfters vor dem TV einpennen, kann der ,,asleep" Zustand über eine Counter gesetzt werden

Was mich intressiert ist dein Totmann Counter fürs Einschlafen vor dem TV, dafür hab ich nämlich noch keine adäquate Lösung
Cubietruck mit CUL und HM USB

P.A.Trick

Zitat von: MartinMuc am 24 Februar 2015, 13:03:01
Was mich intressiert ist dein Totmann Counter fürs Einschlafen vor dem TV, dafür hab ich nämlich noch keine adäquate Lösung

Ich habe dafür meinen Nachtwächter :-) Der guckt um 02:00 Uhr welche Geräte noch an sind und sofern die Aktion nicht durch einen Tastdendruck auf meine Fernbedienung unterbrochen wird, dann wird alles ausgeschaltet. Klappt super und die Frau kommt damit auch klar :-)
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

noanda

Hallo Zusammen,

nun ich will mal eines sagen, ich habe zwar sehr lange zusammen gebaut, aber Ehre wem diese Gebührt, das meiste habe ich aus der Forum.

@ bjoernbo: Nein das ganze ist nicht über RSS, sondern nur statisch, bei der IPCAM habe ich einfach nur das Livebild eingebunden. Das mit dem RSS habe ich im Auge, aber leider keine Zeit dafür.

@ MartinMuc
Eigentlich ist es 100% dieser Wecker:
Zitathttp://forum.fhem.de/index.php/topic,30733.0.html
aus dem Forum hier, er stellt nur nicht einen Aktor an sondern mich im modul auf asleep.

define WeckerCF dummy
attr WeckerCF alias WeckerCF stellen
attr WeckerCF devStateIcon AUS:general_aus@red
attr WeckerCF fp_Home 340,730,7,
attr WeckerCF group WeckerCF
attr WeckerCF icon ring
attr WeckerCF room Wecker
attr WeckerCF setList state:AUS,00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45
attr WeckerCF webCmd state:AUS

define noWeckerCF notify WeckerCF {if (Value("WeckerCF") eq "AUS")\
  { fhem("delete atWeckerCF");;;;\
} else {\
  fhem("delete atWeckerCF");;;;\
  fhem("define atWeckerCF at ".Value("WeckerCF").":00 {WeckenCF()}");;;;\
  fhem("attr atWeckerCF room Wecker");;;;\
  fhem("attr atWeckerCF group WeckerCF");;;;\
  fhem("attr atWeckerCF alias Nächster aktiver WeckerCF:");;;;\
  fhem("attr atWeckerCF icon ring\@@red");;;;\
  }\
}
attr noWeckerCF room Wecker


und in der 99_myUtils.pm:

sub
WeckenCF()
{
  fhem("set rr_Christian asleep");
}


wie gesagt vieles ist hier aus dem Forum, dieses Forum ist eine Quelle der Ideen, ich habe sie nur zusammen gebaut... OK für den floorplan habe ich etwas länger gebraucht.
Raspberry Pi - FHEM 5.5
HMLAN, RFXtrx433 , CUL 868
HM-CC-RT-DN, HM-SEC-MDIR , HM-SEC-SC-2
HM-LC-SW2-FM, ROTO_ZEL-STG-RM-FZS
ELRO440AB, Flamingo

noanda

Also wie versprochen ein wenig was zu meinem FHEM.
Vorweg, ich bin weder ein Programmierer, noch ein super Typ. Ich habe nur versucht mit dn vielen Modulen unsere Wohnung nach unseren Bedürfnissen zu ,,gestalten". Dabei hatte ich jetzt auch nicht die viel Geld im Budget. Sonst wäre alles von HM.

Für vieles gäbe es auch bestimmt noch bessere Lösungen, und ich versuche es auch immer weiter, aber jetzt kommt erst mal wieder Kajak fahren und noch ein paar andere Projekte, die Prio haben.

Das eigentliche Lob geht also an die die FHEM möglich machen, und im Forum schneller sind als der Support vieler Hersteller.

Als ich in der 2 Version mein FHEM zusammengebaut habe, habe ich für mich ein paar ganz einfacher Regelungen für die Namen gefunden. Da ich in Namen irgendwie keine Punkte mag (das kommt vielleicht noch aus DOS Zeiten) Habe ich meine Namen alle So aufgebaut:
Aktoren = 3 Grosbuchstaben Für das Zimmer dann den Typ Heizung, Licht usw. und vielleicht noch eine Zusatz. Beispiel WOZLichtSofa ist ein Licht im Wohnzimmer beim Sofa.

Melder = Fangen immer mitt Melder and, dann 3 Buchtsaben für was sie melden, und 3 Buchtsaben für dass wo sie melden Beispiel MelderFEUWOZ ist dann wohl ein Feuermelder im Wohnzimmer.

Sensor = Fangen immer mit Sensor an, dann 3 buchsteben für was man Sie baraucht und Wo sie sind Beispiel SensorTEMKUE, ist ein Temperaturmelder in der Küche.

Das habe ich so gemacht, damit ich gruppen Schalten kann, also alles im WOZ oder alle Lichter im WOZLicht usw. Die Melder müssen andersrum laufen MelderFEU ist wohl immer ein Feuermelder.

Aber das muss jeder selber für sich wissen wie er sich was baut. War für mich halt logisch.

Übrigens bei IT Codes habe ich jedem Raum einen Buchstaben gegeben und nacheinander durchnummeriert, kann dann auch recht praktisch sein.

Das nur damit mein Code eindeutiger wird. Funktionen erkennt man übrigens immer an den letzten Buchstaben als NTFY für Notify und DOIF für Do if usw.

früher haben ich übrigens noch viel in der CFG rumgemurkst, heute mache ich das nicht mehr. Ich arbeite lieber so mit FHEM. Was ich mir aber nicht abgewöhnen kann, ist die Sachen nachher noch zu ordnen, ist aber nur eine Angewohnheit, die ATTR können auch über den Interface gesetzt werden:

Und noch sehr Praktisch wenn man den RPI ins LAN einbindet über SMB , dann kann man schnell mal einen Floorplan hin und her schieben. Aber Achtung, ich habe mir dabei auch schon mal alle Rechte entzogen :-). Es lebe das Backup. http://www.einplatinencomputer.com/samba-server-installieren/


Ich habe erst mal angefangen meine Grundparameter festzulegen:

Ferien Hier hinterlege ich die Werktage die als Feiertage erkannt werden sollen

define Bayern holiday

WE Erkennung ( Ist im Prinzip nur ein Schalter, der auf den Floorplan zeigt ob heute Feiertag ist oder nicht, recht praktisch zum umstellen wenn man mal einen Urlaubstag vergessen hat-> bei uns gehen bestimmte Heizungen nur am WE an)

define WESchalter dummy
attr WESchalter devStateIcon Werktag:scene_workshop@black:Wochenende Wochenende:scene_summerhouse@black:Werktag
attr WESchalter fp_Home 570,990,0,
attr WESchalter fp_WPlan 440,1375,0,
define WEScahlterAT at *00:05 { if ($we) { fhem("set WESchalter Wochenende") } else {fhem("set WESchalter Werktag")} }


Twilight Steuert bei uns wann das Licht angeht, wird auch an einen Dummy übergeben, denn manchmal verschätzt auch Twilight  sich und dann kann man schnell nachjustieren.

define myTwilight Twilight 48.XXXX 11.XXXXX 4 6XXXX

##TW ON OFF
define TwilightDummy dummy
attr TwilightDummy devStateIcon on:weather_moon_phases_8@black:off off:weather_sun@black:on
attr TwilightDummy event-on-change-reading state
attr TwilightDummy event-on-update-reading state
attr TwilightDummy fp_Home 635,990,0,
attr TwilightDummy fp_WPlan 389,1380,0,
attr TwilightDummy setList state:on,off
attr TwilightDummy webCmd state

define TwilightDummyOn notify myTwilight.*:aktEvent:.*ss_weather.* set TwilightDummy on

define TwilightDummyOff notify myTwilight.*:aktEvent:.*sr_weather.* set TwilightDummy off
###END TW


Die Heizung ist von 2 Schaltern abhängig, einer wird manuell gesetzt und unterscheidet ob Sommer oder ,,Winter". Ich kann mich gerade nicht Erinnern warum der Sensor über einen Dummy (HZGHilfschalterTEMPD ) läuft aber ich werde wohl einen Grund gehabt haben. Die Heizung läuft also hier auf 2 Bedingung Außentemperatur niedriger 16 und  Winter. Um zu vermeiden das in den Übergangszeiten die Heizung zu früh angeht, oder ein paar Stunden am Tag läuft hier die Unterscheidung Somme/ Winter.

define HZGHauptschalterD dummy
attr HZGHauptschalterD devStateIcon Sommer:weather_summer@black:Winter Winter:weather_winter@black:Sommer
attr HZGHauptschalterD fp_Home 700,990,0,
attr HZGHauptschalterD fp_WPlan 483,1380,0,
attr HZGHauptschalterD setList state:Sommer,Winter
attr HZGHauptschalterD webCmd state

define HZGStatusD dummy
attr HZGStatusD devStateIcon on:sani_heating_automatic@black:off off:sani_heating_temp@black:on
attr HZGStatusD fp_WPlan 572,1380,0,
attr HZGStatusD setList state:on,off
attr HZGStatusD webCmd state

define HZGHilfschalterTEMPD dummy
attr HZGHilfschalterTEMPD devStateIcon on:temp_temperature_min@black off:temp_temperature_max@black
attr HZGHilfschalterTEMPD fp_WPlan 528,1380,0,
attr HZGHilfschalterTEMPD setList state:on,off
attr HZGHilfschalterTEMPD webCmd state

define HZGTEMPNTFY notify (SensorTEMLOG) \
IF ([SensorTEMLOG:temperature] >= 16) (set HZGHilfschalterTEMPD off) ELSE (set HZGHilfschalterTEMPD on)

define HZGAnzeige notify (HZGHauptschalterD|HZGHilfschalterTEMPD) IF ([HZGHauptschalterD] eq "Winter" && [HZGHilfschalterTEMPD] eq "on") (set HZGStatusD on) ELSE (set HZGStatusD off)




MY TTS Dafür müsst Ihr derm RPI natürlich noch den Sound installieren http://www.fhemwiki.de/wiki/Text2Speech Damit kann FHEM dann reden
define MyTTS Text2Speech hw=0.0
attr MyTTS TTS_UseMP3Wrap 1
attr MyTTS room Komunikation
attr MyTTS verbose 4


De Google Kalender unserer Familie, ist mitlerweile recht wichtig geworden. Zum einen erkennt er über eine Notify wann wer aufsteht und macht entsprechend die Heizungen an. Zum anderen sollen eigentlich gemeinsame Termine im Floorplan dargestellt werden. Wird aber eigentlich nur von mit genutzt und fliegt wohl demnächst raus. www.fhemwiki.de/wiki/Google-Kalender_zur_Steuerung_von_Dummies

define Kalender Calendar ical url http://www.google.com/calendar/ical/XXXX
attr Kalender alias Termine
attr Kalender room Komunikation

define myView CALVIEW Kalender 2
define kalenderTermine readingsGroup <%time_calendar>,<Text> myView
attr kalenderTermine alias Termine
attr kalenderTermine fp_Home 180,1295,0,
attr kalenderTermine mapping %READING
attr kalenderTermine room Komunikation



Zeigt eigentlich nur wann meine Schwiegermutter versucht hat uns zu erreichen :-) Bei uns läuft alles über VOIP über eine Fritte

define Fritz_Box FB_CALLMONITOR 1XX.XXX.XXX.1
attr Fritz_Box room Komunikation
attr Fritz_Box reverse-search phonebook,klicktel.de,dasoertliche.de,search.ch,dasschnelle.at
attr Fritz_Box reverse-search-cache 1
attr Fritz_Box room Komunikation

define CALLMONITOR readingsGroup Fritz_Box
attr CALLMONITOR fp_Home 253,973,0




Mache dann mit Present weiter
Raspberry Pi - FHEM 5.5
HMLAN, RFXtrx433 , CUL 868
HM-CC-RT-DN, HM-SEC-MDIR , HM-SEC-SC-2
HM-LC-SW2-FM, ROTO_ZEL-STG-RM-FZS
ELRO440AB, Flamingo

rretsiem

Zitat von: noanda am 20 Februar 2015, 12:07:42
Angefangen habe ich das ganze über das PRESENCE Modul für die Handys, diese werden über W-Lan und bluetooth erkannt (watchdog).
Nur Das Apfelphone meiner Frau geht nicht. Deswegen habe ich im Flur unter der Schlüsse einen NFC USB Stick, meine Frau hat einen NFC Tag am Schlüssel hängen, damit wird erkannt ob Sie da ist oder nicht.
Die Anwesenheit Stati werden an einen Dummy weitergegeben. Damit der mit event-on-change-reading ausgelesen werden kann.
diese Werte werden dann weitergegeben an das ROOMMATE Modul, hier sind alle Stati aktiv Also von ,,gone" über ,,awoken" bis ,,asleep".

Das hört sich sehr interessant an, das Theme Presence mit Bluetooth und WLAN würde mich sehr interessieren, ich versuche da zur Zeit etwas ähnliches mit Bluetooth + Geofancy und bräuchte etwas Inspiration :)

Eine Frage zu den states der Roommates, wie definierst du "awoken"/"asleep" denn WAF-kompatibel automatisch?

noanda

Present habe ich eigentlich genaz einfach definiert, erst mein Handy im W-Lan:

define HandyChristian PRESENCE lan-ping 1XX.XXX.XXX.1XX 30 600
attr HandyChristian devStateIcon present:Home_Status.1 absent:Home_Status.0
attr HandyChristian event-on-change-reading state
attr HandyChristian event-on-update-reading state
attr HandyChristian fp_Home 310,700,2,


Dann mein Handy als Bluetooth (Hierzu muss natürlich auf dem RPI die mit sudo apt-get install bluetooth bluez-utils blueman installiert sein):

define HandyChristianBT PRESENCE local-bluetooth 00:00:00:00:00:00 30 600
attr HandyChristianBT userattr HandyChristian HandyChristian_map structexclude
attr HandyChristianBT HandyChristian SchristianHandy
attr HandyChristianBT event-on-change-reading state
attr HandyChristianBT event-on-update-reading state
attr HandyChristianBT fp_Home 310,800,2,


Beide werden in einer ,,structure" Zusammengefasst:

define SchristianHandy structure HandyChristian HandyChristianBT
attr SchristianHandy clientstate_behavior relative
attr SchristianHandy clientstate_priority present absent
attr SchristianHandy event-on-change-reading state
attr SchristianHandy event-on-update-reading state


Auf die "structure" meiner Handys lasse ich nun einen Watchdog los, der verhindert das ich rausfliege

define watchdog_AnwesenheitChr watchdog SchristianHandy:absent 00:05:00 SchristianHandy:present set ChristianHD absent ;; setstate watchdog_AnwesenheitChr defined
attr watchdog_AnwesenheitChr regexp1WontReactivate 1
attr watchdog_AnwesenheitChr verbose 0


Das ganze übergebe ich an einen Dummy, denn ich hatte am anfang das Problem, das bei jeder Aktualisierung mein Status in Roomate auf "Home" sprang. Ergo nachts ging das Licht plötzlich an, meine Frau fand das nicht so witzig.
Also übergebe ich den Status an ein Dummy mit ,,event-on-change-reading *" dann kann nix passieren:

define ChristianHD dummy
attr ChristianHD event-on-change-reading *
attr ChristianHD setList home absent
attr ChristianHD verbose 0


DenStatus der "structure" wird über Notify an an den Dummy gegeben

define AnwesenheitNTFYChr notify SchristianHandy:present set ChristianHD home
attr AnwesenheitNTFYChr verbose 0


Der Dummy setzt nun den Staus im Roomate Modul, auf "Home" oder "absent"

define ChristianHDNTFY notify ChristianHD set rr_Christian $EVENT



Bei meiner Frau war das dank Apfeltelefon nicht so einfach, denn alle lösungen gehen nicht. Immer wenn das gute Stück ruhen will, ist Frau Absent.
ALSO NFCTAG. Die Anleitung gibt es hier http://www.fhemwiki.de/wiki/Raspberry_Pi_%26_NFC, zugegben ich habe einen ganze Weile daran gebaut. Bis der RPI den USB Stick SCM SCL3711 gefressen hat.

Und da war auch gleich das nächste Problem: der NFCTAG , meldet er sich ,,present" beim Auflegen auf dem NFC Reader, aber nicht ,,absent" beim wegnehmen. Ergo wird der Tag über ,,NFCTagSomRueckAT" alle 5 Minute "absent" gesetzt.
Ist der NFCTAG noch auf dem Stick , wird er wieder ,,present" gesetzt.

define 08f8f053803b91 dummy
attr 08f8f053803b91 event-on-change-reading state
attr 08f8f053803b91 event-on-update-reading state
attr 08f8f053803b91 fp_Home2 50,100
attr 08f8f053803b91 verbose 0

define NFCTagSomRueckAT at +*00:05:00 set 08f8f053803b91 absent
attr NFCTagSomRueckAT verbose 0


Nun noch den Wachtdog, damit der Status nicht bei jeder AT Rücksetzung auf "absent" springt.

define watchdog_AnwesenheitSom watchdog 08f8f053803b91:absent 00:03:00 08f8f053803b91:present set SommerHD absent ;; setstate watchdog_AnwesenheitSom defined
attr watchdog_AnwesenheitSom regexp1WontReactivate 1
attr watchdog_AnwesenheitSom verbose 0
define NFCTagNTFYSom notify 08f8f053803b91:present set SommerHD home
attr NFCTagNTFYSom verbose 0


und wegen dem gleichen ,,Problem" der Aktualisierung, wieder die Übergabe an einen Dummy.

define SommerHD dummy
attr SommerHD event-on-change-reading *
attr SommerHD fp_Home 220,700,2,
attr SommerHD setList home absent
attr SommerHD verbose 0


der analog zu oben, den Staus im Roomate setzt.

define SommerHDNTFY notify SommerHD set rr_Sommer $EVENT


An dieser Stelle, noch eine kleine Besonderheit. Auch meinen PC lasse ich über PRESENCE erkennen:

define PCChristian PRESENCE lan-ping 1XX.XXX.XXX.XXX 20 120
attr PCChristian event-on-change-reading state
attr PCChristian event-on-update-reading state


Der PC ist aber nur an wenn ich "home" oder "awoken" bin. Soweit alles gut, was aber wenn der PC in meiner Abwesenheit noch ein Video rechnet? Oder ein Update macht?
Lösung: Wenn ich aufgewacht bin oder Daheim oder der PC ist an bekommt er auch Strom:

define PCCFNTFY notify (PCChristian|rr_Christian) IF ([PCChristian] eq "present" or ([rr_Christian] eq "home" or ([rr_Christian] eq "awoken"))) (set WOZPCChristian on) ELSE (set WOZPCChristian off)

und weil es so schön ist, lasse ich das Licht auch nur angehen wenn es draußen Dunkel ist und der PC an ist.

define PCCLichtNTFY notify (PCChristian|TwilightDummy) IF ([PCChristian] eq "present" and ([TwilightDummy] eq "on")) (set WOZLichtChristian on) ELSE (set WOZLichtChristian off)
Soweit zur Erkennung meiner, jetzt kommen die ,,Stati", ich nutze alle Stati aus RESIDENTS/ ROOMMATE, dafür einfach das ATTR auf ,,showAllStates = 1" setzen.


Dann die Gruppe definieren:

define Familie RESIDENTS
attr Familie alias Residents
attr Familie devStateIcon .*home:status_available@black:absent .*absent:status_away_1@black:home .*gone:status_standby@black:home .*none:control_building_empty@black  .*gotosleep:status_night@black:asleep .*asleep:status_night@black:awoken .*awoken:status_available@black:home
attr Familie event-on-change-reading state,presence
attr Familie event-on-update-reading state,presence
attr Familie fp_Home 100,370,2,
attr Familie fp_WPlan 165,1410,0,
attr Familie group Familie
attr Familie icon control_building_filled@black
attr Familie rgr_showAllStates 1
attr Familie room Residents
attr Familie verbose 0
attr Familie webCmd state


und die Bewohner (ich teste mich derzeit noch durch die ,,Mood" bin da aber noch nicht so weit) auf jeden Fall kann man die Emotionen auch selber ändern mit ,,rr_moods"

define rr_Sommer ROOMMATE Familie
attr rr_Sommer alias Status
attr rr_Sommer devStateIcon .*home:user_available@black:absent .*absent:user_away@black:home .*gone:user_ext_away@black:home .*gotosleep:scene_toilet@black:asleep .*asleep:scene_sleeping@black:awoken .*awoken:scene_sleeping_alternat@black:home .*:user_unknown@black
attr rr_Sommer event-on-change-reading state,presence
attr rr_Sommer event-on-update-reading state,presence
attr rr_Sommer fp_Home 200,370,2,
attr rr_Sommer group Sommer
attr rr_Sommer icon people_sensor@black
attr rr_Sommer room Residents
attr rr_Sommer rr_showAllStates 1
attr rr_Sommer webCmd state

define rr_Christian ROOMMATE Familie
attr rr_Christian alias Status
attr rr_Christian devStateIcon .*home:user_available@black:absent .*absent:user_away@black:home .*gone:user_ext_away@black:home .*gotosleep:scene_toilet@black:asleep .*asleep:scene_sleeping@black:awoken .*awoken:scene_sleeping_alternat@black:home .*:user_unknown@black
attr rr_Christian event-on-change-reading state,presence
attr rr_Christian event-on-update-reading state,presence
attr rr_Christian fp_Home 290,370,2,
attr rr_Christian group Christian
attr rr_Christian icon people_sensor@black
attr rr_Christian room Residents
attr rr_Christian rr_moods ruhig,aufgeregt,glücklich,deprimiert
attr rr_Christian rr_showAllStates 1
attr rr_Christian sortby 0
attr rr_Christian webCmd state



Als letztes, müssen wir dem ganzen noch sagen, dass der Staus "awoken" über den google Kalender gezogen warden muss.

Entweder für alle also Familie oder aber zb. Für mich alleine wenn ich um 4 raus muss mit ,,rr_Christian" im Google Kalender:

define AwokenSetKalender notify Kalender:modeStarted.* { my $reading="%EVTPART0";; my $uid= "%EVTPART1";; my $actor= fhem("get Kalender summary $uid");; if(defined $actor) { fhem("set $actor awoken") } }
attr AwokenSetKalender room Komunikation


Zusammenfassung:

Kommt jemand Heim wird er auf ,,home" gestellt (egal wie W-LAN, NFC usw.) irgendwann geht dieser Mensch ins Bett, vielleicht will er noch im Bett Lesen oder TV schauen für diese Zeit stellt er sich über Handy oder Tablett auf ,,gotosleep", hat er ihn gestellt, wir der Counter (weiter oben im Post) ihn irgendwann auf ,,asleep" stellen. Oder er tut es selber. Bevor er erwacht, stellt der GoogleKalender in dann irgendwann auf ,,awoken", macht den Toaster an und Küche und Bad warm. Bis man zur arbeit geht, dann wird man wohl so nach 10 Min ,,absent" und kommt man nicht wieder nach 36 Std. ,,gone".

Wie ich das nun mit LightScene mache kommt noch.
Raspberry Pi - FHEM 5.5
HMLAN, RFXtrx433 , CUL 868
HM-CC-RT-DN, HM-SEC-MDIR , HM-SEC-SC-2
HM-LC-SW2-FM, ROTO_ZEL-STG-RM-FZS
ELRO440AB, Flamingo

noanda

Hat jemand einen nutzen davon? Dann schreibe ich weiter
Raspberry Pi - FHEM 5.5
HMLAN, RFXtrx433 , CUL 868
HM-CC-RT-DN, HM-SEC-MDIR , HM-SEC-SC-2
HM-LC-SW2-FM, ROTO_ZEL-STG-RM-FZS
ELRO440AB, Flamingo

Spezialtrick

Super Dokumentation!
FHEM - Debmatic - Zigbee2MQTT - Homekit

Hollo

Zitat von: noanda am 07 März 2015, 00:24:48
Hat jemand einen nutzen davon? Dann schreibe ich weiter
Auf jeden Fall.  :D
Die Vorstellung einer ganzen Installation finde ich sehr interessant und hilfreich.

Man erkennt so eher Zusammenhänge sowie Sinn und Zweck einzelner Deklarationen.
Als Beispiel nehme ich mal die Definition der Namensgebung. Vorher Gedanken machen kann da später sehr nützlich sein.

Es gibt sicher nicht DIE Lösung, aber so sieht man mal Umsetzungsideen.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Uli

Bitte weiter schreiben! Sehr schön und interessant!


Gruß
Uli
Gruß

Uli

seit 01/2023 kein FHEM mehr. Bin nur noch aus historischen Gründen hier