├── .gitignore ├── FHEM ├── 000_1wire.cfg ├── 000_EnOcean.cfg ├── 000_EnOcean_steuerung.cfg ├── 000_controls.cfg ├── 000_diagram.cfg ├── 000_firmata.cfg ├── 000_heizung.cfg ├── 000_homematic.cfg ├── 000_mqtt.cfg ├── 000_mqtt_comp_1wire.cfg ├── 000_mysensors.cfg ├── 000_remote_services.cfg ├── 000_structures.cfg ├── 000_sys.cfg ├── 000_zirkulation.cfg ├── 10_MQTT_GENERIC_BRIDGE.pm ├── 36_GSD.pm ├── 42_SMARTMON.pm ├── 42_SYSMON.pm ├── 42_SYSMONChart.pm ├── 98_dev_proxy.pm ├── 98_systemd_watchdog.pm ├── 99_RPiUtils.pm ├── 99_myCtrlAutomation.pm ├── 99_myCtrlBase.pm ├── 99_myCtrlDev.pm ├── 99_myCtrlJabber.pm ├── 99_myCtrlProxies.pm ├── 99_myCtrlVoice.pm ├── 99_myUtils.pm ├── myCtrlHAL.pm ├── myCtrlMsg.pm └── myUtilsTemplate.pm ├── LICENSE ├── README.md ├── _scripts ├── check_usv.sh ├── sd_backup.sh └── setup_time_brother.sh ├── etc_init.d_fhem_script.txt ├── killfhem.sh ├── killwatchdog.sh ├── refresh_commandref.sh ├── runfhem.sh ├── runwatchdog.sh ├── startfhem ├── stopfhem ├── watchdogloop.sh └── www ├── gplot ├── SM_CPUStat.gplot ├── SM_CPUStatSum.gplot ├── SM_CPUStatTotal.gplot ├── SM_CPUTemp.gplot ├── SM_DB_CPUFreq.gplot ├── SM_DB_CPUTemp.gplot ├── SM_DB_Load.gplot ├── SM_DB_Network_eth0.gplot ├── SM_DB_RAM.gplot ├── SM_DB_all.gplot ├── SM_FS_root.gplot ├── SM_FS_usb1.gplot ├── SM_Load.gplot ├── SM_Network_eth0.gplot ├── SM_Network_eth0t.gplot ├── SM_Network_wlan0.gplot ├── SM_RAM.gplot ├── SM_power_ac.gplot ├── SM_power_battery.gplot ├── SM_power_usb.gplot ├── myDoorStatus.gplot ├── myFensterStatus.gplot ├── myFernwaerme.gplot ├── myGSD_DHT.gplot ├── myKS_All.gplot ├── myKS_Lux.gplot ├── myKS_Press.gplot ├── myKS_TempHum.gplot ├── myMotionLight.gplot ├── myNum3.gplot ├── myPresence.gplot ├── myPress4.gplot ├── myRaumTemp4.gplot ├── myServerHeartbeat.gplot ├── mySonnenaufuntergang.gplot ├── mySwitch.gplot ├── myTechTemp4.gplot ├── myTemp4hum6.gplot ├── myTerrassentuerStatus.gplot ├── myTuerStatus.gplot ├── myTwilight.gplot ├── myWatchdog.gplot ├── myWind4windDir4.gplot ├── myYahooWeather.gplot ├── myhm-rt.gplot └── myhm-tc.gplot └── images └── my ├── DIN_rail_1w.svg ├── DIN_rail_firmata.svg ├── bell.svg ├── bell_.svg ├── error.gif ├── fp_Erdgeschoss.png ├── fp_Erdgeschoss_.png ├── fts_window_roof_shutter_0.svg ├── fts_window_roof_shutter_10.svg ├── fts_window_roof_shutter_100.svg ├── fts_window_roof_shutter_20.svg ├── fts_window_roof_shutter_30.svg ├── fts_window_roof_shutter_40.svg ├── fts_window_roof_shutter_50.svg ├── fts_window_roof_shutter_60.svg ├── fts_window_roof_shutter_70.svg ├── fts_window_roof_shutter_80.svg ├── fts_window_roof_shutter_90.svg ├── im_tablet.svg ├── logic.svg ├── mqtt.svg ├── mqtt_broker.svg ├── mqtt_device.svg ├── ok.png └── timeout.gif /.gitignore: -------------------------------------------------------------------------------- 1 | blib/ 2 | .build/ 3 | _build/ 4 | cover_db/ 5 | inc/ 6 | Build 7 | !Build/ 8 | Build.bat 9 | .last_cover_stats 10 | Makefile 11 | Makefile.old 12 | MANIFEST.bak 13 | META.yml 14 | MYMETA.yml 15 | nytprof.out 16 | pm_to_blib 17 | -------------------------------------------------------------------------------- /FHEM/000_EnOcean.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/000_EnOcean.cfg -------------------------------------------------------------------------------- /FHEM/000_EnOcean_steuerung.cfg: -------------------------------------------------------------------------------- 1 | # FHEM Config file 2 | # Steuerung 3 | 4 | # Mehrfachklick 5 | # Taster DG WZ Licht Top Down 6 | define SQ_DG_WZ_TA_Licht_Top_Dn sequence DG_WZ_TA_Licht_Top_Dn:AI 0.5 DG_WZ_TA_Licht_Top_Dn:AI 0.5 DG_WZ_TA_Licht_Top_Dn:AI 0.5 DG_WZ_TA_Licht_Top_Dn:AI 7 | attr SQ_DG_WZ_TA_Licht_Top_Dn group WohnzimmerDG 8 | attr SQ_DG_WZ_TA_Licht_Top_Dn room Steuerung 9 | attr SQ_DG_WZ_TA_Licht_Top_Dn triggerPartial 1 10 | #define N_DG_WZ_TA_Licht_XXX notify SQ_DG_WZ_TA_Licht_Top_Dn:partial_1 set scene A 11 | define N_DG_WZ_TA_Licht_All_off notify SQ_DG_WZ_TA_Licht_Top_Dn:partial_2 set DG_WZ_SA_Licht_Top off;; set DG_WZ_DA_Licht_West off;; set DG_WZ_DA_Licht_Ost off;; set DG_WZ_DA_Licht_Hoch off 12 | attr N_DG_WZ_TA_Licht_All_off group WohnzimmerDG 13 | attr N_DG_WZ_TA_Licht_All_off room Steuerung 14 | define N_DG_WZ_TA_Licht_Scene_Fernsehen notify SQ_DG_WZ_TA_Licht_Top_Dn:partial_3 set DG_WZ_SA_Licht_Top off;; set DG_WZ_DA_Licht_West off;; set DG_WZ_DA_Licht_Ost off;; set DG_WZ_DA_Licht_Hoch 30;; 15 | attr N_DG_WZ_TA_Licht_Scene_Fernsehen group WohnzimmerDG 16 | attr N_DG_WZ_TA_Licht_Scene_Fernsehen room Steuerung 17 | define N_DG_WZ_TA_Licht_DelayedOff notify SQ_DG_WZ_TA_Licht_Top_Dn:trigger set DG_WZ_SA_Licht_Top toggle;; sleep 0.3;; set DG_WZ_SA_Licht_Top toggle;; sleep 0.3;; set DG_WZ_SA_Licht_Top toggle;; sleep 0.3;; set DG_WZ_SA_Licht_Top toggle;; sleep 0.3;; set DG_WZ_SA_Licht_Top toggle;; sleep 0.3;; set DG_WZ_SA_Licht_Top toggle;; sleep 0.3;; set DG_WZ_SA_Licht_Top toggle;; set DG_WZ_DA_Licht_Hoch 30;; sleep 0.5;; set DG_WZ_SA_Licht_Top off;; set DG_WZ_DA_Licht_West off;; set DG_WZ_DA_Licht_Ost off;; sleep 30;; set DG_WZ_SA_Licht_Top off;; set DG_WZ_DA_Licht_West off;; set DG_WZ_DA_Licht_Ost off;; set DG_WZ_DA_Licht_Hoch off;; 18 | attr N_DG_WZ_TA_Licht_DelayedOff group WohnzimmerDG 19 | attr N_DG_WZ_TA_Licht_DelayedOff room Steuerung 20 | 21 | 22 | # Taster DG WZ Licht Top Up 23 | define SQ_DG_WZ_TA_Licht_Top_Up sequence DG_WZ_TA_Licht_Top_Up:A0 0.5 DG_WZ_TA_Licht_Top_Up:A0 0.5 DG_WZ_TA_Licht_Top_Up:A0 0.5 DG_WZ_TA_Licht_Top_Up:A0 24 | attr SQ_DG_WZ_TA_Licht_Top_Up group WohnzimmerDG 25 | attr SQ_DG_WZ_TA_Licht_Top_Up room Steuerung 26 | attr SQ_DG_WZ_TA_Licht_Top_Up triggerPartial 1 27 | #define N_DG_WZ_TA_Licht_XXX notify SQ_DG_WZ_TA_Licht_Top_Up:partial_1 set scene A 28 | define N_DG_WZ_TA_Licht_Norm notify SQ_DG_WZ_TA_Licht_Top_Up:partial_2 set DG_WZ_SA_Licht_Top off;; set DG_WZ_DA_Licht_West off;; set DG_WZ_DA_Licht_Ost off;; set DG_WZ_DA_Licht_Hoch 70 29 | attr N_DG_WZ_TA_Licht_Norm group WohnzimmerDG 30 | attr N_DG_WZ_TA_Licht_Norm room Steuerung 31 | define N_DG_WZ_TA_Licht_All_on notify SQ_DG_WZ_TA_Licht_Top_Up:partial_3 set DG_WZ_SA_Licht_Top on;; set DG_WZ_DA_Licht_West on;; set DG_WZ_DA_Licht_Ost on;; set DG_WZ_DA_Licht_Hoch on;; 32 | attr N_DG_WZ_TA_Licht_All_on group WohnzimmerDG 33 | attr N_DG_WZ_TA_Licht_All_on room Steuerung 34 | define N_DG_WZ_TA_Licht_LKette_on notify SQ_DG_WZ_TA_Licht_Top_Up:trigger set DG_WZ_SA_Licht_Top off;; set DG_WZ_SA_Steckdosen5 toggle;; 35 | attr N_DG_WZ_TA_Licht_LKette_on group WohnzimmerDG 36 | attr N_DG_WZ_TA_Licht_LKette_on room Steuerung 37 | -------------------------------------------------------------------------------- /FHEM/000_controls.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/000_controls.cfg -------------------------------------------------------------------------------- /FHEM/000_diagram.cfg: -------------------------------------------------------------------------------- 1 | # Definitionen der Diagramme 2 | 3 | 4 | # Bewegungsmelder: Motion + Licht Vorgarten 5 | define wl_VH_Eingang SVG FileLog_UM_VH_HMBL01.Eingang:myMotionLight:CURRENT 6 | attr wl_VH_Eingang alias Bewegungsmelder (Vorgarten) 7 | attr wl_VH_Eingang group Umwelt 8 | attr wl_VH_Eingang label "Bewegung und Licht (Vorgarten): Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}" 9 | attr wl_VH_Eingang room Umwelt 10 | attr wl_VH_Eingang sortby 35 11 | 12 | # Bewegungsmelder: Motion + Licht DG FL 13 | define DG_FL_svg_MotionLight SVG FileLog_DG_FL_SenMotion01_Sens:myMotionLight:CURRENT 14 | attr DG_FL_svg_MotionLight alias Bewegungsmelder (Flur DG) 15 | attr DG_FL_svg_MotionLight label "Bewegung und Licht (Flur DG): Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}" 16 | attr DG_FL_svg_MotionLight room DG_Flur 17 | 18 | # Bewegungsmelder: Motion + Licht DG FL 19 | define DG_WZ_svg_MotionLight SVG FileLog_DG_WZ_SenMotion01_Sens:myMotionLight:CURRENT 20 | attr DG_WZ_svg_MotionLight alias Bewegungsmelder (Wohnzimmer DG) 21 | attr DG_WZ_svg_MotionLight label "Bewegung und Licht (Wohnzimmer DG): Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}" 22 | attr DG_WZ_svg_MotionLight room WohnzimmerDG 23 | 24 | # Bewegungsmelder: Motion + Licht EG Flur 1 25 | define SVG_EG_FL_MS01 SVG FileLog_EG_FL_MS01:myMotionLight:CURRENT 26 | attr SVG_EG_FL_MS01 alias Bewegungsmelder (Flur EG) 27 | attr SVG_EG_FL_MS01 label "Bewegung und Licht (Flur EG): Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}" 28 | attr SVG_EG_FL_MS01 room EG_Flur 29 | 30 | # Bewegungsmelder: Motion + Licht EG Flur 2 31 | define SVG_EG_FL_MS02 SVG FileLog_EG_FL_MS02:myMotionLight:CURRENT 32 | attr SVG_EG_FL_MS02 alias Bewegungsmelder2 (Flur EG) 33 | attr SVG_EG_FL_MS02 label "Bewegung und Licht (2) (Flur EG): Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}" 34 | attr SVG_EG_FL_MS02 room EG_Flur 35 | 36 | # Bewegungsmelder: Motion + Licht OG Flur 37 | define SVG_OG_FL_MS01 SVG FileLog_OG_FL_MS01:myMotionLight:CURRENT 38 | attr SVG_OG_FL_MS01 alias Bewegungsmelder (Flur OG) 39 | attr SVG_OG_FL_MS01 label "Bewegung und Licht (Flur OG): Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}" 40 | attr SVG_OG_FL_MS01 room OG_Flur 41 | 42 | # Bewegungsmelder: Motion + Licht Garage 43 | define SVG_EG_GA_MS01_BL SVG FileLog_EG_GA_MS01:myMotionLight:CURRENT 44 | attr SVG_EG_GA_MS01_BL alias Bewegungsmelder (Garage) 45 | attr SVG_EG_GA_MS01_BL label "Bewegung und Licht (Garage): Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}" 46 | attr SVG_EG_GA_MS01_BL room Garage 47 | 48 | # Bewegungsmelder: Motion + Licht EG WZ 49 | define SVG_EG_WZ_MS01_BL SVG FileLog_EG_WZ_MS01:myMotionLight:CURRENT 50 | attr SVG_EG_WZ_MS01_BL alias Bewegungsmelder (Wohnzimmer) 51 | attr SVG_EG_WZ_MS01_BL label "Bewegung und Licht (Wohnzimmer): Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}" 52 | attr SVG_EG_WZ_MS01_BL room Wohnzimmer 53 | 54 | # Klima: OG BZ 55 | define SVG_OG_BZ_KS.TH SVG FileLog_OG_BZ_KS01:myKS_TempHum:CURRENT 56 | attr SVG_OG_BZ_KS.TH label "Raumsensor (Bad): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 57 | attr SVG_OG_BZ_KS.TH room Badezimmer 58 | 59 | # Licht OG BZ 60 | define SVG_OG_BZ_KS.L SVG FileLog_OG_BZ_KS01:myKS_Lux:CURRENT 61 | attr SVG_OG_BZ_KS.L label "Raumsensor (Bad): Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 62 | attr SVG_OG_BZ_KS.L room Badezimmer 63 | 64 | # Klima: OG KA 65 | define SVG_OG_KA_KS.TH SVG FileLog_OG_KA_KS01:myKS_TempHum:CURRENT 66 | attr SVG_OG_KA_KS.TH label "Raumsensor (Paula): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 67 | attr SVG_OG_KA_KS.TH room Paula 68 | 69 | # Licht: OG KA 70 | define SVG_OG_KA_KS.L SVG FileLog_OG_KA_KS01:myKS_Lux:CURRENT 71 | attr SVG_OG_KA_KS.L label "Raumsensor (Paula): Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 72 | attr SVG_OG_KA_KS.L room Paula 73 | 74 | # Klima: OG KB 75 | define SVG_OG_KB_KS.TH SVG FileLog_OG_KB_KS01:myKS_TempHum:CURRENT 76 | attr SVG_OG_KB_KS.TH label "Raumsensor (Hanna): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 77 | attr SVG_OG_KB_KS.TH room Hanna 78 | 79 | # Licht: OG KB 80 | define SVG_OG_KB_KS.L SVG FileLog_OG_KB_KS01:myKS_Lux:CURRENT 81 | attr SVG_OG_KB_KS.L label "Raumsensor (Hanna): Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 82 | attr SVG_OG_KB_KS.L room Hanna 83 | 84 | # Tuersensor: Eingangstuer 85 | define SVG_OFL_Tuerstatus SVG FileLog_EG_FL_TK01:myTuerStatus:CURRENT 86 | attr SVG_OFL_Tuerstatus label "Eingangstuer" 87 | attr SVG_OFL_Tuerstatus room EG_Flur 88 | 89 | # Tuersensor: Eingangstuer 2 90 | define SVG_OFL_Tuerstatus2 SVG FileLog_EG_FL_MS02:myDoorStatus:CURRENT 91 | attr SVG_OFL_Tuerstatus2 label "Eingangstuer (2)" 92 | attr SVG_OFL_Tuerstatus2 room EG_Flur 93 | 94 | # Fensterstatus: EG BZ 95 | define SVG_BZ_Fensterstatus SVG FileLog_OG_BZ_FK01.Fenster:myFensterStatus:CURRENT 96 | attr SVG_BZ_Fensterstatus label "Fenster (Badezimmer)" 97 | attr SVG_BZ_Fensterstatus room Badezimmer 98 | 99 | # Fensterstatus: EG Kueche 100 | define SVG_KU_Fensterstatus SVG FileLog_EG_KU_FK01.Fenster:myFensterStatus:CURRENT 101 | attr SVG_KU_Fensterstatus label "Fenster (Kueche)" 102 | attr SVG_KU_Fensterstatus room Kueche 103 | 104 | # Tuersensor: Terrassentuer 105 | define SVG_WZ_Tuerstatus SVG FileLog_wz_terrassentueren:myTerrassentuerStatus:CURRENT 106 | attr SVG_WZ_Tuerstatus label "Terrassentuer" 107 | attr SVG_WZ_Tuerstatus room Wohnzimmer 108 | 109 | # Klima: Garage 110 | define SVG_EG_GA_MS01_TH SVG FileLog_EG_GA_MS01:myKS_TempHum:CURRENT 111 | attr SVG_EG_GA_MS01_TH label "Raumsensor (Garage): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 112 | attr SVG_EG_GA_MS01_TH room Garage 113 | 114 | # Rolladen: EG WZ L 115 | define SVG_WZ_RL_L SVG FileLog_wz_rollo_l:myRollo:CURRENT 116 | attr SVG_WZ_RL_L room Wohnzimmer 117 | 118 | # Rolladen: EG WZ R 119 | define SVG_WZ_RL_R SVG FileLog_wz_rollo_r:myRollo:CURRENT 120 | attr SVG_WZ_RL_R room Wohnzimmer 121 | 122 | # Rolladen: EG Kueche 123 | define SVG_KU_RL SVG FileLog_ku_rollo:myRollo:CURRENT 124 | attr SVG_KU_RL room Kueche 125 | 126 | # Rolladen: OG BZ 127 | define SVG_BZ_RL SVG FileLog_bz_rollo:myRollo:CURRENT 128 | attr SVG_BZ_RL room Badezimmer 129 | 130 | # Rolladen: OG SZ 131 | define SVG_SZ_RL SVG FileLog_sz_rollo:myRollo:CURRENT 132 | attr SVG_SZ_RL room Schlafzimmer 133 | 134 | # Rolladen: OG KA 135 | define SVG_KA_RL SVG FileLog_ka_rollo:myRollo:CURRENT 136 | attr SVG_KA_RL room Paula 137 | 138 | # Rolladen: OG KB 139 | define SVG_KB_RL SVG FileLog_kb_rollo:myRollo:CURRENT 140 | attr SVG_KB_RL room Hanna 141 | 142 | # Garagentor 143 | define SVG_GA_Torstatus SVG FileLog_EG_GA_MS02.Tor:myDoorStatus:CURRENT 144 | attr SVG_GA_Torstatus label "Garagentor" 145 | attr SVG_GA_Torstatus room Garage 146 | 147 | # Klima 148 | #define SVG_GSD_1_1 SVG FileLog_GSD_1.1:myGSD_DHT:CURRENT 149 | #attr SVG_GSD_1_1 label "Raumklima (Wohnzimmer): Temp: Min / Max / Last: $data{min1}° / $data{max1}° / $data{currval1}°, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 150 | #attr SVG_GSD_1_1 room Wohnzimmer 151 | 152 | # Klima: Garten 153 | define SVG_GSD1_4_TH SVG FileLog_GSD_1.4:myGSD_DHT:CURRENT 154 | attr SVG_GSD1_4_TH group Umwelt 155 | attr SVG_GSD1_4_TH label "Klima (Garten): Temp: Min / Max / Last: $data{min1}° / $data{max1}° / $data{currval1}°, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 156 | attr SVG_GSD1_4_TH room Umwelt 157 | attr SVG_GSD1_4_TH sortby 41 158 | 159 | # Klima: EG WZ 160 | define SVG_WZ_KS.TH SVG FileLog_EG_WZ_KS01:myKS_TempHum:CURRENT 161 | attr SVG_WZ_KS.TH label "Raumsensor (Wohnzimmer): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 162 | attr SVG_WZ_KS.TH room Wohnzimmer 163 | 164 | # Licht: EG WZ 165 | define SVG_WZ_KS.L SVG FileLog_EG_WZ_KS01:myKS_Lux:CURRENT 166 | attr SVG_WZ_KS.L label "Raumsensor (Wohnzimmer): Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 167 | attr SVG_WZ_KS.L room Wohnzimmer 168 | 169 | # Klima: Luftdruck 170 | define SVG_WZ_KS.PR SVG FileLog_EG_WZ_KS01:myKS_Press:CURRENT 171 | attr SVG_WZ_KS.PR group Umwelt 172 | attr SVG_WZ_KS.PR label "Luftdruck: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 173 | attr SVG_WZ_KS.PR room Umwelt 174 | attr SVG_WZ_KS.PR sortby 70 175 | 176 | # Klima: OG FL 177 | define SVG_OG_FL_KS.TH SVG FileLog_OG_FL_KS01:myKS_TempHum:CURRENT 178 | attr SVG_OG_FL_KS.TH label "Raumsensor (Flur OG): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 179 | attr SVG_OG_FL_KS.TH room OG_Flur 180 | 181 | # Licht: OG FL 182 | define SVG_OG_FL_KS.L SVG FileLog_OG_FL_KS01:myKS_Lux:CURRENT 183 | attr SVG_OG_FL_KS.L label "Raumsensor (Flur OG): Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 184 | attr SVG_OG_FL_KS.L room OG_Flur 185 | 186 | # Klima: EG Kueche 187 | define SVG_KU_KS.TH SVG FileLog_EG_KU_KS01:myKS_TempHum:CURRENT 188 | attr SVG_KU_KS.TH label "Raumsensor (Kueche): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 189 | attr SVG_KU_KS.TH room Kueche 190 | 191 | # Licht: EG Kueche 192 | define SVG_KU_KS.L SVG FileLog_EG_KU_KS01:myKS_Lux:CURRENT 193 | attr SVG_KU_KS.L label "Raumsensor (Kueche): Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 194 | attr SVG_KU_KS.L room Kueche 195 | 196 | # Klima: EG FL 197 | define SVG_EG_FL_KS.TH SVG FileLog_EG_FL_KS01:myKS_TempHum:CURRENT 198 | attr SVG_EG_FL_KS.TH label "Raumsensor (Flur EG): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 199 | attr SVG_EG_FL_KS.TH room EG_Flur 200 | 201 | # Licht: EG FL 202 | define SVG_EG_FL_KS.L SVG FileLog_EG_FL_KS01:myKS_Lux:CURRENT 203 | attr SVG_EG_FL_KS.L label "Raumsensor (Flur EG): Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 204 | attr SVG_EG_FL_KS.L room EG_Flur 205 | 206 | # Licht: Garten 207 | define UM_HH_KS01.L SVG FileLog_UM_HH_KS01:myKS_Lux:CURRENT 208 | attr UM_HH_KS01.L group Umwelt 209 | attr UM_HH_KS01.L label "Garten: Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 210 | attr UM_HH_KS01.L room Umwelt 211 | 212 | # Klima: Garten 213 | define SVG_UM_HH_KS01.TH SVG FileLog_UM_HH_KS01:myKS_TempHum:CURRENT 214 | attr SVG_UM_HH_KS01.TH group Umwelt 215 | attr SVG_UM_HH_KS01.TH label "Garten: Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 216 | attr SVG_UM_HH_KS01.TH room Umwelt 217 | 218 | # Klima: OG SZ 219 | define SVG_OG_SZ_KS.TH SVG FileLog_OG_SZ_KS01:myKS_TempHum:CURRENT 220 | attr SVG_OG_SZ_KS.TH label "Raumsensor (Schlafzimmer): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 221 | attr SVG_OG_SZ_KS.TH room Schlafzimmer 222 | 223 | # Licht: OG SZ 224 | define SVG_OG_SZ_KS.L SVG FileLog_OG_SZ_KS01:myKS_Lux:CURRENT 225 | attr SVG_OG_SZ_KS.L label "Raumsensor (Schlafzimmer): Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 226 | attr SVG_OG_SZ_KS.L room Schlafzimmer 227 | 228 | # Licht: Vorgarten 229 | define UM_VH_KS01.L SVG FileLog_UM_VH_KS01:myKS_Lux:CURRENT 230 | attr UM_VH_KS01.L group Umwelt 231 | attr UM_VH_KS01.L label "Lichtsensor (Vorgarten): Licht: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}" 232 | attr UM_VH_KS01.L room Umwelt 233 | 234 | # Umwelt: Vorhersage 235 | define SVG_proplanta1 SVG FileLog_EG_GA_OWTS01.Raum:SVG_proplanta1:CURRENT 236 | attr SVG_proplanta1 fixedoffset 6 237 | attr SVG_proplanta1 fixedrange 7days 238 | attr SVG_proplanta1 room Umwelt 239 | 240 | # Umwelt: Twilight 241 | define w_T_light SVG FileLog_Twilight:myTwilight:CURRENT 242 | attr w_T_light group Umwelt 243 | attr w_T_light room Umwelt 244 | attr w_T_light sortby 91 245 | 246 | # Umwelt: Klima 247 | define wl_Wetter_Temp SVG FileLog_Wetter:myYahooWeather:CURRENT 248 | attr wl_Wetter_Temp group Umwelt 249 | attr wl_Wetter_Temp label "Temperatur und Feuchtigkeit: Temperatur: $data{currval1} °C, Gefühlt: $data{currval2} °C, rel. Feuchte: $data{currval3} %" 250 | attr wl_Wetter_Temp room Umwelt 251 | attr wl_Wetter_Temp sortby 37 252 | #define wl_Wetter_Luftdruck SVG FileLog_Wetter:myPress4:CURRENT 253 | #attr wl_Wetter_Luftdruck group Umwelt 254 | #attr wl_Wetter_Luftdruck room Umwelt 255 | 256 | # Umwelt: Wind 257 | define wl_Wetter_Wind SVG FileLog_Wetter:myWind4windDir4:CURRENT 258 | attr wl_Wetter_Wind group Umwelt 259 | attr wl_Wetter_Wind label "Wind (Geschwindigkeit und Richtung): Min: $data{min1} km/h, Max: $data{max1} km/h, Aktuell: $data{currval1} km/h" 260 | attr wl_Wetter_Wind room Umwelt 261 | attr wl_Wetter_Wind sortby 38 262 | -------------------------------------------------------------------------------- /FHEM/000_firmata.cfg: -------------------------------------------------------------------------------- 1 | # Definitionen rund um Firmata. 2 | 3 | #define FIRMATA FRM /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A96T9N3Z-if00-port0@57600 4 | define FIRMATA FRM /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_1001-if00-port0@57600 5 | attr FIRMATA alias Firmata-Controller 6 | attr FIRMATA group IO 7 | attr FIRMATA icon DIN_rail_firmata 8 | attr FIRMATA room IO_Devices 9 | 10 | define KlingelOut FRM_OUT 11 11 | attr KlingelOut IODev FIRMATA 12 | attr KlingelOut group Tür 13 | attr KlingelOut room IO_Devices 14 | attr KlingelOut stateFormat value 15 | 16 | define KlingelIn FRM_IN 4 17 | attr KlingelIn IODev FIRMATA 18 | attr KlingelIn activeLow no 19 | attr KlingelIn alias Türklingel 20 | attr KlingelIn count-mode falling 21 | attr KlingelIn group Tür 22 | attr KlingelIn icon bell 23 | attr KlingelIn room Haus,IO_Devices 24 | attr KlingelIn stateFormat {"zuletzt: ".ReadingsTimestamp('KlingelIn','reading','')} 25 | 26 | define n_tuer_gong notify KlingelIn:reading:.*off {if((time - $fhem_started) > 1){actHaustuerKlingel()}} 27 | attr n_tuer_gong comment Versand von Nachrichten beim Klingeln an der Haustuer 28 | attr n_tuer_gong group Jabber 29 | attr n_tuer_gong room Steuerung 30 | -------------------------------------------------------------------------------- /FHEM/000_mysensors.cfg: -------------------------------------------------------------------------------- 1 | # Definitionen rund um MySensors-System. 2 | 3 | # IO 4 | 5 | # USB 6 | define mysensors MYSENSORS /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_1003-if00-port0@115200 7 | attr mysensors alias MySensors Gateway 8 | attr mysensors first-sensorid 120 9 | attr mysensors group IO 10 | attr mysensors icon cul_usb 11 | attr mysensors room IO_Devices 12 | attr mysensors stateFormat connection 13 | define MYSENSOR_1 MYSENSORS_DEVICE 1 14 | attr MYSENSOR_1 IODev mysensors 15 | attr MYSENSOR_1 mapReading_brightness 3 brightness 16 | attr MYSENSOR_1 mapReading_distance 2 distance 17 | attr MYSENSOR_1 mapReading_humidity 0 humidity 18 | attr MYSENSOR_1 mapReading_motion 4 tripped 19 | attr MYSENSOR_1 mapReading_power 0 power 20 | attr MYSENSOR_1 mapReading_temperature 1 temperature 21 | attr MYSENSOR_1 mode node 22 | attr MYSENSOR_1 room MYSENSORS 23 | attr MYSENSOR_1 setReading_power 1 24 | attr MYSENSOR_1 version 1.4 25 | 26 | # LAN 27 | #define mysensors_lan MYSENSORS 192.168.0.25:5003 28 | #attr mysensors_lan alias MySensors Gateway LAN 29 | #attr mysensors_lan first-sensorid 10 30 | #attr mysensors_lan group IO 31 | #attr mysensors_lan icon cul_usb 32 | #attr mysensors_lan room IO_Devices 33 | #attr mysensors_lan stateFormat connection 34 | 35 | # WLAN 36 | define mysensors_wlan MYSENSORS 192.168.0.92:5003 37 | attr mysensors_wlan alias MySensors Gateway WLAN 38 | attr mysensors_wlan first-sensorid 200 39 | attr mysensors_wlan group IO 40 | attr mysensors_wlan icon cul_usb 41 | attr mysensors_wlan room IO_Devices 42 | attr mysensors_wlan stateFormat connection 43 | 44 | 45 | # Service 46 | 47 | # reconnect LAN 48 | #define trigger_ms_reconnect at +*00:01:00 set mysensors_lan connect 49 | #attr trigger_ms_reconnect disable 1 50 | #attr trigger_ms_reconnect room IO_Devices 51 | 52 | # reconnect WLAN 53 | define trigger_ms_reconnect2 at +*00:10:00 set mysensors_wlan connect 54 | attr trigger_ms_reconnect2 room IO_Devices 55 | 56 | 57 | # Sensoren 58 | 59 | # EG FL 60 | define EG_FL_MS01 MYSENSORS_DEVICE 100 61 | attr EG_FL_MS01 IODev mysensors 62 | attr EG_FL_MS01 alias Bewegungsmelder (Flur hinten) 63 | attr EG_FL_MS01 group 3.0 Klima 64 | attr EG_FL_MS01 icon motion_detector 65 | attr EG_FL_MS01 mapReading_brightness 1 brightness 66 | attr EG_FL_MS01 mapReading_motion 2 tripped 67 | attr EG_FL_MS01 mode repeater 68 | attr EG_FL_MS01 room EG_Flur 69 | attr EG_FL_MS01 stateFormat Licht: brightness 70 | attr EG_FL_MS01 version 1.4.1 71 | 72 | define FileLog_EG_FL_MS01 FileLog ./log/EG_FL_MS01-%Y-%m.log EG_FL_MS01 73 | attr FileLog_EG_FL_MS01 logtype myMotionLight:Plot,text 74 | attr FileLog_EG_FL_MS01 room Logs 75 | 76 | # Garage: Multisensor 77 | define EG_GA_MS01 MYSENSORS_DEVICE 117 78 | attr EG_GA_MS01 IODev mysensors 79 | attr EG_GA_MS01 alias MSKombisensor (Garage) 80 | attr EG_GA_MS01 group 3.0 Klima 81 | attr EG_GA_MS01 icon motion_detector 82 | attr EG_GA_MS01 mapReading_brightness 1 brightness 83 | attr EG_GA_MS01 mapReading_humidity 4 humidity 84 | attr EG_GA_MS01 mapReading_motion 2 tripped 85 | attr EG_GA_MS01 mapReading_temperature 3 temperature 86 | attr EG_GA_MS01 mode repeater 87 | attr EG_GA_MS01 room Garage 88 | attr EG_GA_MS01 stateFormat T: temperature H: humidity L: brightness 89 | attr EG_GA_MS01 version 1.4.1 90 | 91 | define FileLog_EG_GA_MS01 FileLog ./log/EG_GA_MS01-%Y-%m.log EG_GA_MS01 92 | attr FileLog_EG_GA_MS01 logtype myMotionLight:Plot,text 93 | attr FileLog_EG_GA_MS01 room Logs 94 | 95 | # EG WZ 96 | define EG_WZ_MS01 MYSENSORS_DEVICE 116 97 | attr EG_WZ_MS01 IODev mysensors 98 | attr EG_WZ_MS01 alias MSKombisensor (Wohnzimmer) 99 | attr EG_WZ_MS01 group 3.0 Klima 100 | attr EG_WZ_MS01 icon motion_detector 101 | attr EG_WZ_MS01 mapReading_brightness 1 brightness 102 | attr EG_WZ_MS01 mapReading_motion 2 tripped 103 | attr EG_WZ_MS01 mode repeater 104 | attr EG_WZ_MS01 room Wohnzimmer 105 | attr EG_WZ_MS01 stateFormat L: brightness 106 | attr EG_WZ_MS01 version 1.4.1 107 | 108 | define FileLog_EG_WZ_MS01 FileLog ./log/EG_WZ_MS01-%Y-%m.log EG_WZ_MS01 109 | attr FileLog_EG_WZ_MS01 logtype myMotionLight:Plot,text 110 | attr FileLog_EG_WZ_MS01 room Logs 111 | 112 | # Garage: Tor 113 | define EG_GA_MS02 MYSENSORS_DEVICE 119 114 | attr EG_GA_MS02 IODev mysensors 115 | attr EG_GA_MS02 alias Garagentor 116 | attr EG_GA_MS02 devLocation Garage 117 | attr EG_GA_MS02 devStateIcon open:fts_garage_door_10@E82500 closed:fts_garage_door_100@15C400 118 | attr EG_GA_MS02 devType door 119 | attr EG_GA_MS02 event-on-change-reading door 120 | attr EG_GA_MS02 eventMap on:open off:closed 121 | attr EG_GA_MS02 group 0.1 Tuer 122 | attr EG_GA_MS02 icon fts_garage_door_100 123 | attr EG_GA_MS02 mapReading_door 1 tripped 124 | attr EG_GA_MS02 mode node 125 | attr EG_GA_MS02 room Garage,Haus 126 | attr EG_GA_MS02 stateFormat door 127 | attr EG_GA_MS02 userReadings door_lastchange:door {my $o=ReadingsVal($name,'door','none');;;;my $t=ReadingsVal($name,$userReading,'none');;;;($o ne $t)?$o:undef} 128 | attr EG_GA_MS02 version 1.5 129 | attr EG_GA_MS02 warnType leave 130 | 131 | define FileLog_EG_GA_MS02.Tor FileLog ./log/EG_GA_MS02.Tor-%Y.log EG_GA_MS02 132 | attr FileLog_EG_GA_MS02.Tor logtype text 133 | attr FileLog_EG_GA_MS02.Tor room Logs 134 | 135 | # EG FL: Eingngstuer-Sensor 136 | define EG_FL_MS02 MYSENSORS_DEVICE 114 137 | attr EG_FL_MS02 IODev mysensors 138 | attr EG_FL_MS02 alias Tuerkombisensor 139 | attr EG_FL_MS02 eventMap /door on:open/door off:closed/ 140 | attr EG_FL_MS02 group 3.0 Klima 141 | attr EG_FL_MS02 icon motion_detector 142 | attr EG_FL_MS02 mapReading_brightness 1 brightness 143 | attr EG_FL_MS02 mapReading_door 5 tripped 1:closed 0:open 144 | attr EG_FL_MS02 mapReading_lockstatus 6 lockstatus 145 | attr EG_FL_MS02 mapReading_motion 2 tripped 146 | attr EG_FL_MS02 mode node 147 | attr EG_FL_MS02 room EG_Flur 148 | attr EG_FL_MS02 stateFormat Licht: brightness, Door: door, Lock: lockstatus 149 | attr EG_FL_MS02 version 1.5 150 | #attr EG_FL_MS02 mapReading_level1 1 level 151 | #attr EG_FL_MS02 mapReading_tripped2 2 tripped 152 | #attr EG_FL_MS02 mapReading_armed2 2 armed 153 | #attr EG_FL_MS02 mapReading_tripped5 5 tripped 154 | #attr EG_FL_MS02 mapReading_armed5 5 armed 155 | #attr EG_FL_MS02 setReading_lockstatus6 on,off 156 | #attr EG_FL_MS02 mapReading_value1100 100 value1 157 | #attr EG_FL_MS02 mapReading_value2100 100 value2 158 | #attr EG_FL_MS02 mapReading_value3100 100 value3 159 | #attr EG_FL_MS02 mapReading_value4100 100 value4 160 | #attr EG_FL_MS02 mapReading_value5100 100 value5 161 | 162 | define FileLog_EG_FL_MS02 FileLog ./log/EG_FL_MS02-%Y-%m.log EG_FL_MS02 163 | attr FileLog_EG_FL_MS02 logtype myMotionLight:Plot,text 164 | attr FileLog_EG_FL_MS02 room Logs 165 | 166 | # OG FL 167 | define OG_FL_MS01 MYSENSORS_DEVICE 101 168 | attr OG_FL_MS01 IODev mysensors_wlan 169 | attr OG_FL_MS01 alias Bewegungsmelder (Flur hinten) 170 | attr OG_FL_MS01 group 3.0 Klima 171 | attr OG_FL_MS01 icon motion_detector 172 | attr OG_FL_MS01 mapReading_brightness 1 brightness 173 | attr OG_FL_MS01 mapReading_motion 2 tripped 174 | attr OG_FL_MS01 mode repeater 175 | attr OG_FL_MS01 room OG_Flur 176 | attr OG_FL_MS01 stateFormat Licht: brightness 177 | attr OG_FL_MS01 version 1.4.1 178 | 179 | define FileLog_OG_FL_MS01 FileLog ./log/OG_FL_MS01-%Y-%m.log OG_FL_MS01 180 | attr FileLog_OG_FL_MS01 logtype myMotionLight:Plot,text 181 | attr FileLog_OG_FL_MS01 room Logs 182 | 183 | 184 | # Test 185 | define MYSENSOR_82 MYSENSORS_DEVICE 82 186 | attr MYSENSOR_82 IODev mysensors 187 | attr MYSENSOR_82 alias MSKombisensor (Test 82) 188 | attr MYSENSOR_82 mapReading_brightness 1 brightness 189 | attr MYSENSOR_82 mapReading_humidity 4 humidity 190 | attr MYSENSOR_82 mapReading_motion 2 tripped 191 | attr MYSENSOR_82 mapReading_temperature 3 temperature 192 | attr MYSENSOR_82 mode node 193 | attr MYSENSOR_82 room MYSENSORS 194 | attr MYSENSOR_82 stateFormat T: temperature H: humidity L: brightness 195 | attr MYSENSOR_82 version 1.4.1 196 | 197 | define FileLog_MYSENSOR_82 FileLog ./log/MYSENSOR_82-%Y-%m.log MYSENSOR_82 198 | attr FileLog_MYSENSOR_82 logtype myMotionLight:Plot,text 199 | attr FileLog_MYSENSOR_82 room Logs 200 | 201 | define SVG_MYSENSOR_82_BL SVG FileLog_MYSENSOR_82:myMotionLight:CURRENT 202 | attr SVG_MYSENSOR_82_BL label "Bewegung und Licht (Test82): Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}" 203 | attr SVG_MYSENSOR_82_BL room MYSENSORS 204 | 205 | define SVG_MYSENSOR_82_TH SVG FileLog_MYSENSOR_82:myKS_TempHum:CURRENT 206 | attr SVG_MYSENSOR_82_TH label "Raumsensor (Test82): Temp: Min / Max / Last: $data{min1} / $data{max1} / $data{currval1}, Humi: $data{min2}% / $data{max2}% / $data{currval2}%" 207 | attr SVG_MYSENSOR_82_TH room MYSENSORS 208 | 209 | # Test 210 | define MYSENSOR_127 MYSENSORS_DEVICE 127 211 | attr MYSENSOR_127 IODev mysensors 212 | attr MYSENSOR_127 mapReading_dimmer 1 percentage 213 | attr MYSENSOR_127 mapReading_switch 1 status 214 | attr MYSENSOR_127 mode repeater 215 | attr MYSENSOR_127 room MYSENSORS 216 | attr MYSENSOR_127 setCommands on:switch:off off:switch:on 217 | attr MYSENSOR_127 setReading_dimmer slider,0,1,100 218 | attr MYSENSOR_127 setReading_percentage slider,0,1,100 219 | attr MYSENSOR_127 setReading_switch on,off 220 | attr MYSENSOR_127 version 1.4 221 | 222 | # Test 223 | define MYSENSOR_110 MYSENSORS_DEVICE 110 224 | attr MYSENSOR_110 IODev mysensors 225 | attr MYSENSOR_110 mapReading_brightness 1 brightness 226 | attr MYSENSOR_110 mapReading_motion 2 tripped 227 | attr MYSENSOR_110 mode repeater 228 | attr MYSENSOR_110 room MYSENSORS 229 | attr MYSENSOR_110 stateFormat Licht: brightness 230 | attr MYSENSOR_110 version 1.4.1 231 | 232 | # Test 233 | define MYSENSOR_111 MYSENSORS_DEVICE 111 234 | attr MYSENSOR_111 IODev mysensors 235 | attr MYSENSOR_111 mapReading_brightness 1 brightness 236 | attr MYSENSOR_111 mapReading_humidity 4 humidity 237 | attr MYSENSOR_111 mapReading_motion 2 tripped 238 | attr MYSENSOR_111 mapReading_temperature 3 temperature 239 | attr MYSENSOR_111 mode repeater 240 | attr MYSENSOR_111 room MYSENSORS 241 | attr MYSENSOR_111 stateFormat T: temperature H: humidity L: brightness 242 | attr MYSENSOR_111 version 1.4.1 243 | 244 | # Test 245 | define MYSENSOR_113 MYSENSORS_DEVICE 113 246 | attr MYSENSOR_113 IODev mysensors 247 | attr MYSENSOR_113 alias MSKombisensor (Test 113) 248 | attr MYSENSOR_113 mapReading_brightness 1 brightness 249 | attr MYSENSOR_113 mapReading_motion 2 tripped 250 | attr MYSENSOR_113 mode repeater 251 | attr MYSENSOR_113 room MYSENSORS 252 | attr MYSENSOR_113 stateFormat L: brightness 253 | attr MYSENSOR_113 version 1.4.1 254 | 255 | # Test 256 | define MYSENSOR_115 MYSENSORS_DEVICE 115 257 | attr MYSENSOR_115 IODev mysensors 258 | attr MYSENSOR_115 alias MSKombisensor (Test 115) 259 | attr MYSENSOR_115 mapReading_brightness 1 brightness 260 | attr MYSENSOR_115 mapReading_motion 2 tripped 261 | attr MYSENSOR_115 mode repeater 262 | attr MYSENSOR_115 room MYSENSORS 263 | attr MYSENSOR_115 stateFormat L: brightness 264 | attr MYSENSOR_115 version 1.4.1 265 | 266 | -------------------------------------------------------------------------------- /FHEM/000_remote_services.cfg: -------------------------------------------------------------------------------- 1 | # Services aus dem Internet 2 | 3 | # Goole Calendar 4 | define GC Calendar ical url https://www.google.com/calendar/ical/h3nu1ohikqj598j2auegun2rls%40group.calendar.google.com/private-4db1659af2e017e7c83f9e1f41c0b649/basic.ics 900 5 | attr GC alias Google FHEM Calender 6 | attr GC group Connections 7 | attr GC room IO_Devices 8 | define GC_Abwesend dummy 9 | attr GC_Abwesend group Google FHEM Calender 10 | attr GC_Abwesend room Steuerung 11 | define GC.notify notify GC { fhem "set GC_Abwesend ".checkCalSummary("GC", "modeStart", "Abwesend") } 12 | attr GC.notify group Google FHEM Calender 13 | attr GC.notify room Steuerung 14 | 15 | 16 | # DB 17 | 18 | define DBPlan_Test DBPlan 600 19 | attr DBPlan_Test dbplan_destination Hannover Hbf 20 | attr DBPlan_Test room Test 21 | attr DBPlan_Test userReadings row1 { plan("DBPlan_Test", 1) }, row2 { plan("DBPlan_Test", 2) }, row3 { plan("DBPlan_Test", 3) } 22 | 23 | 24 | # Wetter 25 | 26 | # Twilight 27 | define T Twilight 52.481591 9.73296 1 670178 28 | attr T alias Licht (Twilight) 29 | attr T comment Location: Langenhagen 30 | attr T group Umwelt 31 | attr T room Steuerung 32 | 33 | define FileLog_Twilight FileLog ./log/Twilight-%Y.log T:light.* 34 | attr FileLog_Twilight logtype myTwilight:Plot,text 35 | attr FileLog_Twilight room Logs 36 | 37 | define FileLog_Twilight_Sonne FileLog ./log/Twilight_Sonne-%Y.log T:azimuth.*|T:elevation.* 38 | attr FileLog_Twilight_Sonne logtype text 39 | attr FileLog_Twilight_Sonne room Logs 40 | 41 | # Weather 42 | define Wetter Weather 670178 600 de 43 | attr Wetter event-on-update-reading temperature,humidity,pressure,wind_speed,wind_chill,wind_direction 44 | attr Wetter group Umwelt 45 | attr Wetter room Steuerung 46 | #attr Wetter event-on-change-reading forecast_date,fc0_condition 47 | define wl_Wettervorhersage weblink htmlCode { WeatherAsHtmlD("Wetter") } 48 | attr wl_Wettervorhersage group Umwelt 49 | attr wl_Wettervorhersage htmlattr width_"220" height="330" frameborder="0" marginheight="0" marginwidth="0" 50 | attr wl_Wettervorhersage room Umwelt 51 | attr wl_Wettervorhersage sortby 30 52 | 53 | define FileLog_Wetter FileLog ./log/Wetter-%Y.log Wetter 54 | attr FileLog_Wetter logtype temp4hum6:wind_speed|humidity|temperature,text 55 | attr FileLog_Wetter room Logs 56 | 57 | # Proplanta 58 | define pw PROPLANTA Langenhagen+(Hannover) 59 | attr pw alias Wetter (Proplana) 60 | attr pw group Umwelt 61 | attr pw room Steuerung 62 | define myLogProxy logProxy 63 | attr myLogProxy room Logs 64 | 65 | 66 | # Unwetterzentrale 67 | define Unwetterzentrale UWZ DE 30855 3600 68 | attr Unwetterzentrale alias Unwetterzentrale 69 | attr Unwetterzentrale group Umwelt 70 | attr Unwetterzentrale room Steuerung 71 | attr Unwetterzentrale userReadings Gewittertest { IstGewitter("Unwetterzentrale");;;; } 72 | define UnwetterDetailiert weblink htmlCode {UWZAsHtml("Unwetterzentrale")} 73 | attr UnwetterDetailiert group Umwelt 74 | attr UnwetterDetailiert room Test 75 | define UnwetterLite weblink htmlCode {UWZAsHtmlLite("Unwetterzentrale")} 76 | attr UnwetterLite group Umwelt 77 | attr UnwetterLite room Test 78 | define UnwetterFloorplan weblink htmlCode {UWZAsHtmlFP("Unwetterzentrale")} 79 | attr UnwetterFloorplan group Umwelt 80 | attr UnwetterFloorplan room Test 81 | define UnwetterKarteDE weblink htmlCode {UWZAsHtmlKarteDE("Unwetterzentrale")} 82 | attr UnwetterKarteDE group Umwelt 83 | attr UnwetterKarteDE room Test 84 | define UnwetterKarteDESmall weblink htmlCode {UWZAsHtmlKarteDESmall("Unwetterzentrale")} 85 | attr UnwetterKarteDESmall group Umwelt 86 | attr UnwetterKarteDESmall room Test 87 | define UnwetterKarteNS weblink htmlCode {UWZAsHtmlKarteLand("Unwetterzentrale","Niedersachsen")} 88 | attr UnwetterKarteNS group Umwelt 89 | attr UnwetterKarteNS room Test 90 | 91 | 92 | -------------------------------------------------------------------------------- /FHEM/000_structures.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/000_structures.cfg -------------------------------------------------------------------------------- /FHEM/000_sys.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/000_sys.cfg -------------------------------------------------------------------------------- /FHEM/000_zirkulation.cfg: -------------------------------------------------------------------------------- 1 | # FHEM Config file 2 | # Steuerung Zirkulationspumpe 3 | # 4 | define T.AT.Steuerung_Zirkulationspumpe at +*00:03:00 {steuerungZirkulationspumpe('EG_HA_OWTS11.Warmwasser_Speicher', 'EG_HA_OWTS12.Warmwasser_Entnahme', 'EG_HA_OWTS13.Warmwasser_Rueckfluss', 'EG_HA_SA01.Zirkulationspumpe', 'V.OU.Status')} 5 | attr T.AT.Steuerung_Zirkulationspumpe alignTime 00:00 6 | attr T.AT.Steuerung_Zirkulationspumpe group Zirkulation 7 | attr T.AT.Steuerung_Zirkulationspumpe room Heizung 8 | 9 | define T.DU_Ctrl.ZP_Mode dummy 10 | attr T.DU_Ctrl.ZP_Mode alias Steuerung der Zirkulation 11 | attr T.DU_Ctrl.ZP_Mode group 00.Steuerung 12 | attr T.DU_Ctrl.ZP_Mode room Heizung,Steuerung 13 | attr T.DU_Ctrl.ZP_Mode setList state:Automatik,Normal,Reduziert,Nacht,Abwesend 14 | attr T.DU_Ctrl.ZP_Mode webCmd state 15 | 16 | define V.OU.Status dummy 17 | attr V.OU.Status alias 0._Status_Zirkulation 18 | attr V.OU.Status group Zirkulation 19 | attr V.OU.Status readingList state lastChange 20 | attr V.OU.Status room Heizung 21 | attr V.OU.Status setList state lastChange 22 | 23 | define FileLog_EG_HA_SA01.Zirkulationspumpe FileLog ./log/EG_HA_SA01.Zirkulationspumpe-%Y.log EG_HA_SA01.Zirkulationspumpe 24 | attr FileLog_EG_HA_SA01.Zirkulationspumpe group _Logs 25 | attr FileLog_EG_HA_SA01.Zirkulationspumpe logtype mySwitch:Plot,text 26 | attr FileLog_EG_HA_SA01.Zirkulationspumpe room Heizung 27 | 28 | define 0.wlA_Zirkulationspumpe SVG FileLog_EG_HA_SA01.Zirkulationspumpe:mySwitch:CURRENT 29 | attr 0.wlA_Zirkulationspumpe room Heizung 30 | define EG_HA_SA01.Zirkulationspumpe CUL_HM 1ECEA2 31 | attr EG_HA_SA01.Zirkulationspumpe .devInfo 010000 32 | attr EG_HA_SA01.Zirkulationspumpe .stc 10 33 | attr EG_HA_SA01.Zirkulationspumpe IODev HMLAN1 34 | attr EG_HA_SA01.Zirkulationspumpe IOgrp ccu 35 | attr EG_HA_SA01.Zirkulationspumpe alias 0.A_Zirkulationspumpe 36 | attr EG_HA_SA01.Zirkulationspumpe autoReadReg 5_readMissing 37 | attr EG_HA_SA01.Zirkulationspumpe eventMap on:on off:off toggle:toggle statusRequest:statusRequest 38 | attr EG_HA_SA01.Zirkulationspumpe expert 2_full 39 | attr EG_HA_SA01.Zirkulationspumpe firmware 1.9 40 | attr EG_HA_SA01.Zirkulationspumpe group Zirkulation 41 | attr EG_HA_SA01.Zirkulationspumpe model HM-LC-SW1-PL2 42 | attr EG_HA_SA01.Zirkulationspumpe peerIDs 00000000, 43 | attr EG_HA_SA01.Zirkulationspumpe room Heizung 44 | attr EG_HA_SA01.Zirkulationspumpe serialNr JEQ0697448 45 | attr EG_HA_SA01.Zirkulationspumpe subType switch 46 | attr EG_HA_SA01.Zirkulationspumpe webCmd statusRequest 47 | -------------------------------------------------------------------------------- /FHEM/36_GSD.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/36_GSD.pm -------------------------------------------------------------------------------- /FHEM/42_SMARTMON.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/42_SMARTMON.pm -------------------------------------------------------------------------------- /FHEM/42_SYSMON.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/42_SYSMON.pm -------------------------------------------------------------------------------- /FHEM/99_RPiUtils.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/99_RPiUtils.pm -------------------------------------------------------------------------------- /FHEM/99_myCtrlAutomation.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/99_myCtrlAutomation.pm -------------------------------------------------------------------------------- /FHEM/99_myCtrlBase.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/99_myCtrlBase.pm -------------------------------------------------------------------------------- /FHEM/99_myCtrlDev.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/99_myCtrlDev.pm -------------------------------------------------------------------------------- /FHEM/99_myCtrlJabber.pm: -------------------------------------------------------------------------------- 1 | ############################################## 2 | # $Id$ 3 | package main; 4 | 5 | use strict; 6 | use warnings; 7 | use POSIX; 8 | use Time::Local; 9 | 10 | require "$attr{global}{modpath}/FHEM/myCtrlHAL.pm"; 11 | 12 | use constant { 13 | MY_JABBER_ADDR => 'hexenmeister@jabber.de', 14 | MY_TELEGRAM_GROUP => "admin" 15 | }; 16 | 17 | sub myCtrlJabber_sendTelegramMessageToGroup($$); 18 | sub myCtrlJabber_sendTelegramMessageToChat($$); 19 | sub myCtrlJabber_sendJabberMessage($$); 20 | 21 | sub 22 | myCtrlJabber_Initialize($$) 23 | { 24 | my ($hash) = @_; 25 | } 26 | 27 | my $useJabber = 0; 28 | my $useTelegram = 1; 29 | 30 | sub sendMessageToDefaultChannel($$) { 31 | my($rcp, $msg) = @_; 32 | 33 | if($useJabber) { 34 | myCtrlJabber_sendJabberMessage($rcp, $msg); 35 | } 36 | 37 | if($useTelegram) { 38 | myCtrlJabber_sendTelegramMessageToGroup($rcp, $msg); 39 | } 40 | } 41 | 42 | ###################################################### 43 | # Meldung per Telegram senden an eine User-Gruppe 44 | ###################################################### 45 | sub myCtrlJabber_sendTelegramMessageToGroup($$) 46 | { 47 | my($rcp, $msg) = @_; 48 | fhem('set NN_HA_Net_Telegram out-json {"group":"'.$rcp.'","content":'.'"'.$msg.'"}'); 49 | } 50 | 51 | ###################################################### 52 | # Meldung per Telegram senden an eine User-Gruppe 53 | ###################################################### 54 | sub myCtrlJabber_sendTelegramMessageToChat($$) 55 | { 56 | my($rcp, $msg) = @_; 57 | my $find = "\n"; 58 | my $replace = '\n'; 59 | $msg =~ s/$find/$replace/g; 60 | fhem('set NN_HA_Net_Telegram out-json {"chatId":"'.$rcp.'","content":'.'"'.$msg.'"}'); 61 | } 62 | 63 | ###################################################### 64 | # Meldung per Jabber senden 65 | ###################################################### 66 | sub 67 | myCtrlJabber_sendJabberMessage($$) 68 | { 69 | my($rcp, $msg) = @_; 70 | fhem("set ".+DEVICE_NAME_JABBER." msg $rcp $msg"); 71 | } 72 | 73 | ###################################################### 74 | # Test only 75 | ###################################################### 76 | sub 77 | sendJabberEcho() 78 | { 79 | my $lastsender=ReadingsVal(+DEVICE_NAME_JABBER,"LastSenderJID","0"); 80 | my $lastmsg=ReadingsVal(+DEVICE_NAME_JABBER,"LastMessage","0"); 81 | fhem("set ".+DEVICE_NAME_JABBER." msg ". $lastsender . " Echo: ".$lastmsg); 82 | } 83 | 84 | ###################################################### 85 | # Meldung an mein Handy per Jabber senden 86 | ###################################################### 87 | sub sendMeMessageToDefaultChannel($) 88 | { 89 | my($msg) = @_; 90 | if($useJabber) { 91 | myCtrlJabber_sendJabberMessage(+MY_JABBER_ADDR, $msg); 92 | } 93 | 94 | if($useTelegram) { 95 | myCtrlJabber_sendTelegramMessageToGroup(+MY_TELEGRAM_GROUP, $msg); 96 | } 97 | } 98 | 99 | #--- User Methods ------------------------------------------------------------- 100 | 101 | ###################################################### 102 | # Statusdaten an mein Handy per Jabber senden 103 | # Wird aus Config per at taglich aufgerufen. 104 | ###################################################### 105 | sub 106 | sendMeStatusMsg() 107 | { 108 | #my($msg) = @_; 109 | my $msg = "Status: Umwelt"; 110 | $msg.="\nTemperature: ".fhem("mget umwelt temperature value"); 111 | $msg.="\nLuftfeuchte: ".fhem("mget umwelt humidity value"); 112 | #$msg=$msg."\n Ost: "; 113 | ##TODO: HAL 114 | #$msg=$msg."T: ".ReadingsVal("UM_VH_OWTS01.Luft", "temperature", "---")." C"; 115 | ##$msg=$msg."\n : ".$defs{"GSD_1.4"}{STATE}; 116 | #$msg=$msg."\n West: "; 117 | #$msg=$msg."T: ".ReadingsVal("GSD_1.4", "temperature", "---")." C,"; 118 | #$msg=$msg." H: ".ReadingsVal("GSD_1.4", "humidity", "---")." %,"; 119 | #$msg=$msg." Bat: ".ReadingsVal("GSD_1.4", "batteryLevel", "---")." V"; 120 | 121 | my $msgDead=''; 122 | my $sensors = HAL_getSensorNames(); 123 | foreach my $sensorname (@$sensors) { 124 | if(!HAL_isSensorAlive($sensorname)) { 125 | # info: dead seit 126 | my $dauer = HAL_gerSensorDeadTimeDurationStr($sensorname); 127 | if($dauer) { 128 | $msgDead.="\n".$sensorname.' seit '.$dauer; 129 | } else { 130 | $msgDead.="\n".$sensorname; 131 | } 132 | } 133 | } 134 | if($msgDead) { 135 | $msg.="\nDead devices:".$msgDead; 136 | } else { 137 | $msg.="\nno dead devices"; 138 | } 139 | 140 | my $msgBat=''; 141 | #$sensors = HAL_getSensorNames(); 142 | foreach my $sensorname (@$sensors) { 143 | if(HAL_isDeviceLowBat($sensorname)) { 144 | my $info = HAL_getDeviceBatStatus($sensorname); 145 | my $deadSt = HAL_isSensorAlive($sensorname)?'(alive)':'(dead)'; 146 | $msgBat.="\n".$sensorname.' : '.$info.' '.$deadSt; 147 | } 148 | } 149 | if($msgBat) { 150 | $msg.="\nlow batteries:".$msgBat; 151 | } else { 152 | $msg.="\nno low batteries"; 153 | } 154 | 155 | sendMeMessageToDefaultChannel($msg); 156 | } 157 | 158 | ###################################################### 159 | # Kleines Cmd-Interface 160 | ###################################################### 161 | sub sendJabberAnswer() { 162 | my $lastsender=ReadingsVal(+DEVICE_NAME_JABBER,"LastSenderJID","0"); 163 | my $lastmsg=ReadingsVal(+DEVICE_NAME_JABBER,"LastMessage","0"); 164 | sendAnswerToChannel("jabber", $lastsender, $lastmsg); 165 | } 166 | 167 | sub sendTelegramAnswer() { 168 | my $lastsender=ReadingsVal("NN_HA_Net_Telegram","chatId",""); 169 | my $lastmsg=ReadingsVal("NN_HA_Net_Telegram","content",""); 170 | sendAnswerToChannel("telegram", $lastsender, $lastmsg); 171 | } 172 | 173 | 174 | sub sendAnswerToChannel($$$) { 175 | my($channel, $lastsender, $lastmsg) = @_; 176 | 177 | #my $lastsender=ReadingsVal(+DEVICE_NAME_JABBER,"LastSenderJID","0"); 178 | #my $lastmsg=ReadingsVal(+DEVICE_NAME_JABBER,"LastMessage","0"); 179 | my @cmd_list = split(/\s+/, trim($lastmsg)); 180 | my $cmd = lc($cmd_list[0]); 181 | # erstes Element entfernen 182 | shift(@cmd_list); 183 | #Log 3, "Jabber: ".$lastsender." - ".$lastmsg; 184 | 185 | my $newmsg; 186 | if($cmd eq "status") { 187 | #TODO 188 | #Log 3, "Jabber: CMD: Status"; 189 | $newmsg.= "Status: \r\n"; 190 | my $owtStatus = checkOWTHERMTimeOut(); 191 | $newmsg.= $owtStatus; 192 | } 193 | 194 | if($cmd eq "umwelt") { 195 | #Log 3, "Jabber: CMD: Umwelt"; 196 | $newmsg.= "Umwelt\n"; 197 | #$newmsg.="\n Ost: "; 198 | ##TODO: HAL 199 | #$newmsg.="T: ".ReadingsVal("UM_VH_OWTS01.Luft", "temperature", "---")." C, "; 200 | #$newmsg.="B: ".ReadingsVal("UM_VH_HMBL01.Eingang", "brightness", "---").", "; 201 | #$newmsg.="Bat: ".ReadingsVal("UM_VH_HMBL01.Eingang", "battery", "---")." "; 202 | ##$newmsg.="\n : ".$defs{"GSD_1.4"}{STATE}; 203 | #$newmsg.="\n West: "; 204 | #$newmsg.="T: ".ReadingsVal("GSD_1.4", "temperature", "---")." C,"; 205 | #$newmsg.=" H: ".ReadingsVal("GSD_1.4", "humidity", "---")." %,"; 206 | #$newmsg.=" Bat: ".ReadingsVal("GSD_1.4", "batteryLevel", "---")." V"; 207 | #my $newmsg = "Status: Umwelt"; 208 | #$newmsg.=fhem("mget umwelt all value"); 209 | $newmsg.="\nTemperature: ".fhem("mget umwelt temperature value"); 210 | $newmsg.="\nLuftfeuchte: ".fhem("mget umwelt humidity value"); 211 | $newmsg.="\nLuftdruck: ".fhem("mget umwelt pressure value"); 212 | $newmsg.="\nLicht: ".fhem("mget umwelt luminosity value"); 213 | $newmsg.="\nTaupunkt: ".fhem("mget umwelt dewpoint value"); 214 | $newmsg.="\nAbs. Feuchte: ".fhem("mget umwelt absFeuchte value"); 215 | 216 | } 217 | 218 | if($cmd eq "system") { 219 | #Log 3, "Jabber: CMD: System"; 220 | #TODO: HAL 221 | $newmsg.= "CPU Temp: ".ReadingsVal("sysmon", "cpu_temp_avg", "---")." C\n"; 222 | $newmsg.= "loadavg: ".ReadingsVal("sysmon", "loadavg", "---")."\n"; 223 | $newmsg.= "Auslastung: ".ReadingsVal("sysmon", "stat_cpu_text", "---")."\n"; 224 | $newmsg.= "RAM: ".ReadingsVal("sysmon", "ram", "---")."\n"; 225 | $newmsg.= "Uptime: ".ReadingsVal("sysmon", "uptime_text", "---")."\n"; 226 | $newmsg.= "Idle: ".ReadingsVal("sysmon", "idletime_text", "---")."\n"; 227 | $newmsg.= "FHEM uptime: ".ReadingsVal("sysmon", "fhemuptime_text", "---")."\n"; 228 | $newmsg.= "FS Root: ".ReadingsVal("sysmon", "fs_root", "---")."\n"; 229 | $newmsg.= "FS USB: ".ReadingsVal("sysmon", "fs_usb1", "---")."\n"; 230 | $newmsg.= "Updates: ".ReadingsVal("sysmon", "sys_updates", "---")."\n"; 231 | } 232 | 233 | # ggf. weitere Befehle 234 | 235 | if($cmd eq "help" || $cmd eq "hilfe" || $cmd eq "?") { 236 | $newmsg.= "Befehle: Help (Hilfe), Status, System, Umwelt"; 237 | } 238 | 239 | if($cmd eq "fhem") { 240 | my $cmd_tail = join(" ",@cmd_list); 241 | $newmsg.=fhem($cmd_tail); 242 | } 243 | 244 | if($cmd eq "perl") { 245 | my $cmd_tail = join(" ",@cmd_list); 246 | $newmsg.=eval($cmd_tail); 247 | } 248 | #Log 3, "Jabber: response: >".$newmsg."<"; 249 | 250 | if($cmd eq "say" || $cmd eq "sprich") { 251 | my $cmd_tail = join(" ",@cmd_list); 252 | speak($cmd_tail,0); 253 | $newmsg.="ok"; 254 | } 255 | 256 | if($cmd eq "mget" || $cmd eq "get" || $cmd eq "mg") { 257 | my $cmd_tail = join(" ",@cmd_list); 258 | $newmsg.=fhem("mget ".$cmd_tail); 259 | } 260 | 261 | if($channel eq "jabber") { 262 | if(defined($newmsg)) { 263 | myCtrlJabber_sendJabberMessage($lastsender, $newmsg); 264 | #fhem("set ".+DEVICE_NAME_JABBER." msg ". $lastsender . " ".$newmsg); 265 | } else { 266 | myCtrlJabber_sendJabberMessage($lastsender, "Unbekanter Befehl: ".$lastmsg); 267 | #fhem("set ".+DEVICE_NAME_JABBER." msg ". $lastsender. " Unbekanter Befehl: ".$lastmsg); 268 | } 269 | } 270 | 271 | if($channel eq "telegram") { 272 | if(defined($newmsg)) { 273 | myCtrlJabber_sendTelegramMessageToChat($lastsender, $newmsg); 274 | } else { 275 | myCtrlJabber_sendTelegramMessageToChat($lastsender, "Unbekanter Befehl: ".$lastmsg); 276 | } 277 | } 278 | 279 | } 280 | 281 | 1; 282 | -------------------------------------------------------------------------------- /FHEM/99_myCtrlProxies.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/99_myCtrlProxies.pm -------------------------------------------------------------------------------- /FHEM/99_myCtrlVoice.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/99_myCtrlVoice.pm -------------------------------------------------------------------------------- /FHEM/myCtrlHAL.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/FHEM/myCtrlHAL.pm -------------------------------------------------------------------------------- /FHEM/myCtrlMsg.pm: -------------------------------------------------------------------------------- 1 | ############################################## 2 | # $Id$ 3 | package main; 4 | 5 | use strict; 6 | use warnings; 7 | use Switch; 8 | use POSIX; 9 | #use Time::Local; 10 | 11 | #use myCtrlHAL; 12 | #require "$attr{global}{modpath}/FHEM/myCtrlHAL.pm"; 13 | require "$attr{global}{modpath}/FHEM/99_myCtrlBase.pm"; 14 | require "$attr{global}{modpath}/FHEM/99_myCtrlVoice.pm"; 15 | require "$attr{global}{modpath}/FHEM/99_myCtrlJabber.pm"; 16 | 17 | use constant { 18 | MSG_OUT_VOICE => "voice", 19 | MSG_OUT_HANDY => "handy", 20 | 21 | MSG_OUT_DEFAULT => "handy", 22 | }; 23 | 24 | use constant { 25 | MSG_OUT_DEFAULT => MSG_OUT_HANDY 26 | }; 27 | 28 | sub 29 | myCtrlMsg_Initialize($$) 30 | { 31 | my ($hash) = @_; 32 | } 33 | 34 | # 35 | # Msg-Hash-Format: 36 | # $msg->{type} => Art der Meldung (Fenster warnung, etc.) 37 | # $msg->{subType} => UnterArt der Meldung 38 | # $msg->{severity} => SchwereGrad, kann benutzt werden, um z.B. eine Voranmeldung auszugeben 39 | # $msg->{output} => Ausgabekanal: XABBER, VOICE 40 | # $msg->{text} => Meldungsinhalt 41 | # $msg->{to} => Empfaenger (optional) 42 | # 43 | 44 | sub _Msg2Text($) { 45 | my($msg) = @_; 46 | 47 | my $type = $msg->{type}; $type="-" unless $type; 48 | my $subType = $msg->{subType}; $subType="-" unless $subType; 49 | my $severity = $msg->{severity}; $severity="-" unless $severity; 50 | my $output = $msg->{output}; $output="-" unless $output; 51 | my $text = $msg->{text}; $text="-" unless $text; 52 | my $to = $msg->{to}; $to="-" unless $to; 53 | 54 | my $ltext = "to: $to, type: $type, subType: $subType, severity: $severity, output: $output, text: $text"; 55 | return $ltext; 56 | } 57 | 58 | ############################################################################### 59 | # Eine Meldung an den Benutzer absetzen. 60 | # Je nach Meldung werden mehrere Arten der Kanaele unterstuetzt (auch gleichzeitig) 61 | # Voice-Meldung, Jabber_meldung, ... 62 | # TODO: Unterstuetzung fuer Umleitung der einzelnen Kanaele. 63 | # TODO: Unterstuetzung fuer 'Stummschaltung' einzelnen Kanaele je nach 'Dinglichkeit' 64 | # 65 | # TODO: Doku 66 | # 67 | # Aufruf: sendUserMessage(type=>'xyz', text=>'Hallo'); 68 | sub sendUserMessage(%) { 69 | my (%msg) = @_; 70 | 71 | myLog(undef, 3, _Msg2Text(\%msg)); 72 | 73 | #voiceNotificationMsgWarn(100); 74 | #speak("Fenster in ".getDeviceLocation($deviceName,"unbekannt")." ist seit ueber ".rundeZahl0($dauer/60)." Minuten gekippt!",0); 75 | 76 | #speak($msg{text},0); 77 | # myLog(undef, 3, $msg{text}); 78 | # 79 | 80 | # TODO: Umleitungen 81 | 82 | my $output = $msg{output}; 83 | $output = MSG_OUT_DEFAULT unless $output; 84 | 85 | my $text = $msg{text}; 86 | 87 | #if($output eq MSG_OUT_VOICE) { 88 | # 89 | #} elsif($output eq MSG_OUT_VOICE) 90 | 91 | if($text) { 92 | switch ($output) { 93 | case MSG_OUT_VOICE { 94 | # TODO : Notification 95 | #voiceNotificationMsgWarn(100); 96 | # TODO: Lautstaerke 97 | speak($text,0); 98 | } 99 | 100 | case MSG_OUT_HANDY { 101 | # TODO: Verschiedenen Empfaenger 102 | sendMeJabberMessage($text); 103 | } 104 | 105 | else { 106 | sendMeJabberMessage($text); 107 | myLog(undef, 3, "unexpected message output way: ".$output); 108 | } 109 | } 110 | } else { 111 | myLog(undef, 3, "undefined message text"); 112 | } 113 | 114 | } 115 | 116 | # TODO: . 117 | 118 | 1; 119 | -------------------------------------------------------------------------------- /FHEM/myUtilsTemplate.pm: -------------------------------------------------------------------------------- 1 | ############################################## 2 | # $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $ 3 | # 4 | # Save this file as 99_myUtils.pm, and create your own functions in the new 5 | # file. They are then available in every Perl expression. 6 | 7 | package main; 8 | 9 | use strict; 10 | use warnings; 11 | use POSIX; 12 | 13 | sub 14 | myUtils_Initialize($$) 15 | { 16 | my ($hash) = @_; 17 | } 18 | 19 | # Enter you functions below _this_ line. 20 | 21 | 22 | 1; 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | MyFHEM 2 | ====== 3 | 4 | Meine Anpassungen und Erweiterungen für FHEM für Raspberry Pi. 5 | -------------------------------------------------------------------------------- /_scripts/check_usv.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | BATPRESENT=`cat /sys/class/power_supply/battery/present` 4 | BATLEVEL=`cat /sys/class/power_supply/battery/capacity` 5 | BATONLINE=`cat /sys/class/power_supply/battery/online` 6 | #DATE=`date` 7 | DATE=`date +"%F_%R"` 8 | 9 | if [ $BATPRESENT -eq 0 ] 10 | then 11 | # echo -e "$DATE: Batterie nicht vorhanden" 12 | exit 13 | fi 14 | 15 | if [ $BATONLINE -eq 0 ] 16 | then 17 | # echo -e "$DATE: Batterie wird nicht entladen Ladezustand: $BATLEVEL" 18 | exit 19 | fi 20 | 21 | #if [ $BATONLINE -eq 1 ] 22 | #then 23 | # echo -e "$DATE: Batterie wird entladen Ladezustand: $BATLEVEL" 24 | #fi 25 | 26 | #if [ $BATONLINE -eq 1 ] && [ $BATLEVEL -le 40 ] 27 | #then 28 | # echo -e "$DATE: Batterieladezustand niedrig: $BATLEVEL" >> /var/log/battery.log 29 | # exit 30 | #fi 31 | 32 | if [ $BATONLINE -eq 1 ] && [ $BATLEVEL -le 30 ] 33 | then 34 | echo -e "$DATE: Batterieladezustand niedrig: $BATLEVEL" >> /var/log/battery.log 35 | echo -e "$DATE: Cubietruck wird heruntergefahren" >> /var/log/battery.log 36 | halt 37 | exit 38 | fi 39 | -------------------------------------------------------------------------------- /_scripts/sd_backup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Setting up directories 4 | SUBDIR=sd_backups 5 | DIR=/mnt/data/data/_bak/$SUBDIR 6 | 7 | # should image be compressed (tar)? (1=Yes, 0=No) 8 | COMPRESS_IMAGE=0 9 | 10 | echo "Starting SD backup process!" 11 | 12 | # First check if pv package is installed, if not, install it first 13 | PACKAGESTATUS=`dpkg -s pv | grep Status`; 14 | 15 | if [[ $PACKAGESTATUS == S* ]] 16 | then 17 | echo "Package 'pv' is installed." 18 | else 19 | echo "Package 'pv' is NOT installed." 20 | echo "Installing package 'pv'. Please wait..." 21 | sudo apt-get -y install pv 22 | fi 23 | 24 | # Check if backup directory exists 25 | if [ ! -d "$DIR" ]; 26 | then 27 | echo "Backup directory $DIR doesn't exist, creating it now!" 28 | sudo mkdir $DIR 29 | fi 30 | 31 | # Create a filename with datestamp for our current backup (without .img suffix) 32 | OFILE="$DIR/backup_$(date +%Y%m%d_%H%M%S)" 33 | 34 | # Create final filename, with suffix 35 | OFILEFINAL=$OFILE.img 36 | 37 | # First sync disks 38 | sync; sync 39 | 40 | # Shut down some services before starting backup process 41 | echo "Stopping some services before backup." 42 | sudo service cron stop 43 | sudo service apache2 stop 44 | sudo service mysql stop 45 | 46 | # Begin the backup process, should take about 1 hour from 8Gb SD card to HDD 47 | echo "Backing up SD card to USB HDD." 48 | echo "This will take some time depending on your SD card size and read performance. Please wait..." 49 | SDSIZE=`sudo blockdev --getsize64 /dev/mmcblk0`; 50 | sudo pv -tpreb /dev/mmcblk0 -s $SDSIZE | sudo dd of=$OFILE bs=1M conv=sync,noerror iflag=fullblock 51 | 52 | # Wait for DD to finish and catch result 53 | RESULT=$? 54 | echo "Result: $RESULT" 55 | 56 | # Start services again that where shutdown before backup process 57 | echo "Start the stopped services again." 58 | sudo service mysql start 59 | sudo service apache2 start 60 | sudo service cron start 61 | 62 | # If command has completed successfully, delete previous backups and exit 63 | if [ $RESULT = 0 ]; 64 | then 65 | # should image be compressed (tar)? 66 | if [ $COMPRESS_IMAGE = 1 ]; 67 | # compress image 68 | then 69 | echo "Successful backup, previous backup files (tar.gz) will be deleted." 70 | rm -f $DIR/backup_*.tar.gz 71 | mv $OFILE $OFILEFINAL 72 | echo "Backup is being tarred. Please wait..." 73 | tar zcf $OFILEFINAL.tar.gz $OFILEFINAL 74 | rm -rf $OFILEFINAL 75 | echo "SD backup process completed! FILE: $OFILEFINAL.tar.gz" 76 | exit 0 77 | # Else remove old images 78 | else 79 | echo "Successful backup, previous backup files (img) will be deleted." 80 | rm -f $DIR/backup_*.img 81 | mv $OFILE $OFILEFINAL 82 | exit 0 83 | fi 84 | # Else remove attempted backup file 85 | else 86 | echo "Backup failed! Previous backup files untouched." 87 | echo "Please check there is sufficient space on the HDD." 88 | rm -f $OFILE 89 | echo "SD backup process failed!" 90 | exit 1 91 | fi 92 | -------------------------------------------------------------------------------- /_scripts/setup_time_brother.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | druckerip=192.168.0.49 4 | dosepoch=`date +%s -d "1980-01-01 00:00:00"` 5 | unixseconds=`date +%s` 6 | mydate=`echo "$unixseconds - $dosepoch" | bc` 7 | #echo $dosepoch 8 | #echo $unixseconds 9 | #echo $mydate 10 | curl -d "DateTime=$mydate" http://$druckerip/fax/general_setup.html?kind=item -u admin: 11 | -------------------------------------------------------------------------------- /etc_init.d_fhem_script.txt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # description: Start or stop the fhem server 3 | # Added by Alex Peuchert 4 | 5 | # modified by A. Schulz 6 | 7 | ### BEGIN INIT INFO 8 | # Provides: fhem.pl 9 | # Required-Start: $local_fs $remote_fs 10 | # Required-Stop: $local_fs $remote_fs 11 | # Default-Start: 2 3 4 5 12 | # Default-Stop: 0 1 6 13 | # Short-Description: FHEM server 14 | ### END INIT INFO 15 | 16 | set -e 17 | cd /opt/fhem 18 | port=7072 19 | 20 | case "$1" in 21 | 'start') 22 | echo "Starting fhem..." 23 | #perl fhem.pl fhem.cfg 24 | /opt/fhem/startfhem 25 | RETVAL=$? 26 | ;; 27 | 'stop') 28 | echo "Stopping fhem..." 29 | /opt/fhem/stopfhem 30 | #perl fhem.pl $port "shutdown" 31 | RETVAL=$? 32 | ;; 33 | 'status') 34 | cnt=`ps -ef | grep "watchdogloop.sh" | grep -v grep | wc -l` 35 | if [ "$cnt" -eq "0" ] ; then 36 | echo "watchdog is not running" 37 | else 38 | echo "watchdog is running" 39 | fi 40 | cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l` 41 | if [ "$cnt" -eq "0" ] ; then 42 | echo "fhem is not running" 43 | else 44 | echo "fhem is running" 45 | fi 46 | ;; 47 | *) 48 | echo "Usage: $0 { start | stop | status }" 49 | RETVAL=1 50 | ;; 51 | esac 52 | exit $RETVAL 53 | -------------------------------------------------------------------------------- /killfhem.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ## --- Variablen ggf. anpassen! ------------------------------ 4 | 5 | # Home-Verzeichnis 6 | home=/opt/fhem 7 | 8 | # FHEM-Port 9 | port=7072 10 | 11 | # Spalten in der Ausgabe des Befehls ps -ef , die PID enthalten (von-bis) 12 | pidCols="10-14" 13 | 14 | # Stop fhem 15 | 16 | cd $home 17 | 18 | echo Stop fhem 19 | 20 | RETVAL=0 21 | 22 | cnt=$(ps -ef | grep "fhem.pl" | grep -v grep | wc -l) 23 | if [ "$cnt" -ge "0" ] ; then 24 | perl fhem.pl $port "shutdown" & 25 | RETVAL=$? 26 | 27 | # Etwas Zeit geben 28 | sleep 10; 29 | 30 | # FHEM PID suchen / beenden 31 | #pid=$(ps -ef | grep -v grep | grep fhem.pl | cut -c10-14); 32 | #if test $pid 33 | #then 34 | 35 | # Alle uebriggebliebenen Prozesse beenden 36 | for pid in $(ps -ef | grep -v grep | grep fhem.pl | cut -c$pidCols) 37 | do 38 | echo "killing FHEM. PID: $pid"; 39 | # Prozess beenden 40 | kill $pid & 41 | # Etwas warten 42 | sleep 3; 43 | # Wenn nicht beendet - hart terminieren 44 | kill -9 $pid 45 | RETVAL=0 46 | done 47 | #fi 48 | 49 | fi 50 | 51 | #return $RETVAL 52 | -------------------------------------------------------------------------------- /killwatchdog.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo Stop watchdog 4 | killall watchdogloop.sh 5 | -------------------------------------------------------------------------------- /refresh_commandref.sh: -------------------------------------------------------------------------------- 1 | perl contrib/commandref_join.pl 2 | -------------------------------------------------------------------------------- /runfhem.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | home=/opt/fhem 4 | 5 | cd $home 6 | 7 | #if test $1 8 | #then 9 | 10 | cnt=$(ps -ef | grep "fhem.pl" | grep -v grep | wc -l) 11 | if [ "$cnt" -eq "0" ] ; then 12 | echo "Starting fhem..." 13 | #sudo -u fhem perl fhem.pl fhem.cfg 14 | perl fhem.pl fhem.cfg 15 | RETVAL=$? 16 | else 17 | echo "fhem is allready running. skipping" 18 | RETVAL=1 19 | fi 20 | 21 | #else 22 | # echo "usage: runfhem.sh "; 23 | # RETVAL=1 24 | #fi 25 | 26 | #return $RETVAL 27 | -------------------------------------------------------------------------------- /runwatchdog.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/runwatchdog.sh -------------------------------------------------------------------------------- /startfhem: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | home=/opt/fhem 4 | 5 | cd $home 6 | 7 | # Start watchdog 8 | #cnt=`ps -ef | grep "watchdogloop" | grep -v grep | wc -l` 9 | #if [ "$cnt" -eq "0" ] ; then 10 | # cnt=`ps -ef | grep "runwatchdog" | grep -v grep | wc -l` 11 | # if [ "$cnt" -eq "0" ] ; then 12 | # #sudo -u fhem ./runwatchdog.sh 13 | # ./runwatchdog.sh 14 | # fi 15 | #fi 16 | 17 | sudo -u fhem ./runwatchdog.sh 2>>log/watchdog_err.log 18 | 19 | 20 | #cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l` 21 | #if [ "$cnt" -eq "0" ] ; then 22 | # echo "Starting fhem..." 23 | # #sudo -u fhem perl fhem.pl fhem.cfg 24 | # perl fhem.pl fhem.cfg 25 | # RETVAL=$? 26 | #else 27 | # echo "fhem is allready running" 28 | # RETVAL=0 29 | #fi 30 | 31 | sudo -u fhem ./runfhem.sh 2>>log/watchdog_err.log 32 | 33 | #return $RETVAL 34 | -------------------------------------------------------------------------------- /stopfhem: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | home=/opt/fhem 4 | 5 | cd $home 6 | 7 | 8 | # Stop watchdog & fhem 9 | 10 | #echo Stop watchdog and fhem 11 | 12 | #sudo -u fhem ./killwatchdog.sh 2>>log/watchdog_err.log 13 | sudo ./killwatchdog.sh 2>>log/watchdog_err.log 14 | #sudo -u fhem ./killfhem.sh 2>>log/watchdog_err.log 15 | sudo ./killfhem.sh 2>>log/watchdog_err.log 16 | 17 | #return $? 18 | -------------------------------------------------------------------------------- /watchdogloop.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/watchdogloop.sh -------------------------------------------------------------------------------- /www/gplot/SM_CPUStat.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Anzeige: system cpu auslastung 4 | # 5 | # Daten: user nice system idle iowait irq softirq 6 | # Beispiel aus dem Logfile: 7 | # 2014-01-23_23:37:59 sysmon stat_cpu_percent: 32.17 0.00 18.53 37.72 0.15 0.04 11.38 8 | # 9 | # 10 | 11 | set terminal png transparent size crop 12 | 13 | set output '.png' 14 | set xdata time 15 | set timefmt "%Y-%m-%d_%H:%M:%S" 16 | set xlabel " " 17 | set ytics 18 | set yrange [0:100] 19 | set y2range [0:100] 20 | 21 | set title '' 22 | set grid xtics y2tics 23 | 24 | set y2label "Auslastung %" 25 | 26 | #FileLog 4:stat_cpu_percent:0:$fld[3] 27 | #FileLog 5:stat_cpu_percent:0:$fld[4] 28 | #FileLog 6:stat_cpu_percent:0:$fld[5] 29 | #FileLog 7:stat_cpu_percent:0:$fld[6] 30 | #FileLog 8:stat_cpu_percent:0:$fld[7] 31 | #FileLog 9:stat_cpu_percent:0:$fld[8] 32 | #FileLog 10:stat_cpu_percent:0:$fld[9] 33 | 34 | plot \ 35 | "< awk '/load avg:/ {print $1, $4}' " \ 36 | using 1:2 ls l0 axes x1y1 title 'user' lw 1.5 with lines \ 37 | "< awk '/load avg5:/ {print $1, $4}' " \ 38 | using 1:2 ls l1 axes x1y1 title 'nice' lw 1.5 with lines \ 39 | "< awk '/load avg15:/ {print $1, $4}' " \ 40 | using 1:2 ls l2 axes x1y1 title 'system' lw 1.5 with lines 41 | "< awk '/load avg15:/ {print $1, $4}' " \ 42 | using 1:2 ls l3 axes x1y1 title 'idle' lw 1.5 with lines 43 | "< awk '/load avg15:/ {print $1, $4}' " \ 44 | using 1:2 ls l4 axes x1y1 title 'iowait' lw 1.5 with lines 45 | "< awk '/load avg15:/ {print $1, $4}' " \ 46 | using 1:2 ls l5 axes x1y1 title 'irq' lw 1.5 with lines 47 | "< awk '/load avg15:/ {print $1, $4}' " \ 48 | using 1:2 ls l6 axes x1y1 title 'softirq' lw 1.5 with lines 49 | 50 | -------------------------------------------------------------------------------- /www/gplot/SM_CPUStatSum.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Anzeige: system cpu auslastung 4 | # 5 | # Daten: user nice system idle iowait irq softirq 6 | # Beispiel aus dem Logfile: 7 | # 2014-01-23_23:37:59 sysmon stat_cpu_percent: 32.17 0.00 18.53 37.72 0.15 0.04 11.38 8 | # 9 | # 10 | 11 | set terminal png transparent size crop 12 | 13 | set output '.png' 14 | set xdata time 15 | set timefmt "%Y-%m-%d_%H:%M:%S" 16 | set xlabel " " 17 | set ytics 18 | set yrange [0:100] 19 | set y2range [0:100] 20 | 21 | set title '' 22 | set grid xtics y2tics 23 | 24 | set y2label "Auslastung %" 25 | 26 | #FileLog 4:stat_cpu_percent:0:$fld[3] 27 | #FileLog 5:stat_cpu_percent:0:$fld[3]+$fld[4] 28 | #FileLog 6:stat_cpu_percent:0:$fld[3]+$fld[4]+$fld[5] 29 | #FileLog 7:stat_cpu_percent:0:$fld[3]+$fld[4]+$fld[5]+$fld[6] 30 | #FileLog 8:stat_cpu_percent:0:$fld[3]+$fld[4]+$fld[5]+$fld[6]+$fld[7] 31 | #FileLog 9:stat_cpu_percent:0:$fld[3]+$fld[4]+$fld[5]+$fld[6]+$fld[7]+$fld[8] 32 | #FileLog 10:stat_cpu_percent:0:$fld[3]+$fld[4]+$fld[5]+$fld[6]+$fld[7]+$fld[8]+$fld[9] 33 | 34 | plot \ 35 | "< awk '/load avg:/ {print $1, $4}' " \ 36 | using 1:2 ls l0 axes x1y1 title 'user' lw 1.0 with lines \ 37 | "< awk '/load avg5:/ {print $1, $4}' " \ 38 | using 1:2 ls l1 axes x1y1 title 'nice' lw 1.0 with lines \ 39 | "< awk '/load avg15:/ {print $1, $4}' " \ 40 | using 1:2 ls l2 axes x1y1 title 'system' lw 1.0 with lines 41 | "< awk '/load avg15:/ {print $1, $4}' " \ 42 | using 1:2 ls l3 axes x1y1 title 'idle' lw 1.0 with lines 43 | "< awk '/load avg15:/ {print $1, $4}' " \ 44 | using 1:2 ls l4 axes x1y1 title 'iowait' lw 1.0 with lines 45 | "< awk '/load avg15:/ {print $1, $4}' " \ 46 | using 1:2 ls l5 axes x1y1 title 'irq' lw 1.0 with lines 47 | "< awk '/load avg15:/ {print $1, $4}' " \ 48 | using 1:2 ls l6 axes x1y1 title 'softirq' lw 1.0 with lines 49 | 50 | -------------------------------------------------------------------------------- /www/gplot/SM_CPUStatTotal.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Anzeige: system cpu Gesamtauslastung 4 | # 5 | # Daten: user nice system idle iowait irq softirq 6 | # Beispiel aus dem Logfile: 7 | # 2014-01-23_23:37:59 sysmon stat_cpu_percent: 32.17 0.00 18.53 37.72 0.15 0.04 11.38 8 | # 9 | # 10 | # 11 | set terminal png transparent size crop 12 | 13 | set output '.png' 14 | set xdata time 15 | set timefmt "%Y-%m-%d_%H:%M:%S" 16 | set xlabel " " 17 | set ytics 18 | set yrange [0:100] 19 | set y2range [0:100] 20 | 21 | set title '' 22 | set grid xtics y2tics 23 | 24 | set y2label "Auslastung %" 25 | 26 | #FileLog 0:stat_cpu_percent:0:$fld[3]+$fld[4]+$fld[5]+$fld[7]+$fld[8]+$fld[9] 27 | 28 | plot \ 29 | "< awk '/load avg:/ {print $1, $4}' " \ 30 | using 1:2 ls l0fill axes x1y1 title 'Gesamtauslastung' lw 1.0 with lines 31 | 32 | -------------------------------------------------------------------------------- /www/gplot/SM_CPUTemp.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Anzeige der gemessenen CPU Temperatur und des errechneten Durchschnitts 4 | # 5 | # Beispiel aus dem Logfile: 6 | # 2013-11-16_23:06:05 sysmon cpu_temp_avg: 49.6 7 | # 2013-11-16_23:06:05 sysmon cpu_temp: 49.77 8 | # 9 | 10 | set terminal png transparent size crop 11 | 12 | set output '.png' 13 | set xdata time 14 | set timefmt "%Y-%m-%d_%H:%M:%S" 15 | set xlabel " " 16 | set ytics 17 | set yrange [450:1050] 18 | set y2tics 19 | set title '' 20 | set grid xtics y2tics 21 | 22 | set ylabel "Frequenz" 23 | set y2label "Temperatur in C" 24 | 25 | #FileLog 4:cpu_temp_avg\x3a:0: 26 | #FileLog 4:cpu_temp\x3a:0: 27 | #FileLog 4:cpu_freq\x3a:0: 28 | 29 | plot \ 30 | "< egrep 'cpu_temp_avg:' "\ 31 | using 1:4 axes x1y2 title 'Durchschnitt' ls l4 lw 3 with lines \ 32 | "< egrep 'cpu_temp:' "\ 33 | using 1:4 axes x1y2 title 'Temperatur' ls l0 lw 1 with lines \ 34 | "< egrep 'cpu_freq:' "\ 35 | using 1:4 axes x1y1 title 'Frequenz' ls l1fill lw 1 with steps -------------------------------------------------------------------------------- /www/gplot/SM_DB_CPUFreq.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Anzeige: CPU Frequenz 4 | # 5 | 6 | set terminal png transparent size crop 7 | set output '.png' 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | set title '' 12 | set ytics 13 | set y2tics 14 | set grid ytics y2tics 15 | set ylabel "Frequenz" 16 | 17 | #DbLog :cpu_freq::: 18 | 19 | plot \ 20 | "< awk '/load avg:/ {print $1, $4}' " \ 21 | using 1:2 ls l0fill axes x1y1 title 'MHz' lw 1 with lines \ -------------------------------------------------------------------------------- /www/gplot/SM_DB_CPUTemp.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Anzeige der gemessenen CPU Temperatur und des errechneten Durchschnitts 4 | # 5 | 6 | set terminal png transparent size crop 7 | set output '.png' 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | set title '' 12 | set ytics 13 | set grid ytics y2tics 14 | set ylabel "Temperatur" 15 | set y2label "Temperatur" 16 | 17 | #DbLog :cpu_temp::: 18 | #DbLog :cpu_temp_avg::: 19 | 20 | plot \ 21 | "< awk '/load avg:/ {print $1, $4}' " \ 22 | using 1:2 ls l0 axes x1y1 title 'Temp' lw 1 with lines \ 23 | "< awk '/load avg5:/ {print $1, $4}' " \ 24 | using 1:2 ls l1 axes x1y1 title 'Temp' lw 2 with lines \ -------------------------------------------------------------------------------- /www/gplot/SM_DB_Load.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Anzeige: system load 4 | # 5 | # define wl_sysmon_load SVG myDbLog:SMLoadDB:CURRENT 6 | # attr wl_sysmon_load label "Load Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}" 7 | # attr wl_sysmon_load plotfunction sysmon 8 | # attr wl_sysmon_load room RaspberryPi 9 | # 10 | 11 | set terminal png transparent size crop 12 | set output '.png' 13 | set xdata time 14 | set timefmt "%Y-%m-%d_%H:%M:%S" 15 | set xlabel " " 16 | set title '' 17 | set ytics 18 | set y2tics 19 | set grid ytics y2tics 20 | set ylabel "Last 1 Minute" 21 | set y2label "Last 5 / 15 Minuten" 22 | set yrange [0.00:1.0] 23 | set y2range [0.00:0.35] 24 | 25 | #DbLog :loadavg:::$val=~s/([\d.]*).[\d.]*.[\d.]*/$1/eg 26 | #DbLog :loadavg:::$val=~s/[\d.]*.([\d.]*).[\d.]*/$1/eg 27 | #DbLog :loadavg:::$val=~s/[\d.]*.[\d.]*.([\d.]*)/$1/eg 28 | 29 | plot \ 30 | "< awk '/load avg:/ {print $1, $4}' " \ 31 | using 1:2 ls l0fill axes x1y1 title '1 min' lw 1 with lines \ 32 | "< awk '/load avg5:/ {print $1, $4}' " \ 33 | using 1:2 ls l1 axes x1y2 title '5 min' lw 2 with lines \ 34 | "< awk '/load avg15:/ {print $1, $4}' " \ 35 | using 1:2 ls l2 axes x1y2 title '15 min' lw 2 with lines -------------------------------------------------------------------------------- /www/gplot/SM_DB_Network_eth0.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Network-Traffic ETH0 (DbLog) 4 | # 5 | 6 | set terminal png transparent size crop 7 | set output '.png' 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | 12 | set title '' 13 | set ylabel "Traffic RX / TX" 14 | set y2label "Traffic Total" 15 | set grid 16 | set ytics 17 | set y2tics 18 | set format y "%.2f" 19 | set format y2 "%.2f" 20 | 21 | #DbLog :eth0_diff:::$val=~s/^RX..([\d.]*).*/$1/eg 22 | #DbLog :eth0_diff:::$val=~s/.*TX..([\d.]*).*/$1/eg 23 | #DbLog :eth0_diff:::$val=~s/.*Total..([\d.]*).*/$1/eg 24 | 25 | plot \ 26 | "< awk '/eth0_diff:/ {print $1, $4}' " \ 27 | using 1:2 ls l0 axes x1y1 title 'RX' lw 1 with lines \ 28 | "< awk '/eth0_diff:/ {print $1, $4}' " \ 29 | using 1:2 ls l1 axes x1y1 title 'TX' lw 1 with lines \ 30 | "< awk '/eth0_diff:/ {print $1, $4}' " \ 31 | using 1:2 ls l2 axes x1y2 title 'Total' lw 1 with lines \ -------------------------------------------------------------------------------- /www/gplot/SM_DB_RAM.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Visualisierung: RAM-Nutzung 4 | # 5 | 6 | set terminal png transparent size crop 7 | set output '.png' 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | 12 | set title '' 13 | set ylabel "Ram Total / Free (MB)" 14 | set y2label "Ram Used (MB)" 15 | set grid 16 | set ytics 17 | set y2tics 18 | set format y "%.2f" 19 | set format y2 "%.2f" 20 | 21 | #DbLog :ram:::$val=~s/^Total..([\d.]*).*/$1/eg 22 | #DbLog :ram:::$val=~s/.*Used..([\d.]*).*/$1/eg 23 | #DbLog :ram:::$val=~s/.*Free..([\d.]*).*/$1/eg 24 | 25 | plot \ 26 | "< awk '/ram:/ {print $1, $4}' " \ 27 | using 1:2 ls l0 axes x1y1 title 'Total' lw 1 with lines \ 28 | "< awk '/ram:/ {print $1, $4}' " \ 29 | using 1:2 ls l1 axes x1y2 title 'Used' lw 1 with lines \ 30 | "< awk '/ram:/ {print $1, $4}' " \ 31 | using 1:2 ls l2 axes x1y1 title 'Free' lw 1 with lines \ -------------------------------------------------------------------------------- /www/gplot/SM_DB_all.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Anzeige verschiedener Statistiken aus SYSMON (DbLog) 4 | # 5 | 6 | set terminal png transparent size crop 7 | set output '.png' 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | set title '' 12 | set ytics 13 | set grid ytics y2tics 14 | set ylabel "Temperatur" 15 | set y2label "Last" 16 | 17 | #DbLog :cpu_temp::: 18 | #DbLog :cpu_temp_avg::: 19 | #DbLog :cpu_freq::: 20 | #DbLog :loadavg:::$val=~s/([\d.]*).[\d.]*.[\d.]*/$1/eg 21 | #DbLog :loadavg:::$val=~s/[\d.]*.([\d.]*).[\d.]*/$1/eg 22 | #DbLog :loadavg:::$val=~s/[\d.]*.[\d.]*.([\d.]*)/$1/eg 23 | 24 | plot \ 25 | "< awk '/load avg:/ {print $1, $4}' " \ 26 | using 1:2 ls l0 axes x1y1 title 'Temp' lw 1 with lines \ 27 | "< awk '/load avg5:/ {print $1, $4}' " \ 28 | using 1:2 ls l1 axes x1y1 title 'Temp' lw 2 with lines \ 29 | "< awk '/load avg:/ {print $1, $4}' " \ 30 | using 1:2 ls l2 axes x1y1 title 'MHz' lw 1 with lines \ 31 | "< awk '/load avg5:/ {print $1, $4}' " \ 32 | using 1:2 ls l3 axes x1y2 title '1 Min' lw 2 with lines \ 33 | "< awk '/load avg:/ {print $1, $4}' " \ 34 | using 1:2 ls l4 axes x1y2 title '5 Min' lw 1 with lines \ 35 | "< awk '/load avg5:/ {print $1, $4}' " \ 36 | using 1:2 ls l5 axes x1y2 title '15 Min' lw 2 with lines \ 37 | -------------------------------------------------------------------------------- /www/gplot/SM_FS_root.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Visualisierung: Dateisysteminformationen (/) 4 | # 5 | # Beispiel aus dem Logfile: 6 | # 2013-11-21_20:00:54 sysmon ~ /: Total: 7404 MB, Used: 3292 MB, 47 %, Available: 3787 MB 7 | # 2013-11-21_20:00:54 sysmon ~ /media/usb1: Total: 30942 MB, Used: 6330 MB, 21 %, Available: 24613 MB 8 | # 2013-11-21_20:00:54 sysmon fs_root: Total: 7404 MB, Used: 3292 MB, 47 %, Available: 3787 MB 9 | # 10 | 11 | set terminal png transparent size crop 12 | 13 | set output '.png' 14 | set xdata time 15 | set timefmt "%Y-%m-%d_%H:%M:%S" 16 | set xlabel " " 17 | set y2tics 18 | set title '' 19 | set grid xtics y2tics 20 | 21 | set yrange [0:90] 22 | set y2range [0:7500] 23 | 24 | set ylabel "Nutzung %" 25 | set y2label "Nutzung MB" 26 | 27 | #FileLog 5:fs_root\x3a:0: 28 | #FileLog 8:fs_root\x3a:0: 29 | #FileLog 10:fs_root\x3a:0: 30 | 31 | #----FileLog 0:fs_root|~\s/\x3a:0:$fld[4]+$fld[5] 32 | #----FileLog 0:fs_root|~\s/\x3a:0:$fld[7]+$fld[8] 33 | #----FileLog 0:fs_root|~\s/\x3a:0:$fld[9]+$fld[10] 34 | #nur ~# FileLog 6:~\s/\x3a:0: 35 | #nur ~# FileLog 9:~\s/\x3a:0: 36 | #nur ~# FileLog 11:~\s/\x3a:0: 37 | #nur fs# FileLog 5:fs_root\x3a:0: 38 | #nur fs# FileLog 8:fs_root\x3a:0: 39 | #nur fs# FileLog 10:fs_root\x3a:0: 40 | 41 | plot \ 42 | "< egrep 'total:' "\ 43 | using 1:6 axes x1y2 title '' ls l0 lw 2 with lines 44 | plot \ 45 | "< egrep 'used:' "\ 46 | using 1:9 axes x1y2 title 'Verwendet MB' ls l2fill lw 0.5 with lines 47 | plot \ 48 | "< egrep 'percent:' "\ 49 | using 1:11 axes x1y1 title 'Verwendet %' ls l1 lw 1.5 with lines 50 | -------------------------------------------------------------------------------- /www/gplot/SM_FS_usb1.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Visualisierung: Dateisysteminformationen (/media/usb1) 4 | # 5 | # Beispiel aus dem Logfile: 6 | # 2013-11-21_20:00:54 sysmon ~ /: Total: 7404 MB, Used: 3292 MB, 47 %, Available: 3787 MB 7 | # 2013-11-21_20:00:54 sysmon ~ /media/usb1: Total: 30942 MB, Used: 6330 MB, 21 %, Available: 24613 MB 8 | # 2013-11-21_20:00:54 sysmon fs_usb1: Total: 7404 MB, Used: 3292 MB, 47 %, Available: 3787 MB 9 | # 10 | 11 | set terminal png transparent size crop 12 | 13 | set output '.png' 14 | set xdata time 15 | set timefmt "%Y-%m-%d_%H:%M:%S" 16 | set xlabel " " 17 | set y2tics 18 | set title '' 19 | set grid xtics y2tics 20 | 21 | set yrange [0:90] 22 | set y2range [0:30700] 23 | 24 | set ylabel "Nutzung %" 25 | set y2label "Nutzung MB" 26 | 27 | #FileLog 5:fs_usb1\x3a:0: 28 | #FileLog 8:fs_usb1\x3a:0: 29 | #FileLog 10:fs_usb1\x3a:0: 30 | 31 | #----FileLog 0:fs_usb1|~\s/media/usb1\x3a:0:$fld[4]+$fld[5] 32 | #----FileLog 0:fs_usb1|~\s/media/usb1\x3a:0:$fld[7]+$fld[8] 33 | #----FileLog 0:fs_usb1|~\s/media/usb1\x3a:0:$fld[9]+$fld[10] 34 | #nur ~# FileLog 6:~\s/media/usb1\x3a:0: 35 | #nur ~# FileLog 9:~\s/media/usb1\x3a:0: 36 | #nur ~# FileLog 11:~\s/media/usb1\x3a:0: 37 | #nur fs# FileLog 5:fs_usb1\x3a:0: 38 | #nur fs# FileLog 8:fs_usb1\x3a:0: 39 | #nur fs# FileLog 10:fs_usb1\x3a:0: 40 | 41 | plot \ 42 | "< egrep 'total:' "\ 43 | using 1:6 axes x1y2 title '' ls l0 lw 2 with lines 44 | plot \ 45 | "< egrep 'used:' "\ 46 | using 1:9 axes x1y2 title 'Verwendet MB' ls l2fill lw 0.5 with lines 47 | plot \ 48 | "< egrep 'percent:' "\ 49 | using 1:11 axes x1y1 title 'Verwendet %' ls l1 lw 1.5 with lines 50 | -------------------------------------------------------------------------------- /www/gplot/SM_Load.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Anzeige: system load 4 | # 5 | # Beispiel aus dem Logfile: 6 | # 2013-11-18_21:33:17 sysmon loadavg: 0.11 0.11 0.17 7 | # 8 | # 9 | 10 | set terminal png transparent size crop 11 | 12 | set output '.png' 13 | set xdata time 14 | set timefmt "%Y-%m-%d_%H:%M:%S" 15 | set xlabel " " 16 | set ytics 17 | 18 | 19 | set title '' 20 | set grid xtics y2tics 21 | 22 | set y2label "Load average" 23 | 24 | 25 | #FileLog 4:load:0: 26 | #FileLog 5:load:0: 27 | #FileLog 6:load:0: 28 | 29 | plot \ 30 | "< awk '/load avg:/ {print $1, $4}' " \ 31 | using 1:2 ls l8fill axes x1y1 title '1 min' lw 0 with lines \ 32 | "< awk '/load avg5:/ {print $1, $4}' " \ 33 | using 1:2 ls l0 axes x1y1 title '5 min' lw 2 with lines \ 34 | "< awk '/load avg15:/ {print $1, $4}' " \ 35 | using 1:2 ls l4 axes x1y1 title '15 min' lw 3 with lines 36 | -------------------------------------------------------------------------------- /www/gplot/SM_Network_eth0.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Network-Traffic ETH0 4 | # 5 | # Beispiel aus dem Logfile: 6 | # 2013-11-17_21:35:57 sysmon eth0_diff: Received: 23.54 MB, Sent: 42.64 MB, Total: 66.18 MB 7 | # 8 | 9 | set terminal png transparent size crop 10 | 11 | set output '.png' 12 | set xdata time 13 | set timefmt "%Y-%m-%d_%H:%M:%S" 14 | set xlabel " " 15 | set y2tics 16 | set title '' 17 | set grid xtics y2tics 18 | 19 | set y2label "Traffic in MB" 20 | 21 | #FileLog 5:eth0_diff\x3a:0: 22 | #FileLog 8:eth0_diff\x3a:0: 23 | 24 | plot \ 25 | "< egrep 'RX:' "\ 26 | using 1:5 axes x1y2 title 'Empfangen' ls l1 lw 2 with lines \ 27 | "< egrep 'TX:' "\ 28 | using 1:8 axes x1y2 title 'Gesendet' ls l0 lw 2 with lines 29 | -------------------------------------------------------------------------------- /www/gplot/SM_Network_eth0t.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Network-Traffic ETH0 4 | # 5 | # Beispiel aus dem Logfile: 6 | # 2013-11-17_21:35:57 sysmon eth0_diff: Received: 23.54 MB, Sent: 42.64 MB, Total: 66.18 MB 7 | # 8 | 9 | set terminal png transparent size crop 10 | 11 | set output '.png' 12 | set xdata time 13 | set timefmt "%Y-%m-%d_%H:%M:%S" 14 | set xlabel " " 15 | set y2tics 16 | set title '' 17 | set grid xtics y2tics 18 | 19 | set y2label "Traffic in MB" 20 | 21 | #FileLog 5:eth0_diff\x3a:0: 22 | #FileLog 8:eth0_diff\x3a:0: 23 | #FileLog 11:eth0_diff\x3a:0: 24 | 25 | plot \ 26 | "< egrep 'RX:' "\ 27 | using 1:5 axes x1y2 title 'Empfangen' ls l1 lw 2 with lines \ 28 | "< egrep 'TX:' "\ 29 | using 1:8 axes x1y2 title 'Gesendet' ls l0 lw 2 with lines \ 30 | "< egrep 'Total:' "\ 31 | using 1:11 axes x1y2 title 'Gesamt' ls l2 lw 2 with lines 32 | -------------------------------------------------------------------------------- /www/gplot/SM_Network_wlan0.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Network-Traffic WLAN0 4 | # 5 | # Beispiel aus dem Logfile: 6 | # 2013-11-17_21:35:57 sysmon wlan0_diff: Received: 23.54 MB, Sent: 42.64 MB, Total: 66.18 MB 7 | # 8 | 9 | set terminal png transparent size crop 10 | 11 | set output '.png' 12 | set xdata time 13 | set timefmt "%Y-%m-%d_%H:%M:%S" 14 | set xlabel " " 15 | set y2tics 16 | set title '' 17 | set grid xtics y2tics 18 | 19 | set y2label "Traffic in MB" 20 | 21 | #FileLog 5:wlan0_diff\x3a:0: 22 | #FileLog 8:wlan0_diff\x3a:0: 23 | 24 | plot \ 25 | "< egrep 'RX:' "\ 26 | using 1:5 axes x1y2 title 'Empfangen' ls l1 lw 2 with lines \ 27 | "< egrep 'TX:' "\ 28 | using 1:8 axes x1y2 title 'Gesendet' ls l0 lw 2 with lines 29 | -------------------------------------------------------------------------------- /www/gplot/SM_RAM.gplot: -------------------------------------------------------------------------------- 1 | # SYSMON 2 | # 3 | # Visualisierung: RAM-Nutzung 4 | # 5 | # Beispiel aus dem Logfile: 6 | # 2013-11-19_21:51:41 sysmon ram: Total: 485 MB, Used: 118 MB, 24.33 %, Free: 366 MB 7 | # 8 | 9 | set terminal png transparent size crop 10 | 11 | set output '.png' 12 | set xdata time 13 | set timefmt "%Y-%m-%d_%H:%M:%S" 14 | set xlabel " " 15 | set y2tics 16 | set title '' 17 | set grid xtics y2tics 18 | 19 | set y2label "RAM-Nutzung MB" 20 | set y2range [0:2000] 21 | 22 | #FileLog 5:ram\x3a:0: 23 | #FileLog 8:ram\x3a:0: 24 | 25 | plot \ 26 | "< egrep 'total:' "\ 27 | using 1:5 axes x1y2 title '' ls l0 lw 2 with lines 28 | plot \ 29 | "< egrep 'used:' "\ 30 | using 1:8 axes x1y2 title 'Verwendet' ls l2fill lw 0.5 with lines 31 | -------------------------------------------------------------------------------- /www/gplot/SM_power_ac.gplot: -------------------------------------------------------------------------------- 1 | set terminal png transparent size crop 2 | set output '.png' 3 | set xdata time 4 | set timefmt "%Y-%m-%d_%H:%M:%S" 5 | set xlabel " " 6 | set title '' 7 | set ytics 8 | set y2tics 9 | set y3tics ("on" 1, "off" 0) 10 | set grid y2tics 11 | set ylabel "Spannung (V)" 12 | set y2label "Strom (mA)" 13 | set y3label "" 14 | set yrange [4.4:5.2] 15 | #set yrange [-0.1:5.2] 16 | set y2range [0:1000] 17 | set y3range [0:2] 18 | 19 | #FileLog 6:power_ac_stat\x3a:0: 20 | # --- FileLog 7:power_ac_stat\x3a:0:$fld[6]/1000 21 | #FileLog 7:power_ac_stat\x3a:0: 22 | #FileLog 4:power_ac_stat\x3a:0: 23 | 24 | plot "" using 1:2 axes x1y1 title 'Spannung' ls l0 lw 1.2 with lines,\ 25 | "" using 1:2 axes x1y2 title 'Strom' ls l2 lw 1.2 with lines,\ 26 | "" using 1:2 axes x1y3 title 'Online' ls l1fill lw 0 with steps 27 | -------------------------------------------------------------------------------- /www/gplot/SM_power_battery.gplot: -------------------------------------------------------------------------------- 1 | set terminal png transparent size crop 2 | set output '.png' 3 | set xdata time 4 | set timefmt "%Y-%m-%d_%H:%M:%S" 5 | set xlabel " " 6 | set title '' 7 | set ytics 8 | set y2tics 9 | set y3tics ("on" 1, "off" 0) 10 | set grid y2tics 11 | set ylabel "Spannung (V)" 12 | set y2label "Strom (mA)" 13 | set y3label "" 14 | set y4label "Ladung" 15 | set yrange [3.0:5.2] 16 | set y2range [-5:1000] 17 | set y3range [0:2] 18 | set y4range [0:105] 19 | 20 | #FileLog 6:power_battery_stat\x3a:0: 21 | # --- FileLog 7:power_battery_stat\x3a:0:$fld[6]/1000 22 | #FileLog 7:power_battery_stat\x3a:0: 23 | #FileLog 8:power_battery_stat\x3a:0: 24 | #FileLog 4:power_battery_stat\x3a:0: 25 | 26 | 27 | plot "" using 1:2 axes x1y1 title 'Spannung' ls l0 lw 1.2 with lines,\ 28 | "" using 1:2 axes x1y2 title 'Strom' ls l2 lw 1.2 with lines,\ 29 | "" using 1:2 axes x1y4 title 'Ladung' ls l3 lw 1.8 with lines,\ 30 | "" using 1:2 axes x1y3 title 'Online' ls l1fill lw 0 with steps 31 | -------------------------------------------------------------------------------- /www/gplot/SM_power_usb.gplot: -------------------------------------------------------------------------------- 1 | set terminal png transparent size crop 2 | set output '.png' 3 | set xdata time 4 | set timefmt "%Y-%m-%d_%H:%M:%S" 5 | set xlabel " " 6 | set title '' 7 | set ytics 8 | set y2tics 9 | set grid y2tics 10 | set ylabel "Spannung (V)" 11 | set y2label "Strom (mA)" 12 | set yrange [4.4:5.2] 13 | #set y2range [0:1000] 14 | set y3range [0:2] 15 | 16 | #FileLog 6:power_usb_stat\x3a:0: 17 | # --- FileLog 7:power_usb_stat\x3a:0:$fld[6]/1000 18 | #FileLog 7:power_usb_stat\x3a:0: 19 | #FileLog 4:power_usb_stat\x3a:0: 20 | 21 | plot "" using 1:2 axes x1y1 title 'Spannung' ls l0 lw 1.2 with lines,\ 22 | "" using 1:2 axes x1y2 title 'Strom' ls l2 lw 1.2 with lines,\ 23 | "" using 1:2 axes x1y3 title 'Online' ls l1fill lw 0 with steps 24 | -------------------------------------------------------------------------------- /www/gplot/myDoorStatus.gplot: -------------------------------------------------------------------------------- 1 | ############################ 2 | # Display the power reported by the EM1010 3 | # Corresponding FileLog definition: 4 | # define ememlog FileLog /var/log/fhem/emem-%Y.log emem:power.* 5 | 6 | set terminal png transparent size crop 7 | set output '.png' 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | set ytics ("Zu" 0, "/" 0.5, "Auf" 1) 12 | set y2tics ("Zu" 0, "/" 0.5, "Auf" 1) 13 | set grid 14 | set ylabel "Status" 15 | set y2label "Status" 16 | set yrange [-0.1:1.1] 17 | set y2range [-0.1:1.1] 18 | set title '' 19 | 20 | #FileLog 4:open|closed::$fld[3]=~"closed"?0:1 21 | 22 | plot "" using 1:2 axes x1y2 title 'Tuer' ls l1fill lw 1 with steps 23 | -------------------------------------------------------------------------------- /www/gplot/myFensterStatus.gplot: -------------------------------------------------------------------------------- 1 | ############################ 2 | # Display the power reported by the EM1010 3 | # Corresponding FileLog definition: 4 | # define ememlog FileLog /var/log/fhem/emem-%Y.log emem:power.* 5 | 6 | set terminal png transparent size crop 7 | set output '.png' 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | set ytics ("Zu" 0, "/" 0.5, "Auf" 1) 12 | set y2tics ("Zu" 0, "/" 0.5, "Auf" 1) 13 | set grid 14 | set ylabel "Status" 15 | set y2label "Status" 16 | set yrange [-0.1:1.1] 17 | set y2range [-0.1:1.1] 18 | set title '' 19 | 20 | #FileLog 3:open|closed|tilted::$fld[2]=~"open"?1:$fld[2]=~"closed"?0:$fld[2]=~"tilted"?0.5:0 21 | 22 | plot "" using 1:2 axes x1y2 title 'Fenster' ls l1fill lw 1 with steps 23 | -------------------------------------------------------------------------------- /www/gplot/myFernwaerme.gplot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/www/gplot/myFernwaerme.gplot -------------------------------------------------------------------------------- /www/gplot/myGSD_DHT.gplot: -------------------------------------------------------------------------------- 1 | # Created by FHEM/98_SVG.pm, 2014-02-03 00:06:31 2 | set terminal png transparent size crop 3 | set output '.png' 4 | set xdata time 5 | set timefmt "%Y-%m-%d_%H:%M:%S" 6 | set xlabel " " 7 | set title '' 8 | set ytics nomirror 9 | #set y2tics 10 | #set grid y2tics 11 | set ylabel "Humidity (%)" 12 | set y2label "Temperature in C" 13 | 14 | #set y2range [15:25] 15 | 16 | #set y3tics 17 | #set grid y2tics 18 | #set y3label "Power V" 19 | set y3range [2:5] 20 | 21 | 22 | #FileLog 4:temperature\x3a:0: 23 | #FileLog 4:humidity\x3a:0: 24 | #FileLog 4:dewpoint\x3a:0: 25 | #FileLog 4:batteryLevel\x3a:0: 26 | 27 | plot "" using 1:2 axes x1y2 title 'Temperature' ls l0 lw 2 with lines,\ 28 | "" using 1:2 axes x1y1 title 'Humidity' ls l2fill lw 0.5 with lines,\ 29 | "" using 1:2 axes x1y2 title 'Taupunkt' ls l8 lw 2 with lines,\ 30 | "" using 1:2 axes x1y3 title 'Batterie' ls l1 lw 2 with lines 31 | -------------------------------------------------------------------------------- /www/gplot/myKS_All.gplot: -------------------------------------------------------------------------------- 1 | # 2 | # Display the measured temp and the pressure. 3 | # 4 | # FileLog definition: 5 | # define FileLog /var/log/fhem/-%Y.log 6 | # Filelog example: 7 | # define FileLog_BTHR918N_2d FileLog /var/log/fhem/BTHR918N_2d-%Y.log BTHR918N_2d 8 | # 9 | # Logfile record example: 10 | # 2014-03-29_01:01:48 EG_WZ_KS01 temperature: 21.0 11 | # 2014-03-29_01:01:48 EG_WZ_KS01 battery: ok 12 | # 2014-03-29_01:01:48 EG_WZ_KS01 humidity: 56 13 | # 2014-03-29_01:01:48 EG_WZ_KS01 airpress: 1019 14 | # 2014-03-29_01:01:48 EG_WZ_KS01 lux: 0.86 15 | # 2014-03-29_01:01:48 EG_WZ_KS01 T: 21.0 H: 56 AP: 1019 Lux: 0.86 16 | 17 | # Attribute 'small' is useful for gnuplot/-scroll only, 18 | # if plotsize is less than 800,400 19 | #set terminal png transparent small size crop 20 | 21 | set terminal png transparent size crop 22 | 23 | set output '.png' 24 | set xdata time 25 | set timefmt "%Y-%m-%d_%H:%M:%S" 26 | set xlabel " " 27 | #set ytics nomirror 28 | set ytics 29 | #set y2tics 30 | #set title '' 31 | set grid xtics ytics 32 | 33 | set title '' 34 | set ylabel "Temperature (C)" 35 | set y2label "Humidity (%)" 36 | set y3label "Pressure (kPa)" 37 | set y4label "Brightness (Lx)" 38 | 39 | #FileLog 4:temperature\x3a:0: 40 | #FileLog 4:humidity\x3a:0: 41 | #FileLog 4:airpress|pressure:0: 42 | #FileLog 4:lux|luminosity:0: 43 | 44 | plot \ 45 | "< awk $3=="temperature:" {print $1, $4}' "\ 46 | using 1:1 ls l0 axes x1y1 title 'Temperature C' with lines lw 2 47 | plot \ 48 | "< awk $3=="humidity:" {print $1, $4}' "\ 49 | using 1:1 ls l2fill axes x1y2 title 'Humidity %' with lines lw 1 50 | plot \ 51 | "< awk $3=="pressure:" {print $1, $4}' "\ 52 | using 1:1 ls l3fill axes x1y3 title 'Luftdruck kPa' with lines lw 2 53 | plot \ 54 | "< awk $3=="brightness:" {print $1, $4}' "\ 55 | using 1:1 ls l1 axes x1y4 title 'Brightness Lx' with lines lw 2 56 | -------------------------------------------------------------------------------- /www/gplot/myKS_Lux.gplot: -------------------------------------------------------------------------------- 1 | # 2 | # Display the measured temp and the pressure. 3 | # 4 | # FileLog definition: 5 | # define FileLog /var/log/fhem/-%Y.log 6 | # Filelog example: 7 | # define FileLog_BTHR918N_2d FileLog /var/log/fhem/BTHR918N_2d-%Y.log BTHR918N_2d 8 | # 9 | # Logfile record example: 10 | # 2014-03-29_01:01:48 EG_WZ_KS01 temperature: 21.0 11 | # 2014-03-29_01:01:48 EG_WZ_KS01 battery: ok 12 | # 2014-03-29_01:01:48 EG_WZ_KS01 humidity: 56 13 | # 2014-03-29_01:01:48 EG_WZ_KS01 airpress: 1019 14 | # 2014-03-29_01:01:48 EG_WZ_KS01 lux: 0.86 15 | # 2014-03-29_01:01:48 EG_WZ_KS01 T: 21.0 H: 56 AP: 1019 Lux: 0.86 16 | 17 | # Attribute 'small' is useful for gnuplot/-scroll only, 18 | # if plotsize is less than 800,400 19 | #set terminal png transparent small size crop 20 | 21 | set terminal png transparent size crop 22 | 23 | set output '.png' 24 | set xdata time 25 | set timefmt "%Y-%m-%d_%H:%M:%S" 26 | set xlabel " " 27 | #set ytics nomirror 28 | set ytics 29 | set grid xtics ytics 30 | 31 | set title '' 32 | set ylabel "Brightness (Lx)" 33 | 34 | #FileLog 4:lux|luminosity:0: 35 | 36 | plot \ 37 | "< awk $3=="brightness:" {print $1, $4}' "\ 38 | using 1:1 ls l0 axes x1y1 title 'Brightness Lx' with lines lw 2 39 | -------------------------------------------------------------------------------- /www/gplot/myKS_Press.gplot: -------------------------------------------------------------------------------- 1 | # Created by FHEM/98_SVG.pm, 2014-08-02 15:20:16 2 | set terminal png transparent size crop 3 | set output '.png' 4 | set xdata time 5 | set timefmt "%Y-%m-%d_%H:%M:%S" 6 | set xlabel " " 7 | set title '' 8 | set ytics 9 | set y2tics 10 | set grid ytics 11 | set ylabel "Pressure (kPa)" 12 | set y2label "" 13 | set yrange [990:1050] 14 | 15 | #FileLog 4:EG_WZ_KS01.pressure\x3a:0: 16 | 17 | plot "" using 1:2 axes x1y1 title 'Luftdruck kPa' ls l3fill lw 1 with lines 18 | -------------------------------------------------------------------------------- /www/gplot/myKS_TempHum.gplot: -------------------------------------------------------------------------------- 1 | # 2 | # Display the measured temp and the pressure. 3 | # 4 | # FileLog definition: 5 | # define FileLog /var/log/fhem/-%Y.log 6 | # Filelog example: 7 | # define FileLog_BTHR918N_2d FileLog /var/log/fhem/BTHR918N_2d-%Y.log BTHR918N_2d 8 | # 9 | # Logfile record example: 10 | # 2014-03-29_01:01:48 EG_WZ_KS01 temperature: 21.0 11 | # 2014-03-29_01:01:48 EG_WZ_KS01 battery: ok 12 | # 2014-03-29_01:01:48 EG_WZ_KS01 humidity: 56 13 | # 2014-03-29_01:01:48 EG_WZ_KS01 airpress: 1019 14 | # 2014-03-29_01:01:48 EG_WZ_KS01 lux: 0.86 15 | # 2014-03-29_01:01:48 EG_WZ_KS01 T: 21.0 H: 56 AP: 1019 Lux: 0.86 16 | 17 | # Attribute 'small' is useful for gnuplot/-scroll only, 18 | # if plotsize is less than 800,400 19 | #set terminal png transparent small size crop 20 | 21 | set terminal png transparent size crop 22 | 23 | set output '.png' 24 | set xdata time 25 | set timefmt "%Y-%m-%d_%H:%M:%S" 26 | set xlabel " " 27 | #set ytics nomirror 28 | set ytics 29 | set grid xtics ytics 30 | set y2tics 31 | 32 | set title '' 33 | set y2label "Temperature (C)" 34 | set ylabel "Humidity (%)" 35 | 36 | #FileLog 4:temperature\x3a:0: 37 | #FileLog 4:humidity\x3a:0: 38 | #FileLog 4:dewpoint\x3a:0: 39 | 40 | plot \ 41 | "< awk $3=="temperature:" {print $1, $4}' "\ 42 | using 1:1 ls l0 axes x1y2 title 'Temperature' with lines lw 2 43 | plot \ 44 | "< awk $3=="humidity:" {print $1, $4}' "\ 45 | using 1:1 ls l2fill axes x1y1 title 'Humidity' with lines lw 1 46 | plot \ 47 | "< awk $3=="dewpoint:" {print $1, $4}' "\ 48 | using 1:1 ls l8 axes x1y2 title 'Taupunkt' with lines lw 2 49 | -------------------------------------------------------------------------------- /www/gplot/myMotionLight.gplot: -------------------------------------------------------------------------------- 1 | # Created by FHEM/98_SVG.pm, 2013-12-25 20:44:00 2 | set terminal png transparent size crop 3 | set output '.png' 4 | set xdata time 5 | set timefmt "%Y-%m-%d_%H:%M:%S" 6 | set xlabel " " 7 | set title '' 8 | set ytics ("" 1) 9 | set y2tics 10 | set grid 11 | set ylabel "Bewegung" 12 | set y2label "Licht" 13 | set yrange [0:1.5] 14 | 15 | #FileLog 4:motion\x3a:0:$fld[2]=~"on"?1:0 16 | #FileLog 4:brightness\x3a:0: 17 | 18 | plot "" using 1:2 axes x1y1 title 'Bewegung' ls l2 lw 1 with points,\ 19 | "" using 1:2 axes x1y2 title 'Licht' ls l0 lw 1 with lines 20 | -------------------------------------------------------------------------------- /www/gplot/myNum3.gplot: -------------------------------------------------------------------------------- 1 | # Plot fuer Visualisierung von Server-Alive-log 2 | 3 | set terminal png transparent size crop 4 | set output '.png' 5 | 6 | set title '' 7 | 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | set grid xtics y2tics 12 | 13 | set ytics ("" 0, "" 7, "" 14) 14 | set ylabel "" 15 | set yrange [-1:15] 16 | 17 | set y2tics ("" 0, "" 7, "" 14) 18 | set y2label "" 19 | set y2range [-1:15] 20 | 21 | #FileLog 3: 22 | 23 | plot "" x1y1 notitle ls l1fill lw 0.5 with steps 24 | 25 | -------------------------------------------------------------------------------- /www/gplot/myPresence.gplot: -------------------------------------------------------------------------------- 1 | # Created by FHEM/98_SVG.pm, 2014-07-01 23:45:18 2 | set terminal png transparent size crop 3 | set output '.png' 4 | set xdata time 5 | set timefmt "%Y-%m-%d_%H:%M:%S" 6 | set xlabel " " 7 | set title '' 8 | #set ytics ("weg" 0, "da" 1) 9 | #set ytics ("0" 0, "1" 1, "0" 2, "1" 3, "0" 4, "1" 5) 10 | #set y2tics ("0" 0, "1" 1, "0" 2, "1" 3, "0" 4, "1" 5) 11 | #set y2tics 12 | set y2tics () 13 | set ytics () 14 | 15 | set grid ytics 16 | set ylabel "Anwesenheit" 17 | set y2label "" 18 | set yrange [-1:6] 19 | set y2range [-1:6] 20 | 21 | #logProxy FileLog:,predict:4:PRESENCE_HOME.Handy_Alex::($fld[3]+4) 22 | #logProxy FileLog:,predict:4:PRESENCE_HOME.Handy_Petra::($fld[3]+2) 23 | #logProxy FileLog:,predict:4:PRESENCE_HOME.Laptop_Alex::$fld[3]==1?1:0 24 | #logProxy ConstY:1.5 25 | #logProxy ConstY:3.5 26 | 27 | #-#FileLog 4:PRESENCE_HOME.Handy_Alex::($fld[3]+4) 28 | #-#FileLog 4:PRESENCE_HOME.Handy_Petra::($fld[3]+2) 29 | #-#FileLog 4:PRESENCE_HOME.Laptop_Alex::$fld[3]==1?1:0 30 | 31 | plot "" using 1:2 axes x1y1 title 'Alex' ls l2 lw 1.5 with fsteps,\ 32 | "" using 1:2 axes x1y1 title 'Petra' ls l1 lw 1.5 with fsteps,\ 33 | "" using 1:2 axes x1y1 title 'Think04' ls l5 lw 1.5 with fsteps,\ 34 | "" using 1:2 axes x1y1 title '' ls l7 lw 0.5 with dots,\ 35 | "" using 1:2 axes x1y1 title '' ls l7 lw 0.5 with lines -------------------------------------------------------------------------------- /www/gplot/myPress4.gplot: -------------------------------------------------------------------------------- 1 | # 2 | # Display the measured temp and the pressure. 3 | # 4 | # FileLog definition: 5 | # define FileLog /var/log/fhem/-%Y.log 6 | # Filelog example: 7 | # define FileLog_BTHR918N_2d FileLog /var/log/fhem/BTHR918N_2d-%Y.log BTHR918N_2d 8 | # 9 | # Logfile record example: 10 | # 11 | 12 | # Attribute 'small' is useful for gnuplot/-scroll only, 13 | # if plotsize is less than 800,400 14 | #set terminal png transparent small size crop 15 | 16 | set terminal png transparent size crop 17 | 18 | set output '.png' 19 | set xdata time 20 | set timefmt "%Y-%m-%d_%H:%M:%S" 21 | set xlabel " " 22 | #set ytics nomirror 23 | set ytics 24 | #set y2tics 25 | #set title '' 26 | set grid xtics ytics 27 | 28 | set title '' 29 | set ylabel "Pressure in kPa" 30 | 31 | #FileLog 4:pressure:0: 32 | 33 | plot \ 34 | "< awk $3=="pressure:" {print $1, $4}' "\ 35 | using 1:1 ls l3fill axes x1y1 title 'Luftdruck kPa' with lines lw 2 36 | -------------------------------------------------------------------------------- /www/gplot/myRaumTemp4.gplot: -------------------------------------------------------------------------------- 1 | # 2 | # Visualisierung: Raumtemperatur 3 | # 4 | # FileLog definition: 5 | # define FileLog /var/log/fhem/-%Y.log 6 | # Filelog example: 7 | # define FileLog_THR128_08 FileLog /var/log/fhem/THR128_08-%Y.log THR128_08 8 | # 9 | # Logfile record example: 10 | #2010-08-10_18:00:01 THR128_04 temperature: 20.7 11 | # 12 | 13 | # Attribute 'small' is useful for gnuplot/-scroll only, 14 | # if plotsize is less than 800,400 15 | #set terminal png transparent small size crop 16 | 17 | set terminal png transparent size crop 18 | 19 | set output '.png' 20 | set xdata time 21 | set timefmt "%Y-%m-%d_%H:%M:%S" 22 | set xlabel " " 23 | set yrange [15:29] 24 | set y2range [15:29] 25 | set y2tics 26 | #set title '' 27 | set title '' 28 | set grid xtics y2tics 29 | 30 | set y2label "Temperature in C" 31 | 32 | #FileLog 4:\x20T\x3a|temperature:0: 33 | 34 | plot \ 35 | "< egrep 'T:|temperature:' "\ 36 | using 1:4 axes x1y2 title 'Raumtemperatur' ls l0 lw 1 with lines 37 | -------------------------------------------------------------------------------- /www/gplot/myServerHeartbeat.gplot: -------------------------------------------------------------------------------- 1 | # Plot fuer Visualisierung von Server-Hearbeat-log 2 | 3 | set terminal png transparent size crop 4 | set output '.png' 5 | 6 | set title '' 7 | 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | set grid xtics y2tics 12 | 13 | set ytics ("" 0, "" 30, "" 59) 14 | set ylabel "" 15 | set yrange [-1:60] 16 | 17 | set y2tics ("" 0, "" 30, "" 59) 18 | set y2label "" 19 | set y2range [-1:60] 20 | 21 | #FileLog 3:.*Heartbeat:0: 22 | 23 | plot "" x1y1 notitle ls l1fill lw 0.5 with steps 24 | 25 | -------------------------------------------------------------------------------- /www/gplot/mySonnenaufuntergang.gplot: -------------------------------------------------------------------------------- 1 | # Sonnen-Unter- und -Aufgangzeiten plotten 2 | set terminal png transparent size crop 3 | set output '.png' 4 | set xdata time 5 | set timefmt "%Y-%m-%d_%H:%M:%S" 6 | set xlabel " " 7 | set title '' 8 | set ytics 9 | set y2tics 10 | set grid ytics 11 | set ylabel "Sonnenaufgang" 12 | set y2label "Sonnenuntergang" 13 | #set yrange [4:10] 14 | #set yrange [5:11] 15 | #set y2range [16:22] 16 | 17 | set yrange [5:15] 18 | set y2range [12:22] 19 | 20 | 21 | #FileLog 4:sunDummy.sunrise\x3a::time2dec($fld[3]) 22 | #FileLog 4:sunDummy.sunset\x3a::time2dec($fld[3]) 23 | #FileLog 4:sunDummy.sunset\x3a::time2dec($fld[3]) 24 | 25 | plot "" using 1:2 axes x1y1 title 'Sonnenaufgang' ls l6fill lw 1 with lines,\ 26 | "" using 1:2 axes x1y2 title 'Sonnenuntergang' ls l0 lw 1 with lines,\ 27 | "" using 1:2 axes x1y2 title '' ls l4fill lw 1 with lines 28 | -------------------------------------------------------------------------------- /www/gplot/mySwitch.gplot: -------------------------------------------------------------------------------- 1 | ############################ 2 | # Display the on and off values off 3 | 4 | set terminal png transparent size crop 5 | set output '.png' 6 | set xdata time 7 | set timefmt "%Y-%m-%d_%H:%M:%S" 8 | set xlabel " " 9 | set title '' 10 | set ytics ("Aus" 0, "An" 1) 11 | set y2tics ("Aus" 0, "An" 1) 12 | set yrange [-0.1:1.1] 13 | set y2range [-0.1:1.1] 14 | set ylabel "Status" 15 | set y2label "Status" 16 | 17 | #FileLog 3::0:$fld[2]=~"on"?1:0 18 | 19 | plot "< awk '{print $1, $3~/on/? 1 : 0; }' "\ 20 | using 1:2 axes x1y2 notitle ls l8fill lw 2 with steps 21 | -------------------------------------------------------------------------------- /www/gplot/myTechTemp4.gplot: -------------------------------------------------------------------------------- 1 | # Visualisierung: Temperatur 2 | # 3 | # FileLog definition: 4 | # define FileLog /var/log/fhem/-%Y.log 5 | # Filelog example: 6 | # define FileLog_THR128_08 FileLog /var/log/fhem/THR128_08-%Y.log THR128_08 7 | # 8 | # Logfile record example: 9 | #2010-08-10_18:00:01 THR128_04 temperature: 20.7 10 | # 11 | 12 | # Attribute 'small' is useful for gnuplot/-scroll only, 13 | # if plotsize is less than 800,400 14 | #set terminal png transparent small size crop 15 | 16 | set terminal png transparent size crop 17 | 18 | set output '.png' 19 | set xdata time 20 | set timefmt "%Y-%m-%d_%H:%M:%S" 21 | set xlabel " " 22 | set y2tics 23 | set title '' 24 | set grid xtics y2tics 25 | 26 | set y2label "Temperature in C" 27 | 28 | #FileLog 4:\x20T\x3a|temperature:0: 29 | 30 | plot \ 31 | "< egrep 'T:|temperature:' "\ 32 | using 1:4 axes x1y2 title 'Temperatur' ls l0 lw 2 with lines 33 | -------------------------------------------------------------------------------- /www/gplot/myTemp4hum6.gplot: -------------------------------------------------------------------------------- 1 | # 2 | # Display the measured temp and the humidity. 3 | # FileLog definition: 4 | # define FileLog /var/log/fhem/hmsname-%Y.log :T:.* 5 | # 6 | # Logfile record example: 7 | # 2008-07-24_02:20:57 UGHygro T: 17.2 H: 77.6 Bat: ok 8 | 9 | # Attribute 'small' is useful for gnuplot/-scroll only, 10 | # if plotsize is less than 800,400 11 | #set terminal png transparent small size crop 12 | 13 | set terminal png transparent truecolor rounded medium size enhanced 14 | 15 | set output '.png' 16 | set xdata time 17 | set timefmt "%Y-%m-%d_%H:%M:%S" 18 | set xlabel " " 19 | set ytics nomirror 20 | set y2tics 21 | #set ytics 22 | set title '' 23 | set grid xtics y2tics 24 | 25 | set y2label "Temperature in C" 26 | set ylabel "Humidity (%)" 27 | 28 | #FileLog 8:T\x3a:0: 29 | #FileLog 10:H\x3a:0: 30 | 31 | plot \ 32 | "< awk '/T:/ {print $1, $8}' " using 1:2 ls l0 axes x1y2 title 'Temperature' with lines,\ 33 | "< awk '/H:/ {print $1, $10}' " using 1:2 ls l2fill axes x1y1 title 'Humidity' with lines 34 | -------------------------------------------------------------------------------- /www/gplot/myTerrassentuerStatus.gplot: -------------------------------------------------------------------------------- 1 | # Created by FHEM/98_SVG.pm, 2015-03-30 17:18:29 2 | set terminal png transparent size crop 3 | set output '.png' 4 | set xdata time 5 | set timefmt "%Y-%m-%d_%H:%M:%S" 6 | set xlabel " " 7 | set title '' 8 | set ytics ("Zu" 0, "Auf" 1) 9 | set y2tics ("Zu" 0, "Auf" 1) 10 | set grid 11 | set ylabel "Status" 12 | set y2label "Status" 13 | set yrange [-1.1:2.1] 14 | set y2range [-1.1:2.1] 15 | 16 | #-#FileLog 3:EG_WZ_WT01_WindowRec.*:: 17 | #-#FileLog 3:open|closed::$fld[2]=~"open"?1:0 18 | #FileLog 3:wz_fenster_l.open|wz_fenster_r.closed::$fld[2]=~"open"?1:0 19 | #FileLog 3:wz_fenster_r.open|wz_fenster_r.closed::$fld[2]=~"open"?1:0 20 | 21 | plot "" using 1:2 axes x1y2 title 'Tür links' ls l1 lw 1 with steps 22 | plot "" using 1:2 axes x1y2 title 'Tür rechts' ls l2 lw 1 with steps 23 | -------------------------------------------------------------------------------- /www/gplot/myTuerStatus.gplot: -------------------------------------------------------------------------------- 1 | # Created by FHEM/98_SVG.pm, 2015-03-29 20:16:44 2 | set terminal png transparent size crop 3 | set output '.png' 4 | set xdata time 5 | set timefmt "%Y-%m-%d_%H:%M:%S" 6 | set xlabel " " 7 | set title '' 8 | set ytics ("Zu" 0, "Auf" 1) 9 | set y2tics ("Zu" 0, "Auf" 1) 10 | set grid 11 | set ylabel "Status" 12 | set y2label "Status" 13 | set yrange [-1.1:2.1] 14 | set y2range [-1.1:2.1] 15 | 16 | #FileLog 3:open|closed::$fld[2]=~"open"?1:0 17 | 18 | plot "" using 1:2 axes x1y2 title 'Tür' ls l1 lw 1 with steps 19 | -------------------------------------------------------------------------------- /www/gplot/myTwilight.gplot: -------------------------------------------------------------------------------- 1 | ############################ 2 | # Twilight-Helligkeit 3 | 4 | set terminal png transparent size crop 5 | set output '.png' 6 | 7 | set title '' 8 | 9 | set xdata time 10 | set timefmt "%Y-%m-%d_%H:%M:%S" 11 | set xlabel " " 12 | set grid xtics y2tics 13 | 14 | set ytics nomirror 15 | set ylabel "Helligkeit" 16 | 17 | set y2tics 18 | set y2label "Helligkeit" 19 | 20 | #FileLog 4::: 21 | 22 | plot "" x1y1 title 'Helligkeit' with lines 23 | -------------------------------------------------------------------------------- /www/gplot/myWatchdog.gplot: -------------------------------------------------------------------------------- 1 | # 2 | # Anzeige der Watchdog-Log-Informationen 3 | # 4 | 5 | set terminal png transparent size crop 6 | set output '.png' 7 | set xdata time 8 | set timefmt "%Y-%m-%d_%H:%M:%S" 9 | set xlabel " " 10 | 11 | set title 'Watchdog' 12 | set yrange [-10:300] 13 | set y2label "Zeit (s)" 14 | 15 | set ytics ("alive" 0, "dead" 1) 16 | set yrange [-0.1:1.1] 17 | set ylabel "Status" 18 | 19 | #FileLog 4:\x20V\x3a:0: 20 | #FileLog 6:\x20S\x3a:0:$fld[5]=~"dead"?1:0 21 | 22 | 23 | plot "" x1y2 notitle ls l5 lw 0.5 with steps, \ 24 | x1y1 notitle ls l8fill lw 0 with steps 25 | 26 | 27 | #plot \ 28 | # 29 | # "< awk '/V\:/ {print $1, $4}' "\ 30 | # using 1:2 axes x1y2 title 'letzte Zeitmeldung' with lines lw 0.5,\ 31 | # "< awk '/S\:/ {print $1, $6~/dead/? 1 : 0; }' "\ 32 | # using 1:2 axes x1y1 title 'Status' with dots lw 0.5\ 33 | -------------------------------------------------------------------------------- /www/gplot/myWind4windDir4.gplot: -------------------------------------------------------------------------------- 1 | # 2 | # Display the measured wind direction and wind speed of Oregon sensors 3 | # 4 | # FileLog definition: 5 | # define FileLog /var/log/fhem/-%Y.log 6 | # Filelog example: 7 | # define FileLog_WTGR800_A_cf FileLog /var/log/fhem/WTGR800_A_cf-%Y.log WTGR800_A_cf 8 | # 9 | # 10 | # Logfile record example: 11 | # 2010-08-10_17:57:14 WTGR800_A_cf wind_speed: 3.2 12 | # 2010-08-10_17:57:14 WTGR800_A_cf wind_dir: 270 13 | 14 | # Attribute 'small' is useful for gnuplot/-scroll only, 15 | # if plotsize is less than 800,400 16 | #set terminal png transparent small size crop 17 | 18 | set terminal png transparent size crop 19 | 20 | set output '.png' 21 | set xdata time 22 | set timefmt "%Y-%m-%d_%H:%M:%S" 23 | set xlabel " " 24 | set ytics nomirror 25 | set y2tics 26 | set ytics ("Nord" 0, "Ost" 80, "Süd" 180, "West" 270, "Nord" 360) 27 | set title '' 28 | set grid xtics y2tics 29 | 30 | set yrange [0:360] 31 | 32 | set y2label "Wind km/h" 33 | set ylabel "Richtung" 34 | 35 | #FileLog 4:wind_speed:0: 36 | #FileLog 4:wind_direction:0: 37 | 38 | plot \ 39 | "< awk $3=="wind:" {print $1, $4}' "\ 40 | using 1:2 axes x1y2 title 'Wind km/h' with lines lw 2,\ 41 | "< awk $3=="wind_direction:" {print $1, $4}' "\ 42 | using 1:2 axes x1y1 title 'Windrichtung' with points\ 43 | -------------------------------------------------------------------------------- /www/gplot/myYahooWeather.gplot: -------------------------------------------------------------------------------- 1 | # Created by FHEM/98_SVG.pm, 2014-08-02 15:05:03 2 | set terminal png transparent size crop 3 | set output '.png' 4 | set xdata time 5 | set timefmt "%Y-%m-%d_%H:%M:%S" 6 | set xlabel " " 7 | set title '' 8 | set ytics 9 | set y2tics 10 | set grid ytics 11 | set ylabel "Temperature in C" 12 | set y2label "Humidity (%)" 13 | 14 | #FileLog 4:temperature\x3a:: 15 | #FileLog 4:wind_chill\x3a:: 16 | #FileLog 4:humidity\x3a:: 17 | 18 | plot "" using 1:2 axes x1y1 title 'Temperatur (C)' ls l0 lw 1.5 with lines,\ 19 | "" using 1:2 axes x1y1 title 'Gefuehlte Temperatur (C)' ls l1 lw 4 with lines,\ 20 | "" using 1:2 axes x1y2 title 'Luftfeuchtigkeit (%)' ls l2fill lw 0.2 with lines 21 | -------------------------------------------------------------------------------- /www/gplot/myhm-rt.gplot: -------------------------------------------------------------------------------- 1 | ############################ 2 | # Display the measured & desired temp and also the valve position. 3 | # Corresponding FileLog definition: 4 | # define FileLog /var/log/fhem/hm-rt-%Y-%m.log 5 | 6 | set terminal png transparent size crop 7 | set output '.png' 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | set ytics nomirror 12 | set y2tics 13 | set yrange [0:100] 14 | set title '' 15 | set grid xtics y2tics 16 | 17 | set y2label "Temperatur in C" 18 | set ylabel "Ventilposition (%)" 19 | 20 | #FileLog 4:measured-temp\x3a:0: 21 | #FileLog 4:desired-temp\x3a:0: 22 | #FileLog 4:ValvePosition\x3a:0: 23 | 24 | plot \ 25 | using 1:2 axes x1y2 title 'Gemessene Temperatur' ls l0 lw 2 with lines,\ 26 | using 1:2 axes x1y2 title 'Wunschtemperatur' ls l1 lw 2 with lines,\ 27 | using 1:2 axes x1y1 title 'Ventilstellung' ls l2fill lw 0.5 with lines 28 | -------------------------------------------------------------------------------- /www/gplot/myhm-tc.gplot: -------------------------------------------------------------------------------- 1 | ############################ 2 | # Display the measured & desired temp and also the valve position. 3 | # Corresponding FileLog definition: 4 | # define FileLog /var/log/fhem/hm-rt-%Y-%m.log 5 | 6 | set terminal png transparent size crop 7 | set output '.png' 8 | set xdata time 9 | set timefmt "%Y-%m-%d_%H:%M:%S" 10 | set xlabel " " 11 | set ytics nomirror 12 | set y2tics 13 | set yrange [0:100] 14 | set title '' 15 | set grid xtics y2tics 16 | 17 | set y2label "Temperatur in C" 18 | set ylabel "Luftfeuchtigkeit (%)" 19 | 20 | #FileLog 4:measured-temp\x3a:0: 21 | #FileLog 4:desired-temp\x3a:0: 22 | #FileLog 4:humidity\x3a:0: 23 | #FileLog 4:dewpoint\x3a:0: 24 | 25 | plot \ 26 | using 1:2 axes x1y2 title 'Gemessene Temperatur' ls l0 lw 2 with lines,\ 27 | using 1:2 axes x1y2 title 'Wunschtemperatur' ls l1 lw 2 with lines,\ 28 | using 1:2 axes x1y1 title 'Luftfeuchtigkeit' ls l2fill lw 0.5 with lines,\ 29 | using 1:2 axes x1y2 title 'Taupunkt' ls l8 lw 2 with lines 30 | -------------------------------------------------------------------------------- /www/images/my/bell.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 18 | 19 | 21 | image/svg+xml 22 | 24 | 25 | 26 | 27 | 28 | 30 | 32 | 36 | 37 | 38 | 42 | 46 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /www/images/my/bell_.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 18 | 19 | 21 | image/svg+xml 22 | 24 | 25 | 26 | 27 | 28 | 30 | 32 | 36 | 37 | 38 | 42 | 43 | -------------------------------------------------------------------------------- /www/images/my/error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/www/images/my/error.gif -------------------------------------------------------------------------------- /www/images/my/fp_Erdgeschoss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/www/images/my/fp_Erdgeschoss.png -------------------------------------------------------------------------------- /www/images/my/fp_Erdgeschoss_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/www/images/my/fp_Erdgeschoss_.png -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_0.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 38 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_10.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 42 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_100.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57 | 61 | 65 | 69 | 73 | 77 | 78 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_20.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 45 | 46 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_30.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 45 | 49 | 50 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_40.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 54 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_50.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57 | 58 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_60.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57 | 61 | 62 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_70.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57 | 61 | 65 | 66 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_80.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57 | 61 | 65 | 69 | 70 | -------------------------------------------------------------------------------- /www/images/my/fts_window_roof_shutter_90.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | Created by potrace 1.8, written by Peter Selinger 2001-2007 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57 | 61 | 65 | 69 | 73 | 74 | -------------------------------------------------------------------------------- /www/images/my/im_tablet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 22 | 23 | 25 | image/svg+xml 26 | 28 | 29 | 30 | 31 | 33 | 53 | 56 | 57 | -------------------------------------------------------------------------------- /www/images/my/logic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 31 | 55 | 83 | 84 | -------------------------------------------------------------------------------- /www/images/my/mqtt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 28 | 48 | 49 | 50 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /www/images/my/mqtt_broker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 29 | 49 | 50 | 51 | 52 | 53 | 54 | 60 | 65 | 71 | 73 | 74 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /www/images/my/mqtt_device.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 28 | 48 | 49 | 50 | 51 | 52 | 53 | 57 | 58 | 59 | 60 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /www/images/my/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/www/images/my/ok.png -------------------------------------------------------------------------------- /www/images/my/timeout.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hexenmeister/MyFHEM/771938c5175ad9f945baa99338564c40b076ecbd/www/images/my/timeout.gif --------------------------------------------------------------------------------