Vorstellung Projekt - "Mein Zimmer" - NEU: Neopixel, ESP8266, Alexa, FUIP

Begonnen von fabse, 02 Oktober 2016, 19:48:54

Vorheriges Thema - Nächstes Thema

fabse

Hi
Bin relativ neu hier und wollte mein Projekt hier mal dokumentieren.
Im Netzwerk hab ich: Zwei Laptops, zwei Smartphones, Samsung TV, normaler Rechner als Server, Fritz Box mit Unitymedia ipv6 DS-Lite Tunnel (ich komm nicht von Außen in mein Netzwerk, ziemlich doof)
//edit November 2020: Benutze immer noch FHEM, es hat sich viel getan!
__________________________________________________________________________________________________________________________________________________
Hardware

Hab bis jetzt:
- Raspberry Pi 3
- CUL Stick
- 6 Schaltbare PolinSteckdosen (Funksteckdosen-Set PFS-3, max. 1000W) (3er Set kostet 13€)
- Feuchtigkeit und Temperatur Sensor (von reichelt HM FTL IN für 49€ !!!) (siehe unten bei Software)
- RGB SMD8080 5meter LED Kette (aus China für 20€)
//edit November 2020:
- Raspberry 4 (die 3er ist abgekackt), von dem CUL bin ich komplett weg, geht jetzt alles über WiFi und ESP8266 Devices.
- UFO Controller für die LEDs dazu gekommen, insgesamt 6 Stück + viele viele LEDs
- Aquarium Steuerung, mittlerweile aufwendig gestaltet, läuft super!
- Alexa ist auch dazu gekommen, funktioniert super!


In Planung:
- Günstige Sensoren vielleicht mit ESP8266 und 1-wire wenn man das miteinander verbinden kann?!?!
- Aquarium Steuerung mit PH-Wert Messung, Licht an und Aus, Wasser-Temperatur, 8 Kanal Relai Karte (normale 5er Steckdosen-Leisten umbauen damit ich die schalten kann)

//edit November 2020: In Planung:
- NeoPixel mit WLED auf ESP8266
- FUIP endlich mal hinbekommen!
- Aquarium weiter ausbauen, auch im FUIP
- Mikroskop Beleuchtung zusätzlich mit NeoPixel Ringe und im FUIP darstellen
- Heizungsthermostat WiFi (irgendwann mal, scheiss Winter)
__________________________________________________________________________________________________________________________________________________
Software
Eingebunden und Funktionsfähig:
- IT-Steckdosen 2x Lampe 1x Lüftung (hab 3 Eingebunden, die anderen 3 sind für das Aquarium)
- Proplanta Wetter - geht Recht einfach, aber leider ohne Wetter Icons, nur Zahlen (normales define Weather ging nicht ... mit dem yahoo Wetter Plugin - Kumpels haben das auch nicht hinbekommen)
- Sysmon für die Raspberry (Werte werden ausgelesen aber noch nicht als richtige Darstellung in einem Diagramm oder so eingebunden) //edit: läuft November 2020 noch immer
- THSensor Temp + Feuchte von meinem Zimmer + Diagramm (November 2020 abgebaut)
- Floorplan hab ich mit google sketchup gezeichnet - ist umsonst und hat auch ne 3D-Bauteile Datenbank (Laptops, Fernseh, Ikea Möbel usw) //edit: November 2020 nicht fertig gemacht-> neue Idee FUIP

Noch nicht eingebunden / Warteliste:
- OwnCloud Kalender //edit: November 2020 - Idee verworfen
- Floorplan nochmal überarbeiten und einbinden ... vielleicht noch andere Ansichten vom Zimmer zeichnen, Aquarium zeichnen und einbinden //edit: November 2020 - Idee verworfen -> FUIP
- Sysmon Werte auslesen und darstellen
- günstige Sensoren ?!?!?!?! //edit: November 2020 - mit ESP oder NodeMCU umgesetzt!
__________________________________________________________________________________________________________________________________________________
Habt ihr noch Anregungen oder Tips wie ich was einbinden kann und noch alles zusammen basteln könnte?!
__________________________________________________________________________________________________________________________________________________
P.S. Ich editiere den Beitrag hier bei Aktualisierungen, und ich hab keine Programmier Kenntnisse, bin Industriemechaniker und Maschinenbauer, teilweise kompliziert da klar zu kommen.  (letztes Update Nov2020)

fabse

#1
bei mir hat sich viel getan.....

1. floorplan durch tabletUI ersetzt -> 40% Fertigstellung -> Hat Sich nichts getan, die Floorplan Idee hab ich verworfen
2. Sensoren eingebunden (NodeMCU) -> 70%
3. RGB LEDs UFO Controller eingebunden -> 100 % (geht ziemlich easy)
4. Aquarium Steuerung eingebunden -> 100 % (am Aquarium selber muss ich nochmal ein neuen Deckel bauen, hat aber mit fhem nichts zu tun)

hiermal meine fhem.cfg (wird kaum gepostet, relativ lang)

attr global userattr cmdIcon devStateIcon devStateStyle fm-groups fm_fav fm_name fm_ordner icon sortby structexclude webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global backup_before_update 1
attr global language DE
attr global latitude 48.7764835
attr global logfile ./log/fhem-%Y-%m.log
attr global longitude 9.2042613
attr global modpath .
attr global motd none
attr global mseclog 1
attr global room hidden
attr global sendStatistics never
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

# global ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

define telnetPort telnet 7072 global
attr telnetPort group Global
attr telnetPort room hidden

define WEB FHEMWEB 8083 global
attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB confirmDelete 0
attr WEB editConfig 1
attr WEB endPlotNow 1
attr WEB group Global
attr WEB longpoll websocket
attr WEB longpollSVG 1
attr WEB menuEntries Update,cmd=update,UpdateCheck,cmd=update+check,Restart,cmd=shutdown+restart
attr WEB room hidden
attr WEB stylesheetPrefix dark
#attr WEB iconPath fhemSVG:openautomation:default

define fhemweb FHEMWEB 8081 global
attr fhemweb group Global
attr fhemweb room hidden

define TABLETUI HTTPSRV ftui/ ./www/tablet/ Tablet-UI
attr TABLETUI group Global
attr TABLETUI room hidden



# Fake FileLog entry, to access the fhem log from FHEMWEB --------------------------------------------------------------------------------------------------------------------------------------------------------------
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
attr Logfile room hidden

define eventTypes eventTypes ./log/eventTypes.txt
attr eventTypes group Global
attr eventTypes room hidden

define initialUsbCheck notify ActionDetector:.*|CUL1:.*|global:INITIALIZED set ActionDetector clear readings
attr initialUsbCheck disable 0
attr initialUsbCheck group Global
attr initialUsbCheck room hidden

define colorInit notify global:INITIALIZED {use Color}
attr colorInit group Global
attr colorInit room hidden


# CUL1 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
define CUL1 CUL /dev/ttyACM0@38400 1234
attr CUL1 group Global
attr CUL1 hmId 123456
attr CUL1 rfmode HomeMatic
attr CUL1 room hidden

define ActionDetector CUL_HM 000000
attr ActionDetector event-on-change-reading .*
attr ActionDetector group Global
attr ActionDetector model ActionDetector
attr ActionDetector room hidden

#1
define Lueftung IT 00000FFF0F 0F F0
attr Lueftung IODev CUL1
attr Lueftung ITrepetition 12
attr Lueftung devStateIcon off:vent_ventilation@grey on:vent_ventilation_level_3@white
attr Lueftung group Schalter
attr Lueftung model itswitch
attr Lueftung room 1. My-Room

#2
define Deckenlampe IT 00000FFFF0 0F F0
attr Deckenlampe IODev CUL1
attr Deckenlampe ITrepetition 6
attr Deckenlampe devStateIcon off:light_floor_lamp@grey on:light_floor_lamp@white
attr Deckenlampe group Schalter
attr Deckenlampe model itswitch
attr Deckenlampe room 1. My-Room

#3
define Nachttischlampe IT 000000FFFF 0F F0
attr Nachttischlampe IODev CUL1
attr Nachttischlampe ITrepetition 6
attr Nachttischlampe devStateIcon off:light_light@grey on:light_light_dim_100@white
attr Nachttischlampe group Schalter
attr Nachttischlampe model itswitch
attr Nachttischlampe room 1. My-Room

#4
define AquariumLicht IT 00000F0FFF 0F F0
attr AquariumLicht IODev CUL1
attr AquariumLicht ITrepetition 6
attr AquariumLicht devStateIcon off:light_light@grey on:light_light_dim_100@white
attr AquariumLicht group Schalter
attr AquariumLicht model itswitch
attr AquariumLicht room 1. My-Room

#5
define AquariumPumpe IT 00000FF0FF 0F F0
attr AquariumPumpe IODev CUL1
attr AquariumPumpe ITrepetition 6
attr AquariumPumpe devStateIcon off:light_light@grey on:light_light_dim_100@white
attr AquariumPumpe group Schalter
attr AquariumPumpe model itswitch
attr AquariumPumpe room 1. My-Room

##6
##define SteckDosenSchalter6 IT 00000FFF00 0F F0
##attr SteckDosenSchalter6 IODev CUL1
##attr SteckDosenSchalter6 ITrepetition 6
##attr SteckDosenSchalter6 devStateIcon off:light_light@grey on:light_light_dim_100@white
##attr SteckDosenSchalter6 group Schalter
##attr SteckDosenSchalter6 model itswitch
##attr SteckDosenSchalter6 room 1. My-Room

# Wifi LEDs -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
define LampeTest WifiLight RGB LD382A:192.168.178.58
attr LampeTest alias RGB-LEDs-Schreibtisch-Unten
attr LampeTest colorCast 0, -20, -20, -25, 0, -10
attr LampeTest group Schalter
attr LampeTest room 1. My-Room
attr LampeTest webCmd RGB
attr LampeTest whitePoint 1, 0.75, 0.25
attr LampeTest widgetOverride RGB:colorpicker,RGB


define LampeTest2 WifiLight RGB LD382A:192.168.178.67
attr LampeTest2 alias RGB-LEDs-Fish
attr LampeTest2 colorCast 0, -20, -20, -25, 0, -10
attr LampeTest2 group Schalter
attr LampeTest2 room 1. My-Room
attr LampeTest2 webCmd RGB
attr LampeTest2 whitePoint 1, 0.75, 0.25
attr LampeTest2 widgetOverride RGB:colorpicker,RGB

define LampeTest3 WifiLight RGB LD382A:192.168.178.68
attr LampeTest3 alias RGB-LEDs-Schreibtisch-Oben
attr LampeTest3 colorCast 0, -20, -20, -25, 0, -10
attr LampeTest3 group Schalter
attr LampeTest3 room 1. My-Room
attr LampeTest3 webCmd RGB
attr LampeTest3 whitePoint 1, 0.75, 0.25
attr LampeTest3 widgetOverride RGB:colorpicker,RGB


define LampeTest4 WifiLight RGB LD382A:192.168.178.69
attr LampeTest4 alias RGB-LEDs-Schrank
attr LampeTest4 colorCast 0, -20, -20, -25, 0, -10
attr LampeTest4 group Schalter
attr LampeTest4 room 1. My-Room
attr LampeTest4 webCmd RGB
attr LampeTest4 whitePoint 1, 0.75, 0.25
attr LampeTest4 widgetOverride RGB:colorpicker,RGB

define LampeTest5 WifiLight RGB LD382A:192.168.178.70
attr LampeTest5 alias RGB-LEDs-Bett
attr LampeTest5 colorCast 0, -20, -20, -25, 0, -10
attr LampeTest5 group Schalter
attr LampeTest5 room 1. My-Room
attr LampeTest5 webCmd RGB
attr LampeTest5 whitePoint 1, 0.75, 0.25
attr LampeTest5 widgetOverride RGB:colorpicker,RGB

define LampeTest6 WifiLight RGBW LD382A:192.168.178.76
attr LampeTest6 alias FischLicht
attr LampeTest6 colorCast 0, -20, -20, -25, 0, -10
attr LampeTest6 group Schalter
attr LampeTest6 room 1. My-Room
attr LampeTest6 webCmd dimup:dimdown:on:off:RGB
attr LampeTest6 whitePoint 1, 1, 1
attr LampeTest6 widgetOverride RGB:colorpicker,RGB

# NodeMCU1 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
define NodeMCU1 ESPEasy bridge 8181
attr NodeMCU1 authentication 0
attr NodeMCU1 combineDevices 0
attr NodeMCU1 group ESPEasy Device
attr NodeMCU1 room hidden

define ESPEasy_NodeMCU1_Temp_Feuchte ESPEasy 192.168.178.64 80 NodeMCU1 NodeMCU1_Temp_Feuchte
attr ESPEasy_NodeMCU1_Temp_Feuchte IODev NodeMCU1
attr ESPEasy_NodeMCU1_Temp_Feuchte Interval 300
attr ESPEasy_NodeMCU1_Temp_Feuchte alias Wifi Temp + Feuchte
attr ESPEasy_NodeMCU1_Temp_Feuchte group Sensoren
attr ESPEasy_NodeMCU1_Temp_Feuchte presenceCheck 1
attr ESPEasy_NodeMCU1_Temp_Feuchte readingSwitchText 1
attr ESPEasy_NodeMCU1_Temp_Feuchte room 1. My-Room,hidden
attr ESPEasy_NodeMCU1_Temp_Feuchte setState 3

define ESPEasy_NodeMCU1_System_Uptime ESPEasy 192.168.178.64 80 NodeMCU1 NodeMCU1_System_Uptime
attr ESPEasy_NodeMCU1_System_Uptime IODev NodeMCU1
attr ESPEasy_NodeMCU1_System_Uptime Interval 300
attr ESPEasy_NodeMCU1_System_Uptime group ESPEasy Device
attr ESPEasy_NodeMCU1_System_Uptime presenceCheck 1
attr ESPEasy_NodeMCU1_System_Uptime readingSwitchText 1
attr ESPEasy_NodeMCU1_System_Uptime room hidden
attr ESPEasy_NodeMCU1_System_Uptime setState 3
define ESPEasy_NodeMCU1_System_RAM ESPEasy 192.168.178.64 80 NodeMCU1 NodeMCU1_System_RAM
attr ESPEasy_NodeMCU1_System_RAM IODev NodeMCU1
attr ESPEasy_NodeMCU1_System_RAM Interval 300
attr ESPEasy_NodeMCU1_System_RAM group ESPEasy Device
attr ESPEasy_NodeMCU1_System_RAM presenceCheck 1
attr ESPEasy_NodeMCU1_System_RAM readingSwitchText 1
attr ESPEasy_NodeMCU1_System_RAM room hidden
attr ESPEasy_NodeMCU1_System_RAM setState 3

define ESPEasy_NodeMCU1_DoorSensor ESPEasy 192.168.178.64 80 NodeMCU1 NodeMCU1_DoorSensor
attr ESPEasy_NodeMCU1_DoorSensor IODev NodeMCU1
attr ESPEasy_NodeMCU1_DoorSensor Interval 0
attr ESPEasy_NodeMCU1_DoorSensor group ESPEasy Device
attr ESPEasy_NodeMCU1_DoorSensor presenceCheck 1
attr ESPEasy_NodeMCU1_DoorSensor readingSwitchText 1
attr ESPEasy_NodeMCU1_DoorSensor room hidden
attr ESPEasy_NodeMCU1_DoorSensor setState 3

define ESPEasy_NodeMCU1_Water ESPEasy 192.168.178.64 80 NodeMCU1 NodeMCU1_Water
attr ESPEasy_NodeMCU1_Water IODev NodeMCU1
attr ESPEasy_NodeMCU1_Water Interval 0
attr ESPEasy_NodeMCU1_Water group ESPEasy Device
attr ESPEasy_NodeMCU1_Water presenceCheck 1
attr ESPEasy_NodeMCU1_Water readingSwitchText 1
attr ESPEasy_NodeMCU1_Water room hidden
attr ESPEasy_NodeMCU1_Water setState 3

define ESPEasy_NodeMCU1_Ultrasonic ESPEasy 192.168.178.64 80 NodeMCU1 NodeMCU1_Ultrasonic
attr ESPEasy_NodeMCU1_Ultrasonic IODev NodeMCU1
attr ESPEasy_NodeMCU1_Ultrasonic Interval 300
attr ESPEasy_NodeMCU1_Ultrasonic alias Ultrasonic
attr ESPEasy_NodeMCU1_Ultrasonic group ESPEasy Device
attr ESPEasy_NodeMCU1_Ultrasonic presenceCheck 1
attr ESPEasy_NodeMCU1_Ultrasonic readingSwitchText 1
attr ESPEasy_NodeMCU1_Ultrasonic room hidden
attr ESPEasy_NodeMCU1_Ultrasonic setState 3


# Wetter ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
define YahooWetter Weather 20066823 3600 de
attr YahooWetter group Wetter
attr YahooWetter room 1. My-Room,hidden
define ProplantaWetter PROPLANTA Stuttgart de
attr ProplantaWetter group Wetter
attr ProplantaWetter room 1. My-Room,hidden
define Unwetterwarnungen UWZ DE 70186 3600
attr Unwetterwarnungen group Wetter
attr Unwetterwarnungen lang de
attr Unwetterwarnungen room 1. My-Room,hidden
attr Unwetterwarnungen stateFormat state


# Temp+Feuchte Sensor ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
define TempFeuchte CUL_HM 3F790D
attr TempFeuchte IODev CUL1
attr TempFeuchte actCycle 000:10
attr TempFeuchte actStatus alive
attr TempFeuchte autoReadReg 4_reqStatus
attr TempFeuchte event-min-interval 60
attr TempFeuchte event-on-update-reading temperature,state,humidity,battery
attr TempFeuchte expert 2_full
attr TempFeuchte firmware 1.3
attr TempFeuchte group Sensoren
attr TempFeuchte model HM-WDS40-TH-I-2
attr TempFeuchte room 1. My-Room
attr TempFeuchte subType THSensor

define FileLog_TempFeuchte FileLog ./log/TempFeuchte-%Y.log TempFeuchte|TempFeuchte:.*
attr FileLog_TempFeuchte logtype text
attr FileLog_TempFeuchte room hidden

define SVG_FileLog_TempFeuchte_2 SVG FileLog_TempFeuchte:SVG_FileLog_TempFeuchte_2:CURRENT
attr SVG_FileLog_TempFeuchte_2 group Diagramme
attr SVG_FileLog_TempFeuchte_2 room 1. My-Room


# Steuerung ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
define PumpeStart at *12:00:00 set AquariumLicht on-for-timer 28800
attr PumpeStart group Steuerung
attr PumpeStart room 1. My-Room
attr PumpeStart widgetOverride state:datetime,step:30,theme:default,inline:true

..##define FischLichtStart at *20:09:00 set LampeTest6 on-time 28800
##attr FischLichtStart group Steuerung
##attr FischLichtStart room 1. My-Room
##attr FischLichtSstart widgetOverride state:datetime,step:30,theme:default,inline:true


define ALLESan dummy
attr ALLESan group Steuerung
attr ALLESan room 1. My-Room,hidden
attr ALLESan webCmd on:off
define n_ALLESan notify ALLESan set LampeTest,LampeTest2,LampeTest3,LampeTest4,LampeTest5,Deckenlampe,Nachttischlampe $EVENT


Die Steuerung ganz unten bereitet mir noch am meisten sorgen. Mein fhem reagiert auch irgendwie komisch - die farbigen Icons funktionieren zum Beispiel nicht....
1. Mit den RGB LEDs im Zimmer könnte man auch ein Farb-Spiel machen - muss aber noch konfiguriert werden
2. Die RGB LEDs hab ich nicht geschaft auf eine Timer Zeit zu einer eingestellten Farbe leuchten zu lassen  :o
3. Alles schwer zu erklären wo was genau sitzt, ich versuchs aber aufzuzeichnen und hier hochzuladen

Ron87

Hallo Fabse,

sehr schön was du bis jetzt geschafft hast, auch ohne große Programmierkenntnisse.

Ich hab mir mal deine .cfg angeschaut und würde dir aus meiner Sicht (und eigener Erfahrung) ein zwei Tipps an die Hand geben.
Du loggst bis jetzt alles in "normale" Textdateien, und das immer pro Jahr. Ich habe die Erfahrung gemacht, das je nach Datenaufkommen (z.B. wenn jede Temperaturänderug geloggt wird) die Textdateien sehr groß (Anzahl der Zeilen) werden und der Raspberry mit zunehmender Datenflut sehr langsam wird, da er es nicht mehr so schnell schafft die Daten als Plot darzustellen (ich konnte die Dateien zeitweise auf meinem Desktop-PC nur mit Wartezeit öffnen!) Dementsprechend sollte man kontrollieren wie oft man wirklich neue Daten benötigt und was man sich sparen kann.
Im Bezug auf Temperaturerfassung, interessieren mich Temperaturänderungen im Bereich 0,1 -0,5°C überhäupt nicht, dementsprechend werden diese bei mir auch nicht mehr geloggt.
Beim Sysmon für den RPI lasse ich mir auch nicht alles als Diagramm darstellen. Zum Start habe ich das zwar auch gemacht, aber habe schnell gemerkt das es das System teilweise nur ausbremst. Mich interessieren z.B. der CPU-Takt nicht, genauso wenig nutzt mir der Durchsatz der Netzwerkadapter etwas, wenn ich den RPI bzw. FHEM über das Netzwerk erreiche ist alles gut  ;) ;D

Ich habe bei mir das Standard Filelog-System auf eine Datenbank-basiertes System (dbLog) umgestellt. Funktioniert bei mir super und die Zugriffszeiten sind auch wieder schneller geworden.

Ich hoffe dir hilft das ein wenig.

Gruß
Ron

fabse

#3
ZitatIch habe bei mir das Standard Filelog-System auf eine Datenbank-basiertes System (dbLog) umgestellt. Funktioniert bei mir super und die Zugriffszeiten sind auch wieder schneller geworden.

dbLog .... hab auch gemerkt das ich viele Log Dateien hab. Mittlerweile hab ich mehr Devices eingebunden und kenne mich schon besser aus.

Ich schau nach diesem dbLog ..... der NodeMCU hängt irgendwie doppelt in der fhem.cfg ... muss ich vorsichtig mal löschen.


Vielen Dank dass du das durchgeschaut hast!!!!!

fabse

Krass, schon über 4 Jahre FHEM  8) :o

Hab eben das erste Posting mal wieder aktualisiert. Da hat sich dann doch viel getan.